I am very new to all of this, so please excuse any errors in terminology…
I am trying to improve some community created DTHs for ZigBee devices (various Xiaomi sensors, to be precise) and presently I’m focusing on the configure()
and refresh() function code.
I am trying to figure out what is the best / correct code to set up bindings (if necessary), configure attribute reporting, and anything else necessary under configure()
and refresh()
. Unfortunately, searching the forums and looking at the SmartThings Developer documentation creates a lot of confusion, because in the forums all code methods, past and present, are discussed, and there are gaps, errors, and inconsistencies in the developer documentation pages.
For example, this thread from late 2015 discusses changes in what can be used for configure()
, suggesting that xcl global send-me-a-report
has been depreciated and that zigbee.configSetup()
can be used instead (or even more specific calls for certain cluster/attributes can be used, like onOffConfig()
).
But looking at later posts, developer documentation, and the current crop of ZigBee DTHs on the SmartThingsPublic GitHub repository, I see that xcl global send-me-a-report
and zigbee.configSetup()
seem to have been supplanted by zigbee.configureReporting()
paired along with zigbee.readAttribute()
- with the readAttribute
call needed for configuring reporting on some but not all commonly used device attributes as explained here.
Also, I notice most of the newest revisions of ZigBee DTHs aren’t using zdo bind
in configure()
or st rattr
in refresh()
anymore either.
So…. now, in 2018, what is the appropriate (best?) way to set up configure()
and refresh() in a ZigBee DTH?
Thanks in advance!