01The Backbone
Home Assistant on the hub · one radio · everything else clicks in
Home Assistant (Container) on kara + Mosquitto MQTT + Zigbee2MQTT,
with an SMLIGHT SLZB-06M PoE Zigbee coordinator (~$45). A network-attached
coordinator means no USB passthrough on the shared box — HA stays a plain Docker container,
and the radio mounts wherever coverage is best, not where the server sits.
- Namespace discipline on the shared hub: own compose project, own Postgres database + role, resource limits on every container. HA alone gets
network_mode: host(Sonos/ESPHome discovery needs it); MQTT and Z2M stay on a bridge network. Ports to claim: 8123 (HA), 1883/9001 (MQTT), 8080 (Z2M) — all free per the current port map. - Zigbee2MQTT over ZHA: it runs as its own process, so a busy hub (an Ollama job, an n8n run) can't stall the Zigbee mesh.
- Thread/Matter: not yet. Watch it for smoke/CO alarms specifically (Heiman and Sensereo joined Works-with-HA in 2026) — skip it everywhere else for now.
⚠ The hub was unreachable during tonight's LAN sweep (no ping at 10.0.0.144, no Tailscale). Step zero of this whole plan is literally: check on kara.
02Climate, East Wing: ecobee
Already owned · installing soon · better news than expected
The old bad news — ecobee closed new developer-API signups in 2024 — stopped mattering in March 2026: Home Assistant core 2026.3 dropped the developer-key requirement, and the stock ecobee integration now signs in with just the ecobee username/password. And for genuinely local, cloud-free control, HA's HomeKit Controller pairs directly with the thermostat (use the pairing code from the ecobee app, not the sticker).
Run both paths at once (they don't conflict): HomeKit for local, low-latency control and the SmartSensor's per-room temperature + occupancy; the cloud integration for the extras HomeKit omits (equipment-running sensors, humidifier/ventilator control, scripted holds). The nursery SmartSensor's readings can reach the Noctling dashboard without ever touching ecobee's cloud.
- HomeKit quirk: the thermostat's "current temperature" over HomeKit is ecobee's blended average, not the discrete wall-unit reading. Individual SmartSensor temps come through cleanly.
- SmartSensor talks 915MHz proprietary RF to the thermostat only — it will never pair with HA directly, and that's fine.
03Climate, West Wing: The Mini-Split
220/240V, as specified · sized honestly · controllable without anyone's cloud
| West side is… | Cooling | Recommend |
|---|---|---|
| ~500 sq ft | 9–12k BTU | 12k single-zone — don't oversize; it ruins dehumidification |
| ~800 sq ft | 15–18k BTU | 18k single-zone — the sweet spot of the 230V lineup |
| ~1200 sq ft | 21–24k BTU | 24k single-zone, or 12k+12k two-zone if it's really two rooms |
Mitsubishi H2i "Hyper-Heat" (MSZ-FS/FH class, 18k, 208/230V — roughly $3.2–4k for the system), then a ~$30 ESP32 board on the head unit's CN105 service connector running MitsubishiCN105ESPHome. That mod is the most mature local-control path in the entire mini-split world: a native climate entity in HA, zero cloud, and it even exposes readings the Kumo app hides. Hyper-Heat holds rated heat to −13°F — real Kansas City winter insurance.
Senville Aura 24k (208/230V, typically under $2k) + the SLWF-01 Pro ESPHome WiFi dongle (a drop-in replacement for its stock module). Midea-family protocol, genuinely local after setup. Less pedigree, more BTU per dollar.
- Skipped: Gree Sapphire (great value, but its HA integration has a live, unresolved breakage as of July 2026) and MrCool DIY (easiest install thanks to pre-charged linesets, weakest local-control story — its app is cloud-only).
- Electrical reality (Sugar Creek, self-install): 18k class wants a 20A/240V circuit on 10AWG; 24k class 25–35A per nameplate — panel has confirmed headroom. Outdoor disconnect + weatherproof whip at the condenser regardless (good practice and every manufacturer requires it). No permit per the city, no electrician — the DIY-relevant picks rise accordingly: MrCool's pre-charged linesets deserve a second look if local control is solved with an ESPHome dongle mod, though the Mitsubishi + CN105 path is still the better machine.
- The room is a weird split — priority is cooling the bigger portion. Head-unit placement should favor the big section's long wall; if the smaller section bakes, a $30 register fan or a second small head (multi-zone) is the escalation path. Final sizing waits on the square footage.
- This house, specifically: county records say 1955 single-story, 1,697 sqft finished. Unless the west side is more than half the house, the honest sizing lands at 9–12k BTU — with 1955-era insulation as the argument for rounding up, not doubling. A 12k in the 230V lineup exists in both the Mitsubishi and Senville families; don't buy the 18k reflexively.
- Buying gotcha: Mitsubishi model numbers churn — FS18NA is already flagged discontinued at several resellers. Confirm the current-gen H2i model and its CN105 compatibility at purchase time, and judge heating by the capacity curve at 0–10°F, not the marketing rating.
04Weather
Tornado country deserves local data
WeatherFlow Tempest — $349, no subscription. The only station in its class with a native local feed: its hub multicasts full readings over the LAN every ~3 seconds via UDP, and HA has an official integration that drinks straight from it. Built-in lightning detection (best in class, ~25 mile range), sonic anemometer, zero moving parts to die in hail. It keeps reporting when the internet is down — which in this county is exactly when you want it.
- Known flaw, accepted: the haptic rain gauge under-reports violent downpours by 20–30%. Fine for cook planning and trends; don't bill insurance off it.
- Value alt: Ecowitt Wittboy GW2001 bundle (~$200) — the local-HTTP darling; lightning needs the add-on WH57 (~$56) and is coarser.
- The severe-weather layer: NWS alerts for Jackson County (nws_alerts) → HA automation → the Sonos announcer at full volume on Tornado Warning, overriding every quiet-hours rule. Keep phone WEA alerts as the backstop — NWS API can strain during big outbreaks.
05The Nursery
Comfort data for Walter's room — never a medical device
Framing rule, stated plainly: these sensors report room comfort — temperature, humidity, air quality, noise. They are not monitors of Walter, make no health claims, and stay architecturally separate from Noctling's feed-safety logic. The reference bands worth knowing: 68–72°F room temperature (AAP safe-sleep guidance) and 30–50% RH.
AirGradient ONE ($138 kit / $230 assembled) — open-source firmware, documented local HTTP API, official HA integration, and it covers the whole panel in one box: temp, humidity, CO₂ (real NDIR), PM2.5, VOC/NOx. Add a ~$15 DIY ESPHome sound-level node (ESP32 + I2S mic) for ambient dB. Both WiFi — no Bluetooth-proxy gymnastics.
- Data path: sensors → HA → a small hub job → Supabase (its own
room_conditionstable, deliberately not the events table) → a "room" card in Noctling next to the timeline. Noctling's design doc (nursery-node-voice-logging.md) already sketched this — the hardware finally matches it. - Skipped: Owlet/Nanit-style camera systems — subscription-gated, cloud-dependent, and pitching medical reassurance we explicitly don't want to imply. If camera awareness ever matters, a local RTSP cam + Frigate on the hub does it without a subscription.
- Bonus: the Aqara FP2 presence sensor (§08) does stillness detection — the "someone is in the nursery" signal that makes nap-aware automations possible.
06The Pit
The Deck Boss is offline — confirmed by tonight's LAN sweep
Reconnect ritual (the app-connectivity fix is 10 minutes, not a project):
- Watch the controller's boot splash — firmware starting with "1" means 2.4GHz-only radio (likely).
- Give the 2.4GHz band its own SSID on the Deco (recteq pairing can't handle a merged band name).
- Put the phone on that same 2.4GHz SSID; on iOS enable Bluetooth + Local Network + Location for the recteq app.
- Still failing? recteq support's own trick: walk out until the phone drops to 1–2 bars, then pair — it forces 2.4GHz association. WPA3-only SSIDs are unsupported; use WPA2/WPA3 mixed.
Don't build on recteq's cloud — it's closed (MQTT-over-TLS to AWS IoT, no API, the old Home Assistant component is archived and dead). Reconnect it for the phone app, then instrument the cook with gear that's actually open: a Combustion Inc Predictive Thermometer (BLE/MeatNet, solid community HA integration) in the meat, and optionally a FireBoard 2 (open cloud API with a mature MQTT bridge) for grate-level pit temp.
- The payoff: a live cook dashboard on the LAN, and the Sonos announcing "the butts are through the stall" — rate-of-rise detection, not vibes. (Politely, and never during quiet hours.)
- Gotcha: BLE from the deck to the hub may want a MeatNet repeater (Combustion's display unit) depending on distance.
07The Desk: Receipt Printer
Todo lists you can tear off · the morning slip
Epson TM-T20III Ethernet (~$250–330 new) — or prove the pattern first with a
refurb TM-T20II off eBay (~$50–80), same ESC/POS command set. Ethernet, raw TCP
port 9100, driven by python-escpos from a small service on the hub. No CUPS, no
drivers, no WiFi sleep flakiness.
- The morning slip (the reason this exists): a 7am job prints the day — weather from the Tempest, calendar, todos, and Walter's overnight log from Noctling: every feed with timestamps and intervals, flagged bold if any gap ran close to the window. A physical handoff artifact for whoever's on shift, no app-opening required, with a QR back to the full view.
- Todo push: an MQTT topic (
home/print) + HTTP endpoint means anything — phone Shortcut, n8n, Claude — can push a tear-off ticket to the desk. - Paper matters here: phenol-free rolls only (no BPA and no BPS — look for Pergafast 201), ~$30 per 50-roll case. Small hands will hold these slips.
08Safety & Energy
Boring, vital, cheap — and the fun radio
| Item | Price | Why |
|---|---|---|
| Zigbee leak sensors ×3–4 | ~$15–20 ea | Water heater, laundry, under sinks. The single best $/disaster-averted ratio in home automation. |
| Zigbee temp sensor (freeze sentinel) | ~$12 | Crawlspace now; the mini-split line run later. |
| Aqara FP2 presence (nursery) | ~$80 | mmWave zones + stillness — presence PIR can't see. Feeds nap-aware hush. |
| Emporia Vue 3 panel monitor | ~$170* | Whole-panel + per-circuit energy, including the future 240V mini-split circuit. *Decide first: cloud polling (stock) vs ESPHome reflash (local, voids warranty). |
| ThirdReality Zigbee plugs ×2–3 | ~$12–15 ea | Power metering + they repeat the Zigbee mesh. |
| RTL-SDR Blog V4 | ~$35 | One dongle, two hobbies: ADS-B flight tracking (antenna already owned) and rtl_433 — passively hears cheap 433MHz sensors and half the neighborhood's weather stations. |
Matter smoke/CO alarms (Heiman, Sensereo) just joined Works-with-HA — worth a look when the Zigbee mesh is up, since they'd supplement the existing detectors without rewiring.
09Sirens & Alerts
City-run sirens · polygon warnings · the house decides for itself
The structural problem: NWS warnings have been storm-based polygons since 2007,
but Sugar Creek's sirens are fired at the discretion of city police/fire dispatch — so a warning
that covers this roof may or may not sound outside, and a Peculiar-only warning may. The fix is to
stop treating sirens as the signal at all: api.weather.gov/alerts/active?point=39.1122,-94.4376
answers "does this warning cover our house" — server-side, correctly, already verified working.
A small poller on the hub hits the point query every 30–60s (polite UA header required, no lower-latency public option exists) and drives the Sonos announcer by tier. A battery SAME weather radio (Midland WR400DSP, ~$50) programmed for Jackson County is the layer that survives an internet outage — it over-alerts (county granularity) but it's the 5–15 second offline floor. Phone WEA stays as the carried channel; it's been polygon-targeted since 2019, so it agrees with the point query.
| Trigger | Sonos does | Wakes the house? |
|---|---|---|
| Tornado Warning polygon contains the house | Full volume, every room, repeated, lights on | Yes — the one automation allowed to |
| Tornado Warning within ~10 mi (near miss) | Moderate single announce, main rooms | Only on high-risk nights |
| Severe T-storm Warning, "tornado possible" tag | Normal-volume announce | No |
| Severe T-storm / Flash Flood Warning | Chime + dashboard note | No |
| ProbSevere tornado probability >60%, no warning yet | Silent dashboard flag | No |
- Near-miss tier: the point query is hit/miss only — it can't see a polygon edge two miles away. The poller also pulls the day's active warning geometries and does a buffered distance check (a few lines of
shapely) for the "close but not us" announce. - Latency, honestly: issuance → API → poll → Sonos lands in ~15–90 seconds. Slower than WEA (~10–30s) and SAME radio (~5–15s), faster and infinitely more targeted than discretionary sirens. Its job is waking the whole house with words, not being first.
- Skipped: automating off the Sugar Creek dispatch scanner feed (unstructured audio, partially encrypted, not automatable in good conscience) and raw MRMS rotation data (a GIS project, not a weekend). ProbSevere's free 2-minute GeoJSON is the sane pre-warning nudge if wanted.
Four shelter trips this season. This section exists so the fifth one starts from a calm, specific sentence spoken in every room — not from wondering whether the sirens apply to us.
10The Network
AT&T fiber incoming · mesh skepticism: validated · the smoker gets its own radio
Verdict on mesh, honestly: the skepticism holds. Wireless-backhaul mesh still halves throughput per hop and adds latency — better radios since 2020, same physics. What actually matured is wired-backhaul access points, which aren't "mesh" at all: each AP is a switch port with a radio on it. That's the architecture to buy.
AT&T's BGW320 in IP Passthrough with its radios off (it has no true bridge mode; passthrough hands your router the public IP and takes the gateway out of the equation) → UniFi Cloud Gateway Ultra ($129) + U7 Pro indoor AP ($189) + U7 Outdoor ($199) mounted under the eave facing the deck. Real VLANs (a client-isolated IoT network for the 30+ gadgets), AdGuard Home on the hub as DNS for every VLAN, and the smoker's dead zone fixed with a weatherproof radio instead of hope.
- Zero-drama cutover: run AT&T and Xfinity in parallel; passthrough + radios off on day one; stand up the new SSIDs and test with a few IoT devices; batch-migrate the fleet (the slow part); cancel Xfinity after 48–72 stable hours.
- The Decos: keep one or two as wired dumb APs if a corner needs it; sell the rest ($60–120 used as a kit). Their "IoT network" was never a real VLAN.
- Interim $0 smoker fix: move one Deco to the room nearest the deck wall — often worth one bar of 2.4GHz, enough for the recteq app while the real gear ships.
- Gotchas: BGW320 firmware pushes can silently re-enable its WiFi and occasionally reset passthrough — recheck after updates. Size the IoT subnet generously; 30 devices re-DHCPing at once exhausts small pools.
11Power
The hub is down because the grid was · UPS now, generator ladder later
Fact of the week: kara is offline because of storm outages, which means the
backbone, the alert poller, and the announcer all were too. Resilience isn't a luxury feature of
this plan — it's load-bearing. (Sugar Creek gas is Spire, so a natural-gas standby is a real
option down the road.)
CyberPower CP1500PFCLCD (~$180–240) — 1500VA pure sine (the i9's Active-PFC supply requires pure sine) for the hub + switch: ~10–15 min at load, enough for NUT to trigger a graceful shutdown, reported into HA. Plus a ~$70 600VA unit for the network closet — ONT + router draw so little it keeps the internet up for hours, which keeps the alert pipeline alive through exactly the storms that cause it.
| Path | Upfront | Covers | DIY? |
|---|---|---|---|
| Dual-fuel inverter portable + interlock kit | ~$1.5–2k | HVAC + network + kitchen + bedrooms, manually selected at the panel | Fully — interlock is panel-model-specific parts + an inlet |
| Nat-gas standby + critical-loads subpanel | ~$8–12k installed | The named circuits, automatic, unattended, runs as long as Spire's mains do | Subpanel yes; gas tie-in + ATS realistically licensed trades |
| Whole-house standby (Generac 22kW class) | ~$10.5–16k | Everything | No — and may trigger a gas meter upsize |
| Battery (Anker F3800 / EcoFlow DPU / Powerwall 3) | $2.4k → $17k+ | Silent, instant transfer — but loses multi-day outages without solar | F3800 is plug-and-play; the rest, no |
- The mini-split makes the cheap path work: an 18k inverter mini-split ramps its own compressor — ~10–15A at 240V, no locked-rotor inrush. A 6,500–9,500W dual-fuel portable runs it natively, where central AC would demand a soft-start kit and prayers. The west-side purchase quietly upgrades the storm plan.
- Ladder: UPS pair now → dual-fuel inverter + interlock next year → nat-gas standby with a critical-loads subpanel someday, if the storms keep this up.
- Gotchas: interlock kits are panel-brand-specific and need the breaker hold-down to be code-clean; portable means starting it in weather — pick the CO-safe spot now, not at 2am; Generac's Mobile Link → HA integration is fragile, don't buy the standby for its app.
12The Buy List, Phased
Spend nothing first · then spend where it compounds
| Phase | What | Runs |
|---|---|---|
| 0 — This week, $0 | Restart kara (storm casualty, confirmed) · deploy HA + Mosquitto containers · move one Deco toward the deck wall (interim recteq fix) + the §06 reconnect ritual · install the ecobee + SmartSensor · split out a 2.4GHz IoT SSID · identify the mystery ESP32 at 10.0.0.196 | $0 |
| 1 — The spine, ~$525 | UPS pair — CyberPower CP1500PFCLCD for the hub (~$210) + 600VA for the network closet (~$70), wired into NUT→HA · Midland WR400DSP weather radio (~$50) · SLZB-06M PoE coordinator (~$45) · leak sensors ×3 (~$50) · refurb TM-T20II printer (~$65) · RTL-SDR V4 (~$35) | ≈$525 |
| 2 — Senses, ~$585 | AirGradient ONE kit ($138) · ESPHome sound node (~$15) · Aqara FP2 (~$80) · WeatherFlow Tempest ($349) | ≈$585 |
| 2.5 — Network, ~$520 (when AT&T fiber lands) | UniFi Cloud Gateway Ultra ($129) + U7 Pro indoor ($189) + U7 Outdoor for the deck ($199) · BGW320 in IP Passthrough, radios off · sell the Deco fleet to claw back $60–120 | ≈$520 |
| 3 — Big iron | Mini-split, sized honestly after the west-side measurement (12k likely; Mitsubishi H2i + CN105 board, or Senville Aura + SLWF-01 for roughly half) — self-install · dual-fuel inverter generator + interlock kit (~$1.5–2k) · Emporia Vue 3 · Combustion thermometer · FireBoard 2 | $2–4k+ |
13What It Unlocks
The point of all of it
- The tornado override. NWS warning for Jackson County → every Sonos at full volume, quiet hours be damned. The one automation allowed to wake the house.
- The morning slip. 7am: weather, calendar, todos, and Walter's overnight feed log with intervals — printed, torn off, handed over with the coffee.
- Nap-aware hush. FP2 says someone's still in the nursery → the announcer and every chime automatically duck. The house learns what you told me tonight at 12:52am.
- Stall watch. Combustion probe's rate-of-rise flattens then climbs → "the butts are through the stall, holding 203 in about two hours."
- Leak & freeze chain. Any leak/freeze sensor trips → announce + push + log. Repeat freeze hits on the mini-split line = insulate that run.
And the wilder shelf, already researched, waiting their turn: the plane-overhead announcer (SDR → Ollama → Sonos — genuinely unbuilt by anyone, per the June research), the e-ink wall dashboard, and a local voice satellite so the house answers without a cloud.
14Open Questions
Answers that change the buy list
- West-side square footage — the last blocker on mini-split sizing (12k vs 18k; §03). The bigger portion of the split room is the number that matters.
- Breaker panel brand + model (a photo of the label works) — interlock kits for the future generator are panel-model-specific, and it confirms wire sizing for the 240V run.
- Furnace & water heater: gas or electric? Sets what a generator actually needs to carry in January.
- Basement? County records are ambiguous — matters for the shelter kit (below-ground weather radio placement) and line-set routing.
- AT&T install date? The network buy (phase 2.5) keys off it.
- Where does the printer live? Kitchen counter vs office desk changes Ethernet vs the WiFi-bridge dance.
- AirGradient: $138 kit (an evening of fun) or $230 assembled?