Has anyone else experienced failing call_timers recently? My ER plugin is set up to check status every minute - it’s a call_timer function that calls itself. Twice in the last 3 weeks, it has dropped out - and it stops checking status until I log into vera and click save. Similarly, my scene that dims the foyer lights 1% every minute for an hour at sunset has dropped out a couple times.
Is there any way of confirming a specific call_timer is actually in progress? I will note that when these call_timers drop out, the sunset/sunrise timer-based scenes still run properly - so I’m wondering if there’s a built-in method of “resurrecting” dropped timers.
The Weather plugin was similarly failing, but after debugging it I found that I wasn’t being “guarded” enough in my code executing within the [tt]luup.call_timer[/tt].
In my case, there were situations where [tt]luup.inet.wget[/tt] would fail, or otherwise timeout, and my code wasn’t specifically checking for these conditions, or allowing a long-enough timeout value to handle the variations in time-to-execute (with everything else going on in Vera)
When this would happen, the Plugin would “error out” and not reach the code to re-schedule, resulting in the type of symptoms you describe.
Since I’ve put the guards in place, the system will adequately recovered from intermittent connectivity, or performance, problems.
Basically, I bumped my timeouts to 10seconds, and started [correctly] handling the success-fail response codes from [tt]luup.inet.wget[/tt].
You may want to look at the same parts of your code to see if they need tweaking…
Thanks Guessed - I’ve been gone a while, so I have to spend some time digging the error-handling stuff back up. I hate this kind of debugging, since I can’t duplicate the error easily, so it will take a lot of time to prove a fix does(n’t) work.
It was hard to repro in the Weather Plugin also, but the code changes are fairly logical to make even without a TC. You can also reduce the timeout, and “down” the Rain controller, to help you simulate bad things, since both of these should be enough to drive the flaws I was seeing.