storeGasverbrauch.py
Python-Skript zum Erfassen von Gaszählerimpulsen
storeGasverbrauch.py
— 1.8 KB
Dateiinhalt
#!/usr/bin/env python3 from signal import pause from influxdb import InfluxDBClient from datetime import datetime from gpiozero import LED, Button button=Button(23) led = LED(24) def readAndStore(): led.on() # fester unveraenderlicher timestring zum speichern eines wertes in influxdb timeStr = datetime.fromisoformat("2022-08-30") try: client = InfluxDBClient('influxdb.fritz.box', 8086, 'user', 'password', 'housesensors') except: print("error: kann nicht zum influxdb server verbinden!") try: result=client.query('SELECT "gasverbrauch_sum" FROM "housesensors"."autogen"."sensormeta"') gasverbrauch_sum=result.raw["series"][0]["values"][0][1] print(gasverbrauch_sum) value=gasverbrauch_sum+0.01 except: print("noch kein Gasverbrauch gespeichert") measurement = [ { "measurement": "sensormeta", "tags" : { "host": "raspi_sensors" }, "time" : timeStr, "fields" : { "gasverbrauch_sum": value, } } ] measurement2 = [ { "measurement": "sensordata", "tags" : { "host": "raspi_sensors" }, "fields" : { "gasverbrauch": value, } } ] try: client.write_points(measurement) print("{} stored at {}".format(value,timeStr)) except: print("cannot insert current data point {} at {}".format(value,timeStr)) try: client.write_points(measurement2) print("{} stored".format(value)) except: print("cannot insert current data point {}".format(value)) def action_off(): led.off() def main(): button.when_pressed = readAndStore button.when_released = action_off pause() if __name__ == '__main__': main()