uptime · 1404 days · 23 posts published · last deploy 1 day, 10 hours ago build:passing rss
~ / home-automation / home-assistant-os-in-kvm-qemu.md
Home Automation · 28. März 2026 · ~5min · dc6bd3c

Home Assistant OS in KVM Qemu

Home Assistant OS auf einem echten Server statt auf der SD-Karte – mit voller Add-on-Unterstützung.

>
devmaker.net
author · dc6bd3c · 2026-03-28
x
Home Assistant KVM Qemu Header.jpg 1408×768
Home Assistant KVM Qemu Header
Wer Home Assistant OS auf einem Raspberry Pi betreibt, kennt die Grenzen: langsame SD-Karte, begrenzter RAM, kein Snapshot auf Hypervisor-Ebene. Der Betrieb in einer KVM/QEMU-VM unter Linux löst all das – volle Add-on-Unterstützung wie auf dedizierter Hardware, kombiniert mit der Leistung und Zuverlässigkeit eines echten Servers.

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.

Warum Home Assistant OS statt Container?

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.

UEFI-Firmware ist Pflicht

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/interfaces oder 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.

Kombination mit udev-Regeln

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

Ehrliche Abgrenzung

Dieser Artikel zeigt das Basis-Setup. Folgendes ist bewusst nicht behandelt:

  • Automatisches Backup der VM. Ein regelmäßiger virsh snapshot oder 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 virsh und 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.

// responses (0)
> echo "your thoughts" >> home-assistant-os-in-kvm-qemu.responses

Schreibe einen Kommentar

Wird für die Bestätigung benötigt