Skip to content

Home Assistant ​

A dedicated Home Assistant installation on a Raspberry Pi 5, replicating a proven reference setup.

Status: design settled, hardware not yet ordered. RAM size and the PoE+/NVMe shield were decided on 2026-08-27 — see the decision log.

Architecture at a glance ​

Home Assistant OS runs bare-metal on a dedicated Raspberry Pi 5 (no containers). Daily backups go to a Synology NAS. Access from the internet is handled by Pangolin — a self-hosted alternative to Cloudflare Tunnels — running on a small VPS, so no ports are opened on the home network.

The key property: the home network makes only an outbound tunnel connection to the VPS. Nothing on the home router is port-forwarded or exposed.

Key decisions ​

DecisionChoiceWhy
HA install methodHAOS bare-metal on a dedicated Pi 5Appliance-style, fully supported, full add-on ecosystem; deliberately not containerized
RAM4 GB (2 769 Kč)Classic HA — Zigbee, sensors, automations, dashboards, ESPHome — sits at 1.5–2.5 GB. 8 GB costs +1 680 Kč and only pays off for Frigate / local voice, neither of which belongs on a Pi 5 anyway. See RAM sizing
Power + storageSuptronics/Geekworm X1012 PoE+ shield with M.2 NVMe (799 Kč), direct NVMe bootOne Ethernet cable, no PSU brick; takes 2280 drives, keeps the official Active Cooler, isolated power stage. See the comparison
Storage mediumPatriot P300 512 GB M.2 2280 NVMeSD cards are the classic HA failure mode. 3D TLC (not QLC), 160 TBW ≈ decades at HA's write volume; Gen 3 rating is moot behind the X1012's Gen 2 link
BackupsDaily HA backups to Synology NAS (RAID6 volume)Off-device copies; NAS survives two simultaneous disk failures
Remote accessPangolin on a cheap VPSSelf-hosted replacement for Cloudflare Tunnels — no exposed home ports, identity-aware access, own infrastructure
CoolingActive Cooler on the Pi + 30×30×7 mm fan on the top platePi 5 + NVMe under continuous load needs active airflow; PoE conversion adds heat of its own
TimekeepingOfficial RTC battery, charging enabled via config.txtCorrect time survives power outages — important for automations and history

Pages ​

  • Hardware — bill of materials (electronics, standoffs, 3D-printed plates) and mechanical assembly
  • Software & Backups — installing HAOS onto the NVMe, and the backup strategy
  • RTC Backup Battery — enabling battery charging on HAOS
  • Remote Access — Pangolin, the VPS, and the Docker/ufw firewall gotcha

Open questions ​

  • [ ] The source notes list the 5 mm standoffs as "4×" but also "16 ks" (16 pcs) — probably a purchase quantity with spares; confirm how many are actually needed.
  • [ ] Could Pangolin run under Podman instead of Docker? Would remove the ufw-docker workaround entirely (see Remote Access).
  • [ ] Enclosure: 3D-printed tower (best airflow) or the Geekworm P579-V2 metal case (375 Kč, ~21 days)? See Enclosure.
  • [ ] Zigbee/Thread: which USB coordinator, and on a USB extension cable to keep it away from the Pi's RF noise?

RAM sizing ​

Measured reality for a "classic" HA install — Zigbee2MQTT, ESPHome, MariaDB recorder, Node-RED, dashboards — is 1.5–2.5 GB resident. The workloads that genuinely need 8 GB are Frigate (NVR with object detection) and a local voice assistant (Whisper/Piper); both are also the workloads that want a Coral accelerator or an x86 box rather than a Pi 5. If they ever happen here, the answer is a second machine, not more RAM in this one — and RAM is soldered, so buying headroom now is not an upgrade path, it is a bet.

rpishop prices on 2026-08-27, inflated by the DRAM market: 2 GB 1 629 Kč · 4 GB 2 769 Kč · 8 GB 4 449 Kč · 16 GB 7 559 Kč.

Decision log ​

2026-08-27 — RAM: 4 GB ​

Chose the 4 GB Pi 5 over the 8 GB of the reference build. Classic HA usage stays well under 4 GB; the +1 680 Kč premium only buys headroom for Frigate and local voice, which are not planned and would be better hosted elsewhere. Revisit if local voice or camera processing moves onto this box — that means a new board, not an upgrade.

2026-08-27 — Power and storage: X1012 PoE+ shield ​

A PoE+ switch is already in place, so the Pi is powered and networked over one cable and the 27 W USB-C supply of the reference build is dropped. Chosen from three boards stocked at rpishop; the Hardware page records why the 52Pi P33 (powers back on after shutdown) and the Argon Industria (2242-only, needs the Argon THRML cooler) lost. Revisit if the PoE+ switch turns out to be the wrong place to hang HA off — the fallback is the official SSD Kit + 27 W PSU, still documented on the hardware page.

2026-08-27 — SSD: Patriot P300 512 GB ​

Ordered from Alza rather than rpishop. 96-layer 3D TLC, DRAM-less + HMB, Phison PS5013-E13T, 160 TBW, 3-year warranty. QLC was ruled out — Home Assistant's recorder writes small records continuously, and QLC's small SLC cache plus roughly a third of the endurance buys nothing for a few hundred crowns saved. The Samsung 980 500 GB (1 649 Kč at rpishop) was the alternative; the P300 is the same class of drive for less money. Revisit if the drive turns out to be one of the Patriot revisions with a different controller and it misbehaves on the Pi 5's PCIe link.