Home Assistant ins Internet ?

 

Natürlich habe ich mir die Frage auch gestellt, denn dein eigenes Heim ist die persönlichste Umgebung und niemand Fremdes hat dort ohne Einladung etwas zu suchen. Auch Sicherheitsaspekte spielen eine Rolle. Wenn ein brasilianischer Script Kiddie es schafft, das Licht in Deinem Schlafzimmer einzuschalten ist das zwar nervig aber eine andere Qualität, als wenn jemand Deine Sicherheitssysteme überlistet, oder sogar Zugriff auf deine Kameras hat. Alexa ist ein großes Thema in der HA Szene. Ich persönlich verzichte darauf. TTS (Text to Speech) ist ein interessantes Thema und HA kann das auch "out of the Box" aber irgendwie habe ich ein mulmiges Gefühl ein ständig online betriebenes Mikrofon jedes Wort im häuslichen Umfeld aufnehmen lassen. Das klinkt paranoid, und ich weiß als Fachmann sehr genau, dass mein Handy im Grund nichts anderes macht.

Wenn ihr "den Pakt mit dem Teufel ääh Alexa" eingeht, ist HA eine feine Sache das komfortabel zu nutzen. Hier findet ihr allerdings keine Informationen, da ich einfach keine Erfahrung damit habe. Viele meiner meist jüngeren Fachkollegen sehen das viel pragmatischer, aber vielleicht bin ich einfach zu alt dafür.

 

HA Server hat Zugriff aufs Internet

 

Ok, das löst noch nicht unser Problem, darum fange ich mal mit dem Einfachen an, dem Internet Empfang. Dieser sollte auf jedem Fall erlaubt werden. Hintergrund ist, das der HA Server eine gigantische Dynamik erfährt. Tausende von Entwicklern fummeln am System herum, es gibt neue Funktionen, Bugs werden beseitigt oder neue Integrationen etabliert. Daher gibt es in engen Zeiträumen Updates, die das System automatisch erkennt und zur Aktualisierung aufruft. Das Gleiche gilt auch für die installieren Add-Ins.

Nebenbei bemerkt sollte man immer das Change Log und die Release Notes lesen. Manchmal kann es nämlich vorkommen, dass eingesetzte Integrationen nicht mehr funktionieren oder anders angesprochen werden.

 

Internet hat Zugriff auf den HA Server

 

Ich habe die Überschrift bewusst so gewählt, damit jedem klar ist, was das bedeutet. Natürlich kann man einen HA Server sehr erfolgreich komplett insoliert betreiben, aber .... es macht einfach keinen Spaß :-)

 

Es gibt drei Dinge, die mich dazu bewogen haben, meinen Server aus dem Internet erreichbar zu machen. 

  • die Möglichkeit von jedem Ort der Welt den Zustand meines Hauses zu überprüfen.
  • die Möglichkeit von jedem Ort der Welt aktiv mit meinem Haus zu interagieren. (über Webseite oder Handy App)
  • Benachrichtigungen zu empfangen, wenn etwas nicht stimmen sollte, oder andere Dinge, die mein Haus meint mir mitteilen zu müssen ;-)

Später kam noch ein weiterer Punkt hinzu, nämlich die Nutzung Cloud basierender Smart Devices wie bsw. Tuya. Auch das ist ein Pakt mit dem Teufel, weil quasi ein Chinese dein Licht steuert. Auch weiß man nicht hundertprozentig, ob die schicke WLAN Wohnzimmerlampe dich nicht doch ausspioniert.

 

Wenn ihr meine Entscheidung teilt, muss man natürlich versuchen, das System so sicher wie möglich zu machen.

