All projects
Home Automation2026

Home Automation Platform

A self-hosted, config-as-code smart home platform on Home Assistant — multi-protocol device mesh, zero-downtime hardware migrations, and a utility-bill-accurate energy monitoring pipeline.

Home AutomationIoTDockerAutomationEnergy MonitoringConfig as CodeSelf-Hosted

100+, 0 dead

Entity refs validated

within $0.01

Cost model accuracy

7, rebuilt

Dashboard views

Zero re-pairing

Migration downtime

A production-grade home automation deployment built the same way I'd build enterprise infrastructure: containerized, version-controlled, documented, and audited. Home Assistant runs in Docker as the automation core, bridging both Zigbee and Z-Wave device meshes through a serial-to-network gateway, with dozens of devices, custom dashboards, energy cost modeling, and a proactive health-check discipline that treats "it mostly works" as a bug, not a feature.

Highlights

  • Migrated the entire Zigbee coordinator to new combo Zigbee/Z-Wave hardware with zero re-pairing — every device rejoined automatically via a network-state backup/restore instead of manual re-onboarding
  • Brought a cloud-dependent smart thermostat fully local over Z-Wave, removing a cloud dependency and its associated automation/watchdog logic entirely
  • Built a utility-bill-accurate energy cost model — reverse-engineered a real utility invoice's rate structure (energy + delivery + fixed fee + tax) into a live cost sensor accurate to within $0.01 of the actual bill
  • Full home energy monitoring: per-device power/energy tracking (lighting, plugs, a 4-unit 3D-printer fleet) feeding a native Energy Dashboard, with printers exposed as live power-derived "printing / idle" status sensors
  • Rebuilt the entire dashboard suite from scratch across 7 views (Home, Climate, Energy, Security, Rooms, Printers, System) using a community plugin ecosystem, eliminating duplicated/inconsistent data across views
  • Automated configuration health-checks — a standing audit checklist plus an installed dead-reference scanner catch stale entity references, invalid sensor configs, and silent automation bugs before they cause real problems
  • Found and fixed multiple silent, pre-existing bugs via systematic auditing — a stale entity reference that was silently undercounting an active-lights sensor, and an invalid sensor configuration throwing a startup warning on every restart
  • Security-conscious integration onboarding (2FA-authenticated camera/alarm system) with credentials kept out of version control by design
  • Config-as-code discipline throughout — YAML-validated before every deploy, timestamped backups before risky changes, and a running written change log for every modification

Architecture & Infrastructure

01

Containerized core, config as code

Home Assistant runs in Docker with all configuration — automations, scenes, dashboards, templates — stored as version-controllable YAML rather than opaque UI state. Every change is validated (config check) before being applied, and applied via the least-disruptive path available (targeted reload) rather than a full restart wherever possible.

02

Multi-protocol device mesh

Zigbee and Z-Wave devices are bridged from host-attached USB radios into the containerized core over a serial-to-network gateway, decoupling the automation platform's deployment target from the physical radio hardware.

03

Zero-downtime hardware migration

When the Zigbee/Z-Wave radio hardware was replaced, the entire device network — PAN ID, channel, network key, coordinator identity — was backed up and restored onto the new hardware, so every device rejoined automatically with no re-pairing and no entity/automation changes required.

04

Bill-accurate energy cost modeling

Rather than using a flat estimated electricity rate, the real utility rate structure (energy charge, delivery charge, fixed monthly fee, and tax) was modeled as a formula-driven sensor pipeline, cross-checked against an actual invoice to within a cent — then extended to a full Energy Dashboard covering household and device-level (including a 3D-printer fleet) consumption.

05

Proactive health-check discipline

A standing audit checklist (config validation, real error/warning triage, stale-entity-reference scans, device-class misclassification checks) plus an installed automated dead-reference scanner run after every batch of changes — catching silent breakage before it's noticed the hard way, the same discipline applied to production systems at work.

06

Secrets kept out of version control

Access tokens and integration credentials are kept in a gitignored secrets file and the platform's own encrypted storage — never in tracked configuration or documentation — the same secrets-hygiene standard used for any production credential.

Stack

Home AssistantDockerZigbee (ZHA)Z-Wave JSYAMLWebSocket API