Alle Jahre wieder…

… kommt die Weihnachtszeit und mit ihr jede Menge Lichterkram, den die beste aller Ehefrauen leuchten lassen möchte. Bei so viel Kram stellt sich die Frage, wer das alles jeden Abend ein- und wieder ausschalten soll, zumal viele Steckdosen nur unter erschwerten Bedingungen zugänglich sind. Die erste Wahl fiel auf einfache mechanische Zeitschaltuhren. Aber bei diesen Dingern lässt sich die Zeit/Schaltzeit nur relativ ungenau einstellen und es sieht doof aus, wenn die Lichter in dem einen Fenster eine halbe Stunde später als im anderen Fenstern eingeschaltet werden. Außerdem lässt sich nur eine Schaltzeit einstellen, unterschiedliche Schaltzeiten für Wochentage/Wochenende sind nicht drin.

Variante zwei sind/waren Funksteckdosen. Diese lassen sich prima über einen Raspberry Pi mit angeschlossenem 433Mhz-Funkmodul und der Software Pilight steuern. Das funktioniert super, da sich über den Raspberry quasi unendlich viele Schaltzeiten programmieren lassen. Nachteil: jeder andere mit etwas Bastelgeschick kann das auch tun, weil die Funkübertragung unverschlüsselt geschieht.
Mit einem simplen Befehl kann man sehen, was in der Nachbarschaft so an Funksignalen durch die Luft wandert und wenn man wollte, könnte man die Nachbarn zur Verzweiflung treiben, indem man ihre Steckdosen lustig ein- und ausschaltet. Aus diesem Grund kommen diese Steckdosen bei. mir kaum noch zum Einsatz.

Variante drei sind Steckdosen, die sich per WLAN schalten lassen. Die gibt es von diversen Herstellern im Internet und im Baumarkt zu kaufen. Die funktionieren auch prima, haben aber den Nachteil, dass jeder Hersteller sein eigenes Süppchen in Sachen Software kocht, dass man die Dose vom letzten Jahr oft nicht mehr nachkaufen kann und die neue Dose wieder eine eigene App für ihre Steuerung mitbringt. Außerdem funktionieren diese Apps meist nur über einen Server beim Hersteller und sie „telefonieren“ oft ungehemmt viele Daten „nach Hause“. Zudem klaffen in vielen dieser Dinger Sicherheitslücken, die das heimische Netz unter Umständen für Angreifer wie ein Scheunentor offen stehen lassen…

Eines haben diese Teile aber fast alle gemeinsam: in ihnen werkelt ein Chip vom Typ ESP8266. Und für den gibt es im Netz alternative, quelloffene Software, die sich mit wenig Aufwand in die Steckdosen „verpflanzen“ lässt. Das funktioniert super, man wird den Zwang, die App des Herstellers zu verwenden los, ohne Funktionen zu verlieren. Ganz im Gegenteil.

Schon im letzten Jahr hatte ich einige Steckdosen im Baumarkt mit den drei Buchstaben erworben und mit Tasmota geflasht. Die funktionieren seitdem problemlos und es wuchs der Wunsch, den „Rest“ der Weihnachtsillumination auch noch automatisiert zu schalten. Also erwarb ich wieder vier Dosen. Allerdings stellte sich nach dem Öffnen selbiger Ernüchterung ein. Wo im letzten Jahr die erforderlichen Anschlüsse zur Programmierung noch hübsch erreichbar waren, war dieses Mal nichts zu sehen. Das Design der Platine hat sich geändert… Aber: aufgeben gibt‘s nicht!

Das Herz der Dose ist nämlich unverändert ein ESP8266-Modul. Das ist gut dokumentiert und die nötigen Schritte zur Programmierung waren schnell ermittelt.
Wer sich nun selbst an‘s Werk machen möchte, dem seien folgende Hinweise mit auf den Weg gegeben:

  • Sobald ihr die Dose öffnet und daran rumfummelt, verliert ihr die Herstellergarantie!
  • Ihr fummelt an einem Gerät herum, dass mit Netzspannung arbeitet! Strom macht klein, schwarz und hässlich! Wenn ihr keine Elektrofachkraft seid und von Strom nur wisst, dass er aus der Steckdose in der Wand kommt, lasst die Finger davon!!!
  • Ihr solltet wissen, wo das heiße Ende am Lötkolben ist und eine ruhige Hand haben!
  • Ihr braucht einen PC (bevorzugt mit Linux als Betriebssystem, auf andere Systeme gehe ich nicht ein!)
  • Ihr braucht einen USB zu seriell-Konverter, der mit 3,3V Betriebsspannung klar kommt.

Wenn Ihr jetzt noch weiter lest, gehe ich davon aus, dass Ihr meine Warnhinweise gelesen und verstanden habt.

