diff --git a/pyscada/influxdb/models.py b/pyscada/influxdb/models.py index 307bae0..aa8caa5 100644 --- a/pyscada/influxdb/models.py +++ b/pyscada/influxdb/models.py @@ -107,13 +107,14 @@ class InfluxDatabase(models.Model): use_date_saved = ( kwargs.pop("use_date_saved") if "use_date_saved" in kwargs else False ) - query = f'from(bucket: "{self.bucket}") |> range(start: {self.to_flux_time(time_min)}) |> filter(fn:(r) => r._measurement == "{self.measurement_name}" ) |> filter(fn:(r) => r.variable_id == "{variable_id}") |> filter(fn:(r) => r._field == "value") |> keep(columns: ["_time","_value"]) |> last()' - r = query_api.query(query) - r = r.to_values(columns=['_time','_value'])[0] + start_time = "-24h" + query = f'from(bucket: "{self.bucket}") |> range(start: {start_time}) |> filter(fn:(r) => r._measurement == "{self.measurement_name}" ) |> filter(fn:(r) => r.variable_id == "{variable.pk}") |> filter(fn:(r) => r._field == "value") |> keep(columns: ["_time","_value"]) |> last()' + r = self.get_query_api().query(query) + r = r.to_values(columns=['_time','_value']) if len(r) == 0: return None - return [r[-1][0].timestamp(), r[-1][1]] + return [r[0][0].timestamp(), r[0][1]] def read_multiple(self, **kwargs):