Home Assistant Fernzugriff leicht gemacht

Home Assistant Fernzugriff mit Letsencrypt
Home Assistant – Fernzugriff mit Letsencrypt

Home Assistant ist eine kostenlose und quelloffene Software zur Hausautomation, hat sehr große Community, die Beiträge sind überwiegend in englische Sprache. Hierzulande haben wir auch mehr und mehr Menschen welche sich für Home Assistant interessieren. Die Installation auf Raspberry Pi ist leicht und schnell erledigt, Home Assistant App ist auch für Android und iOS Systeme erhältlich.

Home Assistant auf Raspberry Pi installieren.

51AU2VtM3DL. SL75

InnoConnect Raspberry Pi 4 (4GB RAM) Bundle 32GB, schwarz

Price: 169,90 €

1 used & new available from 169,90 €

Überwiegend große Anteil von Anwender will Home Assistant Apps installieren und auch unterwegs in Verbindung mit Smart Home System bleiben, um ihm zu steuern und überwachen. Sehr viele Besucher haben sie sich gemeldet und Interesse an so eine Artikel gezeigt. Hier will ich noch erwähnen das die alle hier beschriebenen Methoden sind auch für alle andere Geräte in Heimnetzwerk, wie Smart Home Systeme, Nextcloud, Bitwarden, etc. anwendbar.

Home Assistant Fernzugriff mit Tailscale

Tailscale ist eine VPN Verbindung mit dem wir Computer miteinander verbinden können, schnell und sicher und das alles ohne komplizierte Konfigurationen. Tailscale bietet uns die Möglichkeit Computer über das Internet in einem virtuellen privaten Netzwerk miteinander zu verbinden, indem wir auf jedem Computer ein kleines Programm installieren und uns mit den Benutzerdaten anmelden. Wir müssen keinen Port öffnen, keinen VPN Server auf jedem Computer bereitstellen oder komplizierte Einstellungen durchführen.

Home Assistant Fernzugriff mit Tailscale
Abbildung Nr. 1 – Home Assistant Fernzugriff mit Tailscale

Die Installation ist ganz leicht, zuerst erstellen Sie ein Account unter Tailscale.com, danach unter HA >> Einstellungen >> Supervisor >> Addon Store nach Tailscale suchen und installieren. Jetzt bleibt noch Installation auf gewünschten Gerät, z.B. Smartphone oder PC und damit ist die Tailscale VPN Installation fertig. Unterwegs müssen Sie Tailscale VPN einschalten und HA App hat die Verbindung mit Heimserver. Mit Tailscale ist ein Account mit bis zu 20 Geräte kostenlos.

Video HA mit Tailscale VPN.

Vergleichbar einfache Lösung um Fernzugriff für HA zu bekommen ist in Smart Home schon integriert unter Einstellungen >> Home Assistant Cloud von Nabu Casa und ist kostenpflichtig, 30 Tage Testphase ist kostenlos.

Die zwei erwähnte Methoden eignen sich für alle Internetanschlüsse, egal ob IPv4 oder IPv6, auch für Anwender mit DS-Lite Anschluss z.B. Kabel von Vodafone. Alle ab jetzt beschriebene Methoden bevorzugen IPv4.

Anleitung – Fernzugang für Anwender mit DS-Lite

HA hat noch zwei Addon für Fernzugriff im Angebot, Duck DNS und NGINX Proxy Manager, einfach zu installieren und verwalten. Duck DNS ist klassische DynDNS Dienst verwendbar für alle DSL Anschlüsse mit dynamische IPv4 Adresse, Installation wie schon erwähnt ist ganz einfach und unter HA Wiki Duck DNS zu finden. Alles was Sie machen müssen ist: Duck DNS Account erstellen, danach bekommen Sie Token welche müssen Sie dann inklusive DynDNS Domain gemäß Wiki in configuration.yaml eintragen.

HA Fernzugriff mit Duck DNS und Letsencrypt

NGINX Proxy Manager ist ein Verwalter für die verschiedene DynDNS Adressen, so ist möglich mehrere Geräte in Heimnetzwerk (z.B. Nextcloud, Smart Home Lösungen, Kameras,etc.) mit eigene DynDNS Adresse ansprechen z.B. homeassistant.mydyndns.org für HA, nextcloud.mydyndns.org für Nextcloud, etc. NGINX Proxy Manager erstellt für je Adresse auch Letsencrypt Zertifikat und so ist Verbindung verschlüsselt und meckert kein Browser oder App. Wenn Sie eine echte Domain besitzen dann haben noch einfacher, Sie können statt DynDNS Namen einfach eigene Subdomain mit CNAME Record und Proxy Manager benutzen.

Port 80 und 443 Freigabe in Router für NGINX PM nicht vergessen, wichtig für Letsencrypt Zertifikat. Feste IP Adresse Zuweisung ist auch von Vorteil.

Video NGINX Proxy Manager.

Home Assistant Fernzugriff mit Apache Reverse Proxy

