🎧 Listen to the 60-Second Audio Recap:
The Privacy Problem — What Big Tech Does With Your Smart Home Data
Every voice command you send to Google Home or Amazon Alexa leaves your local network, transits a third-party server, and gets retained. Consider what that means in practice. A single motion sensor in a busy hallway can fire 20 to 30 pings per day. Multiply that by 365 days and you have over 10,000 data points per year — from one sensor — feeding a profile of when your home is occupied, when you wake up, and when you go to bed. Add a thermostat, a doorbell, and a few smart plugs, and the picture Big Tech builds about your household becomes detailed fast.
Running Home Assistant on Raspberry Pi changes that equation. Home Assistant OS (HAOS) keeps everything local. Every automation, every sensor reading, and every device command stays on your local network. No cloud dependency. No third-party data retention. No subscription required.
Your lights still turn on during an internet outage. Google’s don’t.
There is a second frustration that drives people toward Home Assistant, and it comes up constantly in community forums: vendor app sprawl. You end up with an Alexa app for some devices, a Google Home app for others, and three separate manufacturer apps for everything else. None of them talk to each other cleanly. Home Assistant unifies every device — regardless of brand or protocol — under one local dashboard. One interface. One automation engine. No cloud middlemen.
If you want to see how far local control can go, our guide on integrating Hoymiles solar inverters into Home Assistant with OpenDTU is a practical example of what becomes possible when your smart home platform is fully yours.
Who This Guide Is For
This guide is written for two distinct readers.
Newbie Nora is setting up her first Raspberry Pi. She wants a working Home Assistant installation in under 30 minutes. An SD card is fine to start. She wants to see the dashboard load and understand what she has built before investing further.
Pro Paul is building a 24/7 production system from day one. He wants SSD boot, a static IP via DHCP reservation, and an automated backup strategy before he connects a single device. He is not interested in redoing this in six months.
Both paths are covered here, step by step. If you have seen the Reddit thread asking “New Setup: Best method of installing HA on a Pi? There seem to be a lot of options” — this guide makes that decision for you. Read the section that matches your situation and follow it exactly.
Home Assistant on Raspberry Pi — Prerequisites & Hardware
Hardware Checklist
- Raspberry Pi 5 (recommended) or Pi 4 — minimum 4GB RAM. If you plan to run multiple add-ons simultaneously, 8GB is worth the small price difference.
- Official Raspberry Pi power supply — undervoltage is a common cause of unexplained crashes and system instability. Generic phone chargers are the single most common source of these problems. Do not substitute.
- Storage — choose your path now:
- Newbie Nora: microSD card, 32GB or larger, Class 10 or A2 rated, plus a USB card reader for your computer.
- Pro Paul: USB SSD (Pi 4) or NVMe SSD via a compatible HAT (Pi 5), plus a USB adapter or card reader to flash the image from your computer.
- Ethernet cable and a wired connection to your router. This is mandatory for first boot and strongly recommended for permanent use.
- Secondary computer with Raspberry Pi Imager installed (Windows, macOS, or Linux).
Software & Downloads Checklist
- Raspberry Pi Imager — download the latest version from the official Raspberry Pi website.
- HAOS image — you do not download this separately. Raspberry Pi Imager fetches it for you. You will select either
Home Assistant OS for RPi 5 64-bitorHome Assistant OS for RPi 4 64-bitdepending on your hardware. - Router admin access — you will need to log into your router’s admin panel for DHCP reservation in the Pro route. Know your router’s admin address (typically
192.168.1.1or192.168.0.1) and credentials before you start.
The SD Card vs. SSD Decision — Make It Now
Honesty check: An SD card will work. It will also likely fail within a year. Here is why — and why we recommend deciding now before you flash anything. Jump to The Ugly Truth section below for the full picture.
The short version: an SD card is acceptable for evaluation and learning. If you want to understand Home Assistant before committing hardware, flash an SD card and follow the Newbie Nora route. If this installation is going to be the automation backbone of your home running around the clock, an SSD is not optional — it is the correct tool for the job. Make that call now, before you open Raspberry Pi Imager.
Method 1 — The Quick Start (Newbie Nora’s Route: SD Card, 20 Minutes)
Step 1 — Flash the HAOS Image to Your microSD Card
Open Raspberry Pi Imager on your computer. The interface has three main buttons. Work through them in order.
- Click Choose Device and select your Pi model (Pi 4 or Pi 5).
- Click Choose OS, then navigate to
Other specific-purpose OS→Home assistants and home automation→Home Assistant. Select the correct image for your Pi model. - Click Choose Storage and select your microSD card. Double-check this selection. Choosing the wrong device will overwrite it without further warning.
- Click Next. When prompted about OS customisation settings, do not apply them. HAOS manages its own configuration — applying Raspberry Pi OS customisations here will cause problems.
- Click Write and confirm. The process takes a few minutes.
Step 2 — First Boot
- Insert the flashed microSD card into your Raspberry Pi.
- Connect an ethernet cable between the Pi and your router.
- Connect the official power supply. The Pi boots automatically when power is connected.
- Wait a few minutes. On first boot, HAOS downloads and installs its core components. Do not interrupt power during this process.
Step 3 — Access the Onboarding Interface
On your computer, open a browser and navigate to:
http://homeassistant.local:8123
If that address does not load — this is common on Windows networks where mDNS (multicast DNS) is blocked — find your Pi’s IP address in your router’s connected devices list and use:
http://<pi-ip-address>:8123
The onboarding wizard will walk you through creating your admin account, setting your home’s location, choosing your unit system (metric or imperial), and configuring your time zone. Complete all of these steps before doing anything else.
You are live. For long-term reliability, follow Method 2 when you are ready to move to SSD.
Method 2 — The Pro Setup (Pro Paul’s Route: SSD Boot + Static IP + Backups)
Step 0 — Pi 5 Only: Update the EEPROM Bootloader for NVMe Boot
The Raspberry Pi 5’s EEPROM bootloader must be recent enough to support NVMe boot, and the boot order must include NVMe as a valid boot device. This is a one-time operation.
Skip this step entirely if you are using a Pi 4 with a USB SSD. It is not required.
Option A — Via Raspberry Pi Imager (no existing OS needed):
- Open Raspberry Pi Imager.
- Click Choose OS →
Misc utility images→Bootloader→NVMe/USB Boot. - Flash this to a temporary microSD card.
- Insert that SD card into your Pi 5 and power it on. The green LED will flash in a steady pattern to confirm the EEPROM update succeeded.
- Power off the Pi and remove the SD card.
Option B — Via Raspberry Pi OS terminal (if you already have an OS running):
sudo rpi-eeprom-update -a
sudo reboot
Step 1 — Flash HAOS Image to SSD
Connect your SSD to your computer using a USB adapter or enclosure. Then open Raspberry Pi Imager and follow the same process as Method 1, with one critical difference: your target storage device is the SSD, not a microSD card.
- Open Raspberry Pi Imager.
- Click Choose Device → select your Pi model.
- Click Choose OS →
Other specific-purpose OS→Home assistants and home automation→Home Assistant→ select the correct image for your Pi. - Click Choose Storage → select your SSD. Verify the device name carefully before proceeding.
- Click Next, skip OS customisation settings, click Write, and confirm.
Step 2 — Boot From SSD
- Connect the SSD to your Pi. For Pi 4, use a USB 3.0 port (the blue ports). For Pi 5, seat the NVMe SSD in the HAT slot.
- Connect the ethernet cable to your Pi and router.
- Connect the official power supply.
- Wait a few minutes for the first boot to complete. HAOS downloads and installs its core components on first boot.
Then navigate to:
http://homeassistant.local:8123
If that address does not resolve, find your Pi’s IP address in your router’s connected devices list and use:
http://<pi-ip-address>:8123
Step 3 — Onboarding + Assign a Static IP via DHCP Reservation
Complete the onboarding wizard exactly as described in Method 1, Step 3. Create your admin account, set location, units, and time zone.
Once onboarding is complete, assign your Pi a permanent IP address. Do this via a DHCP reservation in your router rather than setting a static IP on the device itself. A router-side reservation survives a full HAOS reinstall because it is tied to the Pi’s MAC address, not to the OS configuration.
- Log into your router’s admin panel (typically
192.168.1.1or192.168.0.1). - Navigate to DHCP or LAN settings and find the list of connected devices.
- Locate your Raspberry Pi by hostname or MAC address.
- Assign it a permanent reserved IP address (for example,
192.168.1.100). - Save the setting and reboot your router.
- Verify that
http://homeassistant.local:8123resolves consistently after the router restarts.
Step 4 — Create Your First Backup Immediately
- In HAOS, navigate to
Settings→System→Backups. - Click Create Backup and select a full backup.
- Once complete, download the
.tarfile to your local computer.
Do this before you add a single integration. A clean backup of a fresh install is your recovery point. If anything goes wrong during setup, you restore to this point in minutes rather than starting over.
Configuration & Validation — Confirm Everything Works
Interface Validation
-
http://homeassistant.local:8123loads the HAOS dashboard without errors. - Admin account login works correctly.
- Dashboard displays without any error banners.
Hardware Validation
- Navigate to
Settings→System→Hardware. - Confirm that the correct Raspberry Pi model is displayed.
- Confirm that your storage device (SSD or SD card) is correctly identified and shows the expected capacity.
If you are on a Pi 5 with an NVMe SSD, the NVMe device should be listed here. If it shows an SD card when you expected an SSD, the Pi booted from the wrong device — revisit Step 0 of Method 2.
Backup Validation
- The backup
.tarfile exists on your local computer. - The file size is non-zero. A zero-byte file indicates a corrupt or incomplete backup.
- The backup timestamp matches today’s date and time.
The Ugly Truth — Honesty Check Before You Commit
SD Cards Are a Ticking Time Bomb
Home Assistant writes continuously to its SQLite database. Every state change — a light turning on, a sensor updating, a person arriving home — gets written to disk. Every log entry. Every history record. This is a relentless, high-frequency write pattern that consumer-grade microSD cards are simply not designed to handle.
The expected lifespan of an SD card under this workload is 6 to 18 months. The failure mode is rarely a clean crash. It is usually silent corruption: automations that stop working, history that disappears, and eventually a system that will not boot. Data recovery from a corrupted SD card is typically not possible without a prior backup.
Verdict: SD card = fine for testing this weekend. SSD = mandatory if this is your home’s automation backbone.
The Raspberry Pi Has a Ceiling
A Pi 4 or Pi 5 handles standard HAOS workloads well. For most homes — dozens of devices, a handful of integrations, standard automations — it is more than sufficient. You will hit the ceiling when you start running:
- Frigate — the camera AI and NVR add-on is GPU-intensive. A Pi alone struggles without a Coral TPU accelerator, and even then, multiple camera streams push the limits.
- 50+ integrations with frequent polling — database and CPU load compounds quickly.
- A full add-on stack simultaneously — running Zigbee2MQTT, Node-RED, InfluxDB, and Grafana at the same time on a Pi 4 will produce noticeable sluggishness.
When you outgrow the Pi, the migration path is straightforward. HAOS runs well as a virtual machine on Proxmox on x86 hardware. Because HAOS backup and restore is a first-class feature, migration means creating a backup on the Pi and restoring it on the new VM. Our Home Assistant OS on Proxmox VM guide covers that upgrade path in full.
What This Guide Does Not Cover
- Home Assistant Container (Docker) — a different installation method with different trade-offs. More flexible, but you lose the Supervisor and the add-on store.
- Home Assistant Supervised — not recommended for beginners. Complex dependency requirements and easy to break.
- Wi-Fi setup — ethernet is mandatory for reliability. HAOS on Wi-Fi is technically possible but unsupported in this guide. A dropped Wi-Fi connection during a firmware update or database write can corrupt your installation.
Troubleshooting Common Errors
Error — homeassistant.local:8123 Does Not Load
Cause: mDNS is not functioning on your network. This is common on Windows machines and on networks with managed switches that block multicast traffic.
Fix Step 1: Find your Pi’s IP address in your router’s connected devices list.
Fix Step 2: Access HAOS directly using the IP address:
http://<pi-ip-address>:8123
Fix Step 3: Set a DHCP reservation in your router so the IP never changes. Once the reservation is in place, homeassistant.local will typically become reliable as well.
Error — Pi 5 Will Not Boot From NVMe SSD
Cause: The EEPROM bootloader is outdated, or the boot order does not include NVMe as a valid boot device.
Fix: Re-run Method 2, Step 0. Flash the NVMe/USB Boot bootloader image via Raspberry Pi Imager and boot from it once to update the EEPROM.
Diagnostic: To confirm the SSD is physically detected, boot Raspberry Pi OS from a temporary SD card and run:
lsblk
Your NVMe SSD should appear as /dev/nvme0n1. A USB SSD will appear as /dev/sda. If neither appears, the issue is hardware — check the HAT seating and power delivery.
Error — Random Crashes or Undervoltage Lightning Bolt Warning
Cause: Inadequate power supply. Generic USB-C chargers — even ones rated at sufficient wattage on paper — frequently cannot deliver stable current under the dynamic load of a Pi running HAOS with active add-ons.
Fix: Replace with the official Raspberry Pi power supply. There are no acceptable substitutes for a production system.
Diagnostic in HAOS: Navigate to Settings → System → Hardware and check the system log for undervoltage warnings.
Error — First Boot Takes More Than 10 Minutes or Appears Frozen
Cause: On first boot, HAOS downloads and installs its core components. On a slow internet connection, this can take longer than expected. Alternatively, a power interruption during the flash process may have produced a corrupt image on the storage device.
Fix: Wait up to 15 minutes on first boot before concluding something is wrong. If the system is still unresponsive after 15 minutes, reflash the image to your SD card or SSD and repeat the process from the beginning. Never interrupt power during first boot.
Conclusion & Next Steps — Your Private Smart Home Starts Here
Completion Checklist
- HAOS is running on your Raspberry Pi from an SSD (reliable 24/7 storage).
- The system is accessible at
homeassistant.local:8123with a DHCP-reserved static IP. - Admin account is created, and location and time zone are configured.
- First full backup has been created and downloaded to your local computer.
What to Do Next — Your Immediate Action Items
- Add your first Zigbee device. Purchase a Zigbee USB coordinator dongle — the Sonoff Zigbee 3.0 USB Dongle Plus is a reliable and affordable choice. Plug it into your Pi and pair your first sensor using the ZHA (Zigbee Home Automation) integration built directly into HAOS. Our guide Pair Your First Zigbee Sensor with Home Assistant ZHA walks through every step.
- Configure automatic off-device backups. A backup stored only on the Pi itself is not a real backup. Set up the Home Assistant Google Drive Backup add-on, or configure a Samba share to a NAS for automatic backup rotation. If you lose the Pi, you need your configuration recoverable from somewhere else.
- Explore the add-on store. Navigate to
Settings→Add-onsand browse what is available. The Mosquitto MQTT broker, Node-RED, and ESPHome are three add-ons that significantly expand what HAOS can do, and all three are available with one-click installation. And for a fully local voice assistant, you can connect Home Assistant to a self-hosted Ollama LLM instead of relying on Google or Amazon.
The Bigger Picture
Every device you add to Home Assistant is a device that no longer reports to Google or Amazon. Every automation you build runs locally, executes instantly, and belongs entirely to you. The Raspberry Pi sitting on your shelf — quiet, low-power, always on — is now the brain of a smart home that no corporation can reach, no subscription can hold hostage, and no internet outage can disable.
That is what self-hosting your smart home actually means. You built it. You own it.
Self-hosted. Locally controlled. Actually yours.