Repository navigation
HomeNode Server
The HomeNode Server is the local home automation hub — the central node that runs on your own hardware inside your home network. It manages all connected devices, runs automations, and hosts the HomeNode Agent.
Nothing leaves your home. No cloud required.
HomeNode Server can operate in two Matter roles depending on the network configuration. These roles are not mutually exclusive — the server can act as both simultaneously for different device groups.
A Matter controller sends commands to Matter devices on the fabric. HomeNode Server acts as a controller when it is the primary controller on the network, or as a co-controller alongside other platforms (Apple Home, Google Home, Amazon Alexa).
Matter supports multiple controllers on the same fabric. HomeNode Server participates as one of them, handling automations and rules independently of other controllers.
Matter Fabric
├── HomeNode Server (controller — always-on automations)
├── Apple Home hub (controller — Siri / HomeKit UI)
└── Google Home (controller — optional)
│
└──► Matter Devices (lights, locks, sensors, …)
Primary controller is a fabric-level concept: the controller that manages fabric administration (adding/removing controllers, key management). Which one is primary depends on which first created the fabric or was assigned the admin role.
HomeNode Server acts as a Matter bridge when it exposes non-Matter devices (connected via MQTT, Zigbee, Z-Wave, BLE, Sonoff, Shelly, etc.) as virtual Matter devices on the fabric.
This allows any Matter controller — including Apple Home — to see and control devices that natively speak a different protocol, without those controllers needing to understand that protocol directly.
Non-Matter Devices HomeNode Server Matter Fabric
MQTT sensor ──► ──► appears as Matter sensor
Zigbee bulb ──► Matter Bridge ──► appears as Matter light
Shelly switch ──► ──► appears as Matter switch
| Scenario | Server Role |
|---|---|
| No other Matter controller present | Primary controller |
| Apple Home / Google Home is primary | Co-controller (automations run locally, independently) |
| Bridging non-Matter devices | Bridge (always, regardless of controller setup) |
| Both scenarios at once | Controller + Bridge simultaneously |
- Connects to IoT devices via Matter, Thread, MQTT, CoAP, Zigbee, Z-Wave, BLE, and more
- Acts as a Matter bridge for non-Matter devices
- Handles device discovery
- Manages firmware updates
- Rule engine for conditional automations ("if motion detected after 22:00, turn on hallway light")
- Local scheduler (time-based automations without cloud dependency)
- Scene management
- Home / room / zone management
- Device grouping
- Hosts the HomeNode Agent (local LLM)
- Health monitoring of all connected nodes
- Presence detection and proximity triggers
- Home presence simulation (anti-burglary lighting patterns)
- Audit trail and user log
- Face and animal recognition (local, on-device)
- Exposes a local REST / MQTT API consumed by mHomeNode
- Provides the HomeNode Agent with home state context
- Routes events to the Agent for Nostr / mChat notification delivery
| Repository | Description |
|---|---|
| zehrer/HomeNode | Main repo — sub-projects and documentation |
| zehrer/HomeNodeServer | Server runtime |
- Architecture — how the server fits in the full system
- mHomeNode — iOS app that acts as Matter commissioner
- HomeNode Agent — the LLM that runs on the server
- Protocols — Matter, Thread, MQTT, bridging details
- Use Cases — full feature list
(c) Stephan Zehrer 2025