Bei mir sind folgende Dinge wichtig:

  • Server mit SSL und Zertifikat betreiben
  • keine Trivialpasswörter und die auch öfters mal ändern.
  • URL des Servers so geheim wie möglich halten (werdet ihr hier auch nicht sehen)
  • Portfreigabe im Router nur auf Port 8123
  • Keine Zutrittskontrolle über Home Assistant
  • Kameras zeigen nie private oder systemrelevante Dinge wie Wohnzimmercouch oder Bett oder meine Sicherheitseinrichtungen.
  • Sicherheitssysteme wie Alarmanlagen nicht mit HA basteln sondern was anständiges besorgen (Idealerweise VdS konform)
  • Passwörter in der Configuration nicht fest verdrahten sondern die secrets.yaml nutzen

Portfreigabe im Router einrichten.

 

Ein anständig eingerichteter Internetzugang hat einen Router, der auch als Firewall fungiert. Damit man von außen auf irgendwas zugreifen kann muss eine Portfreigabe eingerichtet werden. In unserem Fall weißt ein Zugriff auf Port 8123 auf unseren lokalen HA Server.

Bei mir ist es wie bei vielen anderen die FRITZBOX und das sieht so aus :

 

Ich habe keine Ahnung ob HA auch mit IPv6 funktioniert, aber ich habe bewusst darauf geachtet, dass mein Internet Provider auch noch IPv4 hat.

 

Home Assistant auf SSL umstellen.

 

Bevor ich die Einrichtung weiter erkläre kurz ein Wort über Github. Damit die abertausenden von ehrenamtlichen HA Entwickler zueinander kommen und ein einheitliches System daraus wird, wird ein globales Versionsverwaltungsprogramm benutzt, nämlich https://github.com/

Wie das genau funktioniert (Pulls, Commits, Repositories) ist eher für Entwickler interessant aber ihr werdet immer wieder mit Github in Berührung kommen und zwar das erste mal jetzt :-)

 

DynDNS mit DuckDNS einrichten

 

Wenn man Webseiten im Internet aufruft macht man dies über einen Namen. Eigentlich ruft man aber eine IP-Adresse auf. Niemand kennt aber die IP Adressen. Dafür gibt es den DNS Dienst (Domain Name Service) So hat beispielsweise www.bild.de die Adresse 2.16.101.107.

 

Unser heimischer HA Server benötigt auch einen Namen, hat aber gegenüber "großen" Webservern einen großen Nachteil. IPv4 Adressen sind rar und Internetprovider neigen gerne mal dazu, diese Adressen alle 24 Stunden zu ändern, was für den Zugriff auf unseren Server natürlich tödlich wäre. Daher hat irgendwer Schlaues den DynDNS Dienst erfunden. Der geht nämlich hin und erkennt, wenn sich die eigene (öffentliche) IP Adresse geändert hat und ändert auch den DNS Eintrag.

 

Dafür hat HA das schöne Add-on namens Duck DNS

 

Installation:

  1. mittels Supervisor->Add on Store das Duck DNS Add-on instalieren
  2. auf der Webseite duckdns.org einen Account anlegen Unterstützt werden Google, Github, Twitter, Persona und Reddit.Bei mir hat allerdings nur Github funktioniert. Also erst bei Github einen Account erstellen und dann mit den Anmeldedaten bei DuckDNS anmelden.
  3. Dann unter "Domains" "add Domain" drücken und den Wunschnamen eintragen. Der wird dann vor duckdns.org gestellt (Beispiel jupp.duckdns.org)
  4. Auf der Seite wird nun ein Security Token angezeigt (quasi die Autorisierung für diese Domäne). Diese muss in die lokale Konfiguration kopiert werden, die dann so aussieht:

lets_encrypt:
  accept_terms: true
  certfile: fullchain.pem
  keyfile: privkey.pem
token: df02377b-c197-4e25-80016-209a2a4526f8321
domains:
  - jupp.duckdns.org
seconds: 300

 

SSL Zertifikate

 

Damit eine Seite mit SSL funktioniert müssen Zertifikate hinterlegt werden. Auch hier nimmt DuckDNS uns die Arbeit ab und bindet die Zertifikate des kostenlosen Anbieters Lets Encrypt automatisch ein. 

Kommentare: 0