ESPHome monitoring with Topologix
Infrastructure & Networking
Cheap facility sensors — ESP32 / ESP8266 boards flashed with ESPHome — read directly over ESPHome’s own native API, with no Home Assistant and no MQTT broker. A proxy on the sensors’ network holds one connection per device, the device pushes every change, and temperature, humidity, water-leak, door, smoke / CO, motion, power, voltage, airflow and battery entities land on the shared environment card.
Requirements
- ESPHome nodes with the
api:component (the default). Setapi: encryption: key:in the YAML — the 32-byte base64 key is entered per device and sealed on the server; a node without a key is read in plaintext. The deprecatedapi: password:is not supported. - A proxy agent on the devices’ network (TCP 6053 to each node). ESPHome sources must run on a proxy, and it must be a release that speaks the native API — the form shows a banner when the picked proxy is older.
- Optional fallback: a node whose API is disabled or full can be read through
web_server:(port 80, the event stream plus REST) — withoutauth:, which is not supported.
1 · Set up the integration
- Open the Integrations pageClick Integrations in the toolbar and pick ESPHome from the catalogue.
- Pick the proxy and saveChoose the Default proxy on the sensors’ network and click Create; the device list appears when you re-open the integration.
- Add the devicesDiscover (mDNS) lists the nodes on the proxy’s segment (mDNS does not cross VLANs); Use one, or type an address under Add a device, paste its API encryption key, and click Add + test — the proxy connects at once and reports the ESPHome version and the sensor count. Rename a device inline; Save key / Clear key change its key; Remove drops the device and its key.
Target on a private network? Route it through a proxy agent. Proxy agents run inside your network — behind NAT, on a management VLAN, in an air-gapped segment — and reach targets the Topologix server can't. The agent polls the server every 15 seconds for its assignments, runs the checks locally, and pushes results back every 5 seconds, so no inbound firewall rules are ever needed. Set a default proxy on the integration; every metric source can override it. If a proxy goes offline, its sources are marked stale within ~90 seconds and the last known values stay visible.
2 · Add it to a flow
- Select the nodeClick the node, open Metrics, then + Add and choose the ESPHome integration.
- Pick the device and its sensorsChoose the device, then Discover sensors. Tick the readings to chart; each ticked numeric reading takes a low and a high alert threshold (empty = off). Leaving none ticked tracks them all.
- SaveSet the interval and click Add Source. The card headlines max temperature and humidity, banners leaks and smoke in red, shows doors and motion, and tracks the lowest battery.
Live canvas screenshots for this integration require a real ESPHome environment, so this guide shows the configuration screens only — the flow steps above work exactly like every other integration.
Good to know
- Categories come from each entity’s
device_class(temperature in °F is converted to °C), else from its unit and name. Leak, smoke, contact and motion are binary entities only — a numeric water-meter or soil-moisture reading never reads as a leak. - A device unreachable for more than three source intervals turns the source red; a wrong key, a plaintext / encrypted mismatch or a different node answering at the address (its DHCP lease moved) is reported on the next poll.
- An ESPHome node serves about three API clients at once; monitoring holds one of them for as long as a source reads the device, so Home Assistant and the dashboard’s log view still fit.
- Leaks and smoke / CO alarms, Critical sensors and a battery under 20% alert without any threshold.
More Infrastructure & Networking integrations
See it on your own infrastructure
Book a demo and we will walk you through Topologix with your systems in mind: on our cloud, or self-hosted in your own network.