Fernzugriff auf Home Assistant

Mit der Nabu Casa Cloud ist es problemlos möglich, die eigene Home Assistant Installation von außerhalb des eigenen Netzes zu erreichen. Es gibt nur einen einzigen Nachteil – der Service verursacht monatliche Kosten.

Eine kostenlose und sicherere Möglichkeit ist die Anbindung über Cloudflare. Voraussetzung dafür ist jedoch, dass Du über eine eigene Domain verfügst und dort die sog. nameserver ändern kannst.

1. Cloudflare Registration

Du benötigt einen Account bei Cloudflare. Das ist kostenlos und auch den Service, den Du von Cloudflare benötigst, bekommst Du in einer kostenloses Version. Die Registrierung selbst ist nicht kompliziert und sollte von jedem zu schaffen sein.

2. Domain in den Account einbinden

Als nächstes musst Du Deine Domain in deinen Cloudflare Account einbinden. Das funktioniert, in dem Du in der oberen Menüleiste „Webseite hinzufügen“ anwählst. Du bekommst dann mehrere „Pläne“ zur Auswahl angezeigt. Scrolle die Seite ganz nach unten, um den kostenlosen „Plan“ von Cloudflare zu finden. Den wählst Du aus.

Wenn Du Deine Domain auf diese Weise registriert hast, bekommst Du in der linken Menüleiste mehrere Auswahlmöglichkeiten angezeigt. Hier wählst Du den Eintrag DNS aus und scrollst nach unten, bis die Cloudflare nameserver angezeigt werden.

3. nameserver ändern

Nun musst Du bei Deiner Domain die nameserver durch die bei Cloudflare angegebenen nameserver ersetzen. Wie das geht hängt davon ab, bei welchem Anbieter Du bist. Ich habe z.B. einen Vertrag mit alfahosting. Dort ist es extrem einfach die Änderung durchzuführen. Man muss lediglich eine kurze Nachricht an den Kundenservice schreiben und die Cloudflare nameserver werden dann ersetzt. Bei anderen Anbietern kann es erforderlich sein, diese Einstellungen selbst im Wartungsbackend der Domain selbst durchzuführen.

4. Cloudflare Add-on installieren

Jetzt musst Du in Home Assistant das Cloudflare Add-on installieren. Den Add-on Store erreichst Du über Einstellungen, Add-ons und dann unten rechts Add-On Store. Allerdings ist das benötige Ade-on nicht standardmäßig installierbar. Aus diesem Grund musst Du erst über das Drei-Punkte-Menü oben rechts eine neue Repository hinzufügen. Sie lautet:

https://github.com/brenner-tobias/ha-addons

Nach der Installation des Cloudflare Add-ons müssen die Einstellungen in der Konfiguration vorgenommen werden. Es muss nun der Name der neuen Domain eingegeben werden. Danach wird das Add-on gestartet.

5. Cloudflare Zertifikat erstellen

Das Add-on versucht nun, sich mit Cloudflare zu verbinden und einen Tunnel aufzubauen. Beim ersten Start wird das Add-on bemerken, dass die Verbindung nicht authentifiziert ist. Im Add-on wechselt Du nun in den Reiter Protokoll. Dort erhält Du die Meldung, dass Du dich auf der angegebenen Cloudflare Seite mit deinem Cloudflare Account einloggen sollst. Aus dem Protokoll musst Du daher den Link kopieren und in einen Browser einfügen.

Im Browser öffnet sich dann Cloudflare und es wird bereits die Domain angezeigt, die Du durch Anklicken auswählen und dann authorosieren kannst.

Danach kannst Du im Home Assistant das Cloudflare Add-on neu starten.

6. Home-Assistant konfigurieren

Um zu testen, ob die Verbindung steht, könnt ihr in einem neuen Tag den Namen Eurer Domain eintragen. Das Ergebnis sollte dann so aussehen.

Es ist jetzt noch erforderlich, in Home Assistant die notwendigen Einstellungen vorzunehmen, damit Home Assistant mit dem Cloudflare-Tunnel zusammenarbeitet. Wie das funktioniert, ist in dem Add-On dokumentiert. Unter dem Reiter Dokumentation findest Du im unteren Bereich die Änderungen die in der Datei configuration.yaml vorgenommen werden müssen. Ergänzend dazu könnt ihr noch weitere Sicherheitseinstellungen einfügen – das ist aber zur Funktion nicht zwingend notwendig. Die Veränderungen in der Datei configuration.yaml können am leichtesten mit dem Add-on File Editor vorgenommen werden. Der File Editor ist nicht standardmäßig installiert, muss also im Add-on Store ggf. noch hinzugefügt werden.

http:
  cors_allowed_origins:
    - https://google.com
    - https://www.home-assistant.io
  ip_ban_enabled: true
  login_attempts_threshold: 3  
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24

7. Anmeldung über Fernzugriff

Nach einem Neustart ist der Fernzugriff eingerichtet. In einem Browser könnt ihr nun Eure Domain eingeben und werdet zum Anmeldedialog geleitet.

4 Antworten

  1. Ist das nicht ein wenig Aufwendig ?
    Ein einfacher DynDNS Dienst, der die aktuelle IP des Router weiter gibt.
    Den Router (FritzBox kann das problemlos, andere Router sicher auch) so einstellen, das er immer die neue IP an den Dienst meldet.
    Eine Portweiterleitung im Router einrichten. z.B. Port 5493 auf Port 80 und den auf HA leiten.
    Fertig.
    Vollkommen kostenlos, viel einfacher einzurichten.
    Nachteil sicher kein HTTPS, aber ich übertrage auch keine geheimen Daten zwischen meinem Tablett und HA.

    Andere, noch einfachere Möglichkeit und auch sicherer.
    VPN Verbindung aufbauen, mit lokaler IP bei HA im Webbrowser anmelden.
    Fertig.

    1. Das liegt natürlich immer im Auge des Betrachters. Aus Sicherheitsgründen dürfte allerdings der Zugang über Cloudflare gegenüber dem Anbieter DynDNS verbunden mit einer Portfreigabe auf dem Router zu bevorzugen sein.

  2. Vielen Dank für die Anleitung.
    Leider klappt es bei mir nicht.

    In Cloudflare wird der Status „aktiv“ angezeigt.

    Wenn ich meine Domain aufrufe bekomme ich aber folgende Meldung:

    404 Not found
    The requested URL was not found on this server.

    Im Home Assistant im Protokoll des Cloudflare-Add-Ons bekomme ich folgende Meldung:

    Leave cloudflared running to download the cert automatically.
    2023-12-09T16:25:40Z INF Waiting for login…
    2023-12-09T16:26:33Z INF Waiting for login…
    2023-12-09T16:27:26Z INF Waiting for login…
    2023-12-09T16:28:18Z INF Waiting for login…
    2023-12-09T16:29:11Z INF Waiting for login…
    2023-12-09T16:30:04Z INF Waiting for login…

    Was kann ich tun?
    Vielen Dank!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert