View and Change Zigbee Device Settings

At a minimum I want to to view and change a zigbee device's temperature reporting settings: min time in seconds, max time in seconds, minimum temp change in C to report.

Does anything like this exist within or outside of Hubitat? Also if it must be done outside of Hubitat will it stick when the device re-pairs with Hubitat.

Wouldn't that be down to two things? The firmware of the device supporting this, and the driver having this too? I don't think there is a way otherwise to just go in and "turn a knob" behind the scenes.

Maybe it would help if you told which device it is (brand/model)?

1 Like

I have done something similar using ST to set the weather radio in my halo+ smoke alarm.
-Pair to HE
-don't unpair from HE, reset device and pair to ST
-SETUP IN ST required parameters
-delete device from ST, while searching in HE
-HE find previously paired device
-done

You developer folks may have other methods, but I can't code.

This driver must initially verify:

  1. The device is real (not virtual) and zigbee
  2. The device supports the temperature cluster, 0402 Page 286

Then It should be a simple parameter screen showing the current settings, allowing the settings to be changed, followed by a zigbee command setting the temperature reporting options. I would also like to be able control the battery's reporting settings.

I know what has to be done, however my zigbee hardware level command and control knowledge may not be up to the task

1 Like

Is a generic Zigbee device (DTH) settings controller available in ST?

Hmm, not that I'm aware of. Possibly markus's generic zigbee driver might work.
What's the device you have?

Looked at and tried it prior to posting. It does not appear to do what I want, however it may be a good starting point.

I want to fine tune a few different sensors with temperature reporting, including: motion, contact, and keypad sensors.

Something similar like in the Zigbee2MQTT ?

That looks exactly like what I want to do. It may be the path of least resistance, but it looks like it needs some additional hardware and software.

Any links for easing into Zigbee2MQTT appreciated.

Zigbee2mqtt will not be a solution, because it will involve pairing the devices to another Zigbee coordinator and then re-pairing back to HE, during which process any configurations done there will be lost. And Z2M runs on Home Assistant on another hardware platform (usually RaspberryPi ), etc..

@arnb I can do something similar as a HE driver, that will not require re-pairing of the Zigbee devices. Just temporarily change the device driver, configure the reporting and finally change the driver back to the driver that the device works with.

Hopefully, I can send you something to test this weekend,

2 Likes

what driver and device are you using?, many already have configurable temperature reporting preferences...

3 Likes

@arnb @kkossev

FWIW, even with zigbee2mqtt, just because the coordinator requests a configuration change in a device, doesn't mean the device respects that request.

I have multiple Konke temp/hum sensors paired to zigbee2mqtt, and have been unable to change settings in the PowerCfg cluster (batteryVoltage attribute). Well, I can change the settings - but they don't stick :grinning:

1 Like

That's correct, not all devices will automatically send a report, even if the reporting configuration command was accepted. I know at least one device (Moes TS0222) that will start to reboot/restart itself if the battery reporting was ever configured!

1 Like

I noticed that many system supplied drivers have time or temperature reporting options. Question: when setting to .25C what are the minimum time to reporting and maximum time to reporting parameters?

1 and 64,800 seconds

3 Likes

I would very much appreciate the temperature/time option control be added to the Centralite, IrisV2 and IrisV3 drivers.

can you be specific regarding the exact driver name?

1 Like

Centralite Keypad
Iris V2 Keypad
Iris V3 Keypad

When properly configured, even the cheapest temperature and humidity sensor can work very well ...

In the example above Sonoff SNZB-02 sensor was able to send temperature changes reports at a minimum interval of 10 seconds!

@arnb , although this experimental driver is not quite ready for publishing at the moment, can you give it a try? (link)

Manually change the Centralite Keypad driver to "Zigbee Reporting Configuration"

Then select the preferred settings in "Configure Temperature Reporting" and confirm the selected timings by pressing the same named button above the temperature configuration parameters list.

Then press the button named "Send Configuration To Device When Awake" button.
At this time the driver will be waiting for any Zigbee message to be received from the physical device, Probably, pressing any button on the Centralite keypad will make it 'awake' and be ready for accepting the configuration commands.

If this does not work for you (the "Waiting..." counter stays for a long time), try the 'Send Configuration To Device NOW' button, trying to awake the sleepy ZIgbee device (by pressing a button, or rapidly changing the temperature or humidity.. ).

If you see "Received Temperature Configuration command response..." in the Current States list, there is a good chance that the temperature reporting configuration was successful... Observe the device logs for the frequency of the temperature reporting. if it suits your needs, manually change the driver back to the one that is used with the device (Iris V2/3Keypad.. ).

Good luck!
(EDIT 11/27/2021 the code was moved to a new GitHub repository, the link in this post was updated to the main branch URL)

2 Likes