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
    ignore what I just said, it won't work in exisitng events, so it's better to recreate it from scratch, and then update your events

    Leave a comment:


  • spud
    replied
    Originally posted by The Profit View Post
    Hello Spud,
    Is it possible to change the type of an existing Device Group from Static to Dynamic or is it best to delete the existing Static device group and recreate it from scratch?


    Sent from my iPad using Tapatalk
    yes it's possible to change the type of an existing group from static to dynamic, internally it will delete the static group and recreate a dynamic one with the same name.

    Leave a comment:


  • The Profit
    replied
    Hello Spud,
    Is it possible to change the type of an existing Device Group from Static to Dynamic or is it best to delete the existing Static device group and recreate it from scratch?


    Sent from my iPad using Tapatalk

    Leave a comment:


  • spud
    replied
    In version 3.0.0.57 available in the beta section of the updater, I have added "dynamic groups". A dynamic group is a group of devices based on rules. You can define new dynamic groups from the config page.

    For example the group on the screenshot below will include all the devices that match the following conditions
    name contains "Light" AND room is "Living Room" AND type starts with "UPB"
    OR
    name contains "Light" AND room is "Kitchen"
    Click image for larger version

Name:	dyngroup.png
Views:	417
Size:	45.0 KB
ID:	1288180

    To know which devices are currently included in a dynamic group you can hover your mouse pointer over the icon next to the Edit button, and you will see a tooltip with the list of devices.

    Click image for larger version

Name:	dyngroup2.png
Views:	387
Size:	22.6 KB
ID:	1288181

    Once a dynamic group is defined you can use it in Triggers/Conditions/Actions exactly like with static groups.

    Warning: The old way of defining groups based on name/location/type within triggers is now deprecated and will be removed in a future version.

    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
    spud There are two more items I'd like to add to the list I posted at #454, above, for your consideration. As a matter of personal preference, of the items I've suggested, I'd rank #5 and #4 as my "top two" items.

    5. For the "EasyTrigger: Set Group of Devices to Expression" action, I'd like the ability to do some simple conditional logic processing where you can evaluate some simple "If" logic and do something unique for each group member. To implement this, I propose two enhancements to the "EasyTrigger: Set Group of Devices to Expression" action: (a) for the expression part to be evaluated individually for each device in the group -- perhaps as an option; and (b) add variables which would hold the key values for the current device in the group as the expression part is evaluated for that device.
    • These variables would parallel the global variables you use when an Easy Trigger trigger occurs. For sake of example, let's call them: ThisDeviceValue, ThisDeviceStatus, ThisDeviceRef, ThisDeviceName, ThisDeviceLocation1, ThisDeviceLocation2. The key here is that these variables change for each device in the group as the group expression part of the action is evaluated for that device. I can also envision some cases where a "Device Type" variable would be useful (both here and as part of the Global variables).
    • An example use case would be to set a group of devices, but to be able to use each device's current value in an "IF" expression. For example, 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) ".

    6. For the existing global trigger variables etDeviceLocation1, etDeviceLocation2, etDeviceName, etDeviceRef, etDeviceStatus, and etDeviceValue it occurs to me that a race condition might occur if (1) an event triggers that uses these variables and in the action part you have a "wait" action or other delay before these variables are acted on., and (2) during that delay, another event triggers that changes the variables before they are acted on by the first event. With this in mind, I propose that these variables have a unique instance for each event -- i.e., when the event triggers, a copy of the value of these variables is made for the current event instance and that copy is used for any of that event's actions. Thus, if a second event triggered while the first event was still processing its actions, the first event would still use the values that existed at its moment of triggering.

    Leave a comment:


  • Guest
    Guest replied
    Hi Spud,

    Would it be possible to add this as a condition too?

    But just add the condition: ''This condition [ ] is true'' ( without specifying any device, and without the old/new variable )

    thanks

    Attached Files

    Leave a comment:


  • ZoRaC
    replied
    Any chance to expand the “any device in this group”-triggers to have a “value not changed for exactly x min”?

    Use case: get an alert if any of my temperature sensors stops reporting for some reason. I use them for heat-control, so it’s important to know if any of them stops reporting.

    Leave a comment:


  • mikee123
    replied
    Somehow I missed that one., Perfect. No idea why I didn't see it

    Leave a comment:


  • 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:

Working...
X