A SmartStart-enabled controller maintains a Provisioning List - an in-memory collection of devices expected to join the network, keyed by DSK. Each entry contains the DSK, requested security classes, bootstrapping mode, inclusion status, and optional product metadata.
Scope:
ProvisioningList class in ZWave project:
Add(ProvisioningEntry) / Remove(DSK) / Get(DSK) / GetAll()
ProvisioningEntry record: DSK, requested security classes, bootstrapping mode (SmartStart / S2 only / ZWLR SmartStart), inclusion status (Pending / Active / Inactive / Included), product type/ID, name, location
- Lookup by NWI HomeID (for matching incoming SmartStart Prime commands)
- Thread-safe for concurrent access
- Persistence interface:
IProvisioningListStore with a file-backed default implementation (JSON or similar) - the list must survive restarts
- Expose on Controller:
Controller.ProvisioningList property
- Public API:
Controller.ProvisionSmartStartNode(entry), Controller.UnprovisionSmartStartNode(dsk)
- Events:
ProvisioningEntryAdded, ProvisioningEntryRemoved, ProvisioningEntryStatusChanged
Design notes: A dedicated class with IProvisioningListStore for persistence is clean - it separates concerns and makes the
list testable without a full driver.
Depends on: #157 (DSK utilities)
A SmartStart-enabled controller maintains a Provisioning List - an in-memory collection of devices expected to join the network, keyed by DSK. Each entry contains the DSK, requested security classes, bootstrapping mode, inclusion status, and optional product metadata.
Scope:
ProvisioningListclass inZWaveproject:Add(ProvisioningEntry)/Remove(DSK)/Get(DSK)/GetAll()ProvisioningEntryrecord: DSK, requested security classes, bootstrapping mode (SmartStart / S2 only / ZWLR SmartStart), inclusion status (Pending / Active / Inactive / Included), product type/ID, name, locationIProvisioningListStorewith a file-backed default implementation (JSON or similar) - the list must survive restartsController.ProvisioningListpropertyController.ProvisionSmartStartNode(entry),Controller.UnprovisionSmartStartNode(dsk)ProvisioningEntryAdded,ProvisioningEntryRemoved,ProvisioningEntryStatusChangedDesign notes: A dedicated class with
IProvisioningListStorefor persistence is clean - it separates concerns and makes thelist testable without a full driver.
Depends on: #157 (DSK utilities)