Skip to content

Implement post-inclusion node setup orchestration #162

@dfederm

Description

@dfederm

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 AddNode flow), perform these steps in order:
    1. 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.
    2. Assign SIS return route - Call AssignSucReturnRoute so the node can reach the SIS/controller.
    3. Configure Wake Up (for battery nodes) - if the node supports WakeUp CC and is a sleeping node type (PEN/RSEN/WOEEN), send WakeUpIntervalSet with the controller's NodeID as the destination and a reasonable interval (use the device's default or advertised min/max).
    4. Interview - the existing interview flow (GetNodeProtocolInfoRequestNodeInfoInterviewCCs)
  • 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)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions