You are currently viewing Home Assistant auf Raspberry Pi installieren und einrichten [Update-14.02.2023]
Home Assistant mit Raspberry Pi

Home Assistant auf Raspberry Pi installieren und einrichten [Update-14.02.2023]

Ich beschäftige mich viel mit Hausautomatisierung und besitze auch schon einige Komponenten. Das fängt an beim Staubsaugroboter, über Steckdosen und Heizungssteuerung bis hin zu elektrischen Rollläden. Die einzelnen Komponenten sind von verschiedenen Herstellern und somit brauche ich auch verschiedene Apps zur Steuerung. Über Google Home kann ich zwar alles verknüpfen, aber die Bedienung ist aus meiner Sicht nicht komfortabel und die Abläufe korrekt einzustellen ist auch nicht überragend. Ich brauchte also eine Alternative und habe über meine ehemaligen Arbeitskollegen von Home Assistant erfahren.

Verschiedene Installationen von Home Assistant

Es gibt aktuell insgesamt vier verschiedene Arten den Home Assistant zu installieren:

  • Home Assistant OS
  • Home Assistant Container
  • Home Assistant Core
  • Home Assistant Supervised

Die erste Installationsvariante Home Assistant OS ist ein minimales Betriebssystem, dass mit dem vollen Funktionsumfang von Home Assistant kommt. Dies steht zum Beispiel für den Raspberry Pi oder eine VM zur Verfügung.

Die Variante als Container lässt sich sehr komfortabel z.B. mit Docker installieren, aber bietet einen eingeschränkten Funktionsumfang, denn es fehlen die Supervisor Funktionen.

Der Core Variante ist eine manuelle Installation mit Hilfe einer virtuellen Python Umgebung. Die letzte Variante Home Assistant Supervised ist eine manuelle Installation mit Supervisor Funktionen. Weitere Details findest du auf der Home Assistant Seite.

Ich habe mich für die Installation auf einem Raspberry Pi entschieden und möchte ein Touch-Display anschließen, damit ich dies als zentrale Station in der Wohnung aufhängen kann. Durch ein Display, auf dem später die Home Assistant Oberfläche angezeigt werden soll, kann ich das Home Assistant OS für den Raspberry Pi nicht verwenden. Die Container und Core Variante kommt für mich auch nicht in Frage, weil der Funktionsumfang eingeschränkt ist. Also bin ich auf die Suche gegangen die Home Assistant Supervised Variante auf meinem Raspberry Pi zu installieren.

Hardware

Da ich noch mehrere Raspberry Pi’s zu Hause hatte und ein auch ein 7 Zoll Touch-Display, konnte ich schnell loslegen. Dazu noch ein Netzteil und die Micro-SD-Karte.

Raspberry Pi OS installieren und einrichten

[Update – 14.02.2023]
Das Einrichten der SD-Karte mit dem richtigen OS führe ich mit dem Raspberry Pi Imager durch. Ich benutze das vollständige Raspberry Pi OS (64-bit) Betriebssystem. Die SSH Verbindung stelle ich über die PowerShell Konsole her.

Als erstes muss ich die SD-Karte mit dem Raspberry Pi OS vorbereiten. Dazu downloade ich das aktuellste Image mit der Desktop Variante (Link) und entpacke die zip-Datei. Für das flashen der SD-Karte benutze ich balenaEtcher (Link). Bevor ich die Micro-SD-Karte mit dem Betriebssystem in den Raspberry Pi einlege, speichere ich noch eine leere Datei mit dem Namen ssh auf der Boot Partition. Damit kann ich ohne weitere Konfiguration per SSH auf den Raspberry Pi zugreifen. Mache ich diesen Schritt nicht, muss ich den Zugriff für SSH erst nach dem ersten Start des Betriebssystems freischalten.

