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()