What you need
- Docker with Compose on a machine that is always on and in the same LAN as Home Assistant, or Home Assistant OS / Supervised for the add-on.
- The Sensmos app with a wallet. The hub is registered to the wallet address you give it.
Docker
git clone https://github.com/sensmos-network/sensmos-hub.git
cd sensmos-hub
cp .env.example .env # put your wallet address in HUB_OWNER
docker compose up -d
docker compose logs -f # shows the device_id and the PIN
The container uses host networking: the app reaches the hub on port 80 (found by mDNS as sensmos-<id>.local, like an ESP32 node) for pairing, the tunnel reaches your LAN, and ping measures the real home link.
After the first start the hub appears in the app on the node list of that wallet.
Home Assistant add-on
- Settings → Add-ons → Add-on store → ⋮ → Repositories → add
https://github.com/sensmos-network/sensmos-hub. - Install Sensmos Hub, fill in owner (your wallet address) and optionally pin, start it.
- The add-on log shows the node's id and the PIN.
Pairing and the HA panel
- In the app open the hub → Settings → Remote access → Pair while the phone is on the same Wi-Fi. Enter the PIN. The app writes a pairing key onto the hub; the key never leaves your LAN.
- On the node card add the HA panel integration and point it at Home Assistant's LAN address, for example
192.168.1.20:8123. With the add-on, that is the machine the add-on runs on. - From now on the panel opens from anywhere, through the hub. Remote access explains the tunnel in detail; the rules are the same: private addresses only, no port forwarding, owner only.
What it does today
- Registers to your wallet and keeps one outgoing, encrypted connection to the network, like a node.
- Measures your link to anchors (ping, TCP, HTTP, DNS); the results feed the same map and link reports as other nodes.
- Pairs with up to four phones and opens the tunnel v2 to private addresses in your LAN.
Not yet: LoRa radio over USB, a local MQTT broker and data buffer, local sensor history, offline map. Those are the next steps on the roadmap.
Files
Everything the hub needs lives in its data folder (./data with Docker, the add-on's storage with Home Assistant):
| file | what |
|---|---|
identity.json | the hub's key pair; delete it to get a new identity (a new node) |
pairing.json | pairing keys written by phones |
pin.txt | the PIN, when you did not set one |