Loop with timer
This commit is contained in:
22
app.py
22
app.py
@@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import threading
|
||||||
from dsmr_parser import telegram_specifications
|
from dsmr_parser import telegram_specifications
|
||||||
from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5
|
from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5
|
||||||
|
|
||||||
@@ -38,19 +39,22 @@ def main():
|
|||||||
spec = telegram_specifications.V5
|
spec = telegram_specifications.V5
|
||||||
|
|
||||||
device = Device_DSMR("dsmr", name="Digitale Slimme Meter")
|
device = Device_DSMR("dsmr", name="Digitale Slimme Meter")
|
||||||
|
|
||||||
serial_reader = SerialReader(cfg.dsmr_port, serial_setup, spec)
|
serial_reader = SerialReader(cfg.dsmr_port, serial_setup, spec)
|
||||||
while True:
|
|
||||||
try:
|
def handle_next_telegram():
|
||||||
telegram = next(serial_reader.read_as_object())
|
telegram = next(serial_reader.read_as_object())
|
||||||
device.update(telegram)
|
device.update(telegram)
|
||||||
logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}")
|
logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}")
|
||||||
time.sleep(cfg.dsmr_update_interval)
|
|
||||||
except SerialException as serial_exc:
|
def startTimer():
|
||||||
logger.warning("Serial exception", exc_info=serial_exc)
|
threading.Timer(cfg.dsmr_update_interval, startTimer).start()
|
||||||
|
handle_next_telegram()
|
||||||
|
|
||||||
|
startTimer()
|
||||||
# for telegram in serial_reader.read_as_object():
|
# for telegram in serial_reader.read_as_object():
|
||||||
# device.update(telegram)
|
# device.update(telegram)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
@@ -36,3 +36,17 @@
|
|||||||
2020-06-03 22:18:09,205 [INFO ] [__main__] New telegram at 2020-06-03 20:18:31+00:00
|
2020-06-03 22:18:09,205 [INFO ] [__main__] New telegram at 2020-06-03 20:18:31+00:00
|
||||||
2020-06-03 22:18:25,468 [INFO ] [__main__] New telegram at 2020-06-03 20:18:47+00:00
|
2020-06-03 22:18:25,468 [INFO ] [__main__] New telegram at 2020-06-03 20:18:47+00:00
|
||||||
2020-06-03 22:18:42,205 [INFO ] [__main__] New telegram at 2020-06-03 20:19:04+00:00
|
2020-06-03 22:18:42,205 [INFO ] [__main__] New telegram at 2020-06-03 20:19:04+00:00
|
||||||
|
2020-06-03 22:23:28,312 [INFO ] [homie.mqtt.homie_mqtt_client] Using new MQTT client, number of instances 0
|
||||||
|
2020-06-03 22:23:28,326 [INFO ] [homie.mqtt.mqtt_base] MQTT set will homie/dsmr/$state, topic lost
|
||||||
|
2020-06-03 22:23:28,402 [INFO ] [homie.mqtt.paho_mqtt_client] Starting MQTT publish thread
|
||||||
|
2020-06-03 22:23:28,415 [INFO ] [homie.mqtt.paho_mqtt_client] Starting Asyincio looping forever
|
||||||
|
2020-06-03 22:23:28,436 [INFO ] [homie.device_base] Device Start Digitale Slimme Meter
|
||||||
|
2020-06-03 22:23:28,448 [INFO ] [homie.device_base] Device MQTT Connected state is True
|
||||||
|
2020-06-03 22:23:31,630 [INFO ] [__main__] New telegram at 2020-06-03 20:23:52+00:00
|
||||||
|
2020-06-03 22:23:45,224 [INFO ] [__main__] New telegram at 2020-06-03 20:24:07+00:00
|
||||||
|
2020-06-03 22:24:00,210 [INFO ] [__main__] New telegram at 2020-06-03 20:24:22+00:00
|
||||||
|
2020-06-03 22:24:15,230 [INFO ] [__main__] New telegram at 2020-06-03 20:24:37+00:00
|
||||||
|
2020-06-03 22:24:30,256 [INFO ] [__main__] New telegram at 2020-06-03 20:24:52+00:00
|
||||||
|
2020-06-03 22:24:45,213 [INFO ] [__main__] New telegram at 2020-06-03 20:25:07+00:00
|
||||||
|
2020-06-03 22:25:00,259 [INFO ] [__main__] New telegram at 2020-06-03 20:25:22+00:00
|
||||||
|
2020-06-03 22:25:15,289 [INFO ] [__main__] New telegram at 2020-06-03 20:25:37+00:00
|
||||||
|
|||||||
Reference in New Issue
Block a user