waffles Posted February 2, 2018 Posted February 2, 2018 Here is the setup: I am trying to control an ApplicanceLinc. It's called "Vetrano". I have my espresso machine plugged into it. So basically it turns my espresso machine on/off. I control the ApplianceLinc either via Alexa/ISYPortal (Scene), Keypad (Scene) or ctrlHome app (Device). Most of the time it works OK. However, every so often the ApplianceLinc does not respond. (I have read through the PLM Communication Issue sticky and implemented a some of the suggestions - it's gotten better, but....) I have written this little program to send me a text when Vetrano is initially turned on and another one after 30 minutes (the machine has to heat up for 30 minutes before I can pull my first shot ). Vetrano timer - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else - No Actions - (To add one, press 'Action') My expectation is that since I am using Status of the Device itself, I could be certain that if I receive the text that the device in fact has been turned on. However, every once in a while this has not been the case, i.e. the text was sent, but the device remained off. Is my programming flawed? What else can I do to make the set up more robust?
apostolakisl Posted February 2, 2018 Posted February 2, 2018 ISY makes assumptions in certain situations. If ISY plm receives a command that indicates that the device was turned on via a scene, I believe in this situation it will update the device status in ISY as being on. For example, if the appliance link is in a scene that ISY is a part of (ISY is a part of all scenes that you can see on the admin console), add ISY receives a scene on, it will assume that it happened. I do believe that responders to scenes do not send a status update because it could result in an insanve amount of traffic all at once (if it was a big scene). So ISY must then just assume it happened. I suggest adding a "query" to be certain. If appliance link status is on then query appliance link wait 10 seconds run if of your program above (set your program above to disabled). I also suggest adding a message to your "else" that tells you it failed to turn on.
oberkc Posted February 2, 2018 Posted February 2, 2018 Another such example would include cases where ISY controls a scene (such as via program). When the ISY turns on a scene, it assumes devices responds accordingly. In most cases, this tends to suggest a communication problem.
apostolakisl Posted February 2, 2018 Posted February 2, 2018 Another such example would include cases where ISY controls a scene (such as via program). When the ISY turns on a scene, it assumes devices responds accordingly. In most cases, this tends to suggest a communication problem. Yes, the root cause of the issue is almost certaily a com issue. Is it a dual band applince link?, dual band plm? I don't velieve they even make a dual band KPL. And of course all the regular stuff to improve com.
waffles Posted February 2, 2018 Author Posted February 2, 2018 Thank much apos! Your explanation helped. I also understand the concept you are proposing, but I am not sure about the implementation. Here is what I did in the meantime: 1. Program Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Else Send Notification to 'home' content 'Vetrano-failed' ----------------------------------------- 2. Program (same as my original, but now Disabled) Vetrano timer-go - [iD 003A][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else - No Actions - (To add one, press 'Action') Is this what you had in mind? ////////// EDIT/UPDATE it's not working.... It's sends me the FAILED text message shortly (10 sec?) after the device successfully got turned on.... Hmm, how do I fix this?
waffles Posted February 2, 2018 Author Posted February 2, 2018 Yes, the root cause of the issue is almost certaily a com issue. Is it a dual band applince link?, dual band plm? I don't velieve they even make a dual band KPL. And of course all the regular stuff to improve com. Yes, it's a dual-band ApplianceLinc and PLM. In addition, I added a dual-band SwitchLinc right next to the PLM as well as another one right next to the ApplicanceLinc in question in order to improve the network communication. I also set the Device Communication to "3 Retries" for KPL and Device in the Scene. Not sure though if this helps or hurts.
apostolakisl Posted February 2, 2018 Posted February 2, 2018 Thank much apos! Your explanation helped. I also understand the concept you are proposing, but I am not sure about the implementation. Here is what I did in the meantime: 1. Program Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Else Send Notification to 'home' content 'Vetrano-failed' ----------------------------------------- 2. Program (same as my original, but now Disabled) Vetrano timer-go - [iD 003A][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else - No Actions - (To add one, press 'Action') Is this what you had in mind? ////////// EDIT/UPDATE it's not working.... It's sends me the FAILED text message shortly (10 sec?) after the device successfully got turned on.... Hmm, how do I fix this? The failed message goes in the "else" of the other program. In other words, success or failure email is ony after the query. Also, please note, this won't work either if ISY fails to receive the scene on command. However, it seems like that com is fine for you since you always get the email, just that sometimes it is wrong. In the event that ISY fails to receive the scene on command, you won't get any email at all (though if the coffee machine gets it, it will still turn on).
waffles Posted February 2, 2018 Author Posted February 2, 2018 Hmm, moved the failed message. Now I have this: Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Else - No Actions - (To add one, press 'Action') Vetrano timer-go - [iD 003A][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else Send Notification to 'home' content 'Vetrano-failed' Problem now is that I am not getting either the start or the failed message text.
apostolakisl Posted February 2, 2018 Posted February 2, 2018 Then the first program isn't running or is running false. It should run when ISY detects a statsus change from off to on. You can check your program summary page to see when the program ran last. However, the fact that you were getting the "failed" email prior to moving the failed message to the other program means that your first program was running false. I don't know how that is possible. Is the ISY console showing the status change from off to on? If so, that program should run true. That information will be shown to you on the program summary page. The last time it ran and whether it ran true or false. You are using an appliance linc, correct? Not a lamplinc that is turning on to something besides 100%? This is how it should go down. 1) You turn the scene on from your kpl or similar 2) ISY shows the status of the device as going from off to on 3) program 1 runs and does the query 4) 10 seconds later, program 2 runs and sends you one of two emails
waffles Posted February 2, 2018 Author Posted February 2, 2018 Well, that's embarrassing. I had forgotten to save after making the change. I saw it right when I went to the "program summary page" - thanks for the tip! I am feeling bold enough to start putting icing on the cake: Now the 2nd program runs after being triggered until it sends the notification after 30 minutes - whether the device is still on or not. Therefore I would like to run a query during that period that monitors the device status. It should send another message in case the device gets turned off during that period. What's the best way to accomplish this?
apostolakisl Posted February 3, 2018 Posted February 3, 2018 Well, that's embarrassing. I had forgotten to save after making the change. I saw it right when I went to the "program summary page" - thanks for the tip! I am feeling bold enough to start putting icing on the cake: Now the 2nd program runs after being triggered until it sends the notification after 30 minutes - whether the device is still on or not. Therefore I would like to run a query during that period that monitors the device status. It should send another message in case the device gets turned off during that period. What's the best way to accomplish this? I am not sure why the 30 minute wait and then the second email. The second email will not necessarily correspond to the thing actually being shut off (as you have noted). Is there something that is supposed to automatically shut it off after 30 minutes? If you want an email when the appliance link actually shuts off, you would create the same two programs but use "status off" instead of "status on" and remove the second email from the first set of programs. I'm just not exactly sure what it is your want.
waffles Posted February 3, 2018 Author Posted February 3, 2018 My espresso machine takes 30 minutes to warm up properly. So I'd like to receive a text when it's ready to brew. The monitoring function (icing on cake) is to receive a text when the warm up gets interrupted (device turned off within in these 30 minutes) for whatever reason.
apostolakisl Posted February 3, 2018 Posted February 3, 2018 My espresso machine takes 30 minutes to warm up properly. So I'd like to receive a text when it's ready to brew. The monitoring function (icing on cake) is to receive a text when the warm up gets interrupted (device turned off within in these 30 minutes) for whatever reason. Well in that case, using the exact same set of two programs but replacing "status on" with "status off" should work.
waffles Posted February 3, 2018 Author Posted February 3, 2018 So this is what I have now: -------------------------------------------- Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Run Program 'Vetrano timer-off' (If) Else - No Actions - (To add one, press 'Action') ------------------------------------------------------- Vetrano timer-go - [iD 003B][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else Send Notification to 'home' content 'Vetrano-failed' ---------------------------------------------- Vetrano timer-off - [iD 003A][Parent 002B][Not Enabled] If Status 'Vetrano' is Off Then Send Notification to 'home' content 'Vetrano-turned off' Else - No Actions - (To add one, press 'Action') ----------------------------------------------- Problem is that monitoring doesn't work. I don't get the notification, if the device gets turned off during that 30 min period. I think what I am missing here is that the "Vetrano timer-off" (monitoring) program is not constantly running during that 30 min period. Is this the cause? If so, how can I achieve this?
apostolakisl Posted February 3, 2018 Posted February 3, 2018 So this is what I have now: -------------------------------------------- Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Run Program 'Vetrano timer-off' (If) Else - No Actions - (To add one, press 'Action') ------------------------------------------------------- Vetrano timer-go - [iD 003B][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Else Send Notification to 'home' content 'Vetrano-failed' ---------------------------------------------- Vetrano timer-off - [iD 003A][Parent 002B][Not Enabled] If Status 'Vetrano' is Off Then Send Notification to 'home' content 'Vetrano-turned off' Else - No Actions - (To add one, press 'Action') ----------------------------------------------- Problem is that monitoring doesn't work. I don't get the notification, if the device gets turned off during that 30 min period. I think what I am missing here is that the "Vetrano timer-off" (monitoring) program is not constantly running during that 30 min period. Is this the cause? If so, how can I achieve this? No. You don't add run if off to the first program. You need 4 programs. Two for on, two for off. You need to follow the logic. How is running an "off" program when it is only triggered by the thing turning on every going to run.
waffles Posted February 4, 2018 Author Posted February 4, 2018 I think I got it (at least going by my limited testing thus far) ==================================== Vetrano timer-trigger - [iD 0003][Parent 002B] If Status 'Vetrano' is On Then Set 'Vetrano' Query Wait 10 seconds Run Program 'Vetrano timer-go' (If) Else - No Actions - (To add one, press 'Action') =============================== Vetrano timer-go - [iD 003B][Parent 002B][Not Enabled] If Status 'Vetrano' is On Then Send Notification to 'home' content 'Vetrano-timer start' Enable Program 'Vetrano timer-off' Wait 30 minutes Send Notification to 'home' content 'Vetrano-time's up' Disable Program 'Vetrano timer-off' Else Send Notification to 'home' content 'Vetrano-failed' ======================================= Vetrano timer-off - [iD 003A][Parent 002B] If Status 'Vetrano' is Off Then Send Notification to 'home' content 'Vetrano-turned off' Else - No Actions - (To add one, press 'Action') ======================================= The idea is that the 'watchdog' program "Vetrano timer-off" is only active during those 30 min of warm up.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.