Hi
We have an edge workflow (reads modbus) that is triggered by a timer and after about 12 hours it has ceased to fire.
Re-dploying the workflow has no affect.
I also have HTTP trigger for the same workflow and works fine.
Difficult to diagnose
Thanks
T
I found it, sending it shortly
Thatâs definitely something weâd like to investigate. Can you please zip up and email us the edge agentâs log. By default it will be in the /data
folder that you mounted in when you ran the container.
Unfortunately the log doesnât exist for that period any more ;-(
After I rebuilt the workflow I noticed that the date on the system had gone backwards.
My guess is the agent couldnât fire as the current time had reversed.
I found something - but not sure if it goes back far enough -
How would you like it sent ?
Please zip it and send it to support@losant.com.
The system time changing is most likely the issue. The timer does use the system time to determine when to fire, even for simple intervals. When a timer fires, it calculates the next time it should fire based on the systemâs time. When that time occurs, it fires again. This mechanism allows both the simple timer and the much more advanced âevery day at 2pmâ configurations to use the same underlying timer system.
If the date were reset back several hours, the timer system would still be waiting for the time it calculated the last time it ran.
Yep that sounds like the problem. Hard to diagnose until I logged into the device.
Do you still want the log file ?
Yeah, that would be difficult to diagnose. We could probably send the system time through an edge agentâs âhelloâ message to the cloud and then display a warning if the system time if off by too much. Weâll think about a solution there.
Letâs assume for now the system time was the issue. If you do experience it again, make sure to grab the log file while itâs happening and then go ahead and email that to us.
Sounds like a plan.
Luckily we always have a VPN connection to these edge devices
T
Oh you might like to know we are actaully polling an RS485 serial device -
using mbusd to act as the serial proxy. So the workflow can talk to the device given the MODBUS node is TCP.
Oh nice. That sounds like a really clean solution. Did you bundle up mbusd into another docker container or are you running it on the host system?
Currently in the host, but will move it into a container.
I have redis in another container and a python script performing I2C to get analog and binary data, which hsets that to redis,
The edge workflow merges the modbus and redis data.
Just had the timer fail to fire - date not wrong so sending a log