add cron tasks for modbus requests every minute

This commit is contained in:
Stefan Allius
2024-05-05 20:18:45 +02:00
parent 5822f5de50
commit 29ee540a19

View File

@@ -3,6 +3,8 @@ import json
from mqtt import Mqtt from mqtt import Mqtt
from aiocron import crontab from aiocron import crontab
from infos import ClrAtMidnight from infos import ClrAtMidnight
from modbus import Modbus
from messages import Message
logger_mqtt = logging.getLogger('mqtt') logger_mqtt = logging.getLogger('mqtt')
@@ -17,7 +19,9 @@ class Schedule:
cls.mqtt = Mqtt(None) cls.mqtt = Mqtt(None)
crontab('0 0 * * *', func=cls.atmidnight, start=True) 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 @classmethod
async def atmidnight(cls) -> None: async def atmidnight(cls) -> None:
@@ -28,3 +32,12 @@ class Schedule:
logger_mqtt.debug(f'{key}: {data}') logger_mqtt.debug(f'{key}: {data}')
data_json = json.dumps(data) data_json = json.dumps(data)
await cls.mqtt.publish(f"{key}", data_json) 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)