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
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
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
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!