Tasks#
Periodic tasks#
mqttwarn can use functions you define in the file specified [defaults]
section
to periodically do whatever you want, for example, publish an MQTT message. There
are two things you have to do:
Create the function
Configure mqttwarn to use that function and specify the interval in seconds
Assume we have the following user-defined function.
from mqttwarn.model import Service
def pinger(srv: Service):
srv.mqttc.publish("pt/PINGER", "Hello from mqttwarn!", qos=0)
We configure this function to run every, say, 10 seconds, in the mqttwarn.ini
,
in the [cron]
section:
[cron]
pinger = 10.5
Each keyword in the [cron]
section specifies the name of one of your custom
functions, and its float value is an interval in seconds after which your
user-defined function, in this case pinger()
, is invoked. Your function has
access to the srv
object described above.
Function names are to be specified in lower-case characters.
If you want to run the user-defined function immediately after starting mqttwarn
instead of waiting for the interval to elapse, you might want to add now=true
.
[cron]
pinger = 10.5; now=true