Announcement
Collapse
No announcement yet.
Invalid / Error state check in EasyTrigger
Collapse
X
-
Daveyboy. Now I understand. Thanks. I never realized the Invalid / Error state referred to a separate flag -- I always though it was one of the enumerated Status Graphics states. Thanks for explaining.
-
Yes indeed. There is a separate flag set by HS DeviceInvalidValue(xxx) - completely separate to the device values and the corresponding Status Graphics settings.
My understanding is this value is set when a Z wave device is sent a command but HS doesn't receive a confirmation response from the device (due to sleep, timeout, congestion etc..etc). The value in HS remains the same as sparkman mentions above and would only change to the new value if a response is received from the device (99% of the time I hasten to add). HS then sets the DeviceInvalidValue(xxx) flag which incidentally can be search for using Jon00's DeviceViewer app.
My request is how/if EasyTrigger could catch this hidden field as a Group based trigger in order that an action can be fired off to fix the issue. As mentioned in the OP native HS can do this, but it has to be configured for EVERY device, which is a ball ache.
Leave a comment:
-
Originally posted by sparkman View Post
Unfortunately z-wave devices that go to the Unknown state, do not have a special value associated with that "status". The device value/status will stay at whatever it was already. I've asked HS for this as an enhancement, but has not been implemented and don't believe there are plans to do so.
So it seems the technique I outlined may work for at least some categories of devices. Or did I miss something in the problem?
Leave a comment:
-
Originally posted by jvm View PostI think that what you are looking for can be achieved with existing Easy Trigger functionality, though it may not have been obvious. The "error state" is usually just a single numeric value (or possibly a range of values) which you can find from the device's "Status Graphics" tab. What's missing is that Easy Trigger doesn't let you pick the value by the label shown on the Status Graphics page -- you have to enter the actual error value.
So, let's say the Status Graphics tab shows that the error state for your device is the value 254. All you need to do is use Easy Trigger's "Any device's value in this group changes and becomes..." function and use the number "254".
Leave a comment:
-
Daveyboy. I think that what you are looking for can be achieved with existing Easy Trigger functionality, though it may not have been obvious. The "error state" is usually just a single numeric value (or possibly a range of values) which you can find from the device's "Status Graphics" tab. What's missing is that Easy Trigger doesn't let you pick the value by the label shown on the Status Graphics page -- you have to enter the actual error value.
So, let's say the Status Graphics tab shows that the error state for your device is the value 254. All you need to do is use Easy Trigger's "Any device's value in this group changes and becomes..." function and use the number "254".
On the other hand, if your device's error is represented by a range, let's say 100-254, then you would use Easy Trigger's "Any device's value in this group had its value set and expression is true" and use an expression like: ($NEWVALUE > 99) || ($NEWVALUE < 255).
I think this gets you want you want for the detection part.
The more difficult part is to do the poll on the correct device. There you will need to use a script to do the polling and you will use the Easy Trigger global variables ETDeviceRef, ETDeviceName, ETDEviceLocation1, ETDeviceLocation2, ETDeviceValue and ETDeviceStatus to poll the device that caused the trigger. The use of these variables is further explained in the User Guide at Post #5, here: https://forums.homeseer.com/forum/ul...175#post864175
So, in your Actions section you would use the "Run a Script or Script Command" function, check "Execute immediate script command" and use a script to act on ETDeviceRef. I think the following script works for Z-Wave devices:
&nhs.PluginFunction("Z-Wave", "", "PollDevice", new Object(){hs.GetVar("etdeviceref")} )
If the number of devices in the group isn't too large and you want to avoid scripting (or you have something that isn't Z-Wave and you can't figure out the script) you could also just do individual polls to all the devices whenever any one of them is put into an error state. Polling isn't that "expensive" in terms of processing time and this should be a rare occurrence anyway.
Does this solve the problem?
Leave a comment:
-
Invalid / Error state check in EasyTrigger
Hi,
Within the regular HS Event check there is the facility to trigger an event when a device has an Invalid/Error flag set to true. This typically gets set by the system when a device has not responded to a request in a timely manner, a poll request to the child device fixes it, or a resend.
The problem with this is that it is 'per device' so I was thinking if there is a way of using EasyTrigger's 'member of group' facility to trigger on the same Invalid/Error flag instead of just the value. Then there would be a single event using EasyTrigger instead of potentially hundreds.
Hidden flag is &hs.DeviceInvalidValue(xxx)
Thanks in advance,
DavidTags: None
Leave a comment: