Jump to content

Not all lines in my programs execute


Recommended Posts

Posted

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')
 

Posted
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. 

  • Like 1
Posted (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 by larryllix
  • Like 2
Posted
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.

Posted

This all makes sense. Thank you all for the solution but also for the explanation.

I will add wait lines.

  • Like 2
Guest
This topic is now closed to further replies.

×
×
  • Create New...