From 260f40443f0ae6546b12b1167bda6dd390cd0fae Mon Sep 17 00:00:00 2001 From: dervomsee Date: Thu, 17 Nov 2022 09:15:55 +0100 Subject: [PATCH] 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. --- SunGather/exports/influxdb.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SunGather/exports/influxdb.py b/SunGather/exports/influxdb.py index c0028c2..ca48575 100644 --- a/SunGather/exports/influxdb.py +++ b/SunGather/exports/influxdb.py @@ -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 \ No newline at end of file + return True