Jump to content

MrBill

Members
  • Posts

    4669
  • Joined

  • Last visited

Everything posted by MrBill

  1. You need to WAIT 24 hours for the heartbeat... whatever you read about the set button sending all 3 signals is just plain wrong... Set does not send heartbeat.
  2. But what batteries are you using?
  3. @shunsader what type of batteries are you using? I've not had any luck getting heartbeat to transmit except on it's own. It sometimes triggers when the battery is installed but I think that might be firmware specific (but I've never studied it since I realized that as being a might be). The sensors are designed to be used with alkaline batteries. I've seen people say they are having heartbeat issues and I ask are you using lithium batteries instead of alkaline and they never answer, but we don't hear from them again. Put a fresh Alkaline battery in, and wait 25 hours and see what you get.
  4. As previously mentioned... don't rely on text messages, us an alternative method. The email to text gateway at your cell provider gets nailed with spam that clogs the opening up for all users. It's not an ISY problem it's an email to text at your provider problem. two great alternatives posted above....
  5. A better Heartbeat Program: This is a door sensor, but the same applies for any of the Insteon Battery Devices that generate heartbeats. The advantage here over what you've posted above is that you're only notified when the heartbeat is missed, your program is sending you a barrage of heartbeat notifications everyday. First I create 3 integer variables for the device: Missed Heartbeats, Battery Days, and Total transmissions. (Total Transmissions in fact isn't as useful as I thought it would be, but nonetheless it does help somewhat in deciding if the battery needs to be replaced or the sensor just needs a reboot (i.e. remove and re-install battery). hb.BarnOHD - [ID 0063][Parent 0072] If 'Door Switches / Barn OHD / Barn OHD-Heartbeat' is switched On Or 'Door Switches / Barn OHD / Barn OHD-Heartbeat' is switched Off Then Wait 25 hours $iDoor.BarnOHD.HBmissed += 1 $iDoor.BarnOHD.HBmissed Init To $iDoor.BarnOHD.HBmissed Wait 2 seconds Resource 'NotificationNS.DoorTrouble.BarnOHD' Run Program 'hb.BarnOHD' (Then Path) Else - No Actions - (To add one, press 'Action') Note: all the heartbeat programs are also run-then by a program that runs at startup, That program waits 10 minutes to start these... (my ISY struggles at startup due to the size of the insteon network and the query all that runs) What happens here, is that when the heartbeat is received we jump right into a 25 hour loop to wait for the next heartbeat. If the next heartbeat is received within that window the rest of the program never complete.... instead the wait starts over. If the next heartbeat is missed, the integer variable is incremented, and a notification is sent in this case via a Network Resource and Pushover. (that line could also be changed to "Notify") Finally the last line of the program starts the loop over again waiting for the next heartbeat. (If that line was skipped, the program would end and we would never be reminded.) It should be noted that some of the battery sensors are better about sending heartbeat than others. Some need only need 24 hour waits (like the hidden door sensor) while some even need 26 hour, you just need to fine tune that. It should also be noted that when heartbeats stop coming in the battery isn't actually dead yet, the sensor will still work for a number of days afterward. Bottom line, failed heartbeat isn't an emergency, check the sensor at your convenience of the next day or so. Sometimes the next heartbeat will just arrive, and sometimes you just need to pop the battery out and back in. High battery day counts, and high transmission counts tell you when it's time to actually replace the battery. For total transmission counts: BarnOHD - [ID 0042][Parent 0033] If 'Door Switches / Barn OHD' is switched On Or 'Door Switches / Barn OHD' is switched Off Or 'Door Switches / Barn OHD / Barn OHD-Heartbeat' is switched On Or 'Door Switches / Barn OHD / Barn OHD-Heartbeat' is switched Off Then $iDoor.BarnOHD.TransCount += 1 $iDoor.BarnOHD.TransCount Init To $iDoor.BarnOHD.TransCount Else - No Actions - (To add one, press 'Action') For the battery days counts: AddAge - [ID 003D][Parent 0034] If Time is 12:12:12AM Then $iDoor.BarnOHD.BatteryDays += 1 $iDoor.BarnOHD.BatteryDays Init To $iDoor.BarnOHD.BatteryDays [Redacted about 30 other battery day variables that follow] Else - No Actions - (To add one, press 'Action') Then there's also a quick way to reset the 3 counters when a battery gets changed. I run this program manually from a Home Assistant dashboard button, but it could be also run manually from the admin console. The program actually does send 4 notifications so that I have the final counts in case I reset the wrong one (which has happened), I also used to keep the totals in a spreadsheet but the bottom line is I've got the feel of the system now and don't record them anymore. BarnOHD.reset - [ID 01A1][Parent 01B5] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Resource 'NotificationNS.DoorTrouble._resetCountersBegin' Wait 1 second Resource 'NotificationNS.DoorTrouble.BarnOHD' Wait 2 seconds $iDoor.BarnOHD.HBmissed = 0 $iDoor.BarnOHD.HBmissed Init To $iDoor.BarnOHD.HBmissed $iDoor.BarnOHD.BatteryDays = 1 $iDoor.BarnOHD.BatteryDays Init To $iDoor.BarnOHD.BatteryDays $iDoor.BarnOHD.TransCount = 1 $iDoor.BarnOHD.TransCount Init To $iDoor.BarnOHD.TransCount Wait 2 seconds Resource 'NotificationNS.DoorTrouble.BarnOHD' Wait 1 second Resource 'NotificationNS.DoorTrouble._resetCountersComplete' Run Program 'hb.BarnOHD' (Then Path) Else Resource 'NotificationNS.DoorTrouble.BarnOHD'
  6. The only remaining idea I have is to re-save the program with the "not 1" that sends the notifications. Pick a line and hit update then save. no actual change required just pick one of the lines and hit update then save. As far as the not print goes you might want to view the template and see if it's all there and intact.
  7. Remember that when you configure Scene's you much do it multiple times. Once at the Root level of the scene (in this case "Conversation") and once for each controller (red link) that is a member of the scene (in this case "Parlor Recessed lights"). The root level determines what happens when the scene is activated by the ISY, the Red link settings determine what happens with the scene is activated with that controller.
  8. Not sure what browser you're using but you're running into browser security issues... one of the reasons that The ISY Launcher was created. I use firefox but I can't remember if I changed a security setting at some point to make it easier to download .jnlp files... you want to "save the file" not open it, to achieve being able to put it on the desktop or taskbar.
  9. You'll need to use daisy chained programs to do this. UnlockNotification.0 If Door is unlocked then run program UnlockNotification.1 (if) else (none) ------ UnlockNotification.1 (Disabled) If User is 1 then send notification or do whatever or blank else run program UnlockNotification.2 (if) ----- UnlockNotification.2 (Disabled) If User is 2 then send notification or do whatever or blank else run program UnlockNotification.3 (if) ..... etc.... in the last program send an error message in the ELSE in case it ever gets there... then you'll know its not working correctly... All but the first program is DISABLED. Disabled programs still run if run by another program.
  10. The point of the ISY launcher (start.jnlp) is to get around browser warnings and ensure the user is always running the correct verison of the admin console. I'd venture to guess that previously, you had admin.jnlp stored on your taskbar. If you know the IP address of your ISY you can save that file http://IP.ADDR.OF.ISY/admin.jnlp. The advantage of using Launcher is that going forward you shouldn't need to touch Launcher when upgrading the ISY, it should get the correct version of the admin console automatically. Using admin.jnlp you do have to mess with clearing the java cache etc. when firmware is upgraded.
  11. @epete There's only two programs above that contain the text "Send Notification". Both appear to be written correctly. What is the value of the 3 variables? $sLeakHVAC $sLeakKitchenSink $sLeakLaundry I note that the report you are receiving is only showing the Value for 2 of the 3. I suspect that Laundry room or HVAC room is not 1 and that there is also something wrong with the email template, preventing it from showing those two values.
  12. Nope, you missed nothing... but I just learned something. So it is possible to conceptualize "away" and then use an empty program to determine it's status... It's not particular useful to me personally however because I also use Home Assistant, and Home Assistant has no concept of a Programs True/False status. That's true, I don't really either. I do know too many State Variables with 994 hardware you will reach a point of queue overflows errors and a sluggish half operating system. In the case of the two programs that run sequentially, without extra pointless enables/disables my guess is that it's more efficient... and it's certainly easier code to read.
  13. Only Polyglot Cloud is offline. Polyglot2 and Polyglot3 both run on Polisy and are not offline.
  14. What file is this? The Launcher is installed with start.jnlp, the older method uses a file named admin.jnlp I'm not sure how you're doing it if your file is named isy.jnlp.
  15. If it's been more than a day since his last reply, you might reply again... once or twice my replies to tickets never made it into the system
  16. Is there a reason you restore after a firmware update? It shouldn't be required. I think I've only used restore once after a corrupt SD card.
  17. I agree that things can grow. My $sAway variable started out binary (0/1) and grew to where it has 5 states. Even if it only had two tho there's no way to "set" a program for that value that only exists because I created a variable for it. I started using $sDark in programs instead of Sunrise and Sunset because it was easier to test in the middle of the day... $sDark evolved tho and now has 3 values (Day, Evening, Latenight--two of those are triggered by "Sunset" and "Sunrise" but the 3rd is by an arbitrary "bedtime" and bedtime occurs when we are home based upon a momentary state, so again a program wouldn't be good for keeping track of that.. "bedtime" when $sAway is set to "Vacation" occurs based on a time followed by a random wait. So yes the system can grow and become more complicated. But then there's the case of "too many state variables"... been there done that. Then there's the case that I've explained to people of how to use a state variable for dimming with Alexa... A usage that YOU don't see the need for. You followed up one of my long posts detailing with... "don't do that, just use scenes". My wife doesn't set her lamp to presets tho.. it might be 20%, 40%, 50% , 60% or some other number. I've even hear numbers like Alexa, set my lamp to 88%... Bottom line.. she can have it her way. In reality, that system grew too, those same Alexa helper programs now are also Home Assistant helper programs so that Home Assistant can keep Scene's (Kpl buttons) in synch, but also offer on demand dimming. Bottom line.. there's multiple ways to do anything with this system. Sometimes one is better than an another for one reason or another. There's also programming styles... I'll give someone a complex set of 5 programs using enabale and disable and @larryllix will say use a variable instead. There is no way (that I know of) to change a program from true to False or vice versa so for somethings a variable is definitely called for. For the application in this thread the program true/false state is actually a good idea. If I wanted to have the concept of Home/Away without using a variable, the only way I can think of to do it is create a Scene, and attach it to an unused KPL button somewhere (I just tried a scene won't keep track of it's state with no devices). Another thing is we are all passionate around here.... I jumped on Doc for using a bunch of enables and disables that at the time I couldn't figure out (I realized later even tho they run everyday they only change program states twice a year)... I presented my method using an Integer Variable to solve the problem and he trashed it and said a variable is unneeded clutter... reality is his first method had more unneeded clutter than mine.. His final method is really the best FOR THIS ISSUE. It's simple, it's elegant and it uses the fewest resources. On the other hand I don't see a way to create even a simple Home/away variable without a device, so variables do have their place.
  18. @jwagner010 You can trigger an Alexa Routine when an alarm is "Dismissed" but not when the alarm goes off. (For that case we really should be saying when the alarm goes "on".. but English is weird. ?) So yes, if the alarm is dismissed you could set an ISY variable etc...
  19. That was nagging at me last night... that is how those got orphaned. I suspect they don't restore correctly when a backup is restored, but that's only a wild guess.
  20. both Verizon's and AT&T's text gateways frequently get bogged down with spam. I used to use that method for notifications but have moved all notifications to Pushover, most thru the notification node server. There's also a method to send Pushover directly from a Network Resource without a node server. Another method that works for me I have Spark Mail as a second mail client on my phone. It's set up on the same email box that the ISY sends From.... If the ISY sends TO that inbox Spark Mail is set to produce notifications for all messages received.
  21. there's half a dozen temp files.... below is a paste from the wiki on another issue, so you can locate them. They must not be staying around for you. I know on some linux distro's java puts them in /tmp or /temp for the user and that often gets wiped during logins. In general most of your setting stay around if those files do. If one gets corrupt tho, you may loose your settings as it detects and re-initializes the file. Admin Console Minimized/Invisible and Cannot be Restored This is usually related Admin Console state files not being updated properly and especially in case of multi monitors. All you need to do is to find the following files in Java temp directory (on Windows: c:\Users\[Username]\AppData\Local\Temp) and delete them. Or, you can simply search the computer for udi_*.* file patterns: udi_tree.state udi_frame.state udi_pgm.state udi_finder.state udi_launcher.state
  22. this thread certainly moved right along.... I only have a couple additional comments. @FBoucher Polisy is likely more forgiving, I haven't tried to over use State Variables on Polisy yet.... State Variables CAN be overused on an ISY994 tho. Probably about 7 years ago I used state variables for everything under the sun. The ISY got to the point it was slow and produced queue overflow errors frequently. Polisy is a much faster processor and there's probably less issue. The difference between a State Variable and an Integer Variable, its that State Variables are monitored constantly and if change will trigger any IF statements that use it to be re-evalauated. On the other hand an Integer variable isn't monitored for changes and only helps filter when an If statement should or should not run. In short, usage of Integer Variables is less resource intensive, than use of State Variables... Thus the example I posted above is a better choice than this one. The winner really goes to @apostolakisl this time.... his second try is probably the best choice here. Using the Truth of the first program to run a second is very efficient (it's in fact a program style I haven't used a lot of because I frankly forget it can be done that way). @apostolakisl wanted to say my variable added unnecessary clutter but in reality his first try was full of much more clutter.... enables and disables that will really only make changes twice a year, once in the spring and once in the fall as the Sunset time crosses 6PM... yet those enables and disables are executed everyday... that's the true definition of unnecessary clutter. Welcome to the club. Don't let us scare you away... just join the fun.
  23. Thoughout several programs there are <not specified> errors. I think that is causing programs to not run correctly. Those should all have a program name in place of them.
  24. Well of course you like your method better, just like I prefer mine more. and of course I comment complicated stuff, something like this I should be able to tell at a glance. The whole point was to show yet another way to do it. and I've gotten to the point I prefer Schedule based programs to be simple "At...Then" with no else anyway, they often have $sAway logic included which gets messed up when there are Else statements that run too often.
  25. Since there is always multiple ways to do it, I'll throw mine in. With a two program approach I'd do this, because it's easier to figure out the logic being used when I look again 4 years later.... The variable can be simple Integer, it does not need to be a State variable in this case. AAATest.3 - [ID 007E][Parent 0001] If ( Time is Sunset - 30 minutes Or Time is 6:00:00PM ) And $iTest.KitchenLight is 0 Then Set 'Kitchen Recessed' On $iTest.KitchenLight = 1 Else - No Actions - (To add one, press 'Action') ---- AAATest.4 - [ID 00FA][Parent 0001] If Time is 11:00:00PM Then Set 'Kitchen Recessed' Off $iTest.KitchenLight = 0 Else - No Actions - (To add one, press 'Action')
×
×
  • Create New...