Michaelv Posted October 27, 2021 Posted October 27, 2021 I have a basement that gets water every now and then so I have an Insteon water sensor placed that when I get a leak, it will turn on a Insteon ON / Off module that will run a wet vac and floor fans at a 5 minute interval with a 20 minute pause period then repeat 2 times. The program also sends me and email notifying me what is going on. We are having quite a storm here in the Northeast over the past couple days and I am getting some seepage in the basement. The leak sensor responded and I got the email but the program did not run. Have a look. What is wrong? MV
larryllix Posted October 27, 2021 Posted October 27, 2021 (edited) Likely the links in the wetvac OnOff module have been corrupted. Try a restore of the device a retest. If no success, try a factory reset of the device and the Restore, retest. Have you reset the LD? They are only good for one shot before human reset. Also have you checked the circuits inside? The they may have been exposed to water. Is your heartbeat detection program working properly? Edited October 27, 2021 by larryllix
MrBill Posted October 27, 2021 Posted October 27, 2021 To add another troubleshooting step to @larryllix What happens if you try to turn the Basement /Wet Vac on and off from the admin console? Nothing wrong with the program, except that it doesn't last long, are you assuming that within an hour that you'll take over? You could use the newer "repeat while" program architecture, or you could simply add a Run Program 'Wet Vac' (then path) to the end to make it loop forever or more specifically until you stop it. 2
Michaelv Posted November 19, 2021 Author Posted November 19, 2021 Hi Mr. Bill, I neglected to follow this topic so I did not see your suggestion until recently and I was away for 3 weeks but I want to tell you what happened while I was gone. The northeast got clobbered by rain last week and I got water in the basement. The program did run and the 12 gallon wet vac was full of water when I got home so it did run properly. I do want the program to run in an endless loop until I can intervene. Not sure how to write the command in the "repeat while" architecture or how would it be written the other way. is just this simple? See Below: I would also like to change the message of the notification email to : Wet Vac Program has started. I know I need to do something in the following screen but not sure what the customized content would be. I copied all this programming stuff of the forum so although it may look like I know what I am doing, I just copied it, trial and error and got it to work. Lastly, The leak detector that triggered the program to run last week did not survive the event. So I need to replace it. I have added a new leak sensor to the system but I was wondering if there is a detailed procedure to replace it so I do not have to do all the reprogramming over again? Can I just rename the "wet" - "dry" and "heartbeat' nodes the exact same name as the dead sensor outside the folder, delete the dead sensor then move the nodes to the folder where the old nodes were? That seems too simple. Thanks for all the help. The dead sensor is Basement Turret. See Below:
MrBill Posted November 19, 2021 Posted November 19, 2021 (edited) 5 hours ago, Michaelv said: I do want the program to run in an endless loop until I can intervene. Here is a better way to accomplish the same thing you have. Note: of course I just used some random devices in my system to create the example. aaa Test - [ID 00E6][Parent 0001] If 'Door Switches / Front Door' Status is On Then Send Notification to 'test1 ' content 'my alert' Repeat While $cTrue is $cTrue Set 'Attic Fan#' On Wait 5 minutes Set 'Attic Fan#' Off Wait 20 minutes Else - No Actions - (To add one, press 'Action') Note that when using the "Repeat" statement.... "repeat" appears at the TOP of the loop that is repeated--and each line that is to be repeated is idented--. So when the status changes to On, the notification will be sent and then the repeat loop will start forever. Notice that I used "While $cTrue is $cTrue" which looks like it would never end, but alas the If statement will still terminate the program when the Status of the If statement changes to false. You could also use something like Repeat "for 999999 times". $cTrue is an Integer variable that is always set to 1, it never changes, thus the little c for Constant at the start of the name. If you do want to be reminded with another notification every 3 cycles you could extend the loop the way you did and move the notification inside the loop... like this: aaa Test - [ID 00E6][Parent 0001] If 'Door Switches / Front Door' Status is On Then Repeat While $cTrue is $cTrue Send Notification to 'test1 ' content 'my alert' Set 'Attic Fan#' On Wait 5 minutes Set 'Attic Fan#' Off Wait 20 minutes Set 'Attic Fan#' On Wait 5 minutes Set 'Attic Fan#' Off Wait 20 minutes Set 'Attic Fan#' On Wait 5 minutes Set 'Attic Fan#' Off Wait 20 minutes Else - No Actions - (To add one, press 'Action') (or you could even nest a repeat under the repeat.... but lets keep it simpler) The method that you used to loop probably works fine in this case, because once the sensor trips I'm guessing the status is going to stay wet until you're there. It would take a long time to dry enough to get the sensor to actually turn off (if it even does... something in the back of me head says leak sensors must be manually reset). to be clear I do use Run Program <itself> (then) from time to time to create endless loops, that's how it was done before V5 when "repeat" came into being. Note: If the sensor can change status it's likely better to loop to the IF than the then.... in other words "Run Program <itself> (if)". In the case of "Run Program <itself> (then)", without testing I believe that once the second iteration starts, when the THEN block re-runs, I believe that the IF is no longer being tested to stop the program. 5 hours ago, Michaelv said: I would also like to change the message of the notification email to : Wet Vac Program has started. There is two parts to this line: The first is who gets the notification the second is the content of the message... In this case we are interested in 'Leak Sensor Water Alert - Level 1' (I'm not sure why there is a space between the tick mark and the L that is weird....) That points to the top line of the next screen shot: so you would just click the RIGHT end of that line and edit the contents of the notification in the popup window. Note that ${sys.node.#.name) is the node name that triggered the program... in this case should appear instead of ${sys.node.#.name) Note however, as you have the program looping above, the replacement probably only works the first time the notification is sent and likely doesn't work on the repeated notifications after the Run (then path). 5 hours ago, Michaelv said: So I need to replace it. First, you must move the dead sensor up to the root level. That is it must be under "My lighting" with the new sensor, The "replace" function does not work if any devices are in a folder such as "Leak Sensors". Second, Put both devices old and new in linking mode. Click the name of the OLD sensor, then right click it, and pick "Replace <Old Name> with" and there will be a context menu with the possible new sensors that you have already added to the ISY. I'm not sure what will happen if the old sensor is so dead it can't be put in linking mode, but try it with just the new sensor in linking mode and see if it works. You should only need to do this once, and it will include the related nodes such as heartbeat. https://wiki.universal-devices.com/index.php?title=ISY-99i/ISY-26_INSTEON:Replacing_a_Device https://wiki.universal-devices.com/index.php?title=ISY-99i/ISY-26_INSTEON:INSTEON_Device#Replace...with Edited November 19, 2021 by MrBill 2
Michaelv Posted November 19, 2021 Author Posted November 19, 2021 Thank you so Much Mr. Bill. I'll try it out and let you know how it goes. MV
Recommended Posts