6. Project6 - Homeassistant

Im Rahmen dieses Versuchs wird ein Smarthome-System aufgebaut, das verschiedene Kommunikationstechnologien und Geräte integriert. Ziel ist es, ein Zusammenspiel zwischen WLAN- und Zigbee-basierten Komponenten herzustellen und deren Steuerung über Home Assistant zu untersuchen.

Der zentrale Knotenpunkt des Systems ist ein Raspberry Pi, auf dem Home Assistant läuft. Dieser übernimmt die Rolle der Steuerzentrale und verbindet sich mit den übrigen Geräten im Netzwerk. Um realistische Bedingungen zu schaffen, wurde ein separater WLAN-Router konfiguriert, der das Heimnetz simuliert und in dem alle Komponenten eingebunden sind.

Folgende Geräte wurden in das System integriert:

  • Sonoff Mini R2: Ein kompakter WLAN-Schalter, der hinter einem klassischen Wandschalter installiert werden kann. Er übernimmt die Schaltfunktion der angeschlossenen Lampe und kann sowohl physikalisch als auch per Software gesteuert werden. Für die Nutzung im Versuch wurde das Gerät mit Tasmota geflasht.

  • MagicHome LED-Controller: Ein LED-Controller, der handelsübliche 12–24V LED-Streifen ansteuert. Die originale Firmware wurde durch OpenBeken (OpenBK602) ersetzt, um die Integration in Home Assistant zu ermöglichen.

  • Zigbee-Fernbedienung: Zur Steuerung von Geräten über das Zigbee-Protokoll wird eine Zigbee-Fernbedienung eingesetzt. Diese wird über einen Sonoff Zigbee 3.0 USB Dongle Plus in das System eingebunden. Der Dongle fungiert als Zigbee-Koordinator und ermöglicht die Kommunikation zwischen Zigbee-Geräten und Home Assistant.

6.1. Verwendete Techniken

Im Folgenden werden die im Versuch eingesetzten Technologien und Geräte vorgestellt. Eine grundlegende Einführung in MQTT wurde bereits in einem früheren Versuch behandelt und wird daher hier nicht erneut erläutert.

6.1.1. Homeassistant

Homeassistant ist eine Open-Source-Plattform für die Heimautomatisierung, die lokal betrieben wird und eine Vielzahl von Geräten und Protokollen unterstützt, darunter Zigbee, Z-Wave, WLAN und Bluetooth.

Wichtige Funktionen: - Zentrale Benutzeroberfläche für die Steuerung aller verbundenen Geräte - Automatisierungen auf Basis von Zuständen und Zeitplänen

Im Versuch dient Home Assistant als Steuerzentrale und Schnittstelle für die Integration aller Geräte, einschließlich der Zigbee-Komponenten über den Sonoff USB-Dongle.

Quelle: https://www.home-assistant.io/

6.1.2. Sonoff Mini R2

Der Sonoff Mini R2 ist ein kompakter WLAN-Schalter, der in bestehende Lichtschalter integriert werden kann. Er wird im Versuch mit der alternativen Firmware Tasmota geflasht, um die Integration in Home Assistant über MQTT zu ermöglichen.

Der Einbau erfolgt typischerweise in einer Unterputzdose hinter dem vorhandenen Lichtschalter. Dabei sind folgende Anschlüsse korrekt zu verbinden:

  • L (Phase): Eingangsspannung (230 V)

  • N (Neutralleiter): Rückleiter für die Stromversorgung

  • S1 / S2: Kontakte für einen externen Schalter (z. B. Taster oder Kippschalter)

  • LOUT: Ausgang zur angeschlossenen Lampe (geschaltete Phase)

Der angeschlossene Lichtschalter wird zwischen S1 und S2 angeschlossen, um eine manuelle Steuerung zu ermöglichen. Über LOUT wird die Lampe ein- bzw. ausgeschaltet – entweder über den physischen Schalter oder über MQTT-Kommandos aus Home Assistant.

Merkmale: - Steuerbar über WLAN, MQTT oder physikalischen Schalter. - Kompatibel mit Tasmota. - Integrierbar in Home Assistant zur automatisierten Steuerung. - Kompakte Bauform, passend für Standard-Unterputzdosen.

Quelle: https://sonoff.tech/product/diy-smart-switches/mini-r2/

6.1.3. MagicHome LED-Controller

Der MagicHome-Controller ist ein LED-Controller, der LED-Streifen mit 12–24V versorgen und individuell steuern kann. Im Versuch wird die Original-Firmware durch OpenBeken (OpenBK602) ersetzt, wodurch eine direkte Steuerung über Home Assistant ermöglicht wird.

  • Steuerung per Webinterface und MQTT.

  • Unterstützung für RGB(W)-LED-Streifen.

  • Kompatibel mit Home Assistant nach manueller Konfiguration.

