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

9 Comments

  1. Thomas says:

    Hallo,
    prima Eintrag. Die Einbindung in Fhem hat mir noch gefehlt. Danke.

  2. Frank says:

    Interessantes Teil, hast du die Standby Leistungsaufnahme schon einmal gemessen?

  3. Niklas says:

    Hallo,

    ich versuche genau das gleiche umzusetzen wie du, allerdings verbindet sich bei mir das Sonoff nicht mit meinem MQTT Broker (Mosquitto). Kannst du mal mehr zu den Einstellungen bei MQTT verraten? Geht das auch ohne Username/Passwort?
    Danke.

    VG
    Niklas

  4. josef says:

    Hallo Frank

    nö, die Rugestrom-Aufnahme habe ich noch nicht gemessen.

    ~Josef

  5. josef says:

    Hallo Niklas

    ich verwende keine Passwörter und auch nicht die Gruppenfunktion.

    Bei Problemen mit MQTT solltest Du mal die Mosquitto Kommandzeilen Tools probieren. Mach dazu zwei Terminals auf (tolles deutsch :-)) ) und in einem gubst Du:
    mosquitto_sub -t stat/sonoff/#
    ein und in dem anderen kannst Du steuern, zum Beispiel:
    mosquitto_pub -t cmnd/sonoff/power -m on
    Vorrausgesetzt, Du hast den Standard Namen “sonoff” vor dem Kompilieren nicht geändert.
    Natürlich sollte Dein WLAN Zugriff für sonoff stimmen. Das Übliche prüfen: hat der sonoff eine DHCP Adresse bekommen?, kann man die anpingen?.
    Eventuell sonoff nur an FTDI Adapter hängen (KEIN 220V anschliessen) und dann über die serielle Verbindung die Ausgaben beobachten und evtl. Kommandos absetzen. Eventuell musst Du separat 3V3 zur Verfügung stellen, falls der FTDI nicht geug Strom liefert.

    ~Josef

  6. Andre says:

    Hallo
    Ich wollte die von die verlinkte software mal testen es erfolgt ein Abruch das ip adresse nicht deklariert wurde an was kann das liegen
    meinen mqtt server habe ich eingetragen auch mein wlan access point

  7. josef says:

    Hallo Andre

    ich habe den Artikel zur Zeit von Version 1.09 von sonoff-MQTT-OTA-arduino geschrieben, da gab es keinen Compiler Fehler.

    Am besten erstellst Du über https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/issues ein neues issue.

    Wenn Du komplette Beschreibung lieferst, welche Arduino IDE Du benutzt, wie Du den Code von sonoff-MQTT-OTA-arduino installiert hast und welche, exakte, Fehlermeldung Du bekommen hast, kann ich Dir vielleicht auch helfen.

    ~Josef

  8. JoShi says:

    Ich habe den Verbrauch nachgemessen. Dieser liegt im WLAN bei 0.4 W.

  9. Armin Reger says:

    Ich bin Anfänger daher meine Frage was muss ich in der sonoff.ino anpassen.
    Ich vermute die config_user.h aber die ist auch ganz schön gross.
    Erbitte Hilfreiche Hinweise.
    Gruß, Armin

Leave a Reply