Scene not triggering - Help with my logic

  • 480 Views
  • Last Post 21 December 2015
f0ggy987 posted this 11 November 2015

Hi,

Hardware: Washing machine plugged into Aeon Labs Smart Energy Switch (DSC06106-ZWUS)

Goal: Receive a notification when the washing machine has finished its cycle

My first step was to break out the Watts value from the energy switch as a separate device. I then setup a scene to trigger a notification when the Watts went to 'level 0' - i.e. "when the washing machine is not using power, it is off (finished)".

This didn't work properly because either the energy switch is not accurate or my washing machine is a power hog :-) Sometimes after a cycle finished it would not return to 0 , while other times it would randomly bounce above zero and back to zero multiple times, which would trigger multiple false notifications.

So my current scene is setup such that:

'Washing Machine' = Virtual Device
'Washing Machine Watts' = level displayer broken out from the energy switch

Scene name: Washing Machine On
Device: 'Washing Machine' level set to 255
Trigger: 'Washing Machine Watts' changes to any level
Conditions:
1) 'Washing Machine' (virtual device) is at level 0
2) 'Washing Machine Watts' has been > level 3 for 1 minute

Text description: When a Watts change is detected, if the washing machine is currently OFF and the Watts has been > 3 for a minute, then turn ON the virtual device to indicate the washing machine has started"

Scene name: Washing Machine Off
Device: 'Washing Machine' level set to 0
Trigger: 'Washing Machine Watts' changes to any level
Conditions:
1) 'Washing Machine' (virtual device) is at level 255
2) 'Washing Machine Watts' has been < level="" 3="" for="" 1="">

Text description: When a Watts change is detected, if the washing machine is currently ON and the Watts has been < 3="" for="" a="" minute,="" then="" turn="" off="" the="" virtual="" device="" to="" indicate="" the="" washing="" machine="" has="">

However neither of these is triggering.

Note: I have to use 'change to any level' in the triggering logic because the 'Washing Machine Watts' has multi-decimal point accuracy that reads slightly differently each cycle, so I can't hard-code what the Watt level will be when it turns on because it changes all the time. Additionally the triggering logic doesn't offer 'greater than/less than' as an option.

Any help is appreciated.

Thanks


Think this might help. Your washer won't be 0 at any time unless you turn the power off to your AEON Labs power monitoring device. The washer will use some electricity at all times unless it is so old and all mechanically controlled verses electronically controlled.

With that said, you should look for the current value of the washer at rest. On the main ICHA software default page, you will see devices. To the immediate right of that is a drop down, tile and list. Change it from tile to list view and you can see the value of the watts. Might have to change it to something like < 10="" watts="not" in="" use,="" and="" 11=""> watts = in use.

Also never had any luck with the timer function of been at X level for Y minutes. Don't think that really works because there is nothing that keeps track of levels and time other than device logging.

Order By: Standard | Newest | Votes
weidnerj posted this 11 November 2015

Hi,

Hardware: Washing machine plugged into Aeon Labs Smart Energy Switch (DSC06106-ZWUS)

Goal: Receive a notification when the washing machine has finished its cycle

My first step was to break out the Watts value from the energy switch as a separate device. I then setup a scene to trigger a notification when the Watts went to 'level 0' - i.e. "when the washing machine is not using power, it is off (finished)".

This didn't work properly because either the energy switch is not accurate or my washing machine is a power hog :-) Sometimes after a cycle finished it would not return to 0 , while other times it would randomly bounce above zero and back to zero multiple times, which would trigger multiple false notifications.

So my current scene is setup such that:

'Washing Machine' = Virtual Device
'Washing Machine Watts' = level displayer broken out from the energy switch

Scene name: Washing Machine On
Device: 'Washing Machine' level set to 255
Trigger: 'Washing Machine Watts' changes to any level
Conditions:
1) 'Washing Machine' (virtual device) is at level 0
2) 'Washing Machine Watts' has been > level 3 for 1 minute

Text description: When a Watts change is detected, if the washing machine is currently OFF and the Watts has been > 3 for a minute, then turn ON the virtual device to indicate the washing machine has started"

Scene name: Washing Machine Off
Device: 'Washing Machine' level set to 0
Trigger: 'Washing Machine Watts' changes to any level
Conditions:
1) 'Washing Machine' (virtual device) is at level 255
2) 'Washing Machine Watts' has been < level="" 3="" for="" 1="">

Text description: When a Watts change is detected, if the washing machine is currently ON and the Watts has been < 3="" for="" a="" minute,="" then="" turn="" off="" the="" virtual="" device="" to="" indicate="" the="" washing="" machine="" has="">

However neither of these is triggering.

Note: I have to use 'change to any level' in the triggering logic because the 'Washing Machine Watts' has multi-decimal point accuracy that reads slightly differently each cycle, so I can't hard-code what the Watt level will be when it turns on because it changes all the time. Additionally the triggering logic doesn't offer 'greater than/less than' as an option.

Any help is appreciated.

Thanks


Think this might help. Your washer won't be 0 at any time unless you turn the power off to your AEON Labs power monitoring device. The washer will use some electricity at all times unless it is so old and all mechanically controlled verses electronically controlled.

With that said, you should look for the current value of the washer at rest. On the main ICHA software default page, you will see devices. To the immediate right of that is a drop down, tile and list. Change it from tile to list view and you can see the value of the watts. Might have to change it to something like < 10="" watts="not" in="" use,="" and="" 11=""> watts = in use.

