Jump to content

Number of Insteon retries for a program?


KConover

Recommended Posts

Posted

I've long had programs running on my ISY994i to turn on the outside lights 15 minutes before sunset, and another to turn off the outside lights at 11 PM. Usually works fine. But I've recently noted that one of the lights sometimes doesn't turn off. I figured I'd increase the retries in the program, but there doesn't seem to be a way to do that. When a dimmer switch controls another dimmer switch, I can specify the number of retries, but apparently not when it's a program controlling an Insteon dimmer switch. Any recommendations?

Posted
10 minutes ago, KConover said:

I've long had programs running on my ISY994i to turn on the outside lights 15 minutes before sunset, and another to turn off the outside lights at 11 PM. Usually works fine. But I've recently noted that one of the lights sometimes doesn't turn off. I figured I'd increase the retries in the program, but there doesn't seem to be a way to do that. When a dimmer switch controls another dimmer switch, I can specify the number of retries, but apparently not when it's a program controlling an Insteon dimmer switch. Any recommendations?

If

11PM

Then

Turn off lights

wait 5 seconds

Turn off lights

wait 5 seconds

Turn off lights

....

Posted
14 hours ago, KConover said:

Any recommendations?

Rather than band-aid the issue find out why the lights aren't turning off. Sounds like a noise issue. Sure, adding waits and running the command again is a way to make it work, but what happens when you have 4 or 5 repeated lines and it STILL doesn't turn off? Just add more lines? No, fix the problem!

It's possible that the switch is going bad.

It's possible line noise is causing a missed command. Even if you say, "but I haven't added anything to my system", there are plenty of reports that something as simple as a phone charger going (or has gone) bad adds line noise to your system. Even an appliance has been known to suddenly add noise blocking Insteon commands. 

FIX THE PROBLEM! Adding waits and repeating the command just masks the issue. By not finding out what's causing it could lead to other issues. 

Good luck.

 

  • Like 1
  • Thanks 1
Posted

I was looking for a Band-Aid approach. gzahar's comment did make me look at my code again. I had a long list of outside lights to turn off, and it was the LAST of that list that was not turning off. Maybe too much traffic in rapid succession. I added a Wait right before that list item on the list which seems to be fixing the problem. I have lots of noise filters on fans and other power supplies already, and a signal bridge between the two sides of the AC system.

Posted
32 minutes ago, KConover said:

I was looking for a Band-Aid approach. gzahar's comment did make me look at my code again. I had a long list of outside lights to turn off, and it was the LAST of that list that was not turning off. Maybe too much traffic in rapid succession. I added a Wait right before that list item on the list which seems to be fixing the problem. I have lots of noise filters on fans and other power supplies already, and a signal bridge between the two sides of the AC system.

Why don't you put them all in a scene and turn the scene off.

  • Like 2
Posted

Well, I have all five exterior light switches set to control all of the other light switches – means I can turn off any one and it will turn off all of the others – and I thought that it would be better to address those switches directly as individual devices, rather than picking one at random and then letting it control all the others. Do you think I was wrong in this?

Posted
1 hour ago, KConover said:

Do you think I was wrong in this?

What is your desired outcome? You asked about programs now you're talking about switches controlling other switches.

@gzahar suggested scenes. 

Do you have ONE program, or a program for each switch?

Perhaps paste your program(s) to review. On the program(s) right click select "Copy to Clipboard" (last option on menu) then paste as text. 

 

If you handle all the lights as a scene you could simplify your program to be:

Test Program

If
        From    Sunset  - 15 minutes
        To      11:00:00PM (same day)
 
Then
        Set 'OutsideScene' On
 
Else
        Set 'OutsideScene' Off
 

 

This would simplify everything. Then, if your scene does have traffic issues you can attempt the repeat that you were looking for.  Note that this handles both the ON and OFF given your first post (turning lights on 15 minutes before sunset, and off at 11pm). You don't need 1 program to turn them on and 1 program to turn them off (or multiple programs for each switch). 

 

Posted

Here is the basic program before I started putting Bandaid "Wait" lines in there:

1100-Off - [ID 0006][Parent 0001]

If
        Time is 11:00:00PM
 
Then
        Set 'Back Steps Lights' Off
        Set 'Downstairs Landing Light Swit' Off
        Set 'Driveway Lights' Off
        Set 'Front Porch Light Switch' Off
        Set 'Garage Exterior Lights Switch' Off
        Set 'Side Door Light' Off
        Set 'Back Steps Lights' Fast Off
        Set 'Downstairs Landing Light Swit' Fast Off
        Set 'Driveway Lights' Fast Off
        Set 'Front Porch Light Switch' Fast Off
        Set 'Garage Exterior Lights Switch' Fast Off
        Set 'Side Door Light' Fast Off
 
Else
   - No Actions - (To add one, press 'Action')
 

As far as execution, is there an advantage in terms of functionality to grouping all of these into a scene rather than addressing them separately? It does make neater code, but then the language APL also results in neater code, being a single statement at the end of coding, but it's write only, non-commented code that is impossible to understand if you didn't write it. Actually, if you didn't write it within the last couple of weeks you probably can't understand it. Since I decided to send it twice to each switch, I figured I'd try both versions "Off" and "Fast Off" as I have no idea what the difference is. (Do you think this automated programming system could also be updated to put in automated comments?)

Posted
9 hours ago, KConover said:

Here is the basic program before I started putting Bandaid "Wait" lines in there:

1100-Off - [ID 0006][Parent 0001]

If
        Time is 11:00:00PM
 
Then
        Set 'Back Steps Lights' Off
        Set 'Downstairs Landing Light Swit' Off
        Set 'Driveway Lights' Off
        Set 'Front Porch Light Switch' Off
        Set 'Garage Exterior Lights Switch' Off
        Set 'Side Door Light' Off
        Set 'Back Steps Lights' Fast Off
        Set 'Downstairs Landing Light Swit' Fast Off
        Set 'Driveway Lights' Fast Off
        Set 'Front Porch Light Switch' Fast Off
        Set 'Garage Exterior Lights Switch' Fast Off
        Set 'Side Door Light' Fast Off
 
Else
   - No Actions - (To add one, press 'Action')
 

As far as execution, is there an advantage in terms of functionality to grouping all of these into a scene rather than addressing them separately? It does make neater code, but then the language APL also results in neater code, being a single statement at the end of coding, but it's write only, non-commented code that is impossible to understand if you didn't write it. Actually, if you didn't write it within the last couple of weeks you probably can't understand it. Since I decided to send it twice to each switch, I figured I'd try both versions "Off" and "Fast Off" as I have no idea what the difference is. (Do you think this automated programming system could also be updated to put in automated comments?)

You're overly complicating simple programs. The benefits of insteon scenes have been covered countless times in the insteon white pages, thousands of posts, the wiki, and isy cookbook. Scenes was mentioned because they're infinitely better than what you're doing with programs. 

Programs can't make up for poor techniques and issues. Using band-aid solutions such as programs to fix issues only serves to create more issues long term. It's a rabbit hole you don't want to go down which is why Geddy said something about fixing the actual issue. This is what contributes to making programming hard to understand. In a sense you're turning simple math into an algebra equation. 

  • Like 1
Posted
10 hours ago, KConover said:

Here is the basic program before I started putting Bandaid "Wait" lines in there:

1100-Off - [ID 0006][Parent 0001]

If
        Time is 11:00:00PM
 
Then
        Set 'Back Steps Lights' Off
        Set 'Downstairs Landing Light Swit' Off
        Set 'Driveway Lights' Off
        Set 'Front Porch Light Switch' Off
        Set 'Garage Exterior Lights Switch' Off
        Set 'Side Door Light' Off
        Set 'Back Steps Lights' Fast Off
        Set 'Downstairs Landing Light Swit' Fast Off
        Set 'Driveway Lights' Fast Off
        Set 'Front Porch Light Switch' Fast Off
        Set 'Garage Exterior Lights Switch' Fast Off
        Set 'Side Door Light' Fast Off
 
Else
   - No Actions - (To add one, press 'Action')
 

As far as execution, is there an advantage in terms of functionality to grouping all of these into a scene rather than addressing them separately? It does make neater code, but then the language APL also results in neater code, being a single statement at the end of coding, but it's write only, non-commented code that is impossible to understand if you didn't write it. Actually, if you didn't write it within the last couple of weeks you probably can't understand it. Since I decided to send it twice to each switch, I figured I'd try both versions "Off" and "Fast Off" as I have no idea what the difference is. (Do you think this automated programming system could also be updated to put in automated comments?)

Separate lines with waits between them is more secure and more reliable than scenes. Scenes have no confirmation of signals and therefore no Insteon retries if no response is received.

I use a combination of the techniques. For most groupings I use scenes to turn them off, but for middle of the night "if all else fails" I use individual Off lines as you demonstrated. You do need Waits between every second or third line to be 99.99999% successful though.

However, having said that, I only have two Insteon controlled lights left. The rest are all WiFi bulbs now so I have very little need for any Insteon scenes any more. My WiFi NRbridge software creates it's own scene control appearance with very little delay between bulb operations.

IOW: when I used a lot of Insteon lighting, I used Insteon scenes for human appearance (less popcorn effect) , and individual program lines for all other operations, giving better reliability.

Posted

OK, getting conflicting advice,

1) put all the lights in a scene

2) put a wait after each

Since I don't think it's a primary noise problem, more likely a collision on the line, I'm putting waits after signaling each light to turn off. I'll post my experience.

Posted
34 minutes ago, KConover said:

OK, getting conflicting advice,

1) put all the lights in a scene

2) put a wait after each

Since I don't think it's a primary noise problem, more likely a collision on the line, I'm putting waits after signaling each light to turn off. I'll post my experience.

There's no right or wrong way. Everyone has their own way of programming things for various reasons. 

Some people prefer the cleanliness and efficiency of scenes while others may be ok with drawing things out with programs (and the perceived effectiveness of it) despite the experience. Neither is wrong. It's whatever works for you. 

  • Like 1
Posted
16 hours ago, KConover said:

OK, getting conflicting advice,

1) put all the lights in a scene

2) put a wait after each

Since I don't think it's a primary noise problem, more likely a collision on the line, I'm putting waits after signaling each light to turn off. I'll post my experience.

As Lilyoyo1 indicated, programming beauty is in the eyes of the beholder.  On the other hand, if you believe that collisions are causing your issues, using a scene is the way to go since it uses only one transmission from the PLM.

Your approach using waits can be made to work.  The waits give the PLM time to execute group/device cleanup commands and perform retries (if necessary).  Unfortunately, it's dynamic and could require different wait times under different signaling conditions.  You may want to start with a long wait (10 seconds) to be sure that the PLM has completed it's cleanup.

There are very few tools available for Insteon.  One of the tools that UDI did give us it the "Scene Test" (under "Tools/Diagnostics/Scene Test").  This would allow you to test the scene repeatedly, and at different times of the day, to see if you have a failing device or changing environment. 

Below are the results of a scene test that I ran on my BSMT Scene.  I have one device that fails this test somewhat consistently (not 100%).  The device will periodically fail the 3:00 AM query, but generally passes a query from the ADMIN Console.  The device has no load (controller only) and is in the same box as other responders.   It's an old 2476D that is likely starting to loose it's power supply.  

  1. Thu 03/09/2023 09:24:41 AM : [GRP-RX      ] 02 61 27 13 00 06

  2. Thu 03/09/2023 09:24:42 AM : [INST-SRX    ] 02 50 20.73.18 53.BC.3A 65 13 27    LTOFFRR(27)

  3. Thu 03/09/2023 09:24:42 AM : [Std-Cleanup Ack] 20.73.18-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  4. Thu 03/09/2023 09:24:42 AM : [INST-SRX    ] 02 50 13.0A.51 53.BC.3A 65 13 27    LTOFFRR(27)

  5. Thu 03/09/2023 09:24:43 AM : [Std-Cleanup Ack] 13.0A.51-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  6. Thu 03/09/2023 09:24:43 AM : [INST-SRX    ] 02 50 41.1E.09 53.BC.3A 65 13 27    LTOFFRR(27)

  7. Thu 03/09/2023 09:24:43 AM : [Std-Cleanup Ack] 41.1E.09-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  8. Thu 03/09/2023 09:24:43 AM : [INST-SRX    ] 02 50 1A.4F.19 53.BC.3A 65 13 27    LTOFFRR(27)

  9. Thu 03/09/2023 09:24:43 AM : [Std-Cleanup Ack] 1A.4F.19-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  10. Thu 03/09/2023 09:24:45 AM : [INST-SRX    ] 02 50 16.5C.BF 53.BC.3A 65 13 27    LTOFFRR(27)

  11. Thu 03/09/2023 09:24:45 AM : [Std-Cleanup Ack] 16.5C.BF-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  12. Thu 03/09/2023 09:24:45 AM : [INST-SRX    ] 02 50 0B.B7.F8 53.BC.3A 65 13 27    LTOFFRR(27)

  13. Thu 03/09/2023 09:24:45 AM : [Std-Cleanup Ack] 0B.B7.F8-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  14. Thu 03/09/2023 09:24:45 AM : [INST-SRX    ] 02 50 1F.BE.7A 53.BC.3A 65 13 27    LTOFFRR(27)

  15. Thu 03/09/2023 09:24:45 AM : [Std-Cleanup Ack] 1F.BE.7A-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  16. Thu 03/09/2023 09:24:46 AM : [INST-SRX    ] 02 50 17.F7.B6 53.BC.3A 65 13 27    LTOFFRR(27)

  17. Thu 03/09/2023 09:24:46 AM : [Std-Cleanup Ack] 17.F7.B6-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  18. Thu 03/09/2023 09:24:46 AM : [INST-SRX    ] 02 50 41.21.01 53.BC.3A 65 13 27    LTOFFRR(27)

  19. Thu 03/09/2023 09:24:46 AM : [Std-Cleanup Ack] 41.21.01-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  20. Thu 03/09/2023 09:24:46 AM : [INST-SRX    ] 02 50 1D.B0.00 53.BC.3A 65 13 27    LTOFFRR(27)

  21. Thu 03/09/2023 09:24:46 AM : [Std-Cleanup Ack] 1D.B0.00-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  22. Thu 03/09/2023 09:24:46 AM : [INST-SRX    ] 02 50 1C.DE.23 53.BC.3A 65 13 27    LTOFFRR(27)

  23. Thu 03/09/2023 09:24:46 AM : [Std-Cleanup Ack] 1C.DE.23-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  24. Thu 03/09/2023 09:24:47 AM : [INST-SRX    ] 02 50 58.A3.F7 53.BC.3A 65 13 27    LTOFFRR(27)

  25. Thu 03/09/2023 09:24:47 AM : [Std-Cleanup Ack] 58.A3.F7-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  26. Thu 03/09/2023 09:24:47 AM : [INST-SRX    ] 02 50 58.B0.78 53.BC.3A 65 13 27    LTOFFRR(27)

  27. Thu 03/09/2023 09:24:47 AM : [Std-Cleanup Ack] 58.B0.78-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  28. Thu 03/09/2023 09:24:47 AM : [CLEAN-UP-RPT] 02 58 06

  29. Thu 03/09/2023 09:24:47 AM : [INST-SRX    ] 02 50 1C.DF.01 53.BC.3A 65 13 27    LTOFFRR(27)

  30. Thu 03/09/2023 09:24:47 AM : [Std-Cleanup Ack] 1C.DF.01-->ISY/PLM Group=0, Max Hops=1, Hops Left=1

  31. <html><font color="red">----- SC BSMT Test Results -----</font></html>

  32. <html><font color="red">[Succeeded]</font> BSMT Game Sconce (58 A3 F7 1)</html>

  33. <html><font color="red">[Succeeded]</font> BSMT Fam Rm Sconce (41 1E 9 1)</html>

  34. <html><font color="red">[Succeeded]</font> BSMT Video Cans (17 F7 B6 1)</html>

  35. <html><font color="red">[Failed]</font> BSMT Stair (1A 5D 6D 1)</html>

  36. <html><font color="red">[Succeeded]</font> BSMT Back Room Load (16 5C BF 1)</html>

  37. <html><font color="red">[Succeeded]</font> Basement Bed (13 A 51 1)</html>

  38. <html><font color="red">[Succeeded]</font> BSMT Storage (1F BE 7A 1)</html>

  39. <html><font color="red">[Succeeded]</font> BSMT Game KPL Overhead A (1C DF 1 1)</html>

  40. <html><font color="red">[Succeeded]</font> Furnace Room (20 73 18 1)</html>

  41. <html><font color="red">[Succeeded]</font> BSMT Game KPL Overhead B (1C DF 1 2)</html>

  42. <html><font color="red">[Succeeded]</font> BSMT Fam Cans (1A 4F 19 1)</html>

  43. <html><font color="red">[Succeeded]</font> BSMT Back Room (B B7 F8 1)</html>

  44. <html><font color="red">[Succeeded]</font> BSMT Game Kit overhead (58 B0 78 1)</html>

  45. <html><font color="red">[Succeeded]</font> BSMT Kitchen Ceiling (1D B0 0 1)</html>

  46. <html><font color="red">[Succeeded]</font> BSMT Game KPL OFF G (1C DF 1 7)</html>

  47. <html><font color="red">[Succeeded]</font> BSMT Game KPL OFF H (1C DF 1 8)</html>

  48. <html><font color="red">[Succeeded]</font> BSMT KPL Game (1C DE 23 1)</html>

  49. <html><font color="red">[Succeeded]</font> BSMT Kitchen Cans (41 21 1 1)</html>

  50. <html><font color="red">----- SC BSMT Test Results -----</font></html>

  51. Thu 03/09/2023 09:24:54 AM : [INST-TX-I1  ] 02 62 00 00 27 CF 13 00

  52. Thu 03/09/2023 09:24:54 AM : [INST-ACK    ] 02 62 00.00.27 CF 13 00 06          LTOFFRR(00)

  53.  

 

