fixed write_datapoints
This commit is contained in:
parent
efc81d4c9c
commit
e7bdaceaf8
|
|
@ -87,33 +87,35 @@ class InfluxDatabase(models.Model):
|
|||
return int(timestamp)
|
||||
|
||||
def create_data_element_from_variable(self, variable, timestamp, value, **kwargs):
|
||||
if value is not None:
|
||||
date_saved = kwargs.get(
|
||||
"date_saved",
|
||||
variable.date_saved if hasattr(variable, "date_saved") else now(),
|
||||
)
|
||||
if value is None:
|
||||
return None
|
||||
if timestamp is None:
|
||||
return None
|
||||
date_saved = kwargs.get(
|
||||
"date_saved",
|
||||
variable.date_saved if hasattr(variable, "date_saved") else now(),
|
||||
)
|
||||
|
||||
# variable_id and device_id had to be a tag to be easily
|
||||
# filtered by, even if it is an numeric value
|
||||
logger.debug(f"{variable} {timestamp} {value}")
|
||||
point = (
|
||||
Point(self.measurement_name)
|
||||
.tag("variable_id", variable.pk)
|
||||
.tag("device_protocol", variable.device.protocol.protocol)
|
||||
.tag("device_id", variable.device_id)
|
||||
.tag("value_class", variable.value_class)
|
||||
.tag("unit", str(variable.unit))
|
||||
.field("value", value)
|
||||
.field("date_saved", date_saved.timestamp())
|
||||
.time(datetime.utcfromtimestamp(timestamp))
|
||||
)
|
||||
return point
|
||||
return None
|
||||
# variable_id and device_id had to be a tag to be easily
|
||||
# filtered by, even if it is an numeric value
|
||||
logger.debug(f"{variable} {timestamp} {value}")
|
||||
point = (
|
||||
Point(self.measurement_name)
|
||||
.tag("variable_id", variable.pk)
|
||||
.tag("device_protocol", variable.device.protocol.protocol)
|
||||
.tag("device_id", variable.device_id)
|
||||
.tag("value_class", variable.value_class)
|
||||
.tag("unit", str(variable.unit))
|
||||
.field("value", value)
|
||||
.field("date_saved", date_saved.timestamp())
|
||||
.time(datetime.utcfromtimestamp(timestamp/1000.0))
|
||||
)
|
||||
return point
|
||||
|
||||
def last_datapoint(self, **kwargs):
|
||||
if self.only_write_to_influxdb:
|
||||
django_database = self.get_django_database()
|
||||
return django_database.last_value(**kwargs)
|
||||
return django_database.last_datapoint(**kwargs)
|
||||
|
||||
variable = kwargs.pop("variable") if "variable" in kwargs else None
|
||||
use_date_saved = (
|
||||
|
|
@ -222,6 +224,7 @@ class InfluxDatabase(models.Model):
|
|||
date_saved = kwargs.pop("date_saved") if "date_saved" in kwargs else now()
|
||||
batch_size = kwargs.pop("batch_size") if "batch_size" in kwargs else 5000
|
||||
i = 0
|
||||
logger.debug(f"write_datapoints {items}")
|
||||
for item in items:
|
||||
logger.debug(f"{item} has {len(item.cached_values_to_write)} to write.")
|
||||
if len(item.cached_values_to_write):
|
||||
|
|
@ -236,7 +239,7 @@ class InfluxDatabase(models.Model):
|
|||
item.date_saved = date_saved
|
||||
# create the recorded data object
|
||||
point = self.create_data_element_from_variable(
|
||||
item, cached_value[1], cached_value[0], **kwargs
|
||||
item, cached_value[0], cached_value[1], **kwargs
|
||||
)
|
||||
if self.only_write_to_influxdb or True:
|
||||
rc = data_model.objects.create_data_element_from_variable(
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user