Andy C Posted October 24, 2023 Posted October 24, 2023 Insteon Beeps seem to freeze my eisy! I have an interesting challenge with my eisy where it will periodically freeze all work for up to 4 minutes. When this happens, all scripts/programs freeze regardless of their actions, affecting Insteon, Z-wave and network resources equally. Fortunately, this doesn't freeze the Java interface, so over the last couple of months, since my upgrade from the ISY994i, I've finally figured out the "what" if not the "why" of what is going on. For the record, this happens in 5.7.0 and as far as I can tell, earlier versions on the eisy were similarly affected, but not the ISY994i. One of the cool things about Insteon switches, is their ability to Beep on command. In my house, I've written scripts that, when a door opens in the house, the light switches make a short beep and alert us to someone coming or going (such as my teenage kids sneaking back into the house after midnight). This is obviously much more subtle than having the house alarm go off. So I have a program, suitable called "Beep", that looks like this: If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'Ground Floor / Kitchen / Kitchen Ceiling' Beep Set 'Ground Floor / Kitchen / Kitchen Table' Beep Set 'Lwr Ground Floor / Family Room / Family Room' Beep Set 'Upstairs / Master Bedroom / Mstr Bed Control.1' Beep Set 'Upstairs / Mstr Bathroom / Mstr Bathroom Light' Beep Set 'Garage+Studio / Studio Ceiling' Beep Else - No Actions - (To add one, press 'Action') I then call this program, whenever I need to be alerted. So programs like this: If 'Lwr Ground Floor / Backdoor-Opened' is switched On Then Run Program 'Beep' (Then Path) Else - No Actions - (To add one, press 'Action') So here is the snag. Whenever any of my programs call Beep, they freeze in place, and put the entire eisy into stasis for a period of time ranging from 30 seconds to a good 4 minutes. Nothing appears in the log files to suggest a problem, and when it comes back to life, it will catch-up with all the scripts actions from all activities that were paused across any/all methods. While I have Z-wave devices, these programs use pure Insteon products, so all the door sensors are Insteon TriggerLinc and the switches doing the beeping are Insteon SwitchLinc devices. So now to debugging - If, from the Java interface, I run the "then" command on either the "Beep" program or any of the programs that call "Beep", the programs work immediately and the system doesn't freeze. However, should the "If" construct be executed (such as a teenager opening the backdoor) then the freeze occurs. I can actually watch this happen through the Java interface, as I can see the program icon turn solid green, and then stay solid green for a long time. Finally the beeps occur and it returns to a thin green line, indicating the program completed in the "then" branch. I've taken obvious steps such as write new programs, limit my beeps to one switch only, and various combinations of beeps, but to no avail. So for the moment, I've had to suspend my beeping until I can come up with a suitable solution. In the meantime, my teenagers are free to come and go without the house betraying their tardiness. Is anyone else using Beeps this way and if so, seeing similar problems (with the eisy, not their children)?
IndyMike Posted October 24, 2023 Posted October 24, 2023 (edited) Edit: after re-reading your code, the "Switched on" control action in the If clause should prevent multiple triggers. Unless the door is cycling open - closed - open, etc. I'll leave the original post below. It's something to try for troubleshooting purposes. I have used the "Beep" calls with the ISY994 for years with no issue. I don't have a Eisy to test... Just guessing here... Since things work when you trigger the programs manually, it seems that the alarm system integration may be the issue (ELK?). One of the differences in the Eisy is the use of a node sever for the Elk integration. The ISY994 used a "built in" integration. You may be getting multiple triggers or other timing issues when your door opens. You could try locking the program out using a variable or by testing that the program isn't already running. Waits could also be used to make things easier to test. Something along the lines of: If 'Lwr Ground Floor / Backdoor-Opened' is switched On and $Status.ProgramBeep is not $Status.Running Then $Status.ProgramBeep = $Status.Running Wait 1 second Run Program 'Beep' (Then Path) Else - No Actions - (To add one, press 'Action') BEEP ProGRAM If Then Beep Beep Beep $Status.ProgramBeep = $Status.Idle Else - No Actions Edited October 24, 2023 by IndyMike Updated
Andy C Posted October 25, 2023 Author Posted October 25, 2023 Thanks @IndyMike for your fast response! I don’t have my alarm system integrated with the eisy (not Elk) so unfortunately nothing else is being called to which I can pin blame! I’ve eliminated any other calls or programs being made from the door opening action to prove it’s the beeping that’s the problem. It’s also happening on more than one door sensor, and I didn’t have the problem with ISY994i. I like your idea of making sure that “Beep” isn’t running before allowing to run a second (or multiple) times, but with the Java interface’s god-like view of what is being triggered in real-time I can see the progression of program execution to the “beep” program, and subsequent stasis there, vs. being cycled repeatedly in the trigger/sensor program that calls it. I’m going to call this as an eisy specific problem given it did work without issue for a long time before its migration, but am very much aware that subtle changes can trigger very different behaviors between platforms.
IndyMike Posted October 25, 2023 Posted October 25, 2023 Hey Andy, Given that you apparently have an Insteon door Open/Close sensor (there I go ASSuming again), I would tend to agree that this appears to be a Eisy issue. If you could perhaps post some "level 3 event viewer" traces, with manual Vs door operated triggers, someone with a Eisy could chime in on the issue. Not much, but the best I can offer for now.
Xathros Posted October 30, 2023 Posted October 30, 2023 @Andy C First let me say I use beeps for doors opening all the time! I absolutely love the feature and am disappointed to be losing this capability as I move from Insteon to Kasa wall switches. I'm keeping a bunch of Insteon plug modules mostly just to keep my beeps! I'm not sure if this will help with your freezing problem or not but may I suggest that you create a scene containing all of the devices that you want to beep and then have your program beep that single scene rather than all of the devices individually. This will greatly reduce the Insteon traffic and make things much smoother. In addition, all of the devices will beep simultaneously rather than each in turn which I found I prefer. Hope this helps. -Xathros 1
Recommended Posts