From 29ee540a19c3b00814e796a7e7225a71dcff0499 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Sun, 5 May 2024 20:18:45 +0200 Subject: [PATCH] add cron tasks for modbus requests every minute --- app/src/scheduler.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/scheduler.py b/app/src/scheduler.py index b5d238d..dc45890 100644 --- a/app/src/scheduler.py +++ b/app/src/scheduler.py @@ -3,6 +3,8 @@ import json from mqtt import Mqtt from aiocron import crontab from infos import ClrAtMidnight +from modbus import Modbus +from messages import Message logger_mqtt = logging.getLogger('mqtt') @@ -17,7 +19,9 @@ class Schedule: cls.mqtt = Mqtt(None) crontab('0 0 * * *', func=cls.atmidnight, start=True) - # crontab('*/5 * * * *', func=cls.atmidnight, start=True) + + # every minute + crontab('* * * * *', func=cls.regular_modbus_cmds, start=True) @classmethod async def atmidnight(cls) -> None: @@ -28,3 +32,12 @@ class Schedule: logger_mqtt.debug(f'{key}: {data}') data_json = json.dumps(data) await cls.mqtt.publish(f"{key}", data_json) + + @classmethod + async def regular_modbus_cmds(cls): + # logging.info("Regular Modbus requests") + for m in Message: + if m.server_side: + fnc = getattr(m, "send_modbus_cmd", None) + if callable(fnc): + await fnc(Modbus.READ_REGS, 0x300e, 2)