Info regarding zwave device discovery and configuration

Greetings,

I’d like to ask for information regarding the device discovery and configuration procedure performed by the zwave binding, as I think I miss the whole picture. Feel free to RTFM me and point to existing documentation, of course :wink:
What I currently don’t understand or have a vague understanding of is:

  1. at which point of the discovery/scan phase is the device fully recognized usually? From what I’ve gathered and if I’m not mistaken, identification is performed during scan and at Thing creation time. The recently resolved issue with inbox entries being write only should have mitigated the problems with scan results (still have to test it), but nonetheless some devices still require several interactions to be properly identified.
  2. after identification, when are configuration settings (including association groups) sent to the devices?
  3. regarding configuration settings and, specifically, association groups, is the controller (usually node_1_0) always enforced by the binding to be in the main association group (usually the first), or is this also a configuration read from the device database?

As soon as the device is discovered (eg included) it is added to the inbox. At this point we still don’t know the manufacturer etc.

During the initialisation of a device, the binding performs a discovery, and configuration phase. It requests information from the device first to find out information like the manufacturer and what device classes are supported. Once it knows this, the device is shown in the inbox with a ‘proper label’.

We then initialise some information like associations. Associations are read from the database. Configuration is never sent unless you manually configure the device.

Thank you very much for your answer.
is the “associations step” you described performed while the new device is still in the inbox?

Yes - it can be. It’s part of the protocol ‘section’ of the binding, so it’s decoupled from the ESH/OH2 layers and concepts. As such, it’s irrelevant if there’s a thing in the inbox, or a thing at all in the system.