I am working on a power loss recovery program. I am presuming a couple of things:
1. The ISY O/S doesn't query devices when a program runs unless the program specifically asks, rather it keeps current status based on event changes in its memory and that's what you are testing in a program status conditional.
2. If so, that means to be certain the ISY has correct information after a power on, I need to do a QUERY (unless the ISY does one on power on, which it might - does it)?
My question is, can the Query trigger program state changes if it finds things different than the current ISY memory shows and thus run programs? If so, I'll need to make a variable that indicates programs shouldn't respond to a query, but if I don't need to do that, it saves a lot of coding.
I pretty much trust the Insteon devices to remember their last state through a power off/on, but I also have been a real time man in the loop programmer for enough decades to "trust but verify" to catch that one case in 1000 where they didn't and be sure the system comes up in a safe state.
I understand in general the state triggered structure of the ISY994i programming, but am trying to fully understand all the edge conditions like power on and Query that either may or may not trigger programs to run and handle them correctly.
Of course, if this is totally incorrect, what does the ISY O/S do as to assuring it has correct device status on a power on?