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
    replied
    Originally posted by mikee123 View Post
    We have 'a device has changed in the last... and a selection of devices'. I would need a device has NOT changed in the last x minutes

    I want to trigger if a device has changed. Then check if another device has not changed after 5 seconds


    Another request would be to compare device a to device b - If device a equals device b also if device a does not equal device b
    EasyTrigger already has all of that.
    In the "EasyTrigger: A device's Value is" category there are the following conditions:
    • This device's value has NOT changed for at least...
    • Comparison between 2 device values is true

    Leave a comment:


  • mikee123
    replied
    We have 'a device has changed in the last... and a selection of devices'. I would need a device has NOT changed in the last x minutes

    I want to trigger if a device has changed. Then check if another device has not changed after 5 seconds


    Another request would be to compare device a to device b - If device a equals device b also if device a does not equal device b

    Leave a comment:


  • jvm
    replied
    Originally posted by spud View Post

    1. It could be tricky because from the plugin point of view when an action is called there is no reliable way to know which trigger is the origin. So such a feature would have to be based on the ETDeviceRef global variable or similar, which could to lead to incorrect behavior if 2 triggers are fired at almost the same time.
    I think I will pass on this one for now

    2-3. I'm considering this, and if/when I do it, this would be from the config page.

    4. I will do it, but I'm quite busy currently so it may take some time
    Thank you. For #1, it sounds like you would need something like "ETDeviceRef" but which would have local instance that only last for a specific event so that each event could have its own instance. I guess that would be a bit complex so your passing for now is understood. Thanks for the consideration though and thanks for looking into 2-4.

    Leave a comment:


  • spud
    replied
    Originally posted by jvm View Post
    spud I wanted to summarize / repost a number of feature enhancements that I or others previously posted but for which I didn’t see a response and assume they’re lost in the many pages of this thread.

    If would be helpful to get your feedback to indicate whether you are considering each, or whether you’ve ruled them out (so that I / others don’t nag you on things you have already determined aren’t workable.).

    In each case, I am suggesting what I think are widely useable refinements to the existing functionality, rather than entirely new functionality. I’ve also tried to limit these to things that I think are generally usable by many rather than special-use cases.

    1. For events that begin with an Easy Trigger “Any device’s value in this group” trigger (i.e., a trigger that sets the ETDeviceRef value), I would like to enhance the “EasyTrigger: Set Device to …” actions such that, when a user clicks on the “(Select A Device” drop-down, the first listed device would be “Easy Trigger – Group Triggered Device” (or similar name). The idea here is to have an easy way to act on the triggered device that got the event going without having to use scripting.

    2. The ability to define Groups based a combination of specified Name, Location1, Location2, and Type values where for each field you can select “Any” or a specific value. The group members would then update dynamically as new devices meeting these characteristics are added to Homeseer. This is an extension of the current group Trigger functionality which allows you to define a group based on one of these 4 characteristics. I would like to be able to simultaneously use all 4 to get finer control. There are two places where this functionality could be added. The first is in the Trigger itself, kind of like what is one with the current ET Group trigger functionality. As an alternate way to implement, it could be added in the Easy Trigger config page so a user could define a group based on these 4 characteristics. The CPS Tags plugin has a good implementation of this type of group defining functionality.

    3. Similar to #2, but for also allow the user to define a Group based on Name, Location1, Location2, and Type values in ET Event Actions, rather than just triggers. If #2 were implemented such that the group were defined based on Name, Location1, Location2, and Type values on the Easy Trigger config page, it seems this would also follow automatically from that implementation.

    4. Group Push. Similar to the “new” Push Device Value action, but applied to Groups. I think I saw you were already considering this.
    1. It could be tricky because from the plugin point of view when an action is called there is no reliable way to know which trigger is the origin. So such a feature would have to be based on the ETDeviceRef global variable or similar, which could to lead to incorrect behavior if 2 triggers are fired at almost the same time.
    I think I will pass on this one for now

    2-3. I'm considering this, and if/when I do it, this would be from the config page.

    4. I will do it, but I'm quite busy currently so it may take some time

    Leave a comment:


  • jvm
    replied
    spud I wanted to summarize / repost a number of feature enhancements that I or others previously posted but for which I didn’t see a response and assume they’re lost in the many pages of this thread.

    If would be helpful to get your feedback to indicate whether you are considering each, or whether you’ve ruled them out (so that I / others don’t nag you on things you have already determined aren’t workable.).

    In each case, I am suggesting what I think are widely useable refinements to the existing functionality, rather than entirely new functionality. I’ve also tried to limit these to things that I think are generally usable by many rather than special-use cases.

    1. For events that begin with an Easy Trigger “Any device’s value in this group” trigger (i.e., a trigger that sets the ETDeviceRef value), I would like to enhance the “EasyTrigger: Set Device to …” actions such that, when a user clicks on the “(Select A Device” drop-down, the first listed device would be “Easy Trigger – Group Triggered Device” (or similar name). The idea here is to have an easy way to act on the triggered device that got the event going without having to use scripting.

    2. The ability to define Groups based a combination of specified Name, Location1, Location2, and Type values where for each field you can select “Any” or a specific value. The group members would then update dynamically as new devices meeting these characteristics are added to Homeseer. This is an extension of the current group Trigger functionality which allows you to define a group based on one of these 4 characteristics. I would like to be able to simultaneously use all 4 to get finer control. There are two places where this functionality could be added. The first is in the Trigger itself, kind of like what is one with the current ET Group trigger functionality. As an alternate way to implement, it could be added in the Easy Trigger config page so a user could define a group based on these 4 characteristics. The CPS Tags plugin has a good implementation of this type of group defining functionality. UPDATE - This was implemented in 3.0.0.57 with the addition of dynamically defined groups on the Easy Trigger Config page. Thanks!

    3. Similar to #2, but for also allow the user to define a Group based on Name, Location1, Location2, and Type values in ET Event Actions, rather than just triggers. If #2 were implemented such that the group were defined based on Name, Location1, Location2, and Type values on the Easy Trigger config page, it seems this would also follow automatically from that implementation. UPDATE - This was implemented in 3.0.0.57 with the addition of dynamically defined groups on the Easy Trigger Config page. Thanks!

    4. Group Push. Similar to the “new” Push Device Value action, but applied to Groups. I think I saw you were already considering this.UPDATE - This was implemented in 3.0.0.58 with the addition of group push. Thanks!


    UPDATE: See post # 462 for requests #5, #6. Idea #6 may be part of a "stepping stone" toward implementing #1 and solving the problem you mention in post #455.

    Leave a comment:


  • ScottRennie
    replied
    jvm and The Profit - thank you for the ideas - I'll have a play with those and see how I get on. I agree with Ltek that a dedicated event would be useful.

    Leave a comment:


  • The Profit
    replied
    jvm I like your idea to halt a triggered action if someone interacts with the light during the time range. I haven’t used that action yet in any of my events so far....


    Sent from my iPad using Tapatalk

    Leave a comment:


  • jvm
    replied
    ScottRennie, In addition to the approach from The Profit , another approach is to use a recurring trigger, say triggering every minute, and to have that trigger occur between your start and stop times. You then use the Easy Trigger "Set Device to Another Device" to set your device to itself plus 1. See event "Slow Dim", below.

    There are time when you might want to "stop" this slow ramping cycle - e.g., if a user manually operated the switch during the cycle -- so I've also added an event "Slow Dim - Halt" which looks for the central scene key to be changed and, if there is a change, disables the event for 2 hours (thus, moving outside the 6 pm to 7 pm window). I've set this up to look for any central scene key change. You might just want to limit this to either the Scene 001 Key Pressed 1 time or Scene 002 Key Pressed 1 time.

    I think it would be relatively straightforward to extend this to a group of lights using the Easy Trigger "Set Group to Expression", but in that case, instead of setting a device to another device, you'd pick a "lead" device and use its $$DVR: value in the expression to set all devices in the group to a common value of the lead device +1. You may also want to set up an Easy Trigger group for all of the related central scene devices to use in the "Halt" event so that if any were manually changed, the ramping event would stop for all of the devices.

    So I think this gives you at least 2 reasonable ways to accomplish what you're looking for. Good luck!


    Click image for larger version  Name:	Capture.PNG Views:	1 Size:	292.5 KB ID:	1283527

    Leave a comment:


  • The Profit
    replied
    Originally posted by Ltek View Post
    ... I think I follow. Your event would increment the dim level 2% every minute. Correct?

    Looks like that would work. Still would be cool to have the functionality built in as an Action

    Sent from my SM-G950U using Tapatalk
    Yes, it increments the dim level 2% every minute and sets a limit so that it doesn’t increase above that limit in the event that someone sets the light to another value.

    I’m not a plugin developer but it seems like it would be possible to set up an action to do this. With all the different possibilities that people could come up with however, it’s great that Spud has at least opened up a lot more options with ET.


    Sent from my iPad using Tapatalk

    Leave a comment:


  • Ltek
    replied
    Originally posted by The Profit View Post

    You should be able to do this with the existing EasyTrigger plugin. Question first, once the light has reached the 60% do you want to leave it on until the time where you will start to decrease the light level or will it need to turn off after its reached 60%?

    -Setup a schedule in ET with the two 30 minute intervals when you would like the light to gradually increase and decrease.

    -Create event for morning time
    If time enters (xyzschedule) time range
    And if the time is before 12:00pm
    And If The Device was Set and is not greater than 62
    Or If The device had its value set and is less than 62
    And If EasyTrigger:Time is within (xyzschedule) time range
    And If the time is before 12:00pm
    Then EastTrigger:Set Device to Expression, choose your dimmer, set it to $$DVRinsert device ref#) + 2
    **In the Options for the event, make sure you set the can not rerun for one minute.

    -Create event for evening
    If time enters (xyzschedule) time range
    And if the time is after 12:00pm
    And If The Device was Set and is not greater than 62
    Or If The device had its value set and is less than 62
    And If EasyTrigger:Time is within (xyzschedule) time range
    And If the time is after 12:00pm
    Then EastTrigger:Set Device to Expression, choose your dimmer, set it to $$DVR: insert device ref#) - 2
    **In the Options for the event, make sure you set the can not rerun for one minute.

    Let me know how this works for you, hope it helps!


    Sent from my iPad using Tapatalk
    ... I think I follow. Your event would increment the dim level 2% every minute. Correct?

    Looks like that would work. Still would be cool to have the functionality built in as an Action

    Sent from my SM-G950U using Tapatalk

    Leave a comment:


  • The Profit
    replied
    Originally posted by ScottRennie View Post
    Feature Request:

    I have a couple of lights on dimmer wall sockets that I would like to go from 0 to 60% over a period of time (30 minutes) in the morning and down again in the evening. Any thoughts to an event control to manage the ramp from a current status value to a new value over a period? I currently do it by script, but a managed Event would be great.

    Cheers
    Scott
    You should be able to do this with the existing EasyTrigger plugin. Question first, once the light has reached the 60% do you want to leave it on until the time where you will start to decrease the light level or will it need to turn off after its reached 60%?

    -Setup a schedule in ET with the two 30 minute intervals when you would like the light to gradually increase and decrease.

    -Create event for morning time
    If time enters (xyzschedule) time range
    And if the time is before 12:00pm
    And If The Device was Set and is not greater than 62

    Or If The device had its value set and is less than 62
    And If EasyTrigger:Time is within (xyzschedule) time range
    And If the time is before 12:00pm

    Then EastTrigger:Set Device to Expression, choose your dimmer, set it to $$DVRinsert device ref#) + 2
    **In the Options for the event, make sure you set the can not rerun for one minute.

    -Create event for evening
    If time enters (xyzschedule) time range
    And if the time is after 12:00pm
    And If The Device was Set and is not greater than 62

    Or If The device had its value set and is less than 62
    And If EasyTrigger:Time is within (xyzschedule) time range
    And If the time is after 12:00pm

    Then EastTrigger:Set Device to Expression, choose your dimmer, set it to $$DVR: insert device ref#) - 2
    **In the Options for the event, make sure you set the can not rerun for one minute.

    Let me know how this works for you, hope it helps!


    Sent from my iPad using Tapatalk

    Leave a comment:


  • ScottRennie
    replied
    Not much light to harvest after about 15:00 in Scotland in Winter :-)

    Leave a comment:


  • alexbk66
    replied
    Originally posted by ScottRennie View Post
    I have a couple of lights on dimmer wall sockets that I would like to go from 0 to 60% over a period of time (30 minutes) in the morning and down again in the evening. Any thoughts to an event control to manage the ramp from a current status value to a new value over a period? I currently do it by script, but a managed Event would be great.
    Probably proper light harvesting is what you are after?

    Leave a comment:


  • ScottRennie
    replied
    Feature Request:

    I have a couple of lights on dimmer wall sockets that I would like to go from 0 to 60% over a period of time (30 minutes) in the morning and down again in the evening. Any thoughts to an event control to manage the ramp from a current status value to a new value over a period? I currently do it by script, but a managed Event would be great.

    Cheers
    Scott

    Leave a comment:


  • jvm
    replied
    "Set Group of Devices to Expression" Question / Feature Enhancement
    (give this post a 'like" if you would also find this a useful function)

    It appears that te Expression part of "Set Group of Devices to Expression" evaluated only once for all devices in the group. I propose two modifications:

    1) Evaluate the expression individually for each device in the group, thus letting each device in the group be set differently depending on the expression's calculated value for each device. Perhaps adding a check box option to choose whether to evaluate once or individually (though given the low overhead of a typical expression evaluation, the check box may not be that important).

    2) Add global variables that can be used in the expression evaluations as each device's expression is evaluated. This would be analogous to the Easy Trigger global variables ETDeviceLocation1, ETDeviceLocation2, ETDeviceName, ETDeviceRef, ETDeviceStatus, and ETDeviceValue.

    Here's an example use case:
    I'd like to set up a group that includes a large number of interior dimmers. When sunset occurs, I'd like to turn on each dimmer to 10% if the dimmers is currently off, but not do anything if it is on. I'd envision being able to use "Set Group of Devices to Expression" to do this, where I'd select the "evaluate expression for each device" option and have an expression along the following lines:

    IF($ThisDeviceValue == 0, 10, $ThisDeviceValue)

    Where $ThisDeviceValue is the global variable I proposed that is analogous to ETDeviceValue

    This expression would then get evaluated individually for each device allowing a different value to be computed for each device in the group.

    Leave a comment:

Working...
X