Home Assistant Smart Home Teil 1 – Planungsphase

In meiner neuen Beitragsreihe Home Assistant Smart Home zeige ich euch, welche Komponenten ich installiert und wie ich diese konfiguriert habe. Beruflich bedingt habe ich 2 Wohnsitze und dementsprechend auch 2 Smart Home Installationen. Während ich mich an meinem Hauptwohnsitz ab Januar 2021 „austoben“ kann, weil ich selbst der Eigentümer des Hauses bin, unterliegt der Nebenwohnsitz einigen Einschränkungen, da ich hier nur Mieter bin.

In dieser Beitragsreihe befasse ich mich mit der „großen“ Eigenheim Smart Home Installation mit Home Assistant. Die „kleine“ Smart Home Installation in der Wohnung am Nebenwohnsitz betrachte ich zu einem späteren Zeitpunkt in einem eigenen Beitrag.

Daher plane ich folgende Installationen/Integrationen, falls diese so umsetzbar sind (hier kann sich während der Umsetzungsphasen natürlich noch was ändern):

  • Home Assistant
    • Philips Hue oder deCONZ: Lichtsteuerung
    • HomeMatic: Heizungssteuerung (Fußbodenheizung)
    • deCONZ: Fenster-/Türsensoren
    • Nuki: Türschlosssteuerung per App und per Sprache
    • Doorbird oder Netatmo: Türklingel mit Videofunktion
    • Media Funktion: Enigma2, Kodi, ggf. LG WebOS TV und LG Soundbars
    • Roborock: Staubsauger-Roboter
    • Sprachsteuerung mit Amazon Echo Geräten

Auch wenn es für die Beitragsreihe nicht relevant ist, hier die Planung für den Nebenwohnsitz:

  • Bosch Smart Home oder Home Assistant mit Custom Component HA-Remote
    • Bosch Smart Home: einfache Heizungssteuerung per App und per Sprache
    • Philips Hue: einfache Lichtsteuerung per App und per Sprache
    • Nuki: Türschlosssteuerung
    • einfache Anwesenheitserkennung (z.B. per Geräte-Ping)

Der erste Beitrag befasst sich nun mit Vorbereitungen und Überlegungen, wie ich mein Smart Home gestalten möchte, insbesondere in Bezug auf die Sicherheit meiner restlichen IT-Komponenten.

Hardware

Home Assistant OS gibt es als vorkonfiguriertes Image für verschiedenste Hardware. Häufig werden Raspberry Pi dafür verwendet. Ich finde die Installation eines solch wichtigen Systems auf einer anfälligen SD-Karte jedoch als suboptimal und habe mich daher für einen Intel NUC mit lokaler M.2 NVMe entschieden. Für diesen gibt es ein eigenes Image mit zum Download. Allerdings ist auch dieses vorgesehen für SD-Karten oder USB-Sticks. Um das Image an einem PC auf die M2. NVMe zu flashen, habe ich mir einen USB M.2 NVMe Adapter besorgt Das funktioniert super und die 15 Euro für den Adapter sind hier gut angelegtes Geld.

Obwohl das eigentlich gut funktioniert hat, habe ich mich letztlich doch noch für einen anderen Weg entschieden. Da der NUC genug Power für mehr als nur Home Assistant hat, benutze ich die virtuelle Variante von Home Assistant OS auf einer Proxmox VE Plattform. Somit bleibt noch genug Luft, um auch RaspberryMatic für die Homematic Komponenten und deCONZ für die Zigbee-/Lichtkomponenten als VMs mit USB Funkmodulen auf dem NUC zu betreiben. Dazu in den späteren Beitrag mehr.

Folgende Hardware verwende nun für die Smart Home Installation:

  • Intel NUC8i5BEK i5-8259U 4C/8T 2.30-3.80 GHz (~225 €)
  • Crucial CT16G4SFD824A 16GB DDR4-2400 (~53 €)
  • Samsung SSD 970 EVO Plus 500GB M.2 NVMe PCIe 3.0 x4 (~70 €)
  • HmIP-RF-USB (für HomeMatic CCU / IP-Komponenten) (~30 €)
  • HB-RF-USB-2 (für HomeMatic CCU / BidCos-Komponenten) (~20 € gebraucht)
  • ConBee II Zigbee USB-Gateway (für deCONZ / Zigbee-Komponenten) (~39 €)
Sicherheit

Bevor ich mich dann in den folgenden Beiträgen überhaupt dem eigentlichen Thema der einzelnen Installationsschritte widme, möchte ich auf einen der wesentlichsten Punkte bei Smart Home Technik eingehen: Sicherheit!

Was kann man tun, wenn man bereit ist, ein paar Euro für die Sicherheit zu investieren?

Firewall

Wie man anhand meiner anderen Beiträgen schon erahnen kann, bin ich ein Fan von Enterprise Firewalls, selbst im Privatumfeld. Dementsprechend „gönne“ ich mir eine Fortinet Firewall. Manches ist dadurch natürlich nicht so komfortabel, wie mit einer 0815 Fritz!Box, aber die Möglichkeiten, sein Netzwerk möglichst gut zu sichern, sind eben doch um Längen besser.

Üblicherweise erlauben Firewalls alle Ports outbound, wenn man nicht aktiv eingreift. Bei der Fortinet ist das nicht so, hier gilt ohne Konfiguration ein Implicit Deny. Man muss sich daher die Mühe machen und genau prüfen, welche Ports die einzelnen Geräte outbound zwingend benötigen und auch hier die Firewall so gut es geht einzuschränken, um ungewünschten Datenverkehr zu blockieren. Ja, ich weiß, Consumer Firewalls können das auch, aber ich bin ja noch nicht fertig :-).

Netzwerk Segmentierung

Der nächste Punkt – und bereits hier scheitern Consumer Firewalls in der Regel – ist das Thema Netzwerk Segmentierung. Die Fortinet bietet natürlich die Möglichkeit, mehrere VLANs (und für WLAN dazugehörige SSIDs) anzulegen. Um zu verhindern, dass im Falle einer Kompromitierung eines Smart Home Geräts gleich das ganze schöne Netzwerk mit NAS und sonstigem Gedöhns bedroht ist, bietet es sich an, sein Smart Home Netzwerk in ein oder mehrere eigene VLANs zu verbannen und auch hier notwendige Kommunikation ins restliche Netzwerk über Firewall Policies möglichst strikt Punkt-zu-Punkt einzuschränken, falls überhaupt nötig. So habe ich meine Smart Home Installation wie folgt segmentiert:

  • VLAN 1:
    • Home Assistant Server mit dedizierten Internet-Freischaltungen, die benötigt werden, damit die Integrations und Zugriffe über HA-Cloud funktionieren
    • Smart Home Komponenten die nur lokal mit Home Assistant kommunizieren und lediglich zu Update-Zwecken dedizierte Internet-Zugriffe benötigen
    • Media Geräte die nur lokal mit Home Assistant kommunizieren und lediglich zu Update-Zwecken und Streaming dedizierte Internet-Zugriffe benötigen
  • VLAN 2:
    • Smart Home Komponenten, die über eine Hersteller-Cloud funktionieren und kommunizieren und daher weitreichende und schwer zu kontrollierende Internet-Zugriffe benötigen (z.B. Amazon Echo Geräte, Miele@Home Komponenten, etc.)

WLAN

Passwortlänge und -komplexität

Man kann es nicht oft genug sagen: die Zeichenfolge „Passwort“ ist KEIN sicheres Passwort :-). Ernsthaft: Wie im obigen Punkt Netzwerk Segmentierung erläutert, habe ich z.B. für unterschiedliche Geräte/Schutzklassen jeweils ein eigenes VLAN mit einer eigenen SSID angelegt. Das SSID-Passwort wird also nicht „tagtäglich“ benötigt, um es irgendwo einzugeben. Nur bei der Einrichtung eines neuen Geräts wird es gebraucht und wie oft kommt das wohl nachdem erstmal der „erste Schwung“ in Betrieb ist? Daher sollte man sich unbedingt ein Passwort einfallen lassen, dass aus min. 20 Zeichen (Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen) besteht. Ein schöner Artikel über den Zusammenhang von Passwortlänge/-komplexität und Zeit, die zum Hacken des Passworts benötigt wird, findet ihr hier.

Multiple PSK

Ein weiteres Feature der Fortigates, welches ich für mein Smart Home WLAN ausgiebig nutze, ist das Multiple Pre-Shared Key Feature. Dieses erlaubt es, sich mit mehreren vordefinierten PSKs in die gleiche SSID einzubuchen. Darüber hinaus lässt sich konfigurieren, wie viele Geräte sich mit welchem Passwort einbuchen können. Wo ist da der Vorteil? Ein Beispiel. Amazon Echo Geräte speichern standardmäßig die WLAN Konfiguration im Amazon Konto in der Cloud (außer, man schaltet das ab – siehe hier),  um beim nächsten Gerät die Einstellungen gleich vorzukonfigurieren. Komfortabel aber unsicher. Um das Risiko dennoch zu minimieren haben meine Amazon Echo Geräte einen eigenen PSK und der PSK darf nur genau so oft verwendet werden, wie ich solche Geräte im Netzwerk habe. Das ist kein 100%iger Schutz, aber zumindest solange die Geräte aktiv im WLAN eingebucht sind, kommt mit diesem Passwort kein zusätzliches unbefugtes Gerät ins WLAN, da die Anzahl der Nutzungen schon durch die vorhandenen Geräte ausgeschöpft ist.
Update 13.01.2021: Da ich zukünftig APs von UniFi verwende, ist das Thema „Multiple PSK“ obsolet, da die UniFi’s dieses Feature nicht bieten. Stattdessen verwende ich MAC Whitelists, um es Angreifern etwas schwerer zu machen.