Also never had any luck with the timer function of been at X level for Y minutes. Don't think that really works because there is nothing that keeps track of levels and time other than device logging.

rscott posted this 12 November 2015

As was pointed out, using a "Device at state for time" condition on a device that changes frequently doesn't always work since there's no history involved. What happens is even if you start at 30 watts, then change to 32 watts, the change to "32" will cause the "time" to reset, so if you check for "level > 30" it would only start counting since the most recent change to 32.

As an experiment, I added a 24-hour memory on the history. It should fix the above problem - give Version 4.0.5794 a try.

f0ggy987 posted this 17 November 2015

As was pointed out, using a "Device at state for time" condition on a device that changes frequently doesn't always work since there's no history involved. What happens is even if you start at 30 watts, then change to 32 watts, the change to "32" will cause the "time" to reset, so if you check for "level > 30" it would only start counting since the most recent change to 32.

As an experiment, I added a 24-hour memory on the history. It should fix the above problem - give Version 4.0.5794 a try.


Thanks Ryan, I appreciate the prompt explanation and suggested fix!

I have tried this new version with mixed success.

If I set a condition of " < level="" 3="" for="" 1="" minute="">

Is that one minute measured against the system clock or the most recent level change?

To rephrase: If the level changes to 2, does it immediately start a timer that triggers the scene after 60 seconds, or does it require ANOTHER level change to compare the time between the two levels?

An example:

12:01 - Level is at 4
12:02 - Level changes to 2
[level remains unchanged for 24 hours]

I would expect that to trigger based on the condition because it has been " < level="" 3="" for="" 1="" minute="" "="" but="" not="" sure="" that's="" how="" the="" logic="" is="">

Thanks again,

Adam

rscott posted this 18 November 2015


To rephrase: If the level changes to 2, does it immediately start a timer that triggers the scene after 60 seconds, or does it require ANOTHER level change to compare the time between the two levels?

An example:

12:01 - Level is at 4
12:02 - Level changes to 2
[level remains unchanged for 24 hours]

I would expect that to trigger based on the condition because it has been " < level="" 3="" for="" 1="" minute="" "="" but="" not="" sure="" that's="" how="" the="" logic="" is="">

Thanks again,

Adam


Think of the condition as something that prevents the scene from executing when and only when an automatic trigger attempts to trigger it. It's not a timer that goes off after 1 minute, but rather it's a condition that's checked when you have another trigger fire off the scene.

A possible solution would be to set a repeating time trigger -- say once every 5 minutes -- then when that trigger goes off, it'll check to make sure that " level < 3="" for="" 1="" minute="" "="" and="" if="" so,="" the="" scene="" will="" be="" triggered.="" 3="" for="" 1="" minute="" "="" and="" if="" so,="" the="" scene="" will="" be="">

darkNiGHTS posted this 06 December 2015

I got this working thanks to this thread - I'm going to spell it out because it was a little hard to figure out the changes from the initial triggers and conditions posted.

1. Create device based on dryer watt usage. I named it "Washer - Watts"

2. Create virtual device named "Washer." - Necessary because watt usage fluctuates so much during the cycle it's not an accurate indicator of on/off.

3. Create scene "Washer On"
Devices: "Washer" (the virtual device) - "on"
Triggers: "Washer - Watts" - watts changes to any level
Condition: "Washer - Watts" is above 5. (your washer may vary - mine uses 2.5 watts when off. Check what yours is and add a few watts as a failsafe).
Explanation: The washer is on if the watts have changed and the watts are above 5.

4. Create scene "Washer Off"
Device: "Washer" (the virtual device) - "off"
Triggers: "Repeat every minute"
Conditions: "Washer - Watts" has been less than 5 for 2 minutes.
Explanation: Every minute, it checks if the washer watt usage has been at less than 5 for 2 minutes. Most modern washers will occasionally during the cycle pause and have watt usage similar to being off but this is usually for 30 seconds. Setting it to 2 minutes prevents false positives (your washer may vary!)

5. Create scene "Washer Notification"
Devices: Push notification with whatever text you want.
Triggers: "Washer" (the virtual device) turns off.
Conditions: none

And you're done!

f0ggy987 posted this 21 December 2015

I got this working thanks to this thread


Glad someone else found this useful :-)

After the clarifications here I too got it working, with one slight difference to how you achieved it:



4. Create scene "Washer Off"
Device: "Washer" (the virtual device) - "off"
Triggers: "Repeat every minute"
Conditions: "Washer - Watts" has been less than 5 for 2 minutes.
Explanation: Every minute, it checks if the washer watt usage has been at less than 5 for 2 minutes. Most modern washers will occasionally during the cycle pause and have watt usage similar to being off but this is usually for 30 seconds. Setting it to 2 minutes prevents false positives (your washer may vary!)



Instead of the above I did:

Trigger: "Washer - Watts" changes to any level
Condition 1: "Washer - Watts" level <>
Condition 2: "Washing Machine" (virtual device) has been ON > 5 minutes

So it will only trigger and 'off' event if the 'on' event is active.

I'm not sure if either implementation is 'better' or more robust than the other, but just sharing.

This general setup is very versatile - you can be alerted to an on/off state change on any electrical device - TV, microwave, dishwasher, etc. - If anyone thinks of any cool uses for this let me know! :-)

Thanks

Close