Sonoff mit Tasmota Firmware in Alexa einbinden

Aktuell beschäftige ich mit dem Thema SmartHome und arbeite mich gerade durch das KNX Buch von Stefan Heinle, welches einen guten Überblick über die verschiedenen Lösungen für Heimautomation am Markt verschafft. Ich bin zwar noch nicht ganz durch, aber eines steht bereits jetzt fest: KNX ist zwar die ausgereiftere und stabilere Lösung, allerdings auch die teuerste. Auf der Suche nach günstigen Alternativen für die Schaltung von einzelnen Verbrauchern wie Stehlampen o.ä., bin ich dann über die Sonoff Produkte von Itead gestolpert. Diese sind im Preis einfach unschlagbar, wenn einem die Schaltung via WLAN ausreicht.

Die Produktreihe geht dabei von einfachen “smarten” Relais wie dem Sonoff Basic, über Enduser freundliche Steckdosenadapter wie dem Sonoff S20 (ähnlich Fritz!Dect 200 von AVM) bis zu Sensoren wie Touch Tastern und Temperatur-/Feuchtigkeitssensoren.

Wenn man diese direkt aus China via Ebay bestellt, geht es bereits ab 5€ für den Basic und ab 10€ für den S20 los. Wem die Bestellung aus China zu heikel ist (Garantie, Zoll etc.), kann diese Geräte mit Aufpreis natürlich auch via Amazon bestellen. Dabei nicht von den negativen Kommentaren abschrecken lassen, da diese sich meist auf die schlechte Verbindung zum Chinaserver beziehen (dazu später mehr) und nicht auf die Hardware selbst. Auch darf man bei diesem Preis nicht unbedingt eine gute Usability wie z.B. bei AVM Produkten erwarten.

Hier einmal die technischen Daten vom S20:

Sonoff S20
WLAN 2,4 Ghz, 802.11 b/g/n, WPA/WPA2
Prüfzeichen CE, FCC
Eingangsspannung 90V – 250V AC
Max. Belastung 2200W / 10A
Stromverbrauch ca. 0,3 Watt (aus), ca. 0,7 Watt (an)
Umgebungsfeuchtigkeit 5% – 90%
Arbeitstemperatur 0° – 40°

Gesteuert werden die Produkte via proprietärer Handy-App Ewelink, welche einen Account bei bereits erwähntem Chinaserver zwingend voraussetzt. Auch klappt eine Einbindung via Echo Dot problemlos, indem man Alexa bittet nach neuen Geräten zu suchen. Anschließend kann man den Sonoff via Sprache ein- und ausschalten. So wie man sich das vorstellt. Also alles gut? Nicht ganz.

Nachteile der original Firmware

Aus meiner Sicht sollten SmartHome Geräte so autark wie möglich sein. Je mehr externe Server, proprietäre Apps etc. benötigt werden, desto anfälliger ist ein Gerät im täglichen Umgang. Auch lassen sich Geräte verschiedener Hersteller nur schwer miteinander verbinden, wenn diese nicht Standardprotokolle sprechen, die von Lösungen wie z.B. OpenHab, FHEM, ioBroker unterstützt werden. Weiterhin ist nicht immer klar, welche Daten aus dem eigenen Heim an Server in China oder sonstwo versandt werden und was damit passiert.

Klar ist: wird ein Sonoff Gerät ein- oder ausgeschaltet, läuft dieses zwingend über den Sonoff eigenen Server. Je nach Verlässlichkeit des Servers und den versandten Daten kann das einem egal sein – mir jedenfalls nicht :).

Alternative Firmware Tasmota

Nun haben sich einige Entwickler die Mühe gemacht, eine alternative Firmware für die Sonoff Geräte zu entwickeln, die o.g. Probleme löst: Tasmota.

Dabei handelt es sich um eine universelle Open Source Firmware, die auf alle Sonoff Geräte geflashed werden kann und folgende Vorteile bietet:

  • Keine Kommunikation mit externen Servern (kein nach Hause telefonieren)
  • Weniger Verzögerung da keine Verbindung nach China nötig
  • Keine Notwendigkeit zur Verwendung der Ewelink App
  • Implementierung des MQTT Standardprotokolls zur Einbindung in SmartHome Hubs wie OpenHab etc.
  • WeMo und Hue Emulation zur einfachen Einbindung z.B. in Alexa
  • Weboberfläche direkt auf dem Gerät zum u.a.
    • Schalten des Gerätes
    • Anzeigen von Statusmeldungen
    • Auslesen der Sensoren (falls vorhanden)
    • Konfigurieren von WLAN Einstellungen
    • Firmware Upload

Um diese auf die Sonoffs zu flashen, gibts es zwei Möglichkeiten:

  • Via WLAN unter Verwendung von SonOTA
  • Via USB unter Verwendung eines Lötkolbens

Sonoff via WLAN flashen (SonOTA)

Da ich nicht gerade der Hardware Bastler bin, habe ich mich natürlich über die Option via WLAN gefreut und dies direkt mit meinem S20 unter Verwendung von SonOTA ausprobiert. Normalerweise muss man dazu einige Softwarepakete installieren (Python etc.), welches ein wenig Zeit in Anspruch nimmt – unter Windows sogar um einiges mehr. Netterweise haben sich die Entwickler die Mühe gemacht, für Windows eine fertige EXE bereitzustellen, die man einfach ausführen kann. Diese beinhaltet alles benötigte und fragt nur noch die Parameter wie IP, WLAN-Einstellungen etc. ab und leitet einen durch den Vorgang. Ein manuelles Herunterladen der Firmware ist nicht notwendig. Nach ca. 5 Minuten war bei mir die neue Firmware geflashed und einsatzbereit. Ich gehe hier jetzt nicht auf die Installationsdetails ein, da dies bereits ausführlich auf der SonOTA Seite erklärt ist.

Grob sind folgende Schritte notwendig:

  • Sonoff Gerät an den Strom anschließen
  • WLAN am Rechner aktivieren und sicherheitshalber Netzwerkkabel abziehen
  • Alle Firewalls unter Windows ausschalten
  • EXE als Administrator starten
  • Knopf auf Sonoff für 5 Sekunden drücken bis die Lampe schnell blinkt
  • Anweisungen der EXE befolgen
  • Fertig

Achtung:

