c't 11/2018
S. 152
Praxis
Obi-ESP-Steckdose

Reloaded

WLAN-Steckdose aus dem Baumarkt mit alternativer Firmware „Tasmota“

Bisher kamen günstige Geräte mit ESP8266-Controller hauptsächlich vom Händler aus Asien. Jetzt hat der leicht umprogrammierbare WLAN-Chip seinen Weg in einen deutschen Baumarkt gefunden – praktisch für Smart-Home-Bastler.

Auf Hinweis eines Lesers haben wir uns in einen Obi-Baumarkt begeben, um eine ganz bestimmte WLAN-Schaltsteckdose zu suchen. Sie soll den beliebten Chip ESP8266 enthalten. Die Hersteller-Firmware bindet die Steckdose an die Cloud (siehe S. 48). Da man den Chip frei programmieren kann, lässt sie sich jedoch unkompliziert aus der Cloud entfernen.

Den weiß-grünen Karton übersieht man leicht: kein Markenname, keine kryptische Modellbezeichnung. Das Produkt heißt „Wifi-Steckdose“ und lediglich ein paar Symbole erklären den Zweck des Zwischensteckers.

Den Zugang zum Inneren sichern zwei Tri-Wing-Schrauben, Schlitz- oder Kreuzschlitzschraubendreher helfen nicht. Ein passendes Bit fanden wir ein paar Gänge weiter.

Basteleinladung

Die Hauptplatine beherbergt ein 16-Ampere-Relais sowie Wandlertechnik, damit das Relais und der ESP die passenden Spannungen erhalten. Der Mikroprozessor nennt sich OW8266-02Q, ist im Herzen aber auch nur ein ESP8266. Er sitzt auf einer eigenen Platine, die vertikal in der Hauptplatine steckt.

Die vergleichsweise großen Lötstellen an der ESP-Platine machen den Zugang zur seriellen Schnittstelle sehr einfach.

Die offenen Lötstellen auf der anderen Seite wirken wie eine Einladung, die Steckdose zu modifizieren. Sie sind groß und ihr Abstand zueinander weit genug, um selbst mit einem dicken Lötkolben keine Brücken zu bauen. Die Beschriftung verrät: Alle Anschlüsse, um die Firmware des Prozessors zu ändern, hat der Hersteller herausgeführt. Wir opferten fünf weibliche Jumper-Kabel und löteten sie an VCC (3,3 Volt), TXD, RXD, GPIO 0 und GND.

Zum Kasten: Warnung: Arbeiten an Netzgeräten

Die Open-Source-Firmware Tasmota „entclouded“ ESP-Produkte und besticht durch flexible Konfiguration, ohne dass man die Firmware dafür anpassen und neu kompilieren muss. Einen Link zu den Tasmota-Images finden Sie unter ct.de/y4pd.

Mit Hilfe des Esptools und eines USB-RS232-Adapters klappt die Tasmota-Installation auf der Obi-Steckdose. Den Flash-Modus startet man wie üblich über GPIO 0 – er muss mit einem zusätzlichen Kabel herausgeführt und vor dem Einstecken am USB-RS232-Adapter mit Masse (GND) verbunden werden.

Anschließend verbindet man den USB-RS232-Adapter mit dem Computer und löscht den Flash-Speicher des ESP:

esptool.py --port /dev/ttyUSB0:

. --baud 115200 erase_flash

und installiert danach Tasmota:

esptool.py --port /dev/ttyUSB0 :

.write_flash -fs 1MB -fm :

.dout 0x0 sonoff-DE.bin

Damit der ESP nicht erneut in den Flash-Modus bootet, trennt man den GPIO 0 von Masse und steckt den USB-RS232-Adapter kurz am Rechner aus.

Konfiguration

Nach dem Neustart startet GPIO 0 den Soft-Access-Point-Modus: Verbindet man ihn vier Mal kurz (< 1 Sekunde) mit Masse, öffnet Tasmota ein unverschlüsseltes WLAN mit der SSID „Sonoff[..]“. In dem Netz erreicht man unter http://192.168.4.1 das Web-Interface. In den Einstellungen im Unterpunkt „WLAN“ verbinden Sie die Steckdose mit Ihrem Heimnetz und vergeben einen Hostnamen. Der Klick auf „Speichern“ übernimmt die Einstellungen.

Nach dem Neustart prüft man entweder im Router-Web-Interface oder mit einem Netzwerkscanner wie Fing, welche IP-Adresse die Steckdose erhalten hat und ruft darüber das Web-Interface wieder auf.

Da Tasmota keine Vorlage für die Obi-Steckdose mitbringt, stellt man in den Einstellungen unter „Gerät konfigurieren“ als Gerätetyp „Generic“ ein und konfiguriert die GPIOs manuell: Button 1 liegt an GPIO 14 und LED 1 auf GPIO 4. Das Relais wird durch kurze Masse-Impulse gesteuert – an GPIO 12, um das Relais einzuschalten, an GPIO 5 um es auszuschalten. Da Tasmota dies nicht beherrscht, muss ein Workaround angewendet werden: GPIO 12 wird dauerhaft auf Masse gesetzt. Dazu konfiguriert man ihn als „LED 2“, die ohne Zutun dauerhaft aus ist. GPIO 5 wird als „Relay 1“ gesetzt. Legt man den Schalter im Webinterface um, wechselt GPIO 5 auf 1 und der Massezustand an GPIO 12 schaltet das Relais ein. Durch Ausschalten wechselt GPIO 5 wieder auf Masse und das Relais schaltet zurück.

Sensoren

Wer sowieso weibliche Jumper-Kabel angelötet hat, um den ESP zu flashen, kann diese anschließend weiterverwenden, um einen Sensor anzustecken. Das interne Netzteil liefert ausreichend Strom. Tasmota bringt Bibliotheken für viele Sensoren bereits mit.

Für einen Test verwendeten wir einen DHT22 (Luftfeuchtigkeit und Temperatur), löteten am Sensor den benötigten 10-kOhm-Widerstand zwischen Spannungseingang und Datenausgang und steckten ihn direkt an Vcc, TXD und GND. In den Geräteeinstellungen wählten wir anschließend nur noch die passende Bibliothek für den GPIO aus (AM2301). Nach einem Neustart erschienen die Sensordaten im Web-Interface. (amo@ct.de)