Wichtige Info

Die Inhalte, die du hier siehst stelle ich dir ohne Werbeanzeigen und ohne Tracking deiner Daten zur Verfügung. Trotzdem muss ich die Server bezahlen sowie Zeit in Recherche, Umsetzung sowie Mail Support stecken.
Um dies leisten zu können, verlinke ich in einigen Artikeln auf die Plattform Amazon. Alle diese Links nennen sich Afiliate Links. Wenn du dir mit diesem Link etwas kaufst, dann erhalte ich eine kleine Provision. Dies ändert jedoch NICHT den Preis, den du bezahlst!
Falls du mich also unterstützen möchtest, kannst du auf den Link zum Produkt klicken und hilfst mir dabei, dieses Hobby weiter zu betreiben.
Da ich Keine Werbung schalte und keine Spenden sammle, ist dies die einzige Möglichkeit, meine Systeme und mich zu finanzieren. Ich hoffe du kannst das verstehen :)



Smarthome für Starter (Teil 3)


In den letzten beiden Beiträgen (Teil 1), (Teil 2) wurden die allgemeinen Begriffe rund um Smarthome ein wenig erklärt. Alles was zu Anfang wichtig ist, wie zum Beispiel Grundbegriffe (Aktoren, Sensoren usw.) sowie die Art des hostings (worauf baue ich mein Smarthome auf).
Diesen dritten Teil möchte ich dazu nutzen um ein wenig über das Thema “Zugänglichkeit” zu schreiben.

Um das Smarthome steuern zu können, muss man auf dieses Zugriff haben. Dabei kann man sich entscheiden, ob das Smarthome nur lokal erreichbar sein soll (im eigenenen LAN) oder auch extern (was einiges an Vorteilen mitbringt). Dafür werden im Normalfall zwischengeschaltete Systeme verwendet (oder im einfachsten Fall ein Port am heimischen Router geöffnet).
Der folgende Beitrag wird sich ein wenig mit den Möglichkeiten der Verfügbarkeit beschäftigen sowie den individuellen Vor- und Nachteilen.

Wieso sollte ein Smarthome extern zugänglich sein?

Im ersten Moment mag die Frage aufkommen, wieso man überhaupt das Smarthome von aussen zugänglich machen möchte. Aus diesem Grund soll die Frage zuerst beantwortet werden. Dadurch können im Verlauf auch Vor- und Nachteile besser verstanden werden sowie die Schwierigkeiten bei verschiedenen Umsetzungsarten.

Im Optimalfall steuert ein Smarthome so gut wie alles automatisch. Dementsprechend sollte man sich um nichts kümmern müssen. Sei es das Licht, welches durch Radar oder IR-Bewegungsmelder aktiviert wird oder die Szenen Beleuchtung welche durch bestimmte Geräte (wie den TV oder Beamer) automatisch aktiviert wird.
Jedoch benötigt jedes Smarthome Daten und davon sehr viele. Diese Daten können in vielen Fällen durch interne Sensorik kommen und man erhält trotzdem ein sehr umfangreiches Smarthome.

Gegeben sei jetzt aber folgende Situation:
Es soll eine Rollladensteuerung erstellt werden, welche automatisch am Tag die Rollladen schließt, wenn niemand Zuhause ist (oder zumindest zu einem Teil absenkt) und sobald jemand am Tag wiederkommt (und es noch hell ist), werden die Rollläden wieder hochgefahren.

Umsetzbar ist dieses Vorhaben Problemlos auch ohne externen Zugriff, es wird geprüft ob bestimmte MAC Adressen (Smartphones) am WiFi Access Point angemeldet sind und falls ja, wird schon jemand Zuhause sein. Wenn niemand angemeldet ist, werden die Rollladen heruntergefahren.
Dies hat jedoch einen Komfort Nachteil.