Wenn Eure Steckdose so aussieht, wie diese, seid ihr auf dem richtigen Weg. Um darauf die neue Software installieren zu können, führt um’s Öffnen kein Weg herum. Ihr benötigt dazu einen speziellen Schraubendreher. Habt Ihr den nicht in Eurer Werkzeugkiste, dann lasst die Finger davon! An dieser Stelle nochmal der Warnhinweis: NETZSPANNUNG ist lebensgefährlich!

Wenn Ihr die Dose öffnet, dann sollte sie unbedingt spannungslos sein, sprich Stecker raus!!! Anders kommt man zwar an die Schrauben zum Öffnen des Gehäuses nicht heran, aber man weiß ja nie..

Habt Ihr das Gehäuse geöffnet, sollte der Lötkolben jetzt angeheizt werden. Insgesamt müssen sechs Lötstellen bearbeitet werden. Das wären die Verbindungen vom ESP8266 zum USB-seriell Konverter (3,3V, GND, TXD, RXD) und eine Brücke am ESP von GND nach IO0. Letztere wird benötigt, um den Chip nach dem Start in den Programmiermodus zu versetzen.

Habt Ihr alles ordentlich verkabelt, ist es jetzt Zeit, den softwaretechnischen Teil anzugehen. Um den Chip programmieren zu können, benötigt Ihr Python auf Eurem Rechenknecht, das esptool und natürlich die Binärdatei von Tasmota. Auf Github gibt es die Quellcodes (falls Ihr das selbst kompilieren und anpassen möchtet…) und fertige Binärdateien. Letztere erleichtern die Arbeit enorm. Für meine Zwecke habe ich tasmota-DE.bin verwendet.
Habt ihr das ESPtool heruntergeladen, entpackt es in ein Verzeichnis eurer Wahl und kopiert die Tasmota-Binaries in das gleiche Verzeichnis.

Eure Verkabelung sollte jetzt etwa so wie auf dem Bild links aussehen. Auf der linken Seite des Chips ist der zweite (RXD), dritte (TXD) und neunte (GND) Pin belegt. RXD vom Chip kommt am seriell-USB-Konverter an TXD, TXD vom Chip an RXD vom Konverter.

Auf der rechten Seite sind die obersten zwei Pins (GND und IO0) gebrückt, der unterste Pin wird mit 3,3V vom Konverter verbunden.

Bevor es nun an’s Flashen geht, prüft die Verkabelung zur Sicherheit nochmal! Einmal GND und 3,3V vertauscht und euer Chip raucht ab. Das muss man nicht haben!

Öffnet nun am PC ein Terminal und wechselt in das Verzeichnis, in das ihr das ESPtool entpackt habt. Verbindet nun den USB-Seriell-Konverter mit dem PC. Wenn ihr es sinnvoll findet, könnt ihr nun zunächst das originale Programm des Chips auslesen und sichern. Ich persönlich verzichte darauf. Wozu sollte ich das noch brauchen können? Nach dem Öffnen und herumlöten ist die Garantie eh futsch und das Ziel ist es ja, eine neue Software zu verwenden. Also wer mag, tippt folgendes ab:

Nach dem das geklärt ist, wird es Zeit, den Chip platt zu machen, sprich die vorhandene Firmware zu löschen:

Ohne neue Software hättet ihr an dieser Stelle nun nur noch Elektronikschrott. Deshalb starten wir jetzt den Upload der neuen Firmware:

Ist alles ohne Fehlermeldung durchgelaufen, könnt ihr wieder zum Lötkolben greifen und die Programmierverkabelung zurückbauen. Sie wird nicht mehr benötigt und künftige Softwareupdates werden OTA (“over the air”) per WLAN überspielt. Schraubt die Dose wieder zusammen, kontrolliert nochmal alles auf mögliche Beschädigungen am Gehäuse und verbindet die Dose dann mit dem Stromnetz. Nach kurzer Zeit sollte die rote LED (Power) etwa im Sekundentakt blinken.

Die Dose hat jetzt einen eigenen WLAN-Hotspot gestartet. Verbindet euren PC oder ein Smartphone mit dem Hotspot. Der Name des Netzes beginnt mit “sonoff-XXXX” wobei “XXXX” für eine beliebige Zahlenkombination steht. Diesen Namen solltet ihr euch notieren. Ruft nun mit einem Webbrowser die IP-Adresse 192.168.4.1 auf. Auf dieser Seite könnt ihr die Zugangsdaten eures WLAN eintragen. Nach dem Speichern und dem darauffolgenden Reboot loggt sich die Dose in euer WLAN ein. Die weitere Konfiguration geschieht wieder per Browser. Ruft dazu die Seite http://sonoff-XXXX auf. (Ihr erinnert euch: das solltet ihr euch vorhin notiert haben… ;-))

Die nächsten Schritte und die wichtigsten Einstellungen stelle ich euch dann in den nächsten Tagen hier vor.

Kommentieren ist momentan nicht möglich.