Announcement

Collapse
No announcement yet.

Easy Trigger plug-in - Feature Requests

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    spud, would you consider adding the following trigger?

    IF Any device's value in this group was and becomes...

    Thanks.
    -Wade

    Comment


      Originally posted by cc4005 View Post
      spud, would you consider adding the following trigger?

      IF Any device's value in this group was and becomes...

      Thanks.
      I think you can already do this using the Easy Trigger "Any device's value in this group had its value set and expression is true" function by writing an expression like

      ($OLDVALUE < 5 ) && ($NEWVALUE > 30)


      Comment


        Originally posted by jvm View Post
        I think you can already do this using the Easy Trigger "Any device's value in this group had its value set and expression is true" function by writing an expression like

        ($OLDVALUE < 5 ) && ($NEWVALUE > 30)
        would this work? ... $OLDVALUE != $NEWVALUE
        (basically trying to see if the new value is different... getting around an issue I'm seeing with HS3 thinking things have changed when they have not, they were just re-writing the same value.


        Comment


          Originally posted by Ltek View Post

          would this work? ... $OLDVALUE != $NEWVALUE
          (basically trying to see if the new value is different... getting around an issue I'm seeing with HS3 thinking things have changed when they have not, they were just re-writing the same value.

          if you are using the trigger:
          "Any device's value in this group had its value set and expression is true"
          or
          "This device had its value set and expression is true"

          yes that would work

          Comment


            Originally posted by spud View Post

            if you are using the trigger:
            "Any device's value in this group had its value set and expression is true"
            or
            "This device had its value set and expression is true"

            yes that would work
            IF MeiKu MeiKu MeiKu - Active App had its value set and $OLDVALUE != $NEWVALUE is true

            Comment


              Originally posted by Ltek View Post

              would this work? ... $OLDVALUE != $NEWVALUE
              (basically trying to see if the new value is different... getting around an issue I'm seeing with HS3 thinking things have changed when they have not, they were just re-writing the same value.

              Just to be sure you're not adding complexity where you don't need it, Is the problem that you used the HomeSeer trigger "This device had a value that was just set" or "This device had its value set or changed" rather than using "This device had a value that just changed"?

              These "set" triggers will trigger even if the new value is the same as the old. This is critical for functions such as using Central Scene button presses.
              However, if you use the "changed" trigger, it must be a changed value.

              Comment


                Originally posted by jvm View Post

                Just to be sure you're not adding complexity where you don't need it, Is the problem that you used the HomeSeer trigger "This device had a value that was just set" or "This device had its value set or changed" rather than using "This device had a value that just changed"?

                These "set" triggers will trigger even if the new value is the same as the old. This is critical for functions such as using Central Scene button presses.
                However, if you use the "changed" trigger, it must be a changed value.
                Good point.

                Also, the "Do not update device last change time if device value does not change" setting on the device's Configuration tab can cause unwanted triggers if unchecked.

                Comment


                  Originally posted by teladog01 View Post
                  Also, the "Do not update device last change time if device value does not change" setting on the device's Configuration tab can cause unwanted triggers if unchecked.
                  Like what?

                  Comment


                    Originally posted by teladog01 View Post

                    Good point.

                    Also, the "Do not update device last change time if device value does not change" setting on the device's Configuration tab can cause unwanted triggers if unchecked.
                    I think this problem might have been fixed at some point. My recollection was there used to be some Easy Triggers with a "for at least" time clause which might trigger repeatedly if the last change time wasn't updated but that was changed to a "for exactly" time clause which triggers only once. Is this what you were referring, or is there something else that one needs to watch out for? Thanks.

                    Comment


                      spud Thank you for the many recently added features that I and other had requested. I've already found them quite helpful in implementing some new feature that I was trying to get working (I find the stack operations incredibly useful for a use case I had of adjusting and then restoring volume levels for Chromecast devices using your Chromecast plugin - in particular, using stacks to adjust volume to play an announcement but then being able to restore the original volumes).

                      There are two remaining changes that I'm interested in. One that seems simple, and one that seems more complex. Each of these are intended to have wide applicability, rather than being narrow use-case focused.

                      I realize you've been busy on adding features and so you may have limited time to work on these ideas now, but your thoughts on whether you can add these at some point would be appreciated.

                      1. Probably Simple - For the "clear stack" operations, a check box whereby the device is set back to its original value -- i.e., the final value to be popped off the stack. Use case: restore an item or group of items to its/their original value, regardless of pending intermediate changes that have been stored on the stack. I was thinking of using this for a HomeSeer shutdown routine to make sure things are stored to their original values before a shutdown. I'm sure there are other use cases.

                      2. More Complex (but a lot of power) - For the "EasyTrigger: Set Group of Devices to Expression" action, the ability to evaluate the expression individually for each item in the group, combined with (a) a new global variable etDeviceType which has the type of the triggering device; and (b) a set of variables that you can use in the expression that are analogous to the "et" global variables but which would hold the values for the current device in the group as the expression part is evaluated for that device. UPDATE: Release 3.0.0.61 adds the functionality of this #2. See post #511 for details / limitations of the implementation. Thanks!

                      This proposal was explained a bit more in post #462. The basic idea is to allow some individualized processing for each member in the group using an "If" statement in the expression to individually calculate a value for each device to be set based on its individualized current values and the triggering device's values.

                      Example use cases:
                      • If I wanted to turn on all lights in Group "MyGroup" to 50%, but only if they are not already on, I could then do a "Set Group of Devices to Expression, Select the group "MyGroup" and then use an expression like: "IF($ThisDeviceValue == 0, 50, $ThisDeviceValue)" to set the device to 50 if it isn't on, but to leave it at the same value (i.e., set it to its already existing value $ThisDeviceValue) if it is already on (maybe even including a "do nothing if action would set to same value" option).
                      • Similarly, if I wanted to turn on all lights in a group, but only if they are in the same floor / room as the triggering device and not already on, I would use and expression like: "IF($ThisDeviceLocation1 == $ETDeviceLocation1 && $ThisDeviceLocation2 == $ETDeviceLocation2 && $ThisDeviceValue == 0, 50, $ThisDeviceValue)". The idea here is that if I have a number of similar events each of which triggers off of something in the room and acts on other devices in the room, I could reduce my event could by writing a single event that can use the location information of the triggering device to filter out which devices to act on. For example, I have motions sensors in 10 rooms and want to turn on lights in the rooms with the motion sensor, rather than 10 events, I could have one group with all my motion sensors and another with all the lights and use a single event that considers the Location1 / Location2 in the expression evaluation.UPDATE: Release 3.0.0.61 adds the functionality of this #2 but could not include string processing (so comparisons must be of numeric data - no location field comparison is possible). But still very useful! See post #511 for details / limitations of the implementation.

                      I could give a number of additional use cases for #2 if that's helpful for your consideration. Your thoughts on these would be appreciated. Best regards, JVM.

                      Comment


                        Originally posted by alexbk66 View Post
                        Like what?
                        Like triggering when the value is set, even though the value does not change.

                        Comment


                          I think this is just a visual thing

                          Comment


                            Originally posted by teladog01 View Post
                            Like triggering when the value is set, even though the value does not change.
                            As said - it's only used for display, so doesn't affect anything.

                            Comment


                              Originally posted by jvm View Post
                              However, if you use the "changed" trigger, it must be a changed value.
                              ... maybe not, according to spud View Post

                              I think I remember this is a bug in the "changes and becomes" trigger, when used with "Any value" it does not check if the value has actually changed.
                              Did you try "This device has a value that just changed" instead ?

                              Comment


                                What is the behaviour when the stack is 'full' (50 items). Will the oldest one be removed ?
                                If not, could we add a pop without assigning it to a device ?

                                Comment

                                Working...
                                X