Haus-Steuerung und Haus-Automatisierung

Aus meiner Sicht sind das zwei grundlegende Unterschiede, auch wenn das oft als ein Thema interpretiert wird.

  • Steuerung: Unter Haus-Steuerung verstehe ich, Komponenten des Smart Homes über eine App oder einen Computer zu bedienen. Also z.B. Licht ein- und ausschalten oder Heizung höher und niedriger einstellen.
  • Automatisierung: Unter Haus-Automatisierung verstehe ich, dass unterschiedliche Komponenten eines Smart Homes Aktionen anhand von definierten Kriterien von alleine ausführen, ohne dass ich sie manuell bedienen muss. Ein Beispiel hierfür ist z.B., dass sich die Heizung in Abhängigkeit der Außentemperatur alleine regelt oder dass das Licht der Diele von alleine angeht, wenn ein Smart Lock die Wohnungstür öffnet.

Im ersten Schritt liegt der Schwerpunkt auf der Steuerung der einzelnen Komponenten. Automatisierungen werden implementiert, sobald die Geräte zentral steuerbar sind.

Sprachsteuerung

Schön ist natürlich, seine Smart Home Installation per Sprache zu steuern. Da ich bereits Amazon Echo Geräte zum Musik hören verwende, möchte ich diese dann auch zur Sprachsteuerung verwenden. Ziel ist es, kein Gerät und keinen Controller direkt anzusteuern, sondern ausschließlich die Home Assistant Installation.

Warum „so umständlich“? Das ist relativ einfach erklärt. Amazon Echo benötigt zum Finden von steuerbaren Endpunkten (Geräten/Controllern) eine direkte Netzwerk-Verbindung. Endpunkte, die sich in anderen VLANs befinden, werden nicht gefunden. Aus Sicherheitsgründen habe ich jedoch genau diese Trennung vorgenommen, sodass eine direkte Steuerung z.B. der Beleuchtung (siehe späteren Beitrag) nicht möglich ist.

Indem ausschließlich Home Assistant zur Sprachsteuerung angesteuert wird, lässt sich dieses Problem umgehen. Der Home Assistant Skill für Amazon Echo benötigt keine direkte Netzwerkverbindung, da ausschließlich die Home Assistant Cloud Instanz angesteuert wird. Somit lassen sich 2 Fliegen mit einer Klappe erschlagen:

  • Der Home Assistant Server benötigt nur die bereits bestehende Firewall Freischaltung zur Cloud Instanz, um per Sprache gesteuert zu werden.
  • Sämtliche in Home Assistant eingebundenen Smart Home Systeme lassen sich trotz VLAN Trennung per Sprache steuern.

Aus all diesen Überlegungen hat sich bei mir folgende Planung für die Implementierung meines Smart Homes ergeben:

Phase 1

  • Home Assistant Installation/-Konfiguration
    • Home Assistant OS
    • Add-ons
      • Samba share
      • SSH & Terminal
      • Visual Studio Code (optional)
      • Node-RED (optional)
  • Home Assistant Integrationen
    • Beleuchtung / Smart Plugs: deCONZ
    • Fenstersensoren: deCONZ
    • Heizung / Rauchmelder: HomeMatic / HomeMatic IP / RaspberryMatic
    • Türschloss: Nuki
    • Recorder: MariaDB auf der Synology NAS
    • Smart Plugs Outdoor: Tuya
    • Zugriff: Home Assistant Cloud Connector
    • Wetterdaten: OpenWeatherMap
    • Astrodaten: Sun / Moon / Season / Date-Time
    • Sonstige unterstützende Integrationen: Systemmonitor / Ping / etc.
  • Präsenzerkennung
    • Home Assistant Companion App

Phase 2

  • Home Assistant Integrationen
    • Staubsauger: Xiaomi MIIO / Roborock
    • Media: Kodi
    • Media: Enigma 2
    • Media: LG WebOS TV / LG Soundbar

Auf welche Herausforderungen und Probleme man nun trifft, zeige ich euch ebenfalls in den kommenden Beiträgen.


Quellen:
tbd

3 Antworten

  1. Gerhard sagt:

    Interessantes Thema, aber graue Schrift auf weißem Hintergrund nicht lesbar.

    • Ich verstehe zwar nicht, was es mit „grauer Schrift auf weißem Hintergrund“ auf sich hat, aber vielleicht steh ich einfach nur auf’m Schlauch :-).

      • Peter sagt:

        Was Gerhard wohl meinte ist
        das es unangenhem ist die graue Schrift zu lesen, dem ich nur zustimmen kann.
        Es strengt die Augen sehr an und ich habe deswegen die Leseansicht im Firefox mit F9 eingeschlaltet. Solltest darüber nachdenken die Schriftfarbe zu ändern. 😉
        Ansonsten bin ich sehr gespannt auf die nächsten Berichte.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.