Leider scheint es aktuell nicht mehr möglich zu sein, Sonoff Geräte mit einer Firmware >= 1.6 via OTA zu flashen :(. Es scheint so zu sein, dass der Hersteller wohl nun genauer die genutzten SSL Zertifikate prüft und somit der OTA-Hack nicht mehr funktioniert. Mein S20 hatte glücklicherweise 1.5.5 und lief somit problemlos. Mein Basic hat allerdings 1.6.0 und scheidet somit für OTA-Flashing aus. Man kann die Firmwareversion übrigens mit der Ewelink App unter “Geräteeinstellungen” anzeigen lassen – eine automatisches Update erfolgt dabei nicht!

Der Entwickler für den Hack hat den Hersteller der Sonoffs gebeten, diese Möglichkeit des OTA-Flashens wieder zu ermöglichen und bittet um Unterstützung. Dazu bitte einfach den ersten Kommentar auf der Sonoff Homepage von “Sillyfrog” liken und einen entsprechenden Kommentar hinterlassen!

Sonoff via USB flashen

Wie bereits erwähnt, kann man die Sonoffs auch via USB flashen. Dazu muss man allerdings mit einem Lötkolben umgehen können. Da ich davon leider keine Ahnung habe, kann ich an dieser Stelle nur auf die bestehenden Anleitungen bei Youtube oder im Tasmota-Wiki verweisen.

Nach dem Flashen

Nach dem Flashen kann man via Browser direkt auf die IP des Sonoffs gehen (einfach danach im Router schauen) und bekommmt die Weboberfläche angezeigt. Hier kann man z.B. via “Toggle” direkt das ein-/ausschalten testen.

Da die geflashte Basis-Firmware für alle Sonoff Geräte identisch ist, muss man noch einstellen, um welches Gerät es sich genau handelt. Dazu unter “Configure Module”, “Module Type” das entsprechende Gerät auswählen und Speichern. Anschließend startet das Gerät ein letztes Mal neu und aktiviert die Typ spezifischen Optionen.

Da das Schalten des Sonoff nun via Weboberfläche möglich ist, steht auch einer Einbindung via Skripting oder OpenHab nichs mehr im Wege. Selbst via Handy ist dies weiterhin möglich, in dem man sich z.B. einfach ein Bookmark auf die entsprechende URL setzt.

Einbindung in Alexa

Wie bereits erwähnt, ist die Einbindung in Alexa mit der original Firmware simpel. Man bittet Alex einfach nach neuen Geräten zu suchen und diese findet den Sonoff i.d.R. auch nach 20 Sekunden. Bei mir hat dies, mit dem Echo Dot (1. Generation), ohne Probleme geklappt. Die weitere Konfiguration erfolgt dann wie gewohnt mit der Alexa App.

Mit der Tasmota Firmware gestaltet sich das nicht weniger einfach. Dazu muss man allerdings in der Tasmota Konfiguration via Weboberfläche die sog. Hue Emulation aktivieren. Danach findet Alexa den Sonoff wie erwartet und läßt sich über diese genauso schalten wie mit der original Firmware. Eine Konfiguration von z.B. MQTT ist für die alleinige Einbindung in Alexa nicht notwendig.

Mittlerweile bietet Alexa auch das Erstellen von simplen Logiken via “Routinen”. Hier kann man dann auch solche Dinge konfigurieren wie “Alexa, Gute Nacht.”, welches mehrere Geräte auf einmal ausschaltet. Auch ein einfaches “Alexa, Licht an.” anstatt “Alexa schalte Stehlampe im Wohnzimmer an” genügt, um die Lampe im Wohnzimmer einzuschalten.

Einbindung in Google Home

google_miniAuch die Einbindung in mein Google Home Mini klappt mit der original Firmware wie erwartet. Dazu wählt man in der Google Home App einfach über das Menü den Punkt “Smart-Home-Steuerung”. Anschließend über den “+” Button den Dienst “Smart We Link” auswählen und die Zugangsdaten für den Cloud-Dienst angeben. Ist das geschehen, wird der Sonoff bereits im folgenden Bildschirm angezeigt und man kann ihn einem Zimmer zuordnen. Ist dies geschehen, reicht ein einfaches “Ok Google, Stehlampe einschalten” und der Sonoff schaltet wie erwartet.

Mit der Tasmota Firmware allerdings, scheint eine einfache Einbindung nicht möglich zu sein. Ein Grund ist hier, dass Google anscheinend mit den letzten Updates die Unterstützung von Phillips Hue Geräten im lokalen Netzwerk entfernt hat. Stattdessen ist nun eine Anmeldung an die Phillips Cloud Services notwendig, welches die Ewelink App voraussetzt und diese natürlich nicht mit Tasomota funktioniert. Das kann Alexa anscheinend besser. Hier muss man in Zukunft einmal schauen, welche anderen Optionen existieren oder ob Google seine Strategie ändert was das lokale Netz angeht.

Neben der Google Home Integration, soll auch IFTTT unterstützt werden – welches ich aber noch nicht prüfen konnte.

Nachteile Tasmota

Leider hat die Tasmota Firmware auch ein paar Nachteile, die ich hier nicht verschweigen möchte:

  • Die Ewelink App funktioniert nicht mehr mit dem Sonoff
  • Funktionen wie die Timerfunktion des S20 werden nicht unterstützt
  • Aktuell keine direkte Integration mit Google Home (z.B. Google Mini)

Fazit

Alles in allem ist Sonoff eine einfache und vor allem preisgünstige Möglichkeit zur Anbindung von “dummen” Verbrauchern in das eigene SmartHome. Sicherlich ist es keine Alternative zur etabilierten Bussystemen wie z.B. KNX, allerdings kann man damit diese kostengünstig ergänzen. In Verbindung mit Tasmota und MQTT lassen sich die Sonoffs im lokalen Netzwerk direkt, standardisiert und automatisiert ansteuern und z.B. via OpenHab in komplexere Logiken einbinden. Ein paar Wehrmutstropfen in Verbindung mit Tasmota bleiben allerdings: keine Unterstützung aller Funktionen (z.B. Timer) und die fehlende Google Home Anbindung direkt durch das Gerät. Wobei letzteres wohl eher Google zuzuschreiben ist.