Home Assistant OS in KVM Qemu
Home Assistant OS auf einem echten Server statt auf der SD-Karte – mit voller Add-on-Unterstützung.
Warum nicht einfach ein Raspberry Pi?
Der Raspberry Pi ist der klassische Einstieg für Home Assistant – und für viele reicht er auch. Aber ab einem gewissen Punkt stößt man an Grenzen: SD-Karten-Korruption nach zwei Jahren Dauerbetrieb, 1-2 GB RAM die bei vielen Integrationen eng werden, und kein Snapshot auf Hypervisor-Ebene.
Wer ohnehin einen Linux-Server im Homelab hat, kann Home Assistant OS in einer KVM/QEMU-VM laufen lassen – volle Add-on-Unterstützung wie auf dedizierter Hardware, aber mit echtem RAM, SSD-Storage und der Möglichkeit, die VM per Snapshot zu sichern.
Home Assistant gibt es in mehreren Installationsvarianten. HA OS in einer VM hat den Vorteil, dass Supervisor, Add-ons (Mosquitto, Z-Wave JS, Samba) und automatische Backups voll unterstützt werden – genau wie auf einem Pi. Die Container-Variante ist schlanker, aber Add-ons muss man manuell als Docker-Container daneben stellen.
Voraussetzungen
Stelle sicher, dass dein Linux-Host Hardware-Virtualisierung unterstützt (Intel VT-x / AMD-V), und installiere die KVM/QEMU-Pakete:
sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
Nach der Installation prüfen, ob KVM geladen ist: lsmod | grep kvm sollte kvm_intel oder kvm_amd anzeigen.
Home Assistant OS Image vorbereiten
Das offizielle KVM-Image von der Home Assistant Download-Seite herunterladen und entpacken:
# Image herunterladen (Version anpassen)
wget https://github.com/home-assistant/operating-system/releases/download/X.Y/haos_ova-X.Y.qcow2.xz
# Entpacken
unxz haos_ova-X.Y.qcow2.xz
VM erstellen
Im Virtual Machine Manager (virt-manager) eine neue VM anlegen: Vorhandenes Festplatten-Image importieren wählen und die entpackte .qcow2-Datei auswählen.
Home Assistant OS bootet nur mit UEFI, nicht mit dem Standard-BIOS. In virt-manager muss vor dem ersten Start die Firmware-Einstellung auf UEFI (OVMF) geändert werden. Vergisst man das, bleibt die VM beim Boot hängen – ohne hilfreiche Fehlermeldung.
Die restlichen Einstellungen:
- RAM: Mindestens 2 GB, besser 4 GB wenn viele Add-ons laufen.
- CPUs: Mindestens 2 vCPUs.
- Netzwerk: Auf Bridge oder macvtap umstellen (nächster Abschnitt).
Netzwerk: Bridge statt NAT
Damit Home Assistant Geräte im lokalen Netzwerk erkennen kann (mDNS, SSDP für Hue, Chromecast etc.), braucht die VM eine eigene IP-Adresse im Heimnetz. Das Standard-NAT von libvirt reicht dafür nicht.
Zwei Optionen:
- Bridge (br0): Sauberste Lösung. Die VM hängt direkt am gleichen Netzwerk wie der Host. Erfordert Bridge-Konfiguration auf dem Host (
/etc/network/interfacesoder NetworkManager). - macvtap: Einfacher einzurichten (in virt-manager direkt auswählbar), aber Host-zu-VM-Kommunikation ist eingeschränkt.
Für die meisten Homelab-Setups ist macvtap im Bridge-Mode der schnellste Weg – in virt-manager beim Netzwerk einfach das physische Interface auswählen statt "NAT".
Erster Start und USB-Passthrough
VM starten. Nach 1-2 Minuten ist Home Assistant unter http://homeassistant.local:8123 oder der vom Router zugewiesenen IP erreichbar.
Für Zigbee- oder Z-Wave-Sticks muss der USB-Stick per USB-Passthrough in die VM durchgereicht werden. In virt-manager: Hardware hinzufügen → USB-Host-Gerät. Der Stick ist dann innerhalb der VM als /dev/ttyUSB0 verfügbar.
Wenn du udev-Regeln für feste Symlinks auf dem Host eingerichtet hast, hilft das beim USB-Passthrough leider nicht direkt – innerhalb der VM bekommt der Stick wieder eine eigene ttyUSB-Nummer. Die udev-Regel muss also auch innerhalb der VM angelegt werden.
Was ich weggelassen habe
Dieser Artikel zeigt das Basis-Setup. Folgendes ist bewusst nicht behandelt:
- Automatisches Backup der VM. Ein regelmäßiger
virsh snapshotoder ein Restic-Job auf das qcow2-Image gehört dazu, ist aber ein eigenes Thema. - GPU-Passthrough. Für Frigate (Kamera-NVR mit Coral TPU) braucht man PCI-Passthrough – deutlich komplexer.
- Headless-Setup ohne virt-manager. Geht komplett per
virshund XML – für Server ohne GUI.
Fazit
Home Assistant OS in KVM/QEMU ist der sweet spot zwischen "alles in Docker selbst zusammenbauen" und "dedizierte Hardware opfern". Volle Add-on-Unterstützung, echte Server-Performance, Snapshots auf Hypervisor-Ebene. Wer einen Linux-Server im Homelab hat, hat keinen Grund mehr für eine SD-Karte im Raspberry Pi.