Zuersteinmal muss sich das Gerät im WLAN befinden, ist es leer geht nichts mehr. Weiterhin muss die Range des WiFi Netzwerks recht groß sein, damit man selber vom Herunter-/Hochfahren nichts bemerkt. Und zuletzt ist man darauf angewiesen, dass sich das Smartphone immer von alleine wieder mit dem AP verbindet (WLAN sollte dafür auf dem Smartphone immer aktiviert sein).
Daraus ergibt sich dann trotz “nur” lokalem Zugriff eine Automation, welche funktioniert – aber man bemerkt, wenn Rollladen hoch/runterfahren, ggf. steht man kurzzeitig immer im Dunklen, oder die Rollos fahren herunter, wenn man selber da ist, das Smartphone aber aus irgendeinem Grund nicht im WLAN angemeldet ist (z.B. weil es leer ist).

Mit externem Zugriff lässt sich eine Lösung aufbauen, welche deutlich Komfortabler arbeitet.

Durch einen extern (im Internet) erreichbaren (!abgesicherten!) Endpoint können wir Daten unserer Geräte durchweg an das Smarthome senden, wie zum Beispiel die GPS Position.
Durch Nutzung von GPS Zonen im Smarthome (sofern unterstützt), können zum Beispiel Zonen angelegt werden, welche 10m – 20m größer sind als das Grundstück. Sobald das Smartphone diese Zone erreicht, wird die Smarthomezentrale benachrichtigt, dass das Smartphone (die Person) sich in der “Zuhause” Zone befindet. Dann werden die Rollläden hochgefahren. An eine WiFi Verbindung ist in den meisten Haushalten bei solch einer Entfernung noch garnicht zu denken.
Dies ist jetzt natürlich ein sehr einfach Beispiel, aber es reicht um zu zeigen, dass durch den externen Zugang mehr Komfort erreicht werden kann (was zumeist der Sinn eines Smarthome ist (es gibt noch andere Ziele bei Smarthomes (welche mitunter nicht miteinander vereinbar sind), dies ist aber Thema für einen weiteren Beitrag)).
Durch das GPS Tracking gibt es weiterhin die Möglichkeit, dass das Smartphones nicht zwingend im WLAN sein muss, so führt ein leeres Smartphone nicht dazu, dass die Rollladensteuerung einen als “nicht Zuhause” markiert.
Ein GPS Tracker ist immer ein aktiver Sensor. Das zu trackende Gerät muss sich selbst Orten und den errechneten Standort dann zu Verarbeitung weiterschicken. Gibt es keine Updates vom Smartphone, bleibt der zuletzt gesendete Standort im Smarthome (z.B. Zuhause) – dieses verhalten kann in der Theorie auch geändert werden.
Ein weiterer Vorteil ist, dass man ein Smartphone, welches geklaut worden ist, mehr oder weniger gut verfolgen kann und zuletzt können auch Zonen z.B. für die Arbeit oder ähnliches angelegt werden.

Für Paare eröffnet es auch die Möglichkeit, dass die Freundin sehen kann, wo sich der Freund gerade herumtreibt, wenn dieser mal wieder nicht auf das Telefon schaut, weil er sich verquatscht hat und aus diesem Grund ausversehen seit 10h weg ist (ich spreche hier für einen Freund *hust*).

Zuletzt bietet der externe Endpoint auch die Möglichkeit, manuelle Änderungen von aussen vorzunehmen. Sei es das Licht nachträglich auszuschalten, oder Geräte aller Art zu kontrollieren (Staubsauger, Waschmaschine usw.) und zuletzt können Push Nachrichten direkt auf das Smartphone gesendet werden.

Es gibt natürlich noch unzählige andere Gründe, welche einen externen Zugriff erklären – die aufgeführten Gründe haben mich jedoch zu einem externen Endpoint gebracht.

Wie kann man diesen externen Endpoint umsetzen?

Die Umsetzung eines solchen Zugangs kann auf verschiedene Weisen erfolgen. Im folgenden möchte ich die bekanntesten Möglichkeiten abdecken.
Diese sind:

  • Hersteller Cloud (zumeist OEM Lösungen)
  • Portweiterleitung (DynDNS)
  • VPN (Proxy)

