Workaround for string type values

And changing from line protocol to more modern point protocol. This lets the library decide which transfer protocol to use.
This commit is contained in:
dervomsee
2022-11-17 09:15:55 +01:00
committed by GitHub
parent 86b8b4577b
commit 260f40443f
+5 -4
View File
@@ -60,9 +60,10 @@ class export_influxdb(object):
if not inverter.validateLatestScrape(measurement['register']):
logging.error(f"InfluxDB: Skipped collecting data, {measurement['register']} missing from last scrape")
return False
sequence.append(f"{measurement['point']},inverter={inverter.getInverterModel(True)} {measurement['register']}={inverter.getRegisterValue(measurement['register'])}")
logging.debug(f'InfluxDB: Sequence; {sequence}')
if type(inverter.getRegisterValue(measurement['register'])) is str:
sequence.append(influxdb_client.Point(measurement['point']).tag("inverter", inverter.getInverterModel(True)).field(measurement['register'], inverter.getRegisterValue(measurement['register'])))
else:
sequence.append(influxdb_client.Point(measurement['point']).tag("inverter", inverter.getInverterModel(True)).field(measurement['register'], float(inverter.getRegisterValue(measurement['register']))))
try:
self.write_api.write(self.influxdb_config['bucket'], self.client.org, sequence)
except Exception as err:
@@ -70,4 +71,4 @@ class export_influxdb(object):
logging.info("InfluxDB: Published")
return True
return True