- A new device powers on in factory state and broadcasts a DISCOVER frame with its UID.
- The Room Controller validates the HMAC and replies with an ASSIGN frame containing RoomID and NodeID.
- The device accepts the assignment and begins sending HEARTBEAT and TELEMETRY frames under its NodeID.
- The Room Controller reports the new mapping upstream to the Main Controller.
- The Main Controller logs the device in the directory and exposes it to external integrations.
- One Main Controller.
- Backbone bus with a few Room Controllers.
- Each Room Controller powers a small number of sensors and switches via courtesy 24 V.
- One Main Controller and one Backup Controller.
- Multiple Room Controllers on different floors.
- High-power devices (outlets, LED strips) use local power.
- Groups and scenes distribute across rooms.
- HabitatCAN backbone covers the main house.
- Remote outbuildings or gates bridged via long-run CAN transceivers or secure wireless links.
- Remote Room Controllers manage their own devices locally but sync scenes with the Main Controller.
- Group command:
ROOM12_LIGHTS → dimmer_set 40%. - Group command:
ROOM12_BLINDS → relay_set closed. - Group command:
ROOM12_OUTLETS → off.
Encoded as a series of GROUP frames, distributed by the Main Controller and cached in the Room Controller for local replay.
- Soft Reset: Restarts device without clearing configuration.
- Factory Reset: Wipes keys and configuration, reverts to UID-only mode.
- Diagnostics: Reports voltage, temperature, error counters, and firmware version.
- Safe Mode: Disables actuators, accepts only firmware and reset commands.
Up: README