Diese drei Ansätze dürften die mit Abstand größte Verbreitung haben. Technisch sind noch andere Umsetzungen möglich (zum Beispiel Ansätze wie Fritz!VPN, welche aber keinen wirklich offenen Endpoihnt darstellen, welcher Problemlos von jedem verwendet werden kann.
Dieser Beitrag beschäftigt sich mit Ansätzen, welche keine dauerhafte feste VPN Verbindung zum Heimnetzwerk erforden, sondern grundsätzlich von jedem Gerät aus genutzt werden können.

1. Hersteller Cloud

Die Herstellercloud dürfte mittlerweile die meist verbreiteste Variante sein. Sei es das Lidl Smarthome, Eufy oder Ring, alle bieten eine App an, welche den Nutzer von überall aus Benachrichtigen, wenn etwas passiert bzw. alle ermöglichen es auf die Geräte von unterwegs zuzugreifen.
Dabei gibt es grundsätzlich eigentlich einen Hauptansatz, für diese Art von Zugang.
Das gekaufte Gerät wird zumeist in ein IP Netzwerk (z.B. per WLAN) aufgenommen und wird per APP mit dem Nutzeraccount von Hersteller X verbunden.

Das Gerät weiß ab dann, zu wem es gehört und sendet alle Daten, welche benötigt werden an den Hersteller Server (z.B. Videoaufnahmen, Status des Geräts (z.B. Batteriestatus, Funktionszustand usw.). Der Benutzer kann auf diese Daten dann frei zugreifen.
Dabei wird die gesamte Anfangskonfiguration über die App erledigt, welche auf den Server zugreift und dann die Daten an die Kamera sendet (oder der Server sendet alle benötigten Daten an die Kamera).

Was das Datenschutz- und Vertrauenstechnisch zu bedeuten hat, sei mal nicht Thema dieses Beitrags, aber der jüngste Vorfall von der Firma Eufy, welcher meiner Meinung nach ungerechtfertigt war, klar das Unternehmen wirbt mit “keine Daten in der Cloud”, aber wie sollen denn die Bilder einer klingelnden Person bitte auf das Handy kommen von unterwegs? – Bisschen nachdenken würde einigen Menschen echt helfen. Dies zeigt mir aber, da hier die Umsetzung auf Basis von langen ID’s trotzdem unglücklich war, das ich mich nicht auf fremde Menschen bei meinem Zuhause verlassen möchte. Zumal dieser Dienst auch mal eingestellt werden könnte und ich dann Funktionen verliere, die ggf. für den Kauf des Produkts verantwortlich waren.

Alles in allem ist die Herstellercloud umsetzungstechnisch jedoch die einfachste Lösung. Die Cloud ist aufgrund der zumeist großen Infrastruktur des Herstellers (meistens irgendein AWS, Azure geraffel) immer online und auch leistungsstark. Servicetechnisch kann man sich ebenfalls auf den Hersteller verlassen (solange es die Dienste natürlich gibt).
Hier ist aber der Nachteil, dass zumeist nur ein Hersteller unterstützt wird. Es gibt ein paar Ansätze, die das ein wenig aufbrechen und gerade die “China Flotte” á la Tuya hat da wirklich geholfen. Im Normalfall ist es möglich alle Tuya Geräte in einer rebranded App zu integrieren. Dementsprechend können alle Hersteller, welche Tuya OEM Hardware/Software nutzen, in einer App verwaltet und gesteuert werden.
Wenn es aber in Richtung der “Namenshersteller” geht, dann wird das zumeist schwieriger…

2. Portweiterleitung (DynDNS)

Die aus Minecraftzeiten bekannte Portfreigabe auf dem Router…
Diese Lösung ist maximal einfach und ist in wenigen Minuten eingerichtet, hat aber auch einige Nachteile.

Die Portfreigabe auf einem Router ist schnell erledigt, zumeist über das Webinterface, des entsprechenden Routers bei dir Zuhause. Sobald dies geschehen ist, kannst du mit der öffentliche Adresse deines Routers auf den Freigegebenen Port und den dahinterliegenden Dienst zugreifen.

Nachteil bei diesem Vorgehen ist, dass du ggf. alle X Stunden (zumeist 24 Stunden) eine neue Adresse von deinem Provider zugewiesen bekommst und sich daher deine IP Adresse dann ändert. Dies variiert von Betreiber zu Betreiber und in meinem Fall habe ich eine feste öffentliche IP Adresse und ich kann optional als “Datenschutz Feature” das IP wechseln aktivieren.
Für den Fall, dass das nicht verfügbar ist, gibt es auch sog. DynDNS Dienste. Diese bieten eine feste Endpoint Adresse an. Diese führt dann zu der dynamischen IP des Router, welche durch ein Clientprogramm (z.B. direkt auf dem Router) aktuell gehalten wird. Der Router sendet dafür bei jeder Änderung (oder periodisch) benötigte Daten, wie die derzeitige öffentliche IP Adresse und der DynDNS Anbieter hält die Adresse dann auf dem DNS Server aktuell.

Hier ist der Vorteil, dass man ohne einen Hersteller dazwischen direkt auf verschiedene Geräte zugreifen kann, da man effektiv alle Dienste freigeben kann, welche benötigt werden. Keine Daten gehen an andere Personen, abgesehen von der heimischen IP Adresse, welche der DynDNS Anbieter zwangsweise benötigt.

Nachteil ist hier zuletzt, dass ein Port am Router direkt in das eigene Heimnetzwerk geöffnet ist. Das ist per se nicht schlimm, sollte aber im Hinterkopf behalten werden, gerade wenn man den Dienst nicht mehr benötigt.

3. VPN (Proxy)

Die letzte in diesem Beitrag vorgestellte Möglichkeit (und meiner Meinung nach auch die beste), ist der VPN Tunnel zu einem dritt System und einem Proxy Server.
Diese Möglichkeit benötigt einiges an Konfiguration und verursacht durchaus Mehrkosten. Hat aber einige Vorteile.
Zuersteinmal kann man durch diese Möglichkeit ein öffentliches SSL Zertifikat verwenden, welches keine Warnungen in üblichen Browsern erzeugt. Weiterhin wird das Zielsystem (in diesem Fall im Heimnetzwerk) niemals wirklich öffentlich zugänglich gemacht, sondern kann lediglich durch den Proxy erreicht werden. Wird der übernommen kann im Schadenfall erstmal nicht viel passieren (Wenn der Server selbst übernommen wird, sieht das natürlich anders aus).
Weiterhin besteht durch den Proxy die Möglichkeit eine Authentifizierung vor dem Zielsystem zu verwenden, was unberechtigten Zugriff auf die Seite selbst schwierig macht. In meinem Beispiel ist daher erst ein Nutzername und Passwort für mein Proxy nötig und dahiner bei meinem Homeassistant Nutzername, Passwort und ein zweiter Faktor. Zuletzt können nur bestimmte Nutzer die externe Schnittstelle nutzen (jene, die einen 2 Faktor haben).

Der Nachteil dieser Lösung ist natürlich der Aufwand und die Kosten. Der Server muss nicht nur aufgesetzt sondern ständig gewartet werden und weiterhin ist es auch nötig diesen zu bezahlen. Zuletzt ist auch die Latenz etwas größer (weil der Ablauf ist wie folgt: Proxy -> VPN -> Router -> Homeassistant), aber das fällt bei der täglichen Nutzung eigentlich nie auf. Lediglich bei Echtzeitanwendungen mit MQTT-Over-VPN dürfte das ggf. zum Thema werden.

Vor- und Nachteile des externen Zugangs

Wie anfangs geschrieben, hat ein externer Endpoint einige Vorteile gegenüber eines geschlossenen Systems, gerade in Sachen Komfort hilft dieser enorm. Jedoch gibt es auch nicht zu unterschätzende Nachteile. Es ist grundsätzlich immer möglich das etwas schief läuft. Sowohl eine Hersteller Cloud, als auch das selbst aufgesetzte Smarthome System kann Schwächen haben, dadurch können ggf. Schäden entstehen oder fremde Personen können in das Heimnetzwerk oder die Haussteuerung eindringen.
Dementsprechend ist das direkte zugänglichmachen einer solchen Lösung immer ein wenig Risikobehaftet. Aber auch die Verwendung eines Proxies schützt nicht vollends gegen solche Probleme. Schwachstellen im Proxy, Server und in der Smarthome Lösung stellen potenzielle Sicherheitsrisiken dar, welche betrachtet werden müssen. Für Personen, welche sich mit Shodan ein wenig warm gemacht haben, ist es ein leichtes schlecht geschützte Smarthome Zentralen ausfindig zu machen und dann mal ein wenig in Private Haushalte zu schauen und ggf. deren Lampen und Tore/Türen zu steuern… – Da sollte man nach Möglichkeit drauf achten, dass einem selbst das nicht passiert.
Aber auch funktionell kann eine solche Lösung ein tendentielles Risiko bergen, welches nichtmal technischer Natur sein muss. Für den Fall, dass man sich durch automationen zum Beispiel auch bei der Türsteuerung auf das Smarthome verlässt (z.B. durch ein RFID Beacon, sobald dieses vom Smartphone erkannt wird, öffnet sich die Tür) – Wenn die Automation durch welchen Grund auch immer nicht funktioniert und man keine Schlüssel oder sonstiges dabei hat, dann kommt man nicht mehr in die Wohnung herein.
Gerade auf Dauer, wenn die technik gut funktioniert, neigt man dazu, sich auf die Technik zu verlassen und lässt dann gerne mal den Schlüssel Zuhause, dies sollte jedoch wohl überlegt sein. So ein System kann schnell mal ausfallen (zum Beispiel durch den defekt eines Netzteils oder Spannungsausfall). Gerade kritische Punkte des Hauses sollten immer abgesichert sein und man selbst sollte sich immer ein Backup Zugang ermöglichen. Dies kann schon doch einfache organisatorische Maßnahmen geschehen wie zum Beispiel dem Nachbarn einen Ersatzschlüssel zu geben oder auch technisch durch eine redundate Sicherung, wie auch immer dies aussehen mag.

Ein externer Endpoint kann viele Möglichkeiten schaffen und erweckt schnell den Eindruck, dass man sich auf die Technik immer verlassen kann, dies sollte aber immer kritisch hinterfragt werden. Schnell passiert es, dass man die eigene Technik als “besser” und “100%ig Sicher” ansieht, weil ja Monate oder gar Jahre nichts geschehen ist. Es ist aber nur ein einziger Ausfall zu einer schlechten Zeit nötig, dann geht ggf. nichts mehr.
Hier ist aber nicht nur etwas abstraktes wie die Haustür gemeint, auch eine Heizungssteuerung ohne manuelle Möglichkeit zur Steuerung, nur logisch verknüpfte Beleuchtung (wie bei mir) und einiges anderes, kann schnell Nachteile mit sich bringen. Als Beispiel hatte ich vor einigen Tagen für knapp 10 Stunden kein Licht, da bei einem Speicherupgrade trotz Backups meine Systeme nicht mehr hochgefahren sind. Der Import der Backups hat einiges an Zeit gekostet, aber in der Zeit konnte ich in meiner Wohnung nichts mehr steuern. Ich habe mich da mit der Zeit viel zu sehr auf meine Technik verlassen (baulich bedingt, war es auch nicht großartig anders möglich – ich war mir der grundsätzlichen Risiken bewusst, aber es kann auch durch simple Dinge wie ein Speicherupgrade passieren, dass nichts mehr geht).

Schluss

Um diesen Beitrag zusammenzufassen, kann ich sagen das ein externer Zugang grundsätzlich eine gute Sache ist. Dieser muss jedoch in jedem Fall abgesichert sein.
Die Möglichkeiten, die ein solcher Zugang bringt sind komfortabel und durchaus eine Bereicherung, jedoch sollten niemals Automationen verwendet werden, welche kritische Bereiche des Lebens steuern (Zugang zur Wohnung, Gas und Wasserversorgung sowie Spannungsversorgung). Zumindest sollte es immer die Möglichkeit geben manuell einzugreifen bzw. einen Ersatzplan ausführen zu können, welcher nicht auf die Dienste des Automatisierungssystems angewiesen ist.


Back…