In diesem Artikel geht es um das Flashen eines Sonoff POW. Ich möchte hier eine möglichst leicht und schnelle Variante vorstellen, die ich für mich als den einfachsten und besten Weg gefunden habe. Es werden keine selbst kompilierten Binaries genutzt, es ist nicht notwendig Pins in den Sonoff zu löten und auch sonst ist die genutzte Software minimal. Frei nach dem Motto YAGNI.
Grundlagen
Bevor wir aber mit dem eigentlich Flashen starten, gibt es erstmal ein paar zusätzliche Infos. Die Sonoff Serie ist eine Reihe von Schaltern und Energiemessern auf Basis des ESP8266 Chips. Die meisten Module sind eher für einen versteckten Einbau entworfen und bestehen daher auch aus einer Plastikkiste mit einer Platine. Die Verkabelung muss zum Teil selbst vorgenommen werden. Es gibt aber auch Module für die Steckdose und Schalter. Diese sehen dann auch hochwertiger aus und sind optisch ansprechender. Aber alle haben immer den ESP8266 Chip gemeinsam und sind daher in einem günstigen Preisbereich angesiedelt.
Die Sonoffs haben einen Vor- und einen Nachteil. Da die Elemente auch per Alexa und von überall per Smartphone App gesteuert werden können sollen, verbinden sie sich zu Servern bei dem Hersteller und die Apps müssen sich dann ebenfalls zu diesen Servern verbinden. Da es sich bei itead um einen chinesischen Anbieter handelt, stehen auch die Server in China. Das bedeutet, wenn ich auf dem Smartphone meine Stehlampe einschalten möchte, verbindet sich die App zu einem Server in China gibt die Information an das entsprechend registrierte Modul weiter und die Information wandert dann von diesen Servern zu dem Modul an der Stehlampe, was dann die Aktion ausführt. Der Roundtrip ist ziemlich lang und die Reaktion könnte viel schneller erfolgen.
Hier kommt nun das Flashen der ESP8266 Chips ins Spiel. Es gibt für die Sonoff Serie eine alternative Firmware die Tasmota heißt. Diese Firmware erlaubt es ein Sonoff Modul mit einem MQTT Server zu verbinden. Zum Beispiel einem MQTT Server im lokalen Netz, der dann mit Openhab, ioBroker oder einem ähnlichen System verbunden ist. Man spart sich also nicht nur den Roundtrip, sondern kann auch gleich die ewelink App löschen.
Sonoff Pow öffnen
Achtung! Der Sonoff darf nicht mit dem normalen Stromnetz verbunden sein, sonst verwandelt man es sehr schnell zu Schrott und bei den 220 Volt ist das auch ingesamt gefährlich.
Der Sonoff Pow Switch muss zuerst geöffnet werden, damit man an die Platine kommt. Das Gehäuse ist zusammen gesteckt und wird zusätzlich noch mit einer Schraube gehalten. Zuerst drehen wir die Schraube heraus und nehmen das Plastikteil ab, das auch später die Kabel festklemmt. Nun kann man mit einem Spudger vorsichtig am Gehäuse entlang fahren. Am einfachsten finde ich es gegenüber von der geschraubten Klemme zu beginnen. Beim entlangfahren and der Seite immer wieder sanft den Spudger zu drehen. Dadurch schafft man es ohne Kratzer oder noch gröbere Beschädigungen das Gehäuse zu öffnen. Ist erst einmal eine Seite geöffnet, geht die parallele Seite fast von alleine. Auf dem Bild kann man die beiden Stellen erkennen, an denen das Gehäuseoberteil an dem Unterteil gehalten wird.
Software
Bevor wir starten können muss man noch etwas die Software auf dem Mac vorbereiten.
Zuerst installieren wir esptool. Dabei handelt sich um ein Python Skript, mit dem man den ESP8266 auslesen und natürlich auch flashen kann. Voraussetzung ist ein installiertes Python. Dann kann man mit dem folgenden Befehl das esptool installieren:
pip install esptool
Dann laden wir die Tasmota binary herunter. Das ist die Firmware, die wir später auf den Sonoff laden wollen. Übrigens ist die Firmware für alle Sonoff Geräte gleich und man kann in der Weboberfläche das passende Gerät auswählen.
Jetzt wird es etwas spannender. Um den Sonoff zu flashen, benötigt man einen USB-zu-Seriell Adapter. Ich habe mich für den FT232RL Chip entschieden. Sobald man diesen an einem Mac in den USB Port steckt, kann man unter /dev/
das ein neues Gerät finden. Dieses muss man sich merken, denn später benötigen wir diesen COM-Port noch.
Das geöffnete Sonoff Modul kommt nun wieder dran und man findet auf der Platine auch schon die 4 Pins.
Achtung! Der Sonoff darf nicht mit dem normalen Stromnetz verbunden sein, sonst verwandelt man es sehr schnell zu Schrott und bei den 220 Volt ist das auch ingesamt gefährlich.
Da im Sonoff keine echten Pins vorhanden sind, sondern vielmehr ein Platz um Pins anzulöten, benutzt man hier besser Jumper Kabel. Man kann diese an VCC, GND, TX und RX vom USB-to-Serial converter anstecken und im Sonoff entsprechend einstecken. Wenn man ganz leichten Druck auf das Jumperkabel gibt, hat man eine gute Verbindung zwischen Sonoff und Converter. Man muss also nichts löten, vor allem da das Flashen im besten Fall nur einmal durchgeführt werden muss. Over-the-air Updates sind später nämlich in der Software möglich und man kann die Updates sogar per MQTT anstoßen.
Wir haben jetzt also einen funktionierenden Konverter, eine Verbindung zum Sonoff und das binary liegt auch vor. Ebenso ist esptool
installiert und man könnte eigentlich auch schon starten.
Um auf die Firmware des ESP8266 zu zugreifen muss der Chip in den passenden Modus versetzt werden. Hierfür muss man Pin 0
mit Gnd
verbinden. Um das ganze zu vereinfachen kann man auch einfach den Taster halten während das Sonoff Modul mit den Pins verbunden wird. Man muss nicht alle Kabel herausziehen, sondern nur das stromführende Kabel. Es ist wichtig dass der Taster gehalten wird während der ESP8266 mit Strom versorgt wird, dadurch erlaubt der Chip nämlich den Zugriff aus die Firmware.
Wir machen zuerst ein Backup der vorhandenen Firmware (‚usb-port‘ mit dem Port auf dem Mac im /dev
Verzeichnis ersetzen):
esptool.py --port /dev/usb-port read_flash 0x00000 0x100000 image1M-sonoff-original.bin
Jetzt sind wir bereit für das Flashen und führen den Vorgang mit folgendem Befehl aus (wieder den USB-Port anpassen!):
esptool.py --port /dev/usb-port write_flash -fs 1MB -fm dout 0x0 sonoff.bin
Wenn man nun den Sonoff neustartet, ist die Tasmota Firmware aktiv. Jetzt wird das Modul wieder zusammengesteckt und mit dem Stromkabel verbunden (falls nicht schon vorher geschehen) und anschließend an das Stromnetz angeschlossen. Die Konfiguration kann man dann wie im Tasmota Wiki beschrieben durchführen.
Um den Sonoff Pow flexibel zu nutzen habe ich ein Schuko-Verlängerungskabel besorgt und dieses an der passenden Länge durchtrennt. Die Adern noch an die richtigen Stellen (Blau zu N, Braun zu L und gelb/grün zu E) gesteckt und schon kann man beliebige Geräte mit Stromkabel steuern. Ist man sich bei der Verkabelung unsicher, sollte man lieber zu jemanden gehen der sich auskennt. Wie man den Sonoff dann konfiguriert und mit OpenHAB nutzt, sehen wir in einem anderen Beitrag.