Jump to content

Why device not 'ON', despite its 'ON' status?


waffles

Recommended Posts

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?
 
 
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?
Link to comment
Share on other sites

 

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.

Link to comment
Share on other sites

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.
 
 
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...