Posted

OK, so that really is a persuasive reason to use a scene rather than individual waits. What do you think about the idea of, in a situation like you and I both have, of turning off the lights with a scene, waiting 30 seconds, and then turning off the lights with a scene again for insurance?

Posted

I would view a second scene off command as far less abusive (far less traffic) than the individual off commands - probably won't hurt anything.

I you are curious, you could turn the scene off, wait, query the scene, then run a program to check for lights still on...

 

Scene xx off

wait 30 seconds

query scene xx

{test to see if any switch is still on}

If

    Device xx is not off

  or device yy is not off

  or device zz is not off

then

  Scene xx off

  inc retry_count

  • 2 weeks later...
Posted

OK, I've read up on how to program an ISY994i to address scenes rather than individual devices, and I've been convinced that I need to do so.

I've been playing around trying to modify my programs to turn the outside lights on and off, which currently addresses each device individually.

However, when I tried to add an Action to turn on and off an entire scene, I thought I couldn't. That's because the ISY994i wiki page for Add to Program leads to a page for an older version: https://wiki.universal-devices.com/index.php?title=ISY-99i/ISY-26_INSTEON:Add_to_Program

It says to pick Insteon/A10 and instead, my only option was My Devices. Like a dummy, I assumed that this was just a list of devices. But even though it says "My Devices" this also includes my scenes. Shouldn't this page be updated to include the options for the 994i? Or replaced, or relinked? Or the option in the user intervaces be renamed to "My Devices/Scenes" so others don't figure they can't program Scenes even if they consult the wiki?

 

 

Posted

@KConover you're certainly correct in the information is "outdated", but it was written for the ISY99i and ISY26 (both long since EOL), but the "basics" do still apply to IoX programming. The amount of edits and changes that would need to be made are too numerous to try to update all old pages. Most would look at the list and see that "My Devices" is in the same sort order as "Insteon/A10" and select that as the option.

Plus, the page you linked to hasn't been updated since 2011. Yeah...have to take some blind faith jumps in relating 12 year old documentation to what you're looking at today. The principal still works...the naming is different. 