Apache Reverse Proxy ist auch wie NGINX Proxy Manager ein Verwalter für Fernzugriff in Heimnetzwerk. Sie benutzen mehrere Domainnamen um verschiedene Geräte anzusprechen. Die Verbindungen sind auch mit Letsencrypt Zertifikat verschlüsselt, Unterschied zu NGINX Proxy Manager ist: Keine Web-Konfigurationsmenü, müssen Sie Code selbst anpassen, hat mehr Anpassungsmöglichkeiten, besonders für HA geeignet weil NGINX Proxy Manager manchmal wegen Websocket keine richtige Lösung ist.

Apache Reverse Proxy muss nicht auf gleiche Gerät (z.B. Raspberry Pi) installiert sein, beherrscht Websocket Verbindungen und Fernzugriff zu HA klappt hundertprozentig. Apache RP können Sie für alle mögliche Geräte in Heimnetzwerk benutzen.

Hier wird Installation auf Raspberry Pi beschrieben, es kann RPI 2/3 oder 4 sein. Sie müssen SSH Client benutzen um sich mit Raspberry Pi zu verbinden, Linux Anwender benutzen Terminal, Windows Anwender z.B. Putty.

# Installation Apache2 Server #
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2 -y

Apache Server haben wir installiert, jetzt müssen wir auch verschiedene Apache Module welche sind für Reverse Proxy Betrieb wichtig noch einschalten.

# apache module einschalten #
sudo sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
# Apache neustarten #
sudo service apache2 restart

Weitergeht mit Erstellung von Konfiguration Datei sogenannte conf Datei, wird für je Gerät (Fernzugang) eine conf Datei erstellt.

## create config for nextcloud client ##
sudo nano /etc/apache2/sites-enabled/nextcloud.conf
## danach eintragen ##
<VirtualHost *:80>
 ServerName nextcloud.yourdomain.com
 ProxyPreserveHost On 
 DocumentRoot /var/www/html
 ProxyPass /.well-known !
 ProxyPass / http://192.168.xx.xx:80/
 ProxyPassReverse / http://192.168.xx.xx:80/
</VirtualHost>
## apache neustarten ##
sudo service apache2 restart

Die Punkte müssen Sie anpassen: ServerName und Gerät IP Adresse. Sie können als Domain (ServerName) DynDNS Adresse von verschiedenen DynDNS Anbieter verwenden oder schon erwähnte Subdomain. Weiteres Punkt ist Installation von Python Script (Certbot) für Letsencrypt Zertifizierung.

## install Let's Encrypt Certbot ##
sudo apt-get install python3-certbot-apache

## Zertifizierung starten ##
sudo certbot --apache

Letsencrypt Zertifikat ist 90 Tage gültig, Erneuerung automatisieren wir mit Cronjob, täglich um 03:00 wird Zertifikat überprüft und nach Bedarf erneuert.

## cron ##
sudo crontab -e

## eintragen ##
0 3 * * * /usr/bin/certbot renew & > /dev/nul

Anpassung von Apache conf-Script für Home Assistant Fernzugriff

Sie haben jetzt alles bis zum Ende geschafft, aber trotzdem besteht kein Fernzugriff für Home Assistant. Sie müssen noch die conf Datei in Apache Ordner anpassen.

## apache conf Datei anpassen ##
cd /etc/apache2/sites-enabled
ls -la
Apache2 conf Datei
Abbildung Nr. 2 – Apache2 conf Datei

Sie sehen Datei welche in Namen le-ssl tragen, die sind von Letsencrypt erstellt, jetzt müssen Sie diese Datei welche zur Home Assistant gehören (z.B. bei mir rot markiert, Abbildung Nr. 2) mit sudo nano xxxx-le-ssl.conf öffnen und bearbeiten. Am einfachsten alles löschen und die Konfiguration unten eintragen.

<IfModule mod_ssl.c>
<VirtualHost *:443>
 ServerName xxxx.mydomain.org
 ProxyPreserveHost On 
 DocumentRoot /var/www/html
 ProxyPass /.well-known !
 ProxyPass / http://192.168.xx.xx:8123/
 ProxyPassReverse / http://192.168.xx.xx:8123/
 ProxyPass /api/websocket ws://192.168.xx.xx:8123/api/websocket
 ProxyPassReverse /api/websocket ws://192.168.xx.xx:8123/api/websocket
 
 RewriteEngine on
 RewriteCond %{HTTP:Upgrade} =websocket [NC]
 RewriteRule /(.*)  ws://192.168.xx.xx:8123/$1 [P,L]
 RewriteCond %{HTTP:Upgrade} !=websocket [NC]
 RewriteRule /(.*)  http://192.168.xx.xx:8123/$1 [P,L]

SSLCertificateFile /etc/letsencrypt/live/xxxx.mydomain.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxxx.mydomain.org/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Anpassen müssen Sie folgendes:

  • ServerName
  • ProxyPass
  • ProxyPassReverse
  • api websocket
  • RewriteRule
  • SSLCertificateFile

Wie Sie sehen, ist alles selbsterklärend. Haben Sie alles angepasst, dann müssen Sie Apache mit sudo service apache2 restart neu starten und Fernzugriff testen.

(Visited 197 times, 1 visits today)

Ein Kommentar

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht.