Ecolink Zwave Flood Senor

Does anyone know of or can I request an Ecolink zwave flood sensor driver?

There is one from 2018 and you can use the generic one, but it lacks a lot. A refresh button and temperature reading would rock.

If the device is battery powered a refresh button is useless..

2 Likes

I thought refresh would pull the latest temp, battery, and condition. If not maybe polling? It goes days without actually updating any info. It’s a leak sensor so I run a check on it every 24 hours.

Coincidentally, I have four of these on my desk right now.

@bcopeland --- looks like these devices use the Wake-Up-Notification Command Class, and can be set between 1 hour, and 1 week, with interval steps of up to 200 seconds (per the device's manual). I'm assuming a device wake-up sends a battery report, etc... I haven't checked out any other info on them, but might be worth checking into... Might be a job for the basic z-wave utility.

1 Like

Nope.

Normal (non-flirs) battery devices only accept commands when they wakeup. Hitting refresh 100x on the driver page would do nothing until the device wakes up. There really shouldn't be a refresh button on a battery device because of that as it doesn't work like one might expect, and is misleading.

As mentioned above, usually the wakeup interval is configurable on the device. Faster wakeup=lower battery life though.

You can't poll (non-flirs) battery devices either. They won't hear the request to poll/re-send data until they wake up.

And if you try to send the "get" commands anyway while it's asleep, it actually creates a bunch of zwave messaging/traffic (since the end device won't respond the hub sends even more messages trying to find it again) that can be harmful to the rest of the mesh traffic if done en masse or too frequently.

1 Like

Depends on the device.

A lot of drivers I've been looking at lately do a battery get command on the wakeup notification event to ensure the battery gets polled.

Some devices just send battery updates automatically on wake up or on another schedule though.

For example, the Haozee multisensor device I published a driver for yesterday sends NO sensor data during its wakeup time. All motion/temp/lux/humidity are sent on delta reporting intervals outside of the wakeup period.

For something like a leak sensor that should update it's main sensor only on leak events, I would think the battery value should update at the wakeup interval, which would then update the activity time for the device and give you a value so you can feel comfortable the device is "alive".

If it reports temperature, that would be a good value to get periodically as well for an "it's alive" check.

I didn't pull out the manual for that device to see what can be configured.

Thanks for the information. I still think it would be nice for the driver to allow you to adjust the wakeup period. It does say it has freeze protection, but it actually looks like it doesn't pull the temperature. I'm not sure how that exactly works. Below I listed the driver I'm using, but it think it's exactly the same as the generic driver.

https://raw.githubusercontent.com/jonathanm8/hubitat/main/ecolinkflood

Just keep in mind changing the wake up time does not necessarily mean it will report more/differently.

On many devices the wake up is basically the device asking the hub "got any commands for me"? If the driver/hub doesn't then it just goes back to sleep.

So often the driver would need to send some commands during the wakeup period for it to report any differently.

1 Like

Probably not.

That driver does a battery refresh in wakeup, but only after a long reporting interval. A lot of drivers just update battery every wakeup, which I prefer.

Oh, and I would make the battery events state changes so that they always show up in the events regardless if the battery % has changed or not.

Thank makes sense. I could say get battery status once a day then when it checks in it will send that info. Then I know it's still alive.

The problem is I just installed it and it went 3 days to check in. That had me worried it wasn't working.

Here is the manual.

How do you know it went 3 days to check in? What do you mean by check in?

In any case, change this 53 to something smaller (like 23 or 24) and it would report battery more often.

if (!state.lastbat || (new Date().time) - state.lastbat > 53*60*60*1000)

Change the battery report event to be a state change (like the low battery event is right above it in the code) and it will log an event every time.

1 Like

nothing reported in the events for 3 days.

1 Like

Gotcha. make the changes I mentioned above and it should report battery events daily.

Assuming the wakeup events are happening at least daily (which they likely are).

Thanks a ton! I made the change. Hopefully that helps.

No worries. And now that I'm in front of a laptop, the changes should be:

if (!state.lastbat || (new Date().time) - state.lastbat > 53*60*60*1000) {

to something like

if (!state.lastbat || (new Date().time) - state.lastbat > 23*60*60*1000) {

and for battery report

 } else {
                                map.value = cmd.batteryLevel
                }

to

 } else {
                                map.value = cmd.batteryLevel
                                map.isStateChange = true
                }

Thanks! I made the battery report change as well.

Will be interesting to see if that does what you need over the next few days. Hopefully it will!

Thanks a ton Jason! That solved the issue!