Tasmota Steckdose über MQTT in Domoticz einbinden

Was soll erreicht werden

Im Beitrag https://daniel-spitzer.de/blog/2019/12/01/teckin-sp21-steckdose-mit-tasmota-flashen-und-alexa-konfigurieren/ habe ich beschrieben, wie ich Tasmota auf Teckin SP21 Steckdosen ohne zu löten geflashed habe. Jetzt sollen die Steckdosen per MQTT mit einem Domoticz Frontend sprechen. Außerdem möchte ich meine Steckdosen gerne über eine App steuern können.

MQTT Server auf Synology NAS installieren

Da ich eine zwar ältere aber wunderbar zuverlässige Synology NAS Diskstation DS213j nutze installiere ich den MQTT Server zunächst einfach dort. Das Vorgehen ist im Detail hier beschrieben https://gist.github.com/ajumalp/0ad2517d15c999cfc440cdf3d623fab8

Im Wesentlichen:

  1. Das Community Paket mosquitto auf der Synology installieren
  2. Per SSH auf der Synology einloggen und die mosquitto.conf anpassen (allow_anonymous false und password_file <PFAD ZUR PASSWORTDATEI>)
  3. mosquitto über Paketmanager starten

Um einen Blick auf den Datentransfer zu werfen nutze ich den MQTT Client MQTT Explorer von Thomas Nordquist http://mqtt-explorer.com/

Domosticz installieren

Zunächst habe ich Domosticz ebenfalls auf der Synology installiert wie hier beschrieben: https://www.domoticz.com/wiki/Synology . Allerdings schien mir das System etwas instabil und daher entscheide ich mich doch für einen Raspberry B, der hier noch rumliegt.

Für die Installation entscheide ich mich für den „easy way“ mittels curl -L https://install.domoticz.com | bash wie hier beschrieben https://www.domoticz.com/wiki/Raspberry_Pi

Tasmota Geräte einrichten

Jetzt müssen nur noch die mit Tasmota geflashten Steckdosen für MQTT aktiviert und für Domoticz eingerichtet werden.

In Tasmota unter Configuration / Configure other => MQTT enable anhaken. Dann unter Configuration / Configure MQTT den Hostnamen (bei mir die IP der Diskstation) und Port sowie User und Passwort, die in der mosquitto Passwortdatei eingetragen wurden angeben. Als Topic habe ich zunächst tasmota eingetragen gelassen.

Anschließend in Domoticz (bei mir im Browser unter der IP meines Raspberry PI mit dem bei der Installation angegebenen Port zu erreichen) eine Hardware konfigurieren wie hier https://github.com/arendst/Tasmota/wiki/Domoticz beschrieben (Hardware / Client Gateway with LAN interface und Hardware / Dummy (used for virtual switches) hinzufügen und konfigurieren. Virtual Sensor erzeugen und unter Setup / Devices die Idx der Steckdose herausfinden. Das erste Device bekommt die Idx 1 und dann wird hochgezählt.

Im Tab Switches von Domoticz stehen die Devices zur Verfügung. Devices, die als Favorit markiert sind (Stern), stehen im Dashboard zur Verfügung und können dort mit einem Klick auf das Symbolbild später geschaltet werden.

Zurück zum Tasmota Gerät. Dort die Configuration / Cofigure Domoticz aufrufen und die Idx im entsprechenden Feld angeben. Speichern und fertig. Jetzt sollte mit einem Klick auf das Bild im Dashboard von Domotoicz die Steckdose geschaltet werden können.

Aufruf per App

Schlussendlich sollen die Steckdosen noch per App geschaltet werden können. Hierzu installiere ich die Domoticz App, konfiguriere IP und Port. Fertig. Schon stehen die Favoriten aus Domoticz zum Schalten zur Verfügung.

Teckin SP21 Steckdose mit Tasmota flashen und Alexa konfigurieren

Ziel: Teckin SP21 Steckdose mit Tasmota flashen

Das Teckin Smart Plug SP21 soll mit Tasmota geflashed werden. Vorteil ist, dass das Teckin auf Basis der Firmware von Tuya funktioniert. Die Firmware von Tuya kann ohne Löten geflashed werden. Wie das geht ist ausführlich in der c’t unter https://www.heise.de/ct/artikel/Tuya-Convert-IoT-Geraete-ohne-Loeten-vom-Cloud-Zwang-befreien-4283623.html beschrieben.

Wer es schneller mag befolgt einfach die Anleitung auf der Github Seite des Projektes: https://github.com/ct-Open-Source/tuya-convert

Raspberry Pi mit WLAN Adapter TL-WN823N von TP-Link vorbereiten

Ich verwende einen Raspberry Pi mit WLAN Adapter. Hierzu habe ich den TL-WN823N von TP-Link verwendet, der allerdings vom Raspian nicht automatisch erkannt wurde. Damit er funktioniert habe ich das bei http://romcheckfail.com/tl-wn823n-raspberry-pi-3-wireless-fix/ beschriebene Script installiert.

Teckin SP21 flashen

Anschließend das Script aus dem Github Repository des VTRUST / c’t Projektes ins aktuelle Verzeichnis auf dem Raspberry klonen und das Vorbereitungsscript ausführen und den Anweisungen des Scriptes folgen.

# git clone https://github.com/ct-Open-Source/tuya-convert
# cd tuya-convert
# ./install_prereq.sh

Durch das Script wird ein WLAN Access Point mit dem Namen vtrust-flash geöffnet. Mit diesem verbindet man sich nun mit einem Smartphone.

Ist das geschehen startet man den eigentlichen Flash-Vorgang mittels ./start-flash.sh. Die Teckin SP21 muss dazu in eine Steckdose gesteckt werden. Die blinkende blaue LED zeigt an, dass die Dose im Konfigurationsmodus ist.

Tasmota konfigurieren

Während des Flash Vorganges kann Tasmota oder Espurna als Firmware ausgewählt werden. Ich habe mich für Tasmota entschieden. Nach dem Flashvorgang öffnet der ESP8266 des Teckin SP21 einen WLAN Accesspoint mit Namen „Tasmota-XXXX“. Mit diesem verbinden wir uns nun. Ich verwende das gleiche Smartphone, das ich schon für den VTRUST Accesspoint verwendet habe.

Auf der Startseite des Accesspoint kann nun der Zugang zum eigenen WLAN-Router konfiguriert werden. Die Teckin Steckdose wird so in das eigene Netz gebracht. Nachdem die Zugangsdaten gespeichert wurden taucht die Steckdose mit eigener IP-Adresse im Router auf. Mit einem iPhone und der App „Fing“ kann man ebenfalls schnell das Netz scannen und die IP Adresse herausfinden.

Mit der IP Adresse im eigenen WLAN verbinden wir uns nun und schließen die Konfiguration ab.

Hierzu wählt man im Bereich „Configure“ den Punkt „Configure Module“ und wählt BlitzWolf SHP (45), da Teckin SP21 noch nicht in der Liste auftaucht. Ab sofort läßt sich die Teckin Steckdose über das Webfrontend von Tasmota schalten.

Feinarbeit und Alexaintegration

Unter „Configure Other“ können wir das folgende Template eintragen{"NAME":"Teckin SP21","GPIO":[0,0,56,0,0,0,0,0,0,17,0,21,0],"FLAG":0,"BASE":45} das ich unter https://github.com/blakadder/templates/blob/master/_templates/teckin_SP21 gefunden habe.

Außerdem kann unter „Config Other“ auch gleich noch die Emulation für „Hue Bridge“ angehakt werden. Diese wird für die Integration in Alexa benötigt.

Ist das geschehen kann in der Alexa App nach neuen Phillips Geräten gesucht werden. Der Teckin Stecker taucht dann mit dem ebenfalls auf „Config Other“ eingestellten „Friendly Name“ als Lampe auf und kann dort geschaltet werden.

Alternativ zur HUE Emluation kann eine Belkon WeMo Emulation verwendet werden, die ich bisher jedoch noch nicht ausprobiert habe.

In der Alexa-App kann das Gerät wie üblich auch umbenannt werden, so dass man dort einen eigenen „Friendly Name“ konfigurieren kann.