Jump to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

kclenden

Members
  • Joined

  • Last visited

Everything posted by kclenden

  1. That's why I wrote the program the way I did. You only have a repeating counter for at most the first 60 minutes of ISY uptime. After that the repeating counter stops and you're left with the next program that only triggers once an hour. I'm guessing that it's way more efficient than that. There's probably a sorted time queue that any program in a WAIT state, or with a TIME trigger gets put on. That way, only the very first program has to be checked every second. If it's not time to trigger the first program then you know it's not time to trigger any program with a later time.
  2. Seems like your program runs the way you want it to once it's started, so all you need is an automated startup. To do that you could create a simple program that uses the Current Minute in some way to signal that your existing program should start. So how about: StartHourlyProg Init - [ID 00B4][Parent 0001][Run At Startup] If $iProgRunning is 0 Then Run Program 'Prog Init' (If) Else Wait 60 seconds $iProgRunning = [Current Minute ] $iProgRunning *= -1 Run Program 'StartHourlyProg Init' (If) with a slight modification to your existing program: Prog Init - [ID 00A2][Parent 0001] If ( $iProgRunning is 0 ) Or ( Time is Last Run Time for 'Prog Init' + 1 hour And $iProgRunning > 0 ) Then $iProgRunning += 1 // Execute Stuff Else - No Actions - (To add one, press 'Action') These two programs depend on your ProgRunning variable (my $iProgRunning variable) being an integer variable (or more specifically not a state variable), and you having its INIT value set to -1 so that when your ISY reboots the variable is initialized to a -1 (or more specifically not 0). It also depends on the "StartHourlyProg Init" program being set to run at startup. When your ISY reboots, "StartHourlyProg Init" will run and with $iProgRunning being initialized to -1 it will run its ELSE. That will set $iProgRunning to the current minute times -1. This will result in a value from 0 to -59. As a final step, "StartHourlyProg Init" will run its own IF. This continues until the current minute is 0 at which point the THEN will be run which executes the IF of "Prog Init" and then ceases execution of "StartHourlyProg Init". The "Wait 60 seconds" is in the ELSE so that the program doesn't take over your ISY, starving other programs of time, until the current minute is 0.
  3. Interesting. I'm using V5 (but admittedly only 5.0.15A) and "Copy to Clipboard" works for me. I get all the programs and folders beneath "My Programs".
  4. The #1 thing I would suggest is to make a text copy of all your programs and folders. Having a backup allows you to go back to what you had before, but it doesn't help you debug what you see in V5, while a text copy of your V4 programs does. To make the text copy, right click on the very top folder of your "Programs" tree (in my case "My Programs") and choose "Copy to Clipboard". Then open an editor, like Notepad, and select "paste". Now you have a text copy of all your programs and folders, as well as their specific settings (e.g. folder conditions, run at startup, disabled). Now when you're debugging in V5 you'll be able to see exactly how a program was setup in V4. Here are several examples: A program that was set to run at startup: ISY Uptime - [ID 008E][Parent 0077][Run At Startup] A program that was disabled: Z10-DR-Chandelier - [ID 0004][Parent 0001][Not Enabled] Generally speaking, the most common things that people complain about the transition from V4 to V5 are programs that were disabled becoming enabled, programs that were set to run at startup no longer running at startup, and a couple Zwave oddities that I don't recall because I don't have any Zwave devices. Your text copy of your programs will allow you to deal with the first two most common complaints.
  5. At their very basic, Insteon scenes are a relationship between one controller and one or more responders. For each device activated by that controller, you define the desired ON value and Ramp Rate. This allows you to send out one command, scene ON or scene OFF, and have many devices be activated at the same time. With the ISY, a scene can have many controllers, but at the low level it's still a bunch of one controller to multiple responder scenes. So in your programs, you need to specify the scene, controller and device to adjust ON and Ramp Rate. You might think, but I have only one controller in my scene - the Motion Sensor - so why should I have to specify the controller? That's because you really have two controllers in your scene - the motion sensor and the ISY. To set what happens when the scene is activated by the ISY the scene name and controller name will always be the same. I don't remember whether the ISY tried to write scene updates to the MS's in V4, but you're not the first one to have this recollection, so you're probably right. It is normal in V5 though. If your MS's are battery operated, you really should update your scene change program to only run when the MS is awake. This will prevent a host of possible undesirable consequences later, but is problematic as your MS's probably won't be awke at the time you want to change your scene, and really the only way to know your MS is awake is to wait until it sends out an ON or OFF command.
  6. In which case, I start to wonder if it is even worth automating. I might argue that it's the rare case that is most worth automating because you are most likely to not check for it manually. Both of my switches are only acted upon by my "All Off" keypad button that we hit on the way out the door. So programs will only change the state of these switches if they are in the ON state when the "All Off" button is pushed. That doesn't happen very often because my wife and I are very good at turning the lights OFF when we leave those rooms. It generally only happens when we have guests over and they venture into one of these rooms and exit without turning the light OFF.
  7. Yep. That scenario would require me to flip the switch UP and then DOWN again to actually turn the light OFF. Both modes will result in the switch being out of sync if a program or scene acts on the device. In the 3-way mode my switch will be out of sync until a program or scene again acts upon the device, nothing I do at the switch will get it back in synch, but with the 3-way mode disabled the switch is back in sync as soon as I use the physical switch again. In the case of both switches, they are acted upon by a program or scene probably less than 2% of the time, so the way I have them set up means they'll be in sync the vast majority of the time whereas having them in 3-way mode would result in them being in sync for long periods of time followed by them being out of sync for long periods of time.
  8. That's how my switches are programmed. They come programmed for latching mode by default. They also come programmed for 3-way toggle mode by default whereby they act like they're in a multi-switch setup. I turn the 3-way toggle mode off so that the switch being UP means ON and the switch being down means OFF.
  9. Doesn't really seem like a feature request to me. Seems way too simple to be considered a feature. Not really a bug either since the FASTOFF being sent seems to be undocumented.
  10. Smarthome sells the Micro On/Off Module (2443-222) which you could put in the ceiling box and then use the wires running to the wall switch as "sense wires". This allows the Micro On/Off Module to sense the position of the wall switch and act accordingly. I use this for a couple of switches in my house - once because of the exact situation you describe, and once because there was a set of existing switches that I wanted to match. The only real downside to the Micro On/Off Module is that there is a perceptible delay between the switch changing state and the device responding. I haven't actually timed it, but my guess is that it's about a half second. This manifests itself mostly when new people in the house try to turn on the guest bathroom light switch. They flip it on, notice nothing happens, and switch it off before the light has come on. Then they move to the next switch which turns on the fan, so they turn it off. Finally they move to the third switch which turns on the shower light and they use that for illumination. Once they know that the first switch does indeed turn on the bathroom light, they're good going forward.
  11. I just checked one of my devices that has a heartbeat and indeed the only CONTROL options I can choose are ON and OFF. Looks like you'll have to request that UDI add FASTON and FASTOFF as control options for heartbeat nodes. Have you confirmed that your device is sending a FASTOFF by leaving the Event Viewer open on Level 3? @Michel Kohanim - What's the proper avenue for @Derek Atkins to request additional CONTROL options for a device?
  12. If they're sending a FastOff, can't you just change your heartbeat program to not only look for On and Off but also FastOn and FastOff?
  13. Is $PRECIP_TODAY defined as an integer or state variable? If it's defined as a state variable then every time you change the value of $PRECIP_TODAY, as you do in the THEN and ELSE, the IF of the program will be reevaluated. So what likely happened is: You executed the ELSE. This caused the value of 'OpenWeatherMap / OpenWeatherMap' Rain to be added to $PRECIP_TODAY Since the ELSE changed the value of $PRECIP_TODAY, the IF was reevaluated which caused the ELSE to run again (back to step 1) When you rebooted the ISY, the value of $PRECIP_TODAY would return to 0 and thus 'OpenWeatherMap / OpenWeatherMap' Rain would likely be greater than $PRECIP_TODAY and thus the THEN would execute. When the THEN executes, it changes the value of $PRECIP_TODAY so the IF would be reevaluated and then the ELSE would run and you're back in the two step infinite loop above. Edit to add: The difference between your THEN and ELSE is that the THEN always assigns the value of 'OpenWeatherMap / OpenWeatherMap' Rain to $PRECIP_TODAY while the ELSE increments the value of $PRECIP_TODAY by the value of 'OpenWeatherMap / OpenWeatherMap' Rain. As far as the ISY is concerned, if you execute a statement that assigns a value to a variable that is the same as the value already held by the variable, then the variable has not changed. So the first time the THEN assigns 'OpenWeatherMap / OpenWeatherMap' Rain to $PRECIP_TODAY it causes the IF to reevaluted, but a second assignment of 'OpenWeatherMap / OpenWeatherMap' Rain would not change the value of $PRECIP_TODAY and the IF would not be reevaluated. So there's no chance the THEN will cause an infinite loop (unless 'OpenWeatherMap / OpenWeatherMap' Rain is constantly changing). But the ELSE is always adding to the value of $PRECIP_TODAY so it always causes the IF to be reevaluated and thus causes the infinite loop.
  14. If you're not concerned about receiving individual alerts, then you could combine them together and have the alert display the status of each sensor. That would allow you to have a single program as well as a single alert form.
  15. Are you sure you got the alert as a result of the "sunrise" program? I ask because your "sunrise" program runs the IF (as opposed to the THEN) of your "Coop Door Open" program. Are there actually conditions in the IF of the "Coop Door Open" program and could they be the reason you get an alert on reboot?
  16. When you setup a scene you must do several things: Define what happens when the scene is activated by the ISY (that's what your image above shows) Define what happens when the scene is activated by each of the controllers (e.g. when a switch is turned on) So in your case you should have defined what each device does when it's activated by five different controllers (the ISY, Dimmer1, Dimmer2, Dimmer3, Dimmer4). Have you done each of those steps? Edit: One other thing, if you turn a device ON, that is a controller in a scene, by using the Admin Console, that does not activate the scene in which the device is a controller. The only way to activate a scene is by either turning the scene on using the Admin Console (or program) or by physically turning on the device.
  17. Clever. Still, it really shouldn't be necessary in this case.
  18. So the "Last Run TIme" showed "Sunset + 10 minutes" and the "Status" showed "True"? If that's the case then I would make sure I had the Event Viewer open and set to 3 shortly before Sunset + 10 minutes. That will let you see what device communication happens at the time the program fires. Or you could change the "From" and "To" times to do some quicker testing.
  19. Switched off refers specifically to receiving an "Off" command from a device so it won't matter whether the garage door is already open. I doubt it's a bug, but just in case I created a test program to see what happens on my system: New Program - [ID 00A2][Parent 0001] If From Sunset + 4 hours and 43 minutes To Sunrise - 10 minutes (next day) And ( 'ST-Overhead Light' is switched Off Or 'DR-Chandelier' is switched Off ) Then $sTest = 0 $sTest = 1 Else $sTest = 0 $sTest = 2 It worked exactly as expected - at 10:15PM the ELSE was executed even though one of my devices was already OFF. So my guess is another program is the culprit.
  20. I don't think there is a way to make the time range not a trigger when used in a program. Creating a folder that uses the time range as a condition would in theory do what you want, as the state of a folder going from FALSE to TRUE does not trigger the programs within (i.e. the programs are now allowed to run, but won't until one of their own triggers fire). Why do you care if the program triggers every day at 10 minutes after sunset? Since you're using "switched Off" and not "Status is Off", it will just run the ELSE which is blank.
  21. It's not different. "Between" is just another way to refer to the "From/To" programming construct which allows you to accomplish you're initial goal - turning two programs into one.
  22. He also indicated that he uses them to trigger video/image capture so that's probably why he has them trigger during the day. Our cat causes my MSII to trigger the hallway light in the middle of the night while we're in bed. I think I'll try the masking method Larry posted above to see if I can cure that problem.
  23. Most people new to the ISY don't think of using the "Between" condition. I think this is because they want something to happen at sunset and something else to happen at 11pm, but they don't want anything to happen in between those times. The reason "Between" works in this case is because the ISY has two types of conditions. The first are "trigger" conditions and the second are "evaluation" conditions. "Between" is both of those kinds of conditions. A program will only ever run if it is triggered to run. In the case of "Between" there are two triggers: sunset and 11pm. So at sunset the THEN will run (unless there are more conditions in the IF) and at 11pm the ELSE will run. At any time between those two, the program will not be triggered - so in this case if the program turns the light on at sunset and you turn it off at 8pm, the program will NOT be triggered to run and turn the light on again. Once a program is triggered by a trigger condition, evaluation conditions will impact whether the THEN or ELSE is executed. Integer variables are evaluation conditions. Their value can impact whether the THEN or ELSE is executed, but a change in their value will not trigger the program in the first place. "Between" is also an evaluation condition. If some other trigger causes a program to run, a "Between" will impact whether the THEN or ELSE is executed.
  24. Good point. Though in my case, if it's an outside door, I almost always immediately close the door after opening it so ON and OFF would basically be the same. ?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.