Quelle: https://openbekeniot.github.io/

6.1.4. OpenBeken

OpenBeken (auch bekannt als OpenBK7231) ist eine alternative Open-Source-Firmware, die speziell für Geräte mit Nicht-ESP-basierten Controllern entwickelt wurde – insbesondere für Chipsätze wie BK7231N, BK7231T oder BL602(dieser Chip wird im Versuch verwendet). Diese Chips werden häufig in günstigen WLAN-Smart-Geräten verwendet, die nicht mit Tasmota oder ESPHome kompatibel sind.

OpenBeken bietet ähnliche Funktionen wie Tasmota: - Steuerung über Webinterface und MQTT - Unterstützung für Relais, LEDs, Sensoren u.v.m. - Kompatibilität mit Home Assistant

Im Versuch wird OpenBeken auf dem MagicHome LED-Controller mit einem BK7231T (OpenBK602) Chip eingesetzt, um diesen in das bestehende Smarthome-Netzwerk zu integrieren.

Quelle: https://openbekeniot.github.io/

6.1.5. Tasmota

Tasmota ist eine alternative Open-Source-Firmware für Geräte mit ESP8266- oder ESP32-Chipsätzen. Sie ermöglicht eine lokale Steuerung über Weboberfläche oder MQTT – ohne Cloud-Abhängigkeit.

  • Unterstützt viele Geräte wie Schalter, Sensoren und Controller.

  • Einfache Integration in Home Assistant.

  • Umfangreiche Dokumentation.

Quelle: https://tasmota.github.io/docs/

6.1.6. Zigbee

Zigbee ist ein energieeffizientes, drahtloses Mesh-Netzwerkprotokoll, das sich ideal für Smarthome-Geräte eignet. Zigbee-Geräte kommunizieren direkt oder über Zwischenknoten, was die Reichweite erhöht.

Im Versuch wird eine Zigbee-Fernbedienung über einen USB-Zigbee-Koordinator in das System eingebunden. Dadurch können auch Zigbee-Geräte über Home Assistant angesprochen werden.

Typische Eigenschaften: - Hohe Energieeffizienz - Mesh-Netzwerkstruktur - Lokale Kommunikation ohne Cloud

Quelle: https://csa-iot.org/all-solutions/zigbee/

Im Versuch wird derSonoff Zigbee 3.0 USB Dongle Plus eingesetzt mit folgenden Merkmalen: - Unterstützt Zigbee 3.0 (kompatibel mit vielen Herstellern) - Open-Source-freundlich, ideal für den Einsatz in Bastelprojekten - Einfache Integration in Home Assistant - Breite Unterstützung in der Community

Quelle: https://sonoff.tech/product/smart-home-security/zigbee-dongle-plus/

6.1.7. WLAN-Netzwerk

Zur Simulation eines realistischen Heimnetzwerks wurde ein separater WLAN-Router konfiguriert. Alle Komponenten des Versuchsaufbaus – einschließlich Raspberry Pi, Sonoff Mini und MagicHome-Controller – sind darüber miteinander verbunden. Dies ermöglicht die Kommunikation im geschlossenen Testnetz.

Dieser Aufbau zeigt die flexible Kombinierbarkeit von WLAN- und Zigbee-Komponenten in einem Smarthome-System. Durch die zentrale Steuerung über Home Assistant und die Nutzung standardisierter Protokolle wird eine robuste, modulare Systemarchitektur geschaffen.

6.2. Flashen von Sonoff R2 Mini

Der Sonoff Mini R2 wird im Versuch über den integrierten DIY-Modus mit der alternativen Firmware Tasmota geflasht – ganz ohne Löten oder zusätzliche Hardware.

Durch längeres Drücken der Taste am Gerät wird der DIY-Modus aktiviert, wodurch der Schalter in den AP-Modus wechselt. Verbindet man sich mit diesem (Passwort 12345678), fordert der Sonoff einen auf, ein WLAN mit Passwort einzugeben.

Sonoff WLAN-Konfiguration

Im angegebenen Netz wird über das offizielle DIY-Tool von Sonoff die zuvor heruntergeladene Tasmota `.bin`-Datei auf das Gerät übertragen.

Sonoff DIY Tool Flash-Vorgang im DIY Tool

Nach dem erfolgreichen Flashen konnte der Schalter wie gewohnt eingerichtet werden. Wenn der OTA-Flash-Vorgang (over-the-air) nicht funktioniert, so ist Löten angesagt. Dafür wird die Platine aus dem Gehäuse entnommen und auf der Rückseite die 4 Lötpunkte mit Jumperkabeln verbunden.