Wait until you try to read the 692 page ISY Cookbook. That's more current ("published" in 2018), but still uses the same image from the page you link to. 

UDI would almost have to start over with the wiki to bring things "current". Even then they would be evolving. There's so much valuable information available in the wiki that still applies, it's just not verbatim.

 

Posted

Thinking this over from a UX perspective, the best way to fix this problem is not to fix the documentation. The software itself should have good discoverability and memorability. The elegant way to do this is to change the text on the button from "My Devices" to "Devices/Scenes." That way you never need to look for the documentation.

Have you ever heard this phrase? "A door that needs a user manual – even a one-word user manual – is a design failure." http://ed-informatics.org/2010/11/20/tracking-systems-part-7/

Or, Tognazinni's Paradox? http://ed-informatics.org/2009/12/28/medical-computing-2/

But in this case, a button would be better with a different two-word user manual.

  • Like 2
Posted
1 hour ago, KConover said:

Thinking this over from a UX perspective, the best way to fix this problem is not to fix the documentation. The software itself should have good discoverability and memorability. The elegant way to do this is to change the text on the button from "My Devices" to "Devices/Scenes." That way you never need to look for the documentation.

Have you ever heard this phrase? "A door that needs a user manual – even a one-word user manual – is a design failure." http://ed-informatics.org/2010/11/20/tracking-systems-part-7/

Or, Tognazinni's Paradox? http://ed-informatics.org/2009/12/28/medical-computing-2/

But in this case, a button would be better with a different two-word user manual.

There are many bad UX's issues with the admin console.  Unfortunately fixing those is virtually never a priority to UD.... One that I complain about frequently is: How does this screen work?

image.thumb.png.49ae87705b7902c4debf61de299964e1.png

If I change any of these 5 values, do they change instantly after the dropdown is adjusted, or do I need to press "write changes" perhaps?  or something else?   The correct answer is "Or something else" that is not remotely intuitive to the user... Change a drop down, then you must press the corresponding button that looks more like just a label to the LEFT of the drop-down.  That answer is virtually impossible to guess.

Another good question.... why are Integer variables [still] called Integer variables?  After all they can have a decimal [now].

  • Like 1
Posted
There are many bad UX's issues with the admin console.  Unfortunately fixing those is virtually never a priority to UD.... One that I complain about frequently is: How does this screen work?
http://d2z8ydsemzif1x.cloudfront.net/monthly_2023_03/image.thumb.png.49ae87705b7902c4debf61de299964e1.png
If I change any of these 5 values, do they change instantly after the dropdown is adjusted, or do I need to press "write changes" perhaps?  or something else?   The correct answer is "Or something else" that is not remotely intuitive to the user... Change a drop down, then you must press the corresponding button that looks more like just a label to the LEFT of the drop-down.  That answer is virtually impossible to guess.
Another good question.... why are Integer variables [still] called Integer variables?  After all they can have a decimal [now].
You mean your admin console has On and Off buttons on it? I haven seen those since ISY version 4.

I saw them once but they were too small to read.

Now I only use temporary programs to see what is on the pulldown menus and try not to look at the device controls.

Hey somebody could write a NS with an admin console on it????

Sent from my SM-G781W using Tapatalk


  • 3 weeks later...
Posted

As far as the screen above, what I would recommend is:

Take the label off each of the buttons on the left and put it to the left of the button. Then label all of the buttons with "Write."

If you imagine the screen as I described it, does it help you understand what it means and how it works?

  • Like 1
Posted
13 hours ago, KConover said:

As far as the screen above, what I would recommend is:

Take the label off each of the buttons on the left and put it to the left of the button. Then label all of the buttons with "Write."

If you imagine the screen as I described it, does it help you understand what it means and how it works?

I've suggested that.  I've also suggested decoupling the label and the button and relabeling the button SET and moving it to the right of the drop-down. 

This is one of the top 5 most repeated users instructions.  The GUI is absolutely not intuitive and I've typed that many times as well.   Functionally it works tho, so in UD's eyes there are bigger problems to solve.

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

×
×
  • Create New...