PapaBear Posted March 4 Posted March 4 In the program below, some of the lines do not always execute. There doesn't seem to be a pattern to the failures. What have I done wrong? Sunrise - [ID 0006][Parent 0001] If Time is Sunrise Then Set 'Liv Foyer Lib Prch / Landscape lights' Fast Off Set 'Liv Foyer Lib Prch / KP Liv Rm.Porch Plugs' Off Set 'Liv Foyer Lib Prch / Powder rm bulb' Off Set 'Garage Deck / Deck Stained Glass' Off Set 'Second flr Attic / Attic Star' Fast Off Set 'Second flr Attic / Mstr bdrm lamps' Off Set 'Liv Foyer Lib Prch / SW side dr sconce' Off Else - No Actions - (To add one, press 'Action')
Geddy Posted March 4 Posted March 4 6 minutes ago, PapaBear said: What have I done wrong? "Nothing" (in reality), but you might want to inset a "wait" for a couple of seconds between a couple of lines. This many triggers (all at once) might make too much Insteon traffic and something is being missed (thus the reason for random lines missing). Or could put a repeat 1 or 2 times, but it would still fire all the lines at once. If you have other "sunrise" programs that is even more traffic that is being triggered. You might want to stagger off of sunset a couple of seconds. 1
larryllix Posted March 4 Posted March 4 (edited) As per @Geddy above. I agree with the Wait lines. I would install a wait 1 second every second line of control commands with Insteon. IIRC the Insteon cache is limited and when overflowed just has to forget the latest line. Remember Insteon is a handshake, and confirmed protocol, so every time you command a device a response has to come back to determine is a try again command has to be sent. This all takes time and if there is any failure, more traffic will ensue, all from the same original command line. Meanwhile your next commend is waiting to be sent, so one can see why the cache may be limited to a small size. And...don;t forget when a command is sent, every Insteon device will simultaneously echo that same command until the intended target responds up the mesh echo limit setting inside every packet. Wait x seconds/minutes/hours also gives up the control of the CPU process that your ISY program holds, so that I/O and other multi-tasked programs and I/O drivers can get their turn to process what your front-end programs are asking ISY to do. ISY is a partially volunteered time slice engine as were early Windows operating systems. ISY programmers can control this with Wait and Repeat statement lines. Edited March 4 by larryllix 2
gzahar Posted March 5 Posted March 5 If it is all Insteon, put the devices in a scene and turn the scene off. 3
paulbates Posted March 5 Posted March 5 1 hour ago, gzahar said: If it is all Insteon, put the devices in a scene and turn the scene off. This. If not, put a couple of seconds between each command as the "back to back" Insteon commands are crashing into each other.
PapaBear Posted March 5 Author Posted March 5 This all makes sense. Thank you all for the solution but also for the explanation. I will add wait lines. 2
Recommended Posts