Ich stecke die vorbereitete SD-Karte in den Raspberry Pi, schließe das LAN-Kabel und das Netzteil an. Jetzt startet der Minicomputer und anschließend kann ich mich per SSH auf den Raspberry Pi schalten. Dazu verwende ich unter Windows das Tool Putty. Die IP-Adresse kann ich über meinen Router ermitteln und die Standard Benutzerdaten des Pi’s sind folgende:

  • Benutzer: pi
  • Passwort: raspberry

Jetzt kann ich schon mit der Installation von Home Assistant loslegen.

Installation der Home Assistant Supervised Variante

Ich habe also den Raspberry Pi gestartet und über das LAN-Kabel hängt dieser in meinem Netzwerk. Später werde ich auf WLAN umsteigen, aber für die Installation empfehle ich die stabilere Verbindung über das Kabel.

Updates & Abhängigkeiten installieren

Als erstes werden ich das System auf den neuesten Stand bringen und anschließend einige Abhängigkeiten installieren. Das System kann ich mit folgendem Befehl updaten:

sudo apt-get update && sudo apt-get upgrade -y

Im folgenden Installiere ich die benötigten Abhängigkeiten:

sudo apt-get install jq wget curl avahi-daemon udisks2 libglib2.0-bin network-manager dbus apparmor -y

[Update – 14.02.2023]
Für die Installation der Version 1.4.1 von Homeassistant (os-agent & supervised-installer) wird die folgende Abhängigkeit noch benötigt.

sudo apt-get install systemd-journal-remote

Ich den Raspberry Pi einmal neu.

sudo reboot

WLAN einrichten

Ich verwende weiterhin die Verbindung über das LAN-Kabel, aber werde das WLAN schon einmal einrichten. Da sich bei jedem neuen Verbindungsaufbau eine neue MAC-Adresse verwendet wird, kann ich über WLAN keine feste IP-Adresse vergeben. Das Generieren der zufälligen MAC-Adresse werde ich an dieser Stelle dann auch deaktivieren. Meine Vermutung ist, dass dieses Phänomen durch den installierten Network Manager auftritt. Das habe ich aber nicht weiter nachgeschaut.

Als erstes musste ich das Land festlegen, in dem ich das WLAN verwende.

sudo raspi-config

Die Einstellung finde ich unter Localisation Options > WLAN country und wähle DE Germany aus. Anschließend sollte ich den Raspberry Pi neu starten, falls ich nicht selbst aufgefordert werde.

sudo reboot

Als nächsten Schritt hinterlege ich das gewünschte WLAN. Dazu rufe ich die folgende Datei auf:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

In die Datei trage ich die Konfiguration für mein WLAN ein:

network={
     ssid="MeinNetzwerk"
     psk="MeinPasswort"
}

Damit das WLAN nicht in den Energiesparmodus versetzt wird, trage ich in die folgende Datei noch zwei Zeilen ein:

sudo nano /etc/network/interfaces

Diese zwei Zeilen ergänze ich in der Datei:

pre-up iw dev wlan0 set power_save off
post-down iw dev wlan0 set power_save on

Zufällige MAC-Adressen deaktivieren

Um später über WLAN eine feste IP-Adresse zuordnen zu können, schalte ich die zufällige Generierung der MAC-Adresse ab. Dazu rufe ich die folgende Datei auf:

sudo nano /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

Ich trage in die Datei folgende Zeilen ein:

[connection]
wifi.mac-address-randomization=1
[device]
wifi.scan-rand-mac-address=no

Anschließend starte ich den Raspberry Pi neu.

sudo reboot

Docker installieren

Für die Home Assistant Supervised Installation benötige ich Docker. Um Docker zu installieren lade ich mir das Installationsskript herunter.

curl -fsSL https://get.docker.com -o get-docker.sh

Anschließend führe ich das Installationsskript aus:

sudo sh get-docker.sh

Ob Docker wirklich installiert wurde, kann ich mit dem folgenden Befehl prüfen:

docker --version
HomeAssistant Docker Version
Ich überprüfe die Docker Version und habe die Version 20.10.14 installiert.

