Zooz ZSE43 Driver request

Would you please add the Command Class: zwWakeupInterval (seconds) to the Preferences, so that it can be easily set to another value. FYI: The default is 43200 seconds (12 hours).

They might do it, but I doubt it'll happen soon (if at all)... You always can use the Basic Z-Wave Tool to set different parameter values for this or any other ZW device.

Out of curiosity, why are seeking to change that value?

Because, like so many Zooz devices, the battery life is too short. Since my network configuration rarely changes, I would like to make the wake-up interval very long to conserve battery life.

1 Like

Right on - that's understandable. I would only be worried if you were trying to shorten it, as that would be yet another hit on your battery (as you obviously know).

Ah, yes, Z-Wave 700: the first generation that's low-power enough where we can finally use smaller batteries, then so many manufacturers do and take us right back where we were before. :rofl:

This looks like it's setting the wake up interval via the corresponding command class, not a configuration parameter (typical for Z-Wave, but there are a few devices that do it the other way I've seen). I don't see anything in the Basic Z-Wave Tool that can help with that.

But since it's working driver, you could just add a method like this somewhere in that code:

String setWakeupInterval(Integer newInterval) {
   zwave.wakeUpV2.wakeUpIntervalSet(seconds: newInterval, nodeid: zwaveHubNodeId ?: 1).format()
}

plus this command definition to the metadata at the top:

command "setWakeupInterval", [[name:"newInterval*",type:"NUMBER", description:"Wake-up interval to set)"]]

Some drivers also set a "zwWakeUpInterval" data value (in Device Details at the bottom) to the reported interval, though this is not standard and AFAIK is not used or relied on anywhere except internal use by some drivers. But if you wanted to catch and set that too, maybe also add:

void zwaveEvent(hubitat.zwave.commands.wakeupv2.WakeUpIntervalReport cmd) {
   if (logEnable) log.debug "WakeUpIntervalReport: $cmd"
   updateDataValue("zwWakeupInterval", cmd.seconds)
}

Completely untested, except that last method that was taken from one of my drivers. :smiley: But something more or less like this should let you extend the Basic Z-Wave Tool to set the wakeup interval if you want.

Given that it's once a day and will go right back to sleep if the (real) driver tells it to because it doesn't have any data for it, I can't say this actually will help, by the way, but I guess it can't hurt...

2 Likes

I tried the Basic Z-Wave Tool noted above. But I am not sure if it worked.

I changed the Driver from Zooz ZSE43 to the Basic Z-Wave Tool. Hit the Command Class button. Scrolled down to the Data, and see the Wakeup Interval. Input the Wakeup Interval parameter into the Parameter Number field of the Driver, and set the Value to a much bigger number. Saved. Changed back to the original Zooz ZSE43 Driver.
It still shows the original Value for the Wakeup Interval. Don't know if I didn't do it correctly, or if it just needs to wakeup to accept the updated value.

That won't work--command class numbers are not parameter numbers. You'd need to add something to specifically set the wake up interval via the WakeUp command class, which the code I suggested above should (unless I made a typo somewhere--did not test this).

Ah, nuts - my apologies for the wild goose chase with the ZW Basic tool - I was thinking that interval was a parameter option, but I shoulda verified that myself first.

Robert - thanks for the assist with the code idea - hopefully something like that can work. And yeah, totally agree with your battery comment -- Zooz putting 2032s in their latest sensors isn't helping to move the ol' progress needle.

Not really understanding the distinction between Command Class and Data Value.

Does that mean the device (Zooz ZSE43) will not accept a direct change to the Command Class, and you must do it via the Data Value (zwWakeupInterval)?

The data value is not used at all. Most drivers set it to be polite or perhaps for their own internal use, but it is not used at the platform level or standardized (so not all drivers may do this), AFAIK. It is possible to actually have a different wakeup interval than what it may say here.

Command classes are, more or less, groups of related Z-Wave commands. You don't really need to know this to try the Basic Z-Wave Tool (which mostly works with the Configuration command class, setting or getting configuration parameter values) or my modification suggestions above (which allow working with the Wakeup command class--but again, not details you need to know to use it).

With User Developed Drivers, the code is always available on the web or Github. But where do I get the Hubitat basic Driver code so that I can attempt to add to it to add wakeup interval?

This not a built-in driver. The source code is available linked to in the post @hydro311 wrote above.

Sorry, I am looking for the Zooz ZSE43 Driver Code, not the Basic Z-Wave Tool code. Or, are you saying that the code you provided, above, should be added to the Basic Z-Wave Tool code?

I highly doubt hubitat will modify the in-box driver to make wakeup configurable - they tend to try and keep all their devices similar in functonality, and they didn't add this feature for anything else.

Could use this one chad made a long time ago, and modify it to your heart's content.

1 Like

Yes, the idea was to add this to the Basic Z-Wave Tool driver, as I mentioned; it could then be used for any Z-Wave device with this added functionality.

The built-in ZSE43 driver is not accessible, so to do otherwise, you'd have to start with something else, like the above.

1 Like

@dean contacted me and asked for a driver with the wakeup setting. I already had a partially complete driver but no device to test it with. Anyone with a ZSE43 can test this out if you want and let me know how it works.

I saw that another user driver is out there using the acceleration attribute due to app compatibility, so if this works I was thinking about adding a toggle so you can select if it will report as shock or acceleration.

You just set the setting in hours, save, then you will need to wake up the device so it can be set. If you enable debug logging you will see a confirmation when it is set, also the value in the data at the bottom will update (in seconds).

Z-Wave spec says this can be set up to around 4600 hours (in seconds), but I tested on another Zooz device and it maxed out at 24 hours so I made that the max. I chose to make the setting in hours so its easier to figure out, not sure when anyone would need 1s granularity on this?

hxxps://gist.github.com/jtp10181/d01a4de4145f0f08f6b20e20dda1b3dd

Test Link removed, driver added to HPM package:
-- [DRIVER] Zooz Sensors Advanced (ZSE11, ZSE18, ZSE40, ZSE41, ZSE42, ZSE43, ZSE44)

3 Likes

After configuring this driver and sending a wakeup I'm still showing 1 pending change, tried several times. My device is on 1.2 firmware.


Edit: Tried the driver with a second ZSE43, same results (1 pending change)

1 Like

I see in the changelog they removed Param 2 in firmware 1.4 which is the one it is having issues with, are you sure you are only on 1.2, it should actually be working on that FW. Either way, I will just remove param #2 from the settings and post a new version when I get a chance. The pending change wont hurt anything really, rest should still function.

1 Like


image

According to the zooz firmware page, 1.2 is the latest?

1 Like

Yeap, somehow I was on the ZSE42 changelog, the ZSE43 does not say anything about removing param 2 but they must have removed it in 1.2 as part of "optimized battery reporting"

2 Likes