fhem: Lampe (220V) mit sonoff über WiFi schalten

itead hat mit dem sonoff Modul einen sehr günstigen ESP-8266 basierten WLAN Stromschalter im Programm. Kostet derzeit bei itead unter 5$, allerdings mit ca. 8$ Versand. Wenn man aber gleich vier davon bestellt, lohnt sich das gegenüber anderen China-Versendern, die diese Modul für ca. 10$ verkaufen.

sonoff_wifi_wireless_smart_switch_4__1

Das Ding lässt sich wunderbar mit einer eigenen Firmware flashen, wenn man einen 4-Pin Header einlötet und einen USB-TTL Konverter mit 3.3V hat.

Image635909899921896626_thumb

Es gibt mittlerweile sogar sonoff Module mit der Möglichkeit Temperatur und Luftfeuchte zu messen, oder mit separater Stromversorgung. Diese kommen dann aber ohne Gehäuse. Dahingegen ist das sonoff Modul an sich mit einer galvanisch getrennten Stromversorgung, einer (angeblichen) Schaltleistung von 10A/220V~ und geschlossenenem, isolierten Gehäuse aber absolut einfach einzusetzen. Vielleicht kommt ja mal eine Version, die in eine normale Unterputz-Dose passt (52mm).

Die Original-Firmware kann man nur über eine, irgendwo gehostete, Cloud von einer closed-source Software benutzen. Das ist nicht so mein Ding, daher habe ich Sonoff-MQTT-OTA-Arduino-master draufgemacht.

sonoff-parts-without-433

Vor dem Kompilieren habe ich die sonoff.ino angepasst und die Daten für mein WLAN eingetragen. Wenn man das #define für PROJECT ändert, zB von “sonoff” in “sonoff1”, “sonoff2” usw., kann man mehrere sonoff wunderbar ansteuern. Es geht auch ohne diese Änderung, jedoch fällt die Software dann auf einen aus der MAC generierten Namen zurück.

Man kann sowohl seriel als auch über MQTT Parameter ändern. Aber während einer Verbindung mit einem FTDI Adapter unbedingt vom 220V Netz trennen! Die Schaltung wird dann über den VCC Anschluss mit Strom versorgt.

Obwohl MQTT für das einfache Schalten überdimensoniert erscheint, hat es hier jedoch den Vorteil, dass man eine Rückmeldung über den Schaltzustand erhält. Und das auch, wenn man den Taster am Modul selber benutzt. Also eine bi-direktionale Kommunikation.

Nach dem Flashen muß das Teil nur noch in FHEM bekannt gemacht werden, sofern ein MQTT Broker, wie z.B. Mosquitto, vorhanden ist. Meine fhem.cfg dazu:

define sonoff0 MQTT_DEVICE
attr sonoff0 IODev MyBroker
attr sonoff0 devStateIcon On:on:off Off:off:on
attr sonoff0 publishSet on off cmnd/sonoff/power
attr sonoff0 qos at-most-once
attr sonoff0 retain 1
attr sonoff0 room Licht,MQTT
attr sonoff0 subscribeReading_state stat/sonoff/POWER