larryllix Posted September 29, 2014 Posted September 29, 2014 This would be nice to give top priority of execution where a triggering device is used in multiple programs to give priority to a particular program. Multiple levels of priority could be assigned but that is most likely too complicated to implement in the Admin Console GUI and not really useful IMHO. This would be used most for keeping light response to MS fast. Many use an entrance 'wait 1-2 sec' but this could eliminate that and be more effective. It would seem the "priority program" would just have to put to the top of the execution stack for that device event table and should be simple to implement. A basic checkbox could be used but any other checked program lines relating to that trigger would need to be cleared or a warning refusal message could be popped-up. eg. Program 1 -------------- If 'Kitchen_SwitchLinc' is switched On (priority=ON) Then set kitchen.light On Program 2 -------------- If 'Kitchen_SwitchLinc' is switched On (priority=Off) Then $Motion.count += 1 Program 3 -------------- If 'Kitchen_SwitchLinc' is switched On (priority=Off) Then run Occupied.timer.reset (If)
Michel Kohanim Posted September 29, 2014 Posted September 29, 2014 Hi larryllix, Thanks so very much for the feedback. Currently our event management framework does not have a concept of device dependence. As such, there are no such things as device event execution stack. If we were to add priority management, then we would have to add another layer of logic to handle it. The main question is whether or not this requirement is something important that we cannot do without. So, to answer this question, can you please let me know the use cases (in words) where not having priority might cause issues? With kind regards, Michel
larryllix Posted September 30, 2014 Author Posted September 30, 2014 Hi larryllix, Thanks so very much for the feedback. Currently our event management framework does not have a concept of device dependence. As such, there are no such things as device event execution stack. If we were to add priority management, then we would have to add another layer of logic to handle it. The main question is whether or not this requirement is something important that we cannot do without. So, to answer this question, can you please let me know the use cases (in words) where not having priority might cause issues? With kind regards, Michel Slow light 'On' responses from motion sensors when multiple programs are attached to that same trigger device. When I come home a beeper goes off to remind me to operate a particular SwitchLinc to disable notifications that motion is in my house. There are times when I cannot cause parts of the program to run for 20-40 seconds as the priority of that program sequence never gets a chance to run until many other tasks are done. Other times it responds within a second or two. The ISY seems to be busy and takes random amounts of time to get to the main task I want done at that instant. There must be some list of programs, or a sequence of programs to run, for each event in the ISY firmware somewhere. Surely not every program's 'If' trigger logic get tested globally every time there is an Insteon event received like pressing a KeyPad button or SwitchLinc , without any order of execution, do they? If this is the case the ISY is going to speed up magnitudes with implementation of an execution list for each event. It should only require sorting the 'priority' program to the beginning of the execution list. No? Thanks for the consideration.
Michel Kohanim Posted September 30, 2014 Posted September 30, 2014 Hi larryllix, Thanks you. There are times when I cannot cause parts of the program to run for 20-40 seconds as the priority of that program sequence never gets a chance to run until many other tasks are done. Other times it responds within a second or two. The ISY seems to be busy and takes random amounts of time to get to the main task I want done at that instant.ISY programs take a fraction of second to be evaluated and therefore the problem is NOT event processing but the bottleneck of communications with underlying protocols (such as INSTEON and Z-Wave). Please note that notifications and network resources run in their own threads and thus should not impact execution. Although Z-Wave and INSTEON handlers do run in their own threads, but - unlike notifications and network resources - the program waits for the execution to complete (otherwise you will have out of sequence events and everything will be completely messed up). So, what you need to figure out is "what is taking 20 seconds" ... it's definitely NOT program evaluation. It's the execution of things in "Then" or "Else". Perhaps there are communication errors. The other possibility is that you have an external client (such as Admin Console or RPi) that keeps trying to load all the programs. This will put a lock on programs. In short, I am more than certain that assigning priorities will not help with the situation as you outlined above. It would be best to have the Event Viewer on (level 3) to see what is transpiring for those situations when execution takes 20 seconds or more. With kind regards, Michel
Recommended Posts
Archived
This topic is now archived and is closed to further replies.