Skip to content

Handle Device Reset Locally notifications #165

Description

@dfederm

Per spec (§8.2.4 + §3.2.14), when a device is factory-reset locally, it sends a `DeviceResetLocallyNotification to its Lifeline destinations. The controller MUST handle this by removing the node from its database.

Scope:

  • Implement DeviceResetLocallyCommandClass with [CommandClass(CommandClassId.DeviceResetLocally)]:
    • ProcessCommand override to handle the incoming Notification command
    • On receipt: log the event, raise a NodeReset event on the Node, then remove the node from the controller's node list
  • The removal should be graceful: mark the node as failed/removed, clean up any cached state
  • If persistence (Cache node info #21) is implemented, also clean up persisted data for the node
  • The notification from the node must be ACKed before removal (the node needs to know it was received)

Design notes: Use the pattern: process the command, raise an event, then asynchronously clean up (do we need a delay?).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions