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 11€ 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 oder einfachen Jumperkabeln

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 – auch ohne Lötkolben!

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

Vor ein paar Wochen bin jedoch über ein Youtube Video gestolpert, wo beschrieben wurde, wie man die Sonoffs auch ohne Lötkolben flashen kann! Da ich hier noch 2 S20 und ein Basic mit 1.6’er Firmware liegen hatte, habe ich das natürlich sofort mal ausprobiert. Dazu braucht man eigentlich nur folgendes:

Letzteres hat man vermutlich, so wie ich, bereits zu Hause rumliegen. Daher ist die Investition noch überschaubar – gerade wenn man plant weitere Sonoffs zu bestellen. Anhand des schön beschriebenen Videos habe selbst ich es dann tatsächlich geschafft, meinen Basic als auch die S20 mit der Tasmota Firmware 6.1.1 auszustatten – ohne Lötkolben :)!

Das Video beschreibt leider nur den Vorgang für den Basic. Für den S20 gibt es zu beachten, dass dieser nur 4 Löcher besitzt und das RX/TX dort vertauscht sind. Falls ihr also die Belegung wie im Video beschrieben am FTDI Adapter vorgenommen habt, ist die korrekte Reihenfolge für den S20, startend beim blauen Bauteil:

  • GND
  • RX
  • TX
  • VCC
Sonoff-S20-innen

Keine Angst, falls ihr RX/TX vertauscht habt – bei mir hat dies, bis auf die Fehlermeldung im Atom, keine negativen Auswirkungen gehabt.

Nachdem das Flashen via FTDI Adapter so einfach geklappt hat, habe ich mir direkt noch einen S20 bestellt. Man sollte allerdings dabei beachten, dass es mittlerweile auch viele Nachbauten gibt, bei denen die Löcher in der Platine zugelötet sind. Hier kommt man also ohne Lötkolben wirklich nicht weiter. Also einfach vorher beim Verkäufer einmal nachfragen. Ich hatte wohl Glück bei meinem S20 Lieferanten – dort waren die Löcher wie im obigen Bild noch frei zugänglich.

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.

Noch ein kleiner Tipp aus dem Tasmota Wiki bzgl. Stromaufnahme: mit dem Sleep Kommando könnt ihr sogar den Stromverbrauch z.B. vom S20 von ~1.1 auf ~0.6 Watt im Idle reduzieren! Dazu in der Console einfach sleep 50 eingeben – das war’s.

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. und 2. 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
  • 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: die fehlende App (abgesehen von der WebUI auf dem Sonoff selbst) und die fehlende Google Home Anbindung direkt durch das Gerät. Wobei letzteres wohl eher Google zuzuschreiben ist.