Lötpunkte am Sonoff Mini R2

Der Controller basiert auf einem ESP und spricht UART. Dafür wird ein USB-UART-Adapter benötigt. Wichtig ist zu beachten, dass man TX auf RX verbindet und beim Einschalten den Button gedrückt hält, damit der Flashmodus aktiviert wird. Dann kann man ihn mit esptool und einer kompatiblen .bin-Datei flashen.

Die weitere Einrichtung und MQTT-Anbindung wurde bereits in einem früheren Versuch behandelt und wird hier nicht erneut beschrieben. Als einzige Neuheit kommt hinzu, dass man den richtigen GPIO-Pin vom Controller als Switch konfigurieren muss.

GPIO-Pin-Konfiguration in Tasmota

6.3. Flashen eines Magichome LED-Controller

Um den MagicHome LED-Controller in das Smarthome-System über MQTT und Home Assistant zu integrieren, wurde die originale Firmware durch OpenBeken ersetzt. Dieser Controller basiert auf einem BL602-Chip (kein ESP), weshalb ein spezieller Flash-Vorgang notwendig ist – z.B. mithilfe des Bouffalo Lab Dev Cube Tools unter Windows.

6.3.1. Benötigte Materialien:

  • MagicHome LED-Controller mit BL602-Chip

  • USB-zu-Seriell-Adapter (z.B. FTDI-Modul, 3.3V)

  • Jumper-Kabel

  • Optional: Widerstand oder Taster für BOOT-Modus

  • PC mit Windows + Bouffalo Lab Dev Cube (https://dev.bouffalolab.com/download)

6.3.2. Anschluss der Pins:

Der Controller muss über folgende Pins mit dem USB-Adapter verbunden werden:

  • TXD → an RX des Adapters

  • RXD → an TX des Adapters

  • GND → an GND

  • VCC / VDD → an 3.3V (kein 5V!)

  • BOOT → während des Einschaltens auf GND ziehen

(z.B. mit einem Widerstand)

Anschlussplan der Verdrahtung Anschlussplan der Verdrahtung

6.3.3. Flashen mit Bouffalo Lab Dev Cube:

  1. Tool starten:
    • Bouffalo Lab Dev Cube entpacken und starten (BLDevCube.exe)

    • „BL602/604“ als Chip auswählen

  2. Verbindung konfigurieren:
    • Interface: UART

    • COM Port: Den richtigen Port des FTDI-Adapters wählen (z.B. COM4)

    • UART Rate: 2000000

    • Board: IoTKitA

    • Xtal: 40M

    • Optional: Chip Erase = False

  3. Firmware-Dateien auswählen:
    • Factory Params: Datei mit Parametern (z.B. .dts)

    • Partition Table, Boot2 Bin, Firmware Bin: aus OpenBeken-Ordner

    • Die Datei OpenBL602_x.xx.xxx.bin bei „Firmware Bin“ auswählen

Bouffalo Lab Dev Cube – Konfiguration
  1. Flash-Vorgang starten:
    • Stromversorgung sicherstellen

    • BOOT mit GND verbinden (gedrückt halten oder über Widerstand)

    • „Download“ klicken und warten, bis „success“ im Log erscheint

    • Verbindung trennen, BOOT-Verbindung entfernen und Gerät neustarten

Nach dem Neustart erscheint ein WLAN-Netzwerk (z.B. OpenBK_XXXX). Über dieses kann das Gerät eingerichtet werden (z.B. WLAN, MQTT, LED-Pins). Die Einrichtung wurde in einem früheren Versuch behandelt, da sie gleich ist zur Tasmota Einrichtung. Auch hier muss wieder eine Pinkonfiguration vorgenommen werden.

LED-Pinbelegung im Webinterface

6.4. Installation des Raspberry

Für die installation des RaspberryPi4 stehen zwei Optionen zur verfügung. Entweder man installiert eine Linux Distribution, wie RaspbianOS und setzt Home Assistant und Zigbee2MQTT über Docker auf oder man Installiert das HomeAssistantOS und fügt Zigbee2MQTT dort als Plugin hinzu.

6.4.1. Methode 1: Installation über Raspbian mit Docker

  1. Raspberry Pi OS installieren

    • Herunterladen des Raspberry Pi Imager.

    • Installieren von Raspberry Pi OS auf einer MikroSD.

    • Aktivieren von SSH durch eine leere Datei ssh im Boot-Verzeichnis.

    • Pi starten und per SSH verbinden.

  2. System vorbereiten

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y docker.io docker-compose git
    sudo usermod -aG docker $USER
    reboot
    
  3. Home Assistant Container einrichten

    version: "3.7"
    services:
      homeassistant:
        container_name: homeassistant
        image: ghcr.io/home-assistant/home-assistant:stable
        volumes:
          - ./homeassistant_config:/config
          - /etc/localtime:/etc/localtime:ro
        restart: unless-stopped
        privileged: true
        network_mode: host
    
  4. Zigbee2MQTT Container einrichten

    version: "3.7"
    services:
      zigbee2mqtt:
        container_name: zigbee2mqtt
        image: koenkk/zigbee2mqtt
        volumes:
          - ./zigbee2mqtt_data:/app/data
          - /run/udev:/run/udev:ro
        devices:
          - "/dev/ttyUSB0:/dev/ttyUSB0"
        restart: unless-stopped
        network_mode: host
        environment:
          - TZ=Europe/Berlin
    
  5. Docker-Container starten

    docker-compose up -d
    
  6. Zugriff

    • Home Assistant: http://<IP-Adresse>:8123

    • Zigbee2MQTT: http://<IP-Adresse>:8080

6.4.2. Methode 2: Installation über Home Assistant OS

Dies ist der einfachste und stabilste Weg, Home Assistant inklusive dem Addon Zigbee2MQTT zu betreiben.

  1. Home Assistant OS flashen

    • Herunterladen des Raspberry Pi Imager.

    • Installieren von HomeAssistantOS auf einer MikroSD.

RPi Imager
  1. Erster Start

    • Einsetzen der SD-Karte und eines Netzwerkkabels in den Pi und starten.

    • Warten bis Installation abgeschlossen ist.

    • Aufruf über: http://homeassistant.local:8123 oder IP-Adresse.

Erster Start
  1. Zigbee2MQTT installieren

    • Gehe im UI zu Einstellungen > Add-ons > Add-on Store

    • Hinzufügen des Repository https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

    • Installieren des Add-on Zigbee2MQTT

    • Installation des Mosquito Brokers ebenfalls aus dem Addin Store

Addon Store
  1. Zigbee2MQTT konfigurieren
    • In Mosquito Broker muss ein User und das Passwort zur Verbindungsherstellung angegebn werden

    logins:
    - username: user
      password: passwd
    
    • In Zigbee2MQTT muss noch der Port des Zigbee USB Dongles angegeben werden

    port: /dev/ttyUSB0
    

6.5. Geräte verbinden

Da dies nun geschehen ist müssen die MQTT Daten noch auf den beiden Controllern eingerichtet werden, damit diese sich mit dem Broker verbinden können. Hierfür muss lediglich die Broker IP Adresse und die zuvor konfigurierten Nutzerdaten zur Verbindungsherstellung angegeben werden. Die IP Adresse für die Weboberfläche der Controller finden wir ganz einfach über die Verbindungsliste unseres Routers heraus. Wenn die Einstellungen gesetzt sind findet der Home Assistant die Geräte automatisch unter Einstellungen > Geräte & Dienste. Sobald die Geräte verbunden sind und einen Namen bekommen haben werden diese für den Home Assistant steuerbar gemacht und liefern Daten über den aktuellen Zustand.

LED-Device Lampensteuerung

Damit diese aber nun auch gestert werden können fügen wir noch eine Fernbedienung hinzu. Da diese aber nur über Zigbee funktioniert nutzen wir das installierte Zigbee2MQTT Addon. In diesem Addon kann der Kopplungsmodus aktiviert werden, welcher auch auf der Fernbendienung aktiviert werden muss. Sobald sich die Geräte dann verbunden haben wird auch die Fernbedienung als steuerbares Gerät im Home Assistant Hinzugefügt.

Fernbedienung

6.6. Erstellung der Automationen

Damit die Lichter nun auch ein und ausgeschaltet werden können benötigt man Automationen. Diese können unter Einstellungen > Automationen und Szenen erstellt werden. Mit einem einfachen Auswahlsystem können hier vier Automationen angelegt werden: - Licht ein - Licht aus - Licht heller - Licht dunkler Nun sind die Lichter durch die Knöpfe des Schalters bedienbar.

6.7. Erstellung eines Dashboards

Um die Lichter aber auch ohne Schalter bedienen zu können kann man sogenannte Dashboards bauen. Das sind selbstgestaltete Benutzeroberflächen, um Gerätedaten an zu zeigen oder Geräte zu steuern. Die Dashboards können mit einem einfachen Editor eingerichtet werden.

Fernbedienung

6.8. Quellen