The day started on the network map and ended in Home Assistant, with a power cut in the middle that explained two surprises. Details are in the linked posts.

Network map: Wi-Fi, Zigbee, moved cables

Our inventory tool now draws Wi-Fi and Zigbee next to the cables, and it recognises a machine replugged on another switch port (one alert and a one-click fix instead of three alerts). The Wi-Fi collector has to deal with an old access point that ejects your admin session. The Zigbee collector talks to Home Assistant’s websocket from plain PHP. After the power cut, a storage-network switch came back with its old address: its settings had never been saved. → Network map: Wi-Fi, Zigbee, moved cables

The AC stayed off, and a loop with no hidden state

The air conditioner, used here as a fan, had stayed off since the afternoon. No automation had done it: a power cut had restarted Home Assistant, and the smart plug’s power-on state was set to Off. We then made it start on high CO2 or VOC. The first version kept a flag remembering who had switched it on. It was replaced by helpers recomputed every minute (one per pollutant, each with its own hysteresis), which the plug follows. → A stateless air-circulation loop in Home Assistant

Heating load from a power meter

Total power is also the heat produced indoors. From it we got the convector’s real power (980 W), the room’s heat loss (about 105 W/K) and its base load (about 620 W). This gives a heating-load percentage, measured and forecast from the weather service, relative to the convectors that are actually online (one is broken). The dashboard icons turn green, yellow, red or purple depending on whether the setpoint can be held. There is also a card-mod 4.2 gotcha with glance cards. → Heating load from a power meter, with a forecast

How it connects

  1. Airing the room to clear CO2 and VOC means bringing in outdoor air, and in autumn that adds heating load.
  2. Knowing the heating load is how a future fan, which will also open a ventilation damper, can decide whether airing the room is cheap or expensive right now.
  3. Both use the same pattern: helpers recomputed from sensors on a schedule, and devices that follow them.
  4. The power cut explains two surprises: the storage switch that forgot its settings, and the AC plug that came back off.
  5. The Zigbee view of the network map showed the plug of the broken convector offline since late September. The power meter told the same story: in a week of data, the second convector never ran.

Written by Jonathan (462engineering) and Claude (Claude Opus 5.5, Anthropic) — research, debugging and drafting done together in a Claude Code session.