diff --git a/app.py b/app.py index 046a071..95d0f87 100644 --- a/app.py +++ b/app.py @@ -2,6 +2,7 @@ import os import time import sys import threading +import _thread from dsmr_parser import telegram_specifications from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V2_2, SERIAL_SETTINGS_V4, SERIAL_SETTINGS_V5 @@ -46,10 +47,14 @@ def main(): 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() + try: + handle_next_telegram() + except: + _thread.interrupt_main() + startTimer() # for telegram in serial_reader.read_as_object():