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.

larryllix

Members
  • Joined

  • Last visited

Everything posted by larryllix

  1. larryllix replied to MolsonB's topic in ISY994
    This is one thing you cannot d with only programs. I saved a bank of space so they don't end up strewn throughout my 4-500 variables. Please note my variable grouping title as the top variable? (OP @MolsonB). I also can save colours (eh?) of coloured bulbs and strips. I don't think that will work south of the border.
  2. larryllix replied to MolsonB's topic in ISY994
    Now I want you to go to the Integer variable tab and create another new variable, called $Lamp.level.saved.asbril. Click save. Now create a new program like this. Flash lamp.abril - [ID 0003][Parent 0001][Not Enabled] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then $Lamp.level.saved.asbril = 'MyTestLamp' Status Repeat 2 times Set 'MyTestLamp' Fast On Set 'MyTestLamp' Fast Off Wait 1 second Repeat 1 times Wait 1 second Set 'MyTestLamp' On '$Lamp.level.saved.asbril %' Else - No Actions - (To add one, press 'Action') Now set MyTestLamp to some level of brightness, full on or Off is not dimmable. Click on the new program and run 'Then' See how the lamp gets borrowed for flashing and then returns to what it was at before? This is a program you can keep for testing your other programs. To determine your program has advanced to a certain line, you can insert a call to this program to verify it actually got there. my lines of code Run Program 'Flash Lamp.asbril' (if) my lines of code Use it elsewhere to indicate a household alarm...borrowing the lamp and then "putting it back" to where it started. This is a practical usage of a variable, remembering the status of a light, for temporary usage with another purpose. I use this to flash lights at midnight as a bedtime reminder. The lights return to On, Off, or dimmed level, wherever they were before.
  3. larryllix replied to MolsonB's topic in ISY994
    Now a second stage. Add this program 'Time Test' If Then set $testVar = 1 Wait 30 seconds set $testVar = 0 Else ---- Try right clicking on the new program, run Then.
  4. larryllix replied to MolsonB's topic in ISY994
    ISY cannot use the example of Wait $variable1 minutes or any other variable, regardless of name. That may be very confusing to a person starting out.
  5. larryllix replied to MolsonB's topic in ISY994
    Those were mostly hypothetical programming lines that ISY cannot do yet, only for examples. You already use variables in devices, called fields or parameters. Some you can only read, and some you can only write and some you can read and write the values. When you set your lamp to 50% you are writing to a dedicated variable, and after is sets and reads back the light the variable will show you the result, which you can now use. These may be called fields or nodes or parameters for each device but work almost exactly the same as variables. You have already been using them! Only thing is, with variables they don't do anything in the background, they are for YOUR usage exclusively. Try this. Create a State variable under the State variable tab. Hit "Add" at the bottom, click on the new name that pops up, and edit it to read "testVar", click Save at the bottom. Create a simple program called 'Variable Test' like this. 'Variable test' If $testVar = 1 <------- ISY adds the "$" to indicate it is a variable Then set some test lamp On Else set same test lamp Off Click save Now go back to the State variable tab page. Click on the value at the right beside the name you entered. Type "1", hit enter a few times, or click on another spot to "seal the deal". Try entering "0". Check back when you see what that does for you and we can advance your brain some more. Best of luck!
  6. No. "Init to" does not affect any triggers. The ROM "init to" value is copied to the RAM copy for program usage before any programs are released into the wild upon boot up of ISY. It is an attempt to have ISY continue after a power failure/reboot like nothing happened.
  7. Start Top of Hour Clock - [ID 000A][Parent 000D][Run at Startup] <------------- If Then Send Notification to 'MY_GROUP' content 'ISY_REBOOTED.NTF' $Minutes_of_Hour = [Current Minute ] Run Program 'Find First Top of Hour' (If) <---- only ever calls program once upon power up. Else - No Actions - (To add one, press 'Action') Find First Top of Hour - [ID 000C][Parent 000D] If $Minutes_of_Hour is 0 Then $.Top_of_Hour += 1 <--- is this a State variable? Most here denote State with "s" prefix Else Wait 20 seconds $Minutes_of_Hour = [Current Minute ] Run Program 'Find First Top of Hour' (If) Note Top of Hour - [ID 000B][Parent 000D] If $.Top_of_Hour > 0 <---- must be State variable to trigger program, Self triggering loop? Then Wait 1 hour $.Top_of_Hour += 1 Else - No Actions - (To add one, press 'Action')Note Top of Hour - [ID 000B][Parent 000D] An alternate consideration -could use absolute real time hour above (Not +=1) also $.Top_of_Hour = [Current Hour] Note Top of Hour - [ID 000B][Parent 000D] If Then Wait 10 seconds <------ keep away from jitter point Repeat every 1 hour $.Top_of_Hour = [Current Hour] <-----create real time hour variable for usage elsewhere. Else ----- Very confusing method for me but looks like it should work if a State variable was the intent. You will always need to kickstart it manually after editing it. Proofing will be the final test.
  8. Awesome concept! I like it! I am not sure UDI has gone that far for process control yet though. OTOH they did make some basic engine changes on or about v5.0.4 that apparently sped up processing. Who knows? M. told me there was no list, at one time.
  9. My understanding is when the program is installed, each line is compiled into ISY isms, and triggers are installed into a table or list for the processor to check every X CPU clicks, or whatever time base ISY uses internally. This would avoid the ISY engine from having to "dig" through all the programs looking for what needs doing...for CPU speed and efficiency. Of course this is all conjecture on my part, from writing machine level code with less than 400 bytes of memory and a 1MHz CPU in 1971.
  10. I have no special ISY inside information, but MY logic tells me, based on best resolution of each program element... - Wait lines would need an low-level ISY algorithm that checks for the end timeout every second. -Time trigger lines would have to have an low-level ISY algorithm that checks all time triggers every 60 seconds. Without knowing exact processing times one check every second vs. 24 checks every 60 seconds..... looks like you won!
  11. Nice! With this technique it would be simple for newbie ISY programmers and result in a state variable containing the current system hour, usable elsewhere and never have to be used again. To keep the hour under 24 hours the second program could look like this. If $sHourlyIncrement >= 23 Then $sHourlyIncrement = -1 Run 'Program ThisOne (Else)' Else $sHourlyIncrement += 1 Run stuff The two programs could be combined into one with a more compound If section logic but I would likely separate it into two programs by logical function. One for e the clock setting the variable, and one for the slave function at each hour top. Just the way I tend to think.
  12. For inefficiency and CPU cycle wasting...I doubt you would have to worry about it with ISY and when it comes time, you will have a Polisy running about 40 times the processor speed, with hardware clock and hardware buffered I/O etc.. The repeat every 20 seconds...Correct, runs forever. Init to is a variable assignment statement that programs a ROM copy of the variable for boot up, initial value. One of the first things ISY does is to copy all the "init to" ROM variable values over to the RAM copies of the same name.
  13. I have to agree with that logic. I used a previous system which limited the number of timers available while ISY doesn't, and I suspect too many may bog some processes down. This is one reason to create a central time keeper and have all other programs use it. However, causing ISY to have to check each of 24 time triggers, every system minute change, in a program, may have more detriments to the CPU schedule, anyway. With down to one second resolution, ISY Wait timers may get checked every second? hmmmmmm…. I see the need for the Polisy CPU speed increase coming. Looks to be about 40 times the processing speed.
  14. I would prefer to create a stable system clock, independent of any other hardware or systems, that could be used in many programs. Automatic startup is always a problem in ISY and it typically takes an extra program as kclenden demonstrated above. No flagging variable is needed, only one to keep the current system minute clock. This program needs to have "Run at startup" enabled. Reboot and Initialise - [ID 0040][Parent 0006][Run At Startup] If // Enabled to Run at Startup only Then Wait 2 seconds Run Program 'Set hh.mm' (Then Path) Wait 1 second Run Program 'Set MM.DD' (Then Path) ... Send Notification to 'Text Larry' content 'ISY Rebooted' Else - No Actions - (To add one, press 'Action') Then a program to keep system clock variables. I generate a combo variable $sISY.hh.mm also. Note the extra trigger times are for those times that you stall the process editing the program etc.. and no reboot is taking place. They can kickstart the program again. Note: The usage of State variables where triggers are needed ie: $sISY.minute and $sISY.hh.mm Set hh.mm - [ID 00FC][Parent 0006] If Time is 12:00:05AM Or Time is 8:00:05AM Or Time is 12:00:05PM Or Time is 8:00:05PM Then Repeat Every 20 seconds $sISY.minute = [Current Minute] $ISY.date.scratchpad = [Current Minute] $ISY.date.scratchpad /= 100 $ISY.date.scratchpad += [Current Hour] $sISY.hh.mm = $ISY.date.scratchpad $sISY.hh.mm Init To $ISY.date.scratchpad Else - No Actions - (To add one, press 'Action') Now all any program needs to trigger on the hour would be to watch the system clock based variable. No looping or self starting programs, keeping it simple. Run every hour on the hour - [] If $sISY.minute = 0 Then execute stuff Else ---
  15. IIRC I read about heartbeats that only send On and previously some that alternated ON and then Off. I never saw any Off only heartbeats.
  16. If this ISY cannot be recovered I would be getting a good electrician in to check your neutral and grounding. Your utility may offer some service also. Sent using Tapatalk
  17. larryllix replied to MolsonB's topic in ISY994
    I waste a variable for a comment in the title for groups of common purpose variables. ------------------------------------------------- WEATHER STUFF ----------------------- another variable Sent using Tapatalk
  18. Must have been in a state of flux. I am using v5.0.16c.
  19. I keep reading people posting that advise but all I have ever get is the folder.. My Programs - [ID 0001][Parent 0000] Folder Conditions for 'My Programs' If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Allow the programs in this folder to run. UPDATE: I see UDI has now split it into two options. "Copy to clipboard", and "Copy folder to clipboard" "Copy folder to clipboard" is what works if v4.xxx has it.
  20. larryllix replied to magellan360's topic in ISY994
    Try admin/admin. It may have been reset.
  21. larryllix replied to stre1026's topic in ISY994
    Not based on battery strength but on conservation technique. It may natively transmit a much lower power signal.
  22. larryllix replied to stre1026's topic in ISY994
    Lock/unlock is going the opposite direction of signal path to status coming back. The lock may have a much weaker signal due to battery life concerns. I wouldn't assume that.
  23. The KPL LEDs are controlled by Scenes only. You have to create an Insteon scene for each LED and turn them on and off. LED brightness level is controlled across the board with a program command line. All LEDs will have the same brightness when on. It may be good to inject a Wait 1-2 seconds to allow Insteon traffic to settle down before hitting the LEDs with a change if it is based on a same KPL button press or reception of a wireless device via the same KPL. They act as one device and can cause problems with congestion into the same device (having so many Insteon elements in one address) I "borrow a smart bulb and flash it in the corner, while garage doors are open. If my ISY sees me turn off the lights and then motion in the bedroom, that lamp flashes 100% brightness. My Alexa speakers also announce which garage door is open and when both are closed again. It becomes "usual" and is missed if not heard.
  24. Duplicate post from another thread.
  25. ISY will not use any ports that it does not need. It doesn't wander through cyberspace.There is no need to block any ports from the LAN side of your router. There is no need to block any ports from the WAN side of your router. Your router already does that.

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.