Announcement

Collapse
No announcement yet.

Event trigger ONLY on local change?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Event trigger ONLY on local change?

    Is there a way to only have an event trigger only if the device's value is changed at the device itself (local control). Here is the scenario:

    I have a Homeseer Z-Wave dimmer (HS200+). The event triggers when the Multilevel device changes. Using Easy Trigger, it sets a group of Hue lights to its value * 2.54. This works flawlessly. Let's call it SwitchControl

    Conversely, I have another event that keeps the LEDs in sync with the current value in the event that it changes from somewhere else. I take the Hue device and divide by 2.54.
    What I don't want is for the LED sync event to cause a "change" that triggers the SwitchControl event to run.

    In other words, if the multilevel device gets changed via an event or program, I just want the LEDs to indicate what I tell it, but not trigger a device "change" in case the value is off. (I also had to insert a 4-second delay in the LED sync routine to prevent a really destructive loop!)

    On the ISY there is a way to do this. ISY differentiates the two via Device Control vs Device Status. Is there a similar way to do with with HS3? (hoping so because I'm so close to perfection on this!)

    #2
    I'm having a little difficulty envisioning the details of your problem, but perhaps I understand enough to be helpful. Here's what I think you've said:

    You have an HS-WD200+ dimmer. (I have several.) The dimming level of that unit is sometimes set locally via the switch paddles. But also, the dimming level of the same unit is sometimes set remotely by HS3 event actions. Now, you want to write a new event EVT that will be triggered if the dimming level of your WD200+ is changed, but only if the change was initiated by somebody's finger on the switch paddles. If that's the problem, then the solution is easy.

    When you included your WD200+, you got three devices added to your device list: one parent, and two children. One of the children is (both control and status) the dimming level of the unit. The other child is a status report -- Central Scene -- of what people have been doing with the switch paddles.

    I f you want to trigger EVT only if the dimming level was changed via paddle manipulation, then define its trigger as a change to the Central Scene child device:

    Click image for larger version

Name:	2019-07-26_21-18-49.jpg
Views:	276
Size:	49.0 KB
ID:	1318001
    The EVT event will execute if the dimming level gets changed by local paddle manipulation, but not if the dimming level is changed by another event.

    If this is what you are looking for, great! If not, my apologies.

    Comment


      #3
      OK you got it exactly! So I changed my event to the scene child, but now it seems to be a step behind... If I click BRIGHT to 80%, DIM to 20%, OFF. When I DIM to 20, I get 80%, when I click OFF, I get 20%.

      It's like it stays 1-step behind.

      Here is the event:
      IF switch.zw 2.David switch.zw.david.scene has a value that just changed.
      Then Set Device group.hue 2.David david to $$DVC:q8: * 2.54

      Nevermind - found it. It was detecting the change and reading it before it settled. I had to put a 1s delay in.

      Comment


        #4
        Is it possible that you have the switch mounted upside down? (Quick check: The 7 status LEDs should appear on the left side of the installed switch as you look at it.)

        Comment


          #5
          No- I found the issue. The event is running before the input is complete. There is a 1-second ramp time on the switch. If I'm holding the paddle down to get it to, say, from 100% to 25%, the event is running at (guessing) 99%. It sets the lights to that and completes. I inserted a 1-second delay before changing the Hue device to the calculated value.

          Unfortunately this inserts a noticeable delay in response time, but there doesn't appear to be a 0.5 second delay (which may not be long enough).

          Comment

          Working...
          X