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…