clark21236 Posted May 11, 2008 Posted May 11, 2008 I am looking for info on how the ISY handles program executions. If I have a particular action that I am watching. Let's say, the bedroom light switch is turned off. And I have multiple programs that all have that trigger in them. All of the programs perform multiple different actions on different Insteon devices. How does the ISY handle this? Lets say that when that light is turned off, I have 5 programs that all do something because that has happened. Is there a program execution que that these get put into, and then they execute once there is a chance for them to run? And lets follow that same line of thought. I have not read the Insteon protocol, but I think I have picked up from the forum that there is some sort of Insteon traffic clean up that is done after an Insteon command is sent. Ethernet has CSMA/CD, so this prevents communications from talking over another device talking on the network. The controls that I work on have token passing on the sub lan. The controls I worked on before had a supervisory device that controlled everything. Devices on the sub lan could not talk to each other, only the supervisory controller. And it would que up programs that needed to run. What I am trying to understand is how the ISY and Insteon fit together. I have two virtual 3 way switches that are right next to each other. And my kids love to play with them, and this is what got me started thinking about this. If two people were to turn on these switches at virtually the same time, how would Insteon handle this? Could it handle this? And then throw the ISY into the mix. When these switches get turned on, the ISY has programs that it wants to run based on these switches. Does it just try and jump into the mix and start throwing commands out on the the network? Or does it have the ability to wait its turn? Does the protocol even support this? I was changing one of my programs to do something, and I have seen people putting 1 or 2 second delays in things to make stuff work. It just seems fragile to me. If stuff all tries to talk at once, is there a retry? As I plan more devices, and more things to do, I am just trying to put the pieces together to understand the limitations of what I can do.
Chris Jahn Posted May 12, 2008 Posted May 12, 2008 Here's a few answers ... I am looking for info on how the ISY handles program executions. If I have a particular action that I am watching. Let's say, the bedroom light switch is turned off. And I have multiple programs that all have that trigger in them. All of the programs perform multiple different actions on different Insteon devices. How does the ISY handle this? Lets say that when that light is turned off, I have 5 programs that all do something because that has happened. Is there a program execution que that these get put into, and then they execute once there is a chance for them to run? Yes, each program will be run. There is no chance for a "collision" here, although you cannot determine the order in which they will run. What I am trying to understand is how the ISY and Insteon fit together. I have two virtual 3 way switches that are right next to each other. And my kids love to play with them, and this is what got me started thinking about this. If two people were to turn on these switches at virtually the same time, how would Insteon handle this? Could it handle this? And then throw the ISY into the mix. When these switches get turned on, the ISY has programs that it wants to run based on these switches. Does it just try and jump into the mix and start throwing commands out on the the network? Or does it have the ability to wait its turn? Does the protocol even support this? The ISY waits its turn, and sends out commands only when there is no Insteon traffic. Of course that doesn't prevent someone from hitting a switch a split second after the ISY has issued an Insteon command. I was changing one of my programs to do something, and I have seen people putting 1 or 2 second delays in things to make stuff work. It just seems fragile to me. If stuff all tries to talk at once, is there a retry? ISY does retries for long running commands such as Restore Device, adding a device to a scene, crawling the network etc.. For simple Insteon commands issued by programs, or simple on/off etc. commands from the Admin Console there are no retries.
clark21236 Posted May 12, 2008 Author Posted May 12, 2008 Chris, thanks for the explanation of how the ISY handles those situations.
Recommended Posts