diff --git a/app.py b/app.py index 6390202..8393db6 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,6 @@ import os import time +import threading from dsmr_parser import telegram_specifications 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 device = Device_DSMR("dsmr", name="Digitale Slimme Meter") - serial_reader = SerialReader(cfg.dsmr_port, serial_setup, spec) - while True: - try: - telegram = next(serial_reader.read_as_object()) - device.update(telegram) - logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}") - time.sleep(cfg.dsmr_update_interval) - except SerialException as serial_exc: - logger.warning("Serial exception", exc_info=serial_exc) + + def handle_next_telegram(): + telegram = next(serial_reader.read_as_object()) + device.update(telegram) + logger.info(f"New telegram at {telegram.P1_MESSAGE_TIMESTAMP.value}") + + def startTimer(): + threading.Timer(cfg.dsmr_update_interval, startTimer).start() + handle_next_telegram() + + startTimer() # for telegram in serial_reader.read_as_object(): # device.update(telegram) + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/dsmr2mqtt.log b/dsmr2mqtt.log index 02c4611..1154c43 100644 --- a/dsmr2mqtt.log +++ b/dsmr2mqtt.log @@ -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: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: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