Die Idee ist, dass man einen Home Assistant Instanz ganz einfach von „Außen“ erreichbar macht ohne z.B. Ports auf dem Router wie der Fritz!Box, Speedport und anderen gängigen Routern öffnen muss. Wenn man zum Beispiel so überzeugt ist von Home Assistant und sich als „Admin“ für gewisse Familienmitglieder bereit erklärt bei Home Assistant zu unterstützen, dann kann diese Funktion sehr hilfreich sein. Denn man kann auf seinem System seiner Wahl einen Home Assistant konfigurieren und installieren, wie zum Beispiel auf einem Raspberry Pi
(nicht empfohlen) einem Odroid N2+
auch unter dem Namen Home Assistant Blue
bekannt oder einem leistungsstärkeren Intel NUC
.
Man bereitet das System so weit vor und lern alle Geräte ein wie Zigbee2Mqtt mit diversen Lampen von Lidl, Sensoren von Aqara und anderen Herstellern, die auf Zigbee setzen. Man richtet entsprechend Szenen und Automationen ein, erstellt ggf. auch ein Grafana Dashboard mit Daten aus einer InfluxDB, um z.B. die hier beschrieben Aktivitäts-Check vom SeniorenSmarthome.de zu erstellen (Links zum Dashboard und den Automationen im Artikel verlinkt).
So jetzt kann man alles in eine Kiste packen und verschicken und muss dem Empfänger nur sagen, dass er den „Computer“ nur an Strom und an den Router anschließen muss.
Aber wie wird das Home Assistant System über das Internet mit dem „Admin“ verbunden? TeamViewer über Opas PC verbinden und über den Browser auf Home Assistant zugreifen? Ab Besten gleich noch Duckdns einrichten und entsprechende Ports auf dem Router freigeben? Alle too much für so eine einfache Funktion.
Wir haben natürlich beim Aufsetzen des Home Assistant Systems auch einen Open VPN Client mit installiert. Dieser baut einen Tunnel zwischen einem Open VPN Host und unterschiedlichen Clients auf. Der Client baut automatisch eine Verbindung zum OpenVPN Server auf, wenn Internet verfügbar ist. In dieses Virtuelle Private Netzwerk kann sich auch der „Admin“ einwählen, ist somit teil des Netzwerks und kann von dort aus den z.B. Pi erreichen.
OpenVPN Docker
Hier wie (wirklich gut beschrieben) den Container Schritt für Schritt einrichten und die Konfigurationsdateien für die Clients erstellen lassen und kopieren.
https://hub.docker.com/r/kylemanna/openvpn/
Also OpenVPN Host kann man z.B. seine eigene Home Assistant Instanz verwenden (genügend freie Ressourcen vorrausgesetzt). Dann kann hier
udp://VPN.SERVERNAME.COM
z.B. eine DuckDNS Adresse eingetragen werden. Nutzen kann man aber auch eine Cloud Server bei Hetzner
Hier zum Beispiel der leicht angepasste Code zum Erstellen der Installer Konfigurationsdatei mit Namen hainstaller1
:
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full hainstaller1 nopass
Diese wird dann mit dem folgenden Befehl aus dem Docker Container in das Hauptsystem kopiert:
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient hainstaller1 > hainstaller1.ovpn
OpenVPN Client für Home Assistant (Add-On)
Zunächst muss das folgenden Repository dem Add-On bereich in Home Assistant hinzugefügt werden:
oder manuelles hinzufügen des Add-ons mit folgender url: https://gitlab.com/SmartLiving.Rocks/HomeAssistantSupport
Danach das Add-on installieren. Bevor das Add-on gestartet werden kann, muss noch die generierte *.ovpn
Datei in das Verzeichnis /share
kopiert werden.
Jetzt kann das Add-on gestartet werden.
VPN-Verbindung überprüfen
Auf Home Assistant
Die Logs des Add-ons überprüfen. Hier steht dann auch die IP-Adresse, die vom virtuellen Netzwerk vergeben wurde.
Auf dem Host System
docker logs f358b9hhbf23
oder einfach über die Log-Taste bei Portainer