Homeassistant

HomeAssistant als Docker-Container

Eine alternative Installationsmethode für Besitzer eines dockerfähigen NAS ist, sowohl MQTT als auch HomeAssistans als Docker-Container zu installieren.
Vorteil:

  • die Container verwenden fertige Images und sind sofort einsatzbereit.
  • Die Konfigurationsdateien werden über ein Share-Verzeichnis des NAS eingebunden. Die Daten sind also lokal unabhängig vom Container gespeichert und können über das normale Backup gesichert werden
  • Für ein Update wird der Container entfernt und mit neuem Image neu eingebunden. Die Konfig-Daten werden vom Share wieder eingebunden.

Ich beschreibe die Einrichtung in einem QNAP-NAS.

Vorbereitung
Zur Sicherung der Konfig-Daten benötigt ihr ein Netzwerk-Share (Freigabeverzeichnis), z.B. “ContainerData”.
Darin legt ihr Verzeichnisse je Container an. Die Namen könnt ihr wählen. Ihr müsst später diese Verzeichnisse verwenden:

  • HomeAssistant
  • MosquittoBroker (mit Unterverzeichnisse /config, /data, /log)

Das NAS muss eine feste IP im Netzwerk besitzen. Alternativ könnt ihr für die Container während der Einrichtung eine feste IP im Bridge-Modus vergeben.

Teil 1: MQTT-Broker

Docker-Image: eclipse-mosquitto Docker Hub

  1. eclipse-mosquitto als Docker suchen und “Installieren” klicken.

  2. Version wählen. Ich wähle i.d.R. nicht “latest”, sondern eine explizite Version, um die Version später am Image erkennen zu können.
    grafik

  3. Ihr könnt einen Name für den Container wählen. Klickt dann auf “Erweiterte Einstellungen”.
    grafik

  4. Wählt die Einstellungen für den Container.
    Keine Umgebungsdaten:


    Netzkerk: Host für Erreichbarkeit unter der NAS-IP. Alternatig Bridge-Modus über den virtuellen Switch mit Angabe einer separaten IP.

    Unter “Freigabe” ordnet ihr den Mountpunkten des Containers (rechts) eure Verzeichnisse eures Shares zu (links).

    Jetzt mit “Erstellen” den Container anlegen. Der Download, Einrichtung und Start dauert etwas.

  5. Evtl. Rechte vergeben.
    Ich musste für die Verzeichnisse und Dateien im Konfig-Verzeichnis noch Rechte für den MQTT-Container-User vergeben. Dazu am besten mit WinSCP am NAS anmelden, ins Konfig-Verzeichnis wechseln und diese Rechte vergeben:
    Verzeichnisse: Gruppe+Eigentümer: 1883 Rechte: 6777
    Dateien (.log / .db): Gruppe+Eigentümer: 1883 Rechte: 0660
    Der User, mit dem der MQTT-Dienst läuft heißt “1883” (wie der http-Port :-))

Damit sollte der Container starten.


Prüft im Konsolen-Fenster der Container-Station, ob alles ok ist.
Sollte der Container-Start abbrechen, müsste im Konsolenfenster nach vorhandenen Fehlern schauen.

  1. Passwort:
    Aktuell ist der Broker ohne Benutzeranmeldung erreichbar. Wollt ihr einen User+PW verwenden, dann könnt ihr eine Passwortdatei erzeugen. Ich bin leide rnicht mehr sicher, ob das in der NAS-Konsole zu erledigen ist oder evtl. direkt in der Container-Konsole:
    Der Befehl dazu: mosquitto_passwd -b passwordfile user password
    Die Datei muss im Verzeichnis /config angelegt werden.
    Nach einem Neustart des Containers sollte der Broker bei einer Verbindung User+PW anfordern.
    Weitere Infos dazu: http://www.steves-internet-guide.com/mqtt-username-password-example/

Teil 2: HomeAssistant

Docker-Image: homeassistant/home-assistant Docker Hub

  1. Installiert den Container wie beim MQTT-Broker. Sucht dazu das Image homeassistant/home-assistant im Bereich “Docker”. Wählt die höchste Version (stable, keine dev-Version).

  2. Vergebt einen Containername und wählt die Erweiterten Einstellungen.
    Umgebungsdaten: TZ = Europe/Berlin


    Netzwerk: Host zur Verwendung der NAS-IP. Alternativ Bridge-Mode.

    Freigabe: Verbindung des Mountpunktes /config zu eurem Share-Verzeichnis.

    Jetzt mit “Erstellen” den Container anlegen. Der Download, Einrichtung und Start dauert etwas.

  3. HomeAssistant sollte nun laufen.


    Ihr könnt nun Homeassistant unter von euch gewählten IP und Port 8123 aufrufen (wenn Host-Modus gewählt wurde, sonst verwendet ihr die IP des Bridge-Modus).
    http://NAS-IP:8123

Teil 3: Einrichten der Verbindung HA=>MQTT
Das funktioniert immer identisch (wie von Uwe/Undertaker beschrieben).

  1. MQTT-Integration in HomeAssistant hinzufügen
  2. Verbindungsdaten zum MQTT-Broker angeben:

Teil 4: Verbindung Homey=>MQTT-Broker

  1. In Homey die App “MQTT-Client” installieren.
    Dort die IP des Brokers sowie ggf. Bentzer+PW angeben. Damit habt ihr die grundlegende Verbindung eingerichtet.
  2. In Homey die App “MQTT-Hub” installieren.
    Diese App liest alle Homey-Geräte aus und sendet diese an den MQTT-Broker. Dazu verwendet die App das Home-Assistant-Discovery-Verfahren.
    Die Geräte werden einmal “normal” unter der Homey-ID an MQTT gesendet.
    Zusätzlich wird eine Referenz auf diese Entität in die Auto-Discovery-Topic gesendet. Über die Autodiscovery-Daten kann HomeAssistant die Geräte mit korrektem Typ automatisch integrieren.

Teil 5: Fehlersuche
Falls ihr Fehler in den MQTT-Daten sucht, dann könnte ein MQTT-Explorer hilfreich sein. Diese Programme zeigen euch die Topics im MQTT-Broker incl. Werten, Zeitstempel, Aktualisierungen.

Das Programm findet ihr hier:

2 Likes