Ich muss jetzt noch meinen Benutzer (in meinem Fall ist es der Standardbenutzer pi) der Docker Gruppe hinzufügen.

sudo usermod -aG docker pi

OS-Agent für Home Assistant installieren

In der Dokumentation auf GitHub wird der OS-Agent beschrieben, dass dieser die Kommunikation zwischen dem Host System und dem Home Assistant Supervisor verbessern soll. Das klingt erstmal nicht verkehrt und deshalb werde ich diesen auch installieren.

Als erstes ermittle ich meine Kernel Architektur des Raspberry Pi’s, damit ich den richtigen OS-Agenten installiere. Dies mache ich mit dem folgenden Befehl:

uname -a
Home Assistant Kernel Architektur
Die Kernel Architektur ist in meinem Fall aarch64.

In dem GitHub Repository (https://github.com/home-assistant/os-agent/releases) kann ich mir dann die richtige Version aussuchen. Bei meiner Installation ist die Version 1.2.2 die aktuellste. Ich habe mir die richtige Version ausgesucht und lade diese herunter:

wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_aarch64.deb
# [Update - 14.02.2023] Die Version 1.4.1 ist problemlos durchgelaufen.
wget https://github.com/home-assistant/os-agent/releases/download/1.4.1/os-agent_1.4.1_linux_aarch64.deb

Als nächstes installiere ich das Paket.

sudo dpkg -i os-agent_1.2.2_linux_aarch64.deb
# [Update - 14.02.2023] Installation muss entsprechend angepasst werden:
sudo dpkg -i os-agent_1.4.1_linux_aarch64.deb

Für einen kurzen check, ob das Paket installiert wurde, kann ich folgenden Befehl ausführen:

gdbus introspect --system --dest io.hass.os --object-path /io/hass/os

Die Ausgabe sollte wie im nachfolgenden Bild in etwa aussehen.

Home Assistant Überprüfung OS-Agent
Die Ausgabe für die Überprüfung der Installation des OS-Agent sollte in etwa wie in dem Bild abgebildet aussehen.

Home Assistant Supervised Installer ausführen

In diesem Schritt werden wir den eigentlichen Home Assistant installieren. Dazu laden wir das Installationspaket von dem GitHub Repository (https://github.com/home-assistant/supervised-installer/releases) herunter. Die aktuelle Version, als ich diese Installation durchführe. ist die Nummer 1.1.1. Ich musste jedoch feststellen, dass ich die Version 1.1.1 nicht installieren kann und habe die Version 1.1.0 erfolgreich installiert. Das Installationspaket ist für alle Kernel Architekturen geeignet.

wget https://github.com/home-assistant/supervised-installer/releases/download/1.1.0/homeassistant-supervised.deb
# [Update - 14.02.2023] Die Version 1.4.1 ist problemlos durchgelaufen.
wget https://github.com/home-assistant/supervised-installer/releases/download/1.4.1/homeassistant-supervised.deb

Nach dem Download folgt die Installation des Pakets:

sudo dpkg -i homeassistant-supervised.deb

Um die Installation zu vollenden, muss ich in dem angezeigten Dialog mein Gerätetyp auswählen. Ich wähle in meinem Fall den raspberrypi3.

Home Assistant Gerätetyp
Bei der Installation des Home Assistant Supervisor muss ich meinen Gerätetyp angeben. In meinem Fall ist das der Eintrag raspberrypi3.

Eine erfolgreiche Installation ist in dem nachfolgenden Bild zu sehen.

Home Assistant Installation erfolgreich beendet
Die Home Assistant Installation ist erfolgreich beendet.

Home Assistant aufrufen

Die Installation ist erfolgreich beendet und ich kann im Browser mein Home Assistant aufrufen. Dazu starte ich meinen Browser und rufe die IP-Adresse mit dem Port 8123 auf z.B. 192.168.1.100:8123. Der erste Start von Home Assistant kann bis zu 20 Minuten dauern.

Home Assistant Start Vorbereitung
Der erste Start des Home Assistant kann bis zu 20 Minuten dauern.

Nach dem erfolgreichen Start, kann ich mein Konto einrichten. Dazu trage ich meinen Namen, einen Benutzernamen, der später mein Anmeldename ist, und ein Passwort ein, dass ich nochmal bestätigen muss ein.

Home Assistant Registrierung
Nach dem erfolgreichen Start von Home Assistant richte ich mein Konto ein.

Anschließend gebe vergebe ich einen Namen, gebe meinen Standort an, wähle die Zeitzone und die Währung aus. Alle anderen Einstellungen habe ich so gelassen und mit Weiter bestätigt.

Home Assistant Einstellungen
Ich gebe alle wichtigen Daten für mein zu Hause ein.

Bei der Nachfrage, ob ich Diagnosedaten senden möchte, wähle ich nichts aus und bestätige mit Weiter.

Home Assistant Diagnosedaten
Ich möchte keine Analysen übermitteln.

Nach dem Einrichten komme ich in meine Übersicht von Home Assistant.

Home Assistant Übersicht
Nach der erfolgreichen Einrichtung gelange ich in die Übersicht von Home Assistant.

Ausblick

Die Installation und der erste Start von Home Assistant ist erfolgreich abgeschlossen. In den nächsten Schritten werde ich die Anzeige am Raspberry Pi nutzen, um die Home Assistant Oberfläche mir anzuzeigen. Ich werde anschließend den Remote Zugriff einrichten und meine Smarthome Komponenten einbinden. Das werde ich in den folgenden Artikeln berichten.

Links

Dieser Beitrag hat 28 Kommentare

  1. Peter

    Hallo und danke erstmal für die tolle Beschreibung.
    Habe es bis zum ersten Start von Home Assistant geschafft.
    Allerdings will er SOFORT ein Passwort nach dem Start.

    Ne Idee ?

    1. Lars Hieronymi

      Hallo Peter,

      das Verhalten von Home Assistant wundert mich in deinem Fall. Es kann nur ein Passwort abgefragt werden, wenn schon eine Einrichtung erfolgt ist. Wird nur ein Passwort abgefragt oder auch ein Benutzername?

      Viel Erfolg und liebe Grüße
      Lars

  2. Falko Neumann

    Super Beschreibung !!
    endlich mal kurz, stimmig und funktionierend.
    Wenn es eine Wertung geben sollte, dann 5 Sterne von mir!
    LG
    Falko

  3. Simon

    Hallo und vielen Dank. Nachdem ich ein Wochenende bereits in den Sand gesetzt habe, läuft es mit deiner Beschreibung jetzt super.

    paar Kleinigkeiten als Anmerkung: Die Text Datei für WiFi usw. sind mit strg o zu speichern und mir strg x zu schließen.

    ich hatte die neueste distribution 1.3.1 geladen, die hat aber nicht funktioniert.
    also mit
    find -name sowieso gefunden und dann mit
    RM gelöscht und nochmal neu runtergeladen.

    1. Lars Hieronymi

      Hallo Simon,
      vielen Dank für deine Anmerkungen.
      Leider wird es immer mal wieder Probleme mit verschiedenen Versionen geben. Danke für den Hinweis.
      Liebe Grüße
      Lars

  4. Simon

    Kannst du noch erklären, wie Home Assistent startet, wenn Mal der Strom weg war?

    1. Lars Hieronymi

      Hi Simon,
      der Home Assistent startet automatisch beim Systemstart.
      So musste ich keine zusätzliche Einstellung vornehmen, damit alles automatisch hochfährt, wenn der Strom mal ausfallen sollte.
      Liebe Grüße
      Lars

  5. Thomas

    Versuche den Home Assistant auf einem Raspberry Pi (3b) zu installieren.
    Beim Schritt „Home Assistant Supervised Installer ausführen“ started Home Assistant den NetworkManager neu und mein Raspberry Pi ist vom Netzwerk getrennt und verbindet auch nicht mehr neu.

    Hatte jemand das Problem mal oder weiß eine Lösung?

    1. René

      Hallo Thomas.
      Ich habe das gleiche Problem und wollte mal fragen, ob du mittlerweile eine Lösung für das Problem gefunden hast.

    2. Lars Hieronymi

      Hallo Thomas,
      hallo René,

      habt ihr den Prozess über LAN oder WLAN durchgeführt?
      Meiner Erfahrung nach zu urteilen muss es zwingend über LAN sein.
      Ich habe es eben mit der Version 1.4.1 (os-agent & supervised-installer) ausprobiert und keine Probleme gehabt.

      Liebe Grüße
      Lars

      1. Werner

        Hallo Zusammen,

        ich kann bestätigen, dass es nur über LAN geht. Zweimal hatte ich den Reboot, Nach Deaktivieren des WLAN ging es.

        Gruß Werner

  6. Henry

    Hallo,
    Ich habe das gleiche Problem bei meinem Raspberry Pi 3 / Model B Plus:
    Nach dem Start „sudo dpkg -i homeassistant-supervised.deb“ bleibt die Installation (über USB auf eine SSD) bei „[info] Restarting NetworkManager“ hängen und WLAN wird unterbrochen.
    Schade, denn die Beschreibung bis zur Installation von HA ist wirklich „super“.
    Leider aber lässt sich „Home Assistant Supervised“ nicht installieren.

  7. Henry

    Da bei der Ausführung von „Home Assistant Supervised Installer“ die WLAN-Verbindung unterbrochen wird, muss die Installation zwingend mit einer LAN-Verbindung erfolgen.
    Das funktioniert nach der obigen Beschreibung wirklich sehr gut.
    Danke dafür!
    Liebe Grüße
    Henry

    1. Lars Hieronymi

      Hallo Henry,
      leider funktioniert die Installation nur über die LAN Verbindung.
      Lieb Grüße
      Lars

  8. Daniel

    raspbian gnu/linux 11 (bullseye) is not supported

    Kommt bei mir leide rals Fehlermeldung beim befehl „sudo dpkg -i homeassistant-supervised.deb“

    Was kann ich da machen?

    1. Lars Hieronymi

      Hallo Daniel,
      welche OS Version hast du denn auf dem Raspberry Pi installiert und welche homeassistant-supervices Version versuchst du zu installieren?
      Liebe Grüße
      Lars

      1. Chris

        [warn]
        [warn] If you want more control over your own system, run
        [warn] Home Assistant as a VM or run Home Assistant Core
        [warn] via a Docker container.
        [warn]

        [error] Raspbian GNU/Linux 11 (bullseye) is not supported!

        Gleicher Fehler bei mir.
        Linux raspberrypi 6.1.21-v8+ #1642
        homeassistant-supervised Version 1.4.2 ; die aktuellste Version

        Was ist zu tun?

      2. Hans

        gibt es dazu eine Lösung?
        bei mir kommt die selbe Fehlermeldung:
        [warn] If you want more control over your own system, run
        [warn] Home Assistant as a VM or run Home Assistant Core
        [warn] via a Docker container.
        [warn]
        [error] Raspbian GNU/Linux 11 (bullseye) is not supported!
        dpkg: Fehler beim Bearbeiten des Archivs homeassistant-supervised.deb (–install):

  9. Flo

    Hallo, jetzt habe ich nach meinem 3. Anlauf einer Home Assistant Installation gehofft das richtige Tutorial gefunden zu haben, und erhalte nach dem letzten Schritt
    „sudo dpkg -i homeassistant-supervised.deb“ folgende Fehlermeldung:

    [info] Install supervisor startup scripts
    [info] Install AppArmor scripts
    [info] Start Home Assistant Supervised
    [info] Installing the ‚ha‘ cli
    [warn] Could not find /etc/default/grub or /boot/firmware/cmdline.txt failed to switch to cgroup v1
    [info] Within a few minutes you will be able to reach Home Assistant at:
    [info] http://…:8123 or using the IP address of your
    [info] machine: http://…:8123

    Gibt es da eine Lösung für?

    1. Lars Hieronymi

      Hallo Flo,

      das ist nur eine Warnung, deshalb sollte Home Assistant trotzdem starten.
      Mir wird die Fehlermeldung in Home Assistant auch noch angezeigt. Ich bin noch auf der Suche nach einer Lösung. Sobald ich dies gefunden habe, findest du die Lösung auf diesem Blog.

      LG
      Lars

  10. Olli

    Hallo zusammen,
    bei meinem Installationsversuch kam folgende Fehlermeldung, kann mir jemand helfen?

    [error] Debian GNU/Linux 10 (buster) is not supported!

    Grüße
    Olli

  11. Lars Hieronymi

    Hallo Olli,
    welches Raspberry OS hast du installiert?
    Es scheint mir ein altes zu sein, dass auf Debian 10 basiert. Die neuen basieren auf Debian 11 und da wird dieser Fehler nicht auftreten.
    LG
    Lars

  12. Frank I.

    Hier lief alles durch, bis auf diese gelbe Warnung. wie korrigiere ich das?

    [warn] Could not find /etc/default/grub or /boot/firmware/cmdline.txt failed to switch to cgroup v1

    1. Lars Hieronymi

      Hallo Frank,
      leider habe ich noch keine Lösung gefunden, wie ich den Fehler behebe. Sobald ich eine Lösung gefunden habe, findest du diese hier auf dem Blog.
      LG
      Lars

      1. Ragnar von Löwe

        Hallo zusammen
        Ich bin ebenfalls bis zu genau dieser Fehlermeldung gekommen und bin daher gespannt auf die Lösung des Problems.

  13. Thommy

    @Frank
    Hallo!
    Super Tutorial. Besten Dank an Lars.
    Ich hatte neben den zwei beschriebenen Fehlern (AppArmor und Network Manager) noch einen dritten in Home Assistant. Leider kann ich mich nicht mehr an die genauer Fehlermeldung erinnern, es hing jedoch mit „CGroup v2“ zusammen. Home Assitant benötigt anscheinend „CGroup v1“ – siehe: https://www.home-assistant.io/more-info/unsupported/cgroup_version

    Ich denke das hängt mit dieser gelben Warnung zusammen: „[warn] Could not find /etc/default/grub or /boot/firmware/cmdline.txt failed to switch to cgroup v1“. Hier versucht das Script etwas an grub bzw. an die cmdline anzuhängen.

    Jedenfalls konnte ich mein Problem lösen, in dem ich folgendes an die cmdline.txt angehängt habe – das habe ich gleich zusammen mit dem AppArmor Fix erledigt: systemd.unified_cgroup_hierarchy=0

    Gefunden habe ich das hier: https://askubuntu.com/questions/1399741/trying-to-fix-docker-cgroup-doesnt-match-target-mode-with-adding-kernel-boot

    1. Lars Hieronymi

      Hallo Thommy,
      vielen Dank für dein Kommentar.
      Du hast du Lösung für die Warnmeldung der Docker Group scheinbar gefunden. Das werde ich demnächst auch testen und in einen extra Artikel packen.
      LG
      Lars

  14. Tobi

    Hallo.
    Ein Super Tutorial. Hat soweit alles gut funktioniert. Gewisse Warnungen wie AppArmor und cGroup habe ich teilweise durch die Kommentare hier lösen können.
    Allerdings bekomme ich 2 Warnungen nicht weg und ich weis nicht ob die rellevant sind.:
    Nicht unterstütztes System – Systemd Journal-Probleme
    Nicht unterstütztes System – Von Systemd behobene Probleme

    Alle anderen habe ich wegbekommen. Ich nutze einen Raspberry Pi4 mit 8GB Speicher und dass aktuelle Raspberry OS.

    Hat da jemand eine Idee? Die Lösungsansätze auf der Homeassistant Seite habe ich schon ausprobiert.

    Lieben Gruß

Schreibe einen Kommentar