-
Notifications
You must be signed in to change notification settings - Fork 3
Implement post-inclusion node setup orchestration #162
Copy link
Copy link
Open
Labels
Description
Per the Central Static Controller (CSC) role spec (§8.4.1), after including a node the controller MUST perform several setup steps. Currently the only post-inclusion step is an interview - none of the required network configuration happens.
Scope:
- After successful inclusion (extend Implement Node Add/Remove #17's
AddNodeflow), perform these steps in order:- Set Lifeline destination -
AssociationSet(groupId: 1, nodeIds: [controllerNodeId])to the new node's root device. If the node supports Multi Channel Association (Implement Multi Channel Association Command Class (0x8E v5) #140), use that instead. - Assign SIS return route - Call
AssignSucReturnRouteso the node can reach the SIS/controller. - Configure Wake Up (for battery nodes) - if the node supports
WakeUpCC and is a sleeping node type (PEN/RSEN/WOEEN), sendWakeUpIntervalSetwith the controller's NodeID as the destination and a reasonable interval (use the device's default or advertised min/max). - Interview - the existing interview flow (
GetNodeProtocolInfo→RequestNodeInfo→InterviewCCs)
- Set Lifeline destination -
- The setup must handle failures gracefully — if lifeline setup fails, still proceed with interview.
- For battery nodes, steps 1-3 must happen during the initial wake window after inclusion (before the node goes back to sleep).
Design notes: This logic should be a well-defined method on Controller (e.g., ConfigureNewNodeAsync) called after inclusion succeeds. The WakeUp configuration requires awareness of the node's role type, which comes from the GetNodeProtocolInfo response.
Depends on: #17 (Node Add/Remove), #161 (Association CC), #140 (Multi Channel Association - optional, fall back to basic Association)
Reactions are currently unavailable