ENPLDEPT
Flash
All docs
Sensmos Hub

Your node runs on the box you already have — no ESP32 needed.

One container on a Raspberry Pi, NAS or home server. It joins the network like a node, measures your link and opens the same encrypted tunnel to Home Assistant that a physical node does.

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

  1. Settings → Add-ons → Add-on store → ⋮ → Repositories → add https://github.com/sensmos-network/sensmos-hub.
  2. Install Sensmos Hub, fill in owner (your wallet address) and optionally pin, start it.
  3. The add-on log shows the node's id and the PIN.

Pairing and the HA panel

  1. 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.
  2. 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.
  3. 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):

filewhat
identity.jsonthe hub's key pair; delete it to get a new identity (a new node)
pairing.jsonpairing keys written by phones
pin.txtthe PIN, when you did not set one

Questions, straight answers

Does the hub earn GALU?

No. It has no radio, so it relays nothing and extends no coverage; rewards go to nodes that do. The hub exists for the tunnel, the measurements and, later, for storing your sensor data at home.

Can I run both a hub and an ESP32 node?

Yes. They are separate nodes on the same wallet. The hub is a good home for the tunnel when your ESP32 nodes sit on battery or far from Home Assistant.

Does the server see my Home Assistant traffic?

No. The tunnel is encrypted end to end with a key derived from the pairing key, which the phone writes onto the hub over your own LAN. The server forwards opaque frames and cannot open a tunnel on its own.

What does it cost?

A flat 0.5 GALU on a day you use the tunnel, like on a physical node. The hub itself is free. With an empty balance nothing is blocked.

Last updated: 2026-11-01