Sonoff Tasmota mit Google Assistant steuern

Diese Anleitung dient als Leitfaden zur Nutzung von Tasmota-basierten Geräten (wie Sonoffs, Shellys usw.) mit dem Google Assistant oder der Google Home Platform. Im Gegensatz zu anderen Anleitungen ist bei dieser Methode weder die Hue-Emulation, noch das Öffnen von Ports in der Firewall (bzw. Port Forwarding) notwendig. Ihr müsst nur diese Schritte befolgen.

Ein gBridge Konto erstellen

gBridge.io ist ein Dienst, der grundlegend Google Assistant und einen MQTT-Server verbindet. Wird ein Kommando über den Google Assistant abgegeben, dann sendet gBridge diese Daten in einer MQTT-Nachricht. Öffnet einfach die Projektseite, klickt auf “Register” und gebt die notwendigen Informationen ein. Nachdem ihr den Link in der Bestätigungmail anklickt ist das Konto auch schon einsatzbereit!

Einrichten vom lokalen MQTT-Broker

Man sollte sich mit gBridge nur mittels über das mittels TLS verschlüsselte MQTT-Protokoll verbinden, da die Steuerdaten über das Internet übertragen werden. Leider unterstützt Tasmota momentan kein verschlüsseltes MQTT (wegen begrenzter Hardwareresourcen).
Um dieses Problem zu umgehen, muss im eigenen Netzwerk ein lokaler MQTT-Broker (z.B. Mosquitto) eingerichtet werden. Dieser Server kann auf einem kleinen Gerät laufen, welches vielleicht schon in eurem Netzwerk vorhanden ist, wie ein NAS oder ein Raspberry Pi.

Diese Einrichtung stellt die verschlüsselte Kommunikation mit dem MQTT-Server von gBridge sicher, während im lokalen Netzwerk einfaches (unverschlüsseltes) MQTT für die Tasmota-Geräte bereitsteht.

Local MQTT proxying

Jegliche Daten von gBridge werden von eurem lokalen Mosquitto-Server an die lokalen Geräte weitergeleitet. Dies geschieht auch in der umgekehrten Richtung.

In der Anmeldungs-Email von gBridge sind alle notwendigen Informationen zum MQTT-Server gelistet (z.B. Hostname und Nutzername). Auch stehen diese Informationen immer im gBridge Dashboard, im Menüpunkt “My Account” bereit.
Die nachfolgende Mosquitto-Konfiguration hat sich in Kombination mit Tasmota-Geräten bewährt (die Datei /etc/mosquitto/mosquitto.conf muss bearbeitet werden). Das MQTT-Passwort ist standardmäßig das Kontopassword, kann aber unabhängig davon im Reiter “My Account” verändert werden (z.B. wenn separate Passwörter für IoT-Geräte verwendet werden sollen).

connection gbridge-io
address mqtt.gbridge.io:8883
bridge_attempt_unsubscribe true
bridge_protocol_version mqttv311
cleansession true
remote_username gbridge-u{userid}
remote_password {mqtt-password}
remote_clientid gbridge-u{userid}-{zufaellige-alphanumerische-zeichen}

topic cmnd/# in 0 sonoff/ gBridge/u{userid}/
topic stat/# out 0 sonoff/ gBridge/u{userid}/
bridge_capath /etc/ssl/certs/
bridge_tls_version tlsv1.2

Gebt hier eure Daten ein. Beispielsweise kann die Datei für den Nutzer “gbridge-u7” so aussehen:

connection gbridge-io
address mqtt.gbridge.io:8883
bridge_attempt_unsubscribe true
bridge_protocol_version mqttv311
cleansession true
remote_username gbridge-u7
remote_password mysupersecretpassword
remote_clientid gbridge-u7-qvy74EDmdWRGMkSa

topic gBridge/u7/+/+ both 0 "" ""
topic gBridge/u7/+/+/set both 0 "" ""
topic cmnd/# in 0 sonoff/ gBridge/u7/
topic stat/# out 0 sonoff/ gBridge/u7/
bridge_capath /etc/ssl/certs/
bridge_tls_version tlsv1.2

Nach dem Bearbeiten der Konfigurationsdatei muss Mosquitto neugestartet werden (z.B. “sudo systemctl restart mosquitto”). Schaut nach diesen Zeilen in der Mosquitto-Logdatei (oft /var/log/mosquitto.log) nach dem Neustart – sie zeigen die erfolgreiche Verbindung:

[email protected]:~ $ sudo tail /var/log/mosquitto/mosquitto.log -n 20
1532876260: mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) starting
1532876260: Config loaded from /etc/mosquitto/mosquitto.conf.
1532876260: Opening ipv4 listen socket on port 1883.
1532876260: Opening ipv6 listen socket on port 1883.
1532876260: Connecting bridge gbridge-io (mqtt.gbridge.io:8883)

Tasmota einrichten

Tasmota muss auf den Sonoff/ Shelly/ etc. geflasht werden. Die Entwickler von Tasmota haben dafür sehr ausführliche Anleitungen geschrieben (Englisch), daher werde ich hier nicht weiter darauf eingehen. In dem folgendem Beispiel habe ich ein Sonoff S20 genutzt, aber für andere Geräte sollte es kaum unterschiedlich sein.

Als Erstes muss das WLAN-Netzwerk eingerichet werden und dem Gerät ein Name zugewiesen werden. Danach können bei “Configuration”, “Configure MQTT” diese Daten eingegeben werden:

  • Host: URL oder IP eures lokalen MQTT-Brokers der für gBridge konfiguriert wurde
  • Port: Üblicherweise 1883, außer ihr habt was anderes für euren Broker konfiguriert
  • Client: Beim Standard belassen
  • Username/ Password: Leer lassen, außer der Broker benötigt Anmeldedaten (nicht der Fall bei der standardmäßigen Mosquitto-Konfiguration)
  • Topic: Ein eindeutiger alphanumerischer Name für das Tasmota-Gerät (Sonderzeichen vermeiden). Diesen bitte notieren, da er später wieder benötigt wird. An unique alphanumeric name for your Tasmota device.
  • Full Topic: “sonoff/%prefix%/%topic%/”

Klickt auf “Save”, das Gerät sollte neustarten. Im Tasmota-Log sollten diese Zeilen die erfolgreiche Verbindung zeigen:

00:00:06 MQT: Attempting connection...
00:00:06 MQT: Connected

Ein virtuelles Gerät erstellen

Fast fertig! Nun muss im Dashboard von gBridge ein neues Gerät erstellt werden, welches später in der Google Home App angezeigt wird. Klickt auf “Add Device”, vergebt einen Namen auf den Google hören soll. Als “Device Type” (Gerätetyp) könnt ihr “Switch” (Schalter) oder “Outlet” (Steckdose) auswählen; bei “Supported Trait” kann nur “On and Off” gewählt werden.

Nach dem Erstellen des virtuellen Gerätes muss nochmals auf den Bearbeiten-Knopf (Stiftsymbol) geklickt werden, um die MQTT-Topics abzuändern. Folgende Einstellungen funktionieren:

  • “cmnd/{tasmota-mqtt-name}/power” für die “Action topic”
  • Use “stat/{tasmota-mqtt-name}/POWER” als “Status topic”. Hier bitte unbedingt den notwendigen (und gewollten) Unterschied des Wortes “POWER” beachten.
I’ve entered these settings for my device “sonoff01”

Die Einstellungen mit “Save Settings” abspeichern.

gBridge mit eurem Google Home verbinden

Jetzt könnt ihr die Google Home App öffnen. Dort gibt es einen Button zum Hinzufügen von neuen Geräten. Wählt die Kategorie “Funktioniert mit Google” aus, in der Liste ist “Kappelt gBridge” zu finden.

Im Account anmelden.

Nun erscheinen die erstellten virtuellen Geräte in der Google-Home-App. Wenn ihr wollt, könnt ihr sie Räumen zuweisen.

Test it

Nun solte alles problemlos funktionieren! Sagt “Hey Google, schalte {Gerätename} ein”. Das Tasmota-Gerät sollte jetzt einschalten, wenn alles gut ging.

Say the Google Home command…
… und das Tasmota-Gerät wird eingeschalten!

Natürlich gibt es auch andere Kommandos. Ihr könnt Google beispielsweise immer Fragen ob die Steckdose eingeschalten ist (“Hey Google, ist {Gerätename} eingeschaltet?”). Das gibt immer den aktuellen Zustand zurück, selbst wenn die Steckdose händisch (über den Knopf, etc.) ein- oder ausgeschalten wurde.

Die Dokumentation von gBridge ist auch immer einen Blick wert. Aktuelle Informationen werden dort regelmäßig hinzugefügt.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.