add cron tasks for modbus requests every minute
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user