Zwave Feature Needed : polling a zwave device from a rule

Hi,

As There are fast dev for OH2, I wanted to know where could I ask this feature. On OH2 or zwave binding.

It could be usefull when you wants to know if your zwave devices are functionnal. Example: someone try to use a jammer on your zwave sensor. As an alarm rule is on, 3 polls are done every minute on all listed devices. If a device don’t answer after 3 polls then do something.

Another example ( a real): my zwave device which command my pool pump is offline, if not an interactive poll in a rule, I can’t see if it’s working.

Gilles.

This is not something that will be supported in the zwave binding in OH2. It is not generally inline with the concepts of OH as the interaction with hardware should be kept within the binding.

It is already possible to do what you want by configuring the refresh_interval and then monitoring the info to see if the device goes DEAD. This will happen if the device doesn’t respond to a single poll - not 3.

Chris

See this thread here -

EDIT:

I’m stupid, I read the thread after.

If think this solution could be fine as my devices are online and not on battery.

Big thanks Chris.

Hi Chris,

My apologies for my late answer.

Thank you for this answer even if it’s not what I want to hear.

On Vera device, in lua rules we had the possibility to poll a device and wait for answer.

Not have the possibility to do that is more harder to me to be sure someone try to use a jammer.

It’s life.

Thank you.

Hi, Me again.

I used an item with:
String Check_prise_salon “Detecion prise salon: [%s]” {zwave=“81:command=INFO, item=DEAD”}

and it gave me: No converter found for item = Check_prise_salon, node = 81 endpoint = 0, ignoring event.

Is my item baddly configured ?

Thanks.

Gilles.

Hi Gilles,
Since DEAD returns a boolean, I suspect that you will need to use a ‘boolean’ item type (eg ON/OFF).

Cheers
Chris

Hi Chris,

I transform my item in a switch and effectively, no more error. But the behaviour isn’t what I expected. Perhaps I’m doing something wrong.

To sum up, I want to check some devices and if one goes dead, I will activate a rule.

Here is my item definition:

Switch Check_prise_salon “Detection prise salon: [%s]” { zwave=“81:command=INFO, item=DEAD, refresh_interval=20” }

and In my sitemap:
Switch item=Check_prise_salon

The problem is I can’t distinguish if the device is off or it is dead. As my switch stay off if it’s unpluged or not.

Cheers,

Gilles.

Hi Gilles
This should only return true if the item is actually Dead but I’ve not checked this myself.

I’m heading to Paris so will have a look on Wednesday when I get home.

Cheers
Chris

OK, when you can. Thank you.

P.S. I can do some tests when you need it.

Cheers,

Gilles.

Hi Chris,

I know you are very busy but Do you have look at this functionality ?

Cheers,

Gilles.

Sorry Gilles,
I just checked the code, and the DEAD info item should only return true if the device is considered DEAD or FAILED. If the device is just off, then it shouldn’t return true here (unless by ‘off’ you mean it’s completely powered off as in this case the controller will think it’s DEAD).

Cheers
Chris

Hi Chris,

It’s my turn to give you late answer ;0)

Sorry, but how I know the item return a true value ?

I setup my item like that:

Switch Check_prise_salon “Detection prise salon: [%s]” { zwave=“81:command=INFO, item=DEAD, refresh_interval=20” }

in my events I have:

Check_prise_salon state updated to OFF

I get an “OFF” value whereas my device is ON so it’s not cool.

I do some tests on a switchplug (fibaro) and I didn’t get any true value but just “OFF” if I unplugg the device (no power).

I bet, I’m doing something wrong.

May you tell me how to catch the true information.

Cheers,

Gilles.

true should equate to ON, and false should equate to OFF. So, if the device is DEAD, then the item should show ON, and if it’s ok, then it should show OFF.

I don’t use this, but looking through the code, this should be fine.

You need to remember that this item is not looking at the state of the device - it’s the state of the DEAD status.

When you did this, what did HABmin show? Did it show a red icon, or was it still ok? It might take some time for it to show DEAD - depending on polling etc.

Thank you Chris, you open my eyes !

My error was to check the item which as dead info and not polling the powerplug’s item itself.

So it’s perfectly working.

We are agree that I can’t check anything without a virtual item with dead information.

That’s mean, I have to create as many as virtual device I want to check.

Thank you again.

Gilles.

Me again :innocent:

I see that the dead information is sent every 5 seconds.

If problem on some devices which are checked, every five seconds information will be sent from many devices. That mean my server will get a certain load for CPU.

Is there a way to change this settings ?

No - this is currently fixed value for the INFO items.

Being as the goal is to not allow polling from the rules, something that I feel would be super beneficial from the binding then is the ability to poll shortly after a change. My problem case is with GE dimmers (and I think other dimmers have the same issue): When they change, they just report the start value and current value (i.e. dim from 0 to 6), and not the end value. It makes it very difficult to do some rules; I’m currently in a mess of logic to properly determine if they are turned “ON” or “OFF”. Sure, I can try and use refresh_interval, but I’d need to set it pretty low to be useful and I only need the data once, so it’s silly to flood the whole zwave queue for something that’s only needed once. Or perhaps a better solution is to build in a poll following SWITCH_MULTILEVEL commands.

I agree, this would be a sensible idea. Please feel free to raise an issue on the OH2 addons issue list in Github.

Done. https://github.com/openhab/openhab2-addons/issues/682

@chris, Are you aware of the RefreshType.REFRESH command, which is meant to allow exactly such a behavior? It might not be technically feasible to implement on all devices, but where it is possible, the bindings should support it.