Community

10€ WiFi-Steckdosen oder Shelly Wifi-Relais in homee – NodeRed Projekt [UPDATE]

Günstige WLAN-Steckdosen /Plugs in homee einzubinden ist seit jeher immer mal wieder Thema. Im Bereich der anderen Funkstandards gibt es nicht immer gute Alternativen:

  • Zigbee: Funk ist mir zu störanfällig, die Osram Plugs sind günstig, aber sch****.

  • Zwave: Da gibt es einige Möglichkeiten, allen voran Fibaro. Gerade günstig sind die nicht und mit der Zwave Zuverlässigkeit hapert es insbesondere in Gruppenschaltungen.

  • Enocean: Nach dem Rückzug von Permundo ist die Auswahl doch sehr begrenzt und teuer ist Enocean sowieso immer.

Also was tun?

WLAN-Steckdosen gibt es wie Sand am Meer, man braucht nur mal bei Amazon zu suchen. Von Design und Größe her, gibt es auch ansehnliche und kompakte Plug. Der Preis um 10 € ist top.

3600 W

https://amzn.to/2WFBCdm

oder

2300 W, baugleich mit Fibaro Wall Plug

https://amzn.to/2MWEONk

Nach etwas Recherche, habe ich herausgefunden, dass viele dieser Firmen, die WLAN-Plugs anbieten (Gosund, BlitzWolf, Teckin, Meross, Homecube, usw.) die tuya Api verwenden.

Tollerweise gibt es in NodeRed einen node, der diese Api unterstüzt.

Es wird auch genau beschrieben, wie man DeviceID und DeviceKey auslesen kann (diese braucht man zur Ansteuerung).

Hat man schon einen Raspberry Pi mit NodeRed laufen, ist die ganze Sache relativ simple. Man benötigt für das unten genannte Vorgehen:

    • node-red-contrib-tuya-smart -> Einbindung der WLAN-Plugs in NodeRed
    • node-red-contrib-enocean -> virtuelle Enocean-Geräte in home (Danke an @micha und Holger-Will)
    • Enocean-Stick am Pi

A.) Erstellung virtueller Enocean-Geräte in homee:

Diese werden auf Basis von Nodon 1Relais (Enocean) erzeugt, die nur die Funktion on/off haben.

B.) Kopplung dieser Geräte mittel des enocean-js node mit den Wifi Plugs.

Der Flow sieht dann so aus… Rückkanal zur Übermittlung des Status bei manuellem Schalten ist implementiert.

Hier der Flow in der Library:
https://flows.nodered.org/flow/82d3280f35592ff1a87c28fedd4bfaaf




Die Wifi-Plug mit tuya api arbeiten cloudbasiert…
Das bringt leider folgende Probleme mit sich:

  1. Will man tatsächlich Geräte mit Servern in China gekoppelt wissen?
  2. Wenn keine Internetverbindung da ist, könnten die Plugs nicht schalten, selbst bei funktionierendem WLAN.

Die Lösung des Problems: Entfernung des Cloudzwangs mittels Firmware-Austausch!

Das klingt kompliziert, ist aber eigentlich recht simpel. Man schafft es gut 5 Plugs in 15-20 min anzupassen. Stichwort ist hier: sonor-tasmota Firmware. Im Gegensatz zu den Sonoff-Geräten erfolgt das Ganze bei den Tuya-Geräten rein softwarebasiert ohne Änderungen an der Hardware (Löten).

Hier findet man eine tolle Anleitung:

Basis hierfür ist:


Voraussetzungen/ Praktisches Vorgehen:

Man braucht einen Raspberry Pi, der per Lan-Kabel angeschlossen ist. Die WLAN-Schnittstelle wird später für die Verbindung zum Plug gebraucht.
Am besten nimmt man eine leere SD-Karte und setzt ein Raspi-Image nur für diesen Zweck auf (Schutz der Produktiv-Installation mit NodeRed). Das wars dann schon… die einzelnen Schritte der obigen Anleitung ausführen und schon ist der Plug mit der sonoff-tasmota Firmware geflashed.
Auf dem Pi/ im Netzwerk muss noch ein MQTT-Server laufen.

Danach taucht der Plug als WLAN-Hotspot (sonoff-xxxx) in den Netzwerken auf. Einfach verbinden… es öffnet sich die Konfigurationsseite (192.168.4.1) des Plugs, um hier des Haus-WLAN einzutragen.

Danach ist der Plug im WLAN eingebunden. Über den Aufruf der IP-Adresse gelangt man zur Konfigurationsseite für alle Einstellungen:

Unter Konfiguration sind lediglich die beiden Punkte MQTT und Module wichtig. Im MQTT trägt man den eigenen Server ein und vergibt ein Topic. Im Modul muss noch der Steckdosen-Typ konfiguriert werden (siehe Liste hier: https://github.com/ct-Open-Source/tuya-convert/wiki/Compatible-devices).
In meinem Fall habe ich Teckin Plugs, die funktionieren mit dem Modul "Blitzwolf SHP (45).


Das wars dann schon. Der Plug ist einsatzbereit.

In NodeRed benutzt man den sonoff node (https://flows.nodered.org/node/node-red-contrib-sonoff-tasmota).

Dort wird lediglich der MQTT und das vergebene Topic eingetragen… Fertig!!!

Hier ein Beispielflow:

[{"id":"ba5041b3.4e2298","type":"enocean-in","z":"6599b5ef.5a30b4","serialport":"36056171.b343b6","name":"","x":110,"y":300,"wires":[["b68a9dc8.82fd3"]]},{"id":"b68a9dc8.82fd3","type":"enocean-actor","z":"6599b5ef.5a30b4","name":"Stehleuchte Wohnzimmer","channel":"29","adt":false,"x":330,"y":300,"wires":[["4c819774.1b64e","4a4ce5c.2bd301c"],[]]},{"id":"b7b6e466.19656","type":"inject","z":"6599b5ef.5a30b4","name":"LRN CH21","topic":"","payload":"{\"type\":\"LRN\",\"eep\":\"d2-01-0f\",\"senderId\":\"0186fbde\",\"name\":\"Zentrale\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":360,"wires":[["b68a9dc8.82fd3"]]},{"id":"4c819774.1b64e","type":"function","z":"6599b5ef.5a30b4","name":"","func":"if ( msg.meta.destinationId ===\"ff9ed495\"&& msg.meta.payload === \"010001\")\n{\nreturn {payload: true};\n}\nif ( msg.meta.destinationId ===\"ff9ed495\"&& msg.meta.payload === \"010000\")\n{\nreturn {payload: false};\n}","outputs":1,"noerr":0,"x":550,"y":300,"wires":[["f0a1e741.c6cb6"]]},{"id":"4a4ce5c.2bd301c","type":"function","z":"6599b5ef.5a30b4","name":"Status an/aus","func":"const Enocean = global.get('Enocean')\nvar channel = 21\n\nvar tel1 = Enocean.RadioERP1.from(\"550009070156d20460e4050f13a40101ffffffff50001f\")\nvar tel2 = Enocean.RadioERP1.from(\"550009070156d2046080050f13a40101ffffffff52006e\")\ntel1.senderId = global.get(\"enocean-base-id\") + channel\ntel2.senderId = global.get(\"enocean-base-id\") + channel\n\nif ( msg.meta.destinationId ===\"ff9ed495\"&& msg.meta.payload === \"010001\"){\nreturn {payload: tel1.toString()};\n}\nif ( msg.meta.destinationId ===\"ff9ed495\"&& msg.meta.payload === \"010000\"){\nreturn {payload: tel2.toString()};\n}\n","outputs":1,"noerr":0,"x":580,"y":260,"wires":[["f47a419f.ab76c8"]]},{"id":"f47a419f.ab76c8","type":"enocean-out","z":"6599b5ef.5a30b4","serialport":"36056171.b343b6","name":"","logOutput":false,"x":750,"y":260,"wires":[[]]},{"id":"f0a1e741.c6cb6","type":"Sonoff device","z":"6599b5ef.5a30b4","mode":"0","broker":"76a704cf.621b6c","device":"SLWZ","name":"","onValue":"ON","offValue":"OFF","cmdPrefix":"cmnd","statPrefix":"stat","telePrefix":"tele","x":750,"y":300,"wires":[[]]},{"id":"36056171.b343b6","type":"enocean-config-node","z":"","serialport":"/dev/ttyUSB0"},{"id":"76a704cf.621b6c","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.27","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""}]

Viel Spaß beim Basteln!!!

Fragen und Anmerkungen gerne im Thread oder im Slack Channel.

[UPDATE] 27.06.2019

Anstatt von Wifi-Plugs für die Steckdosen, funktioniert das obige Vorgehen auch mit Shelly Wifi-UP-Relais, die mit der Tasmota-Firmware geflashed wurden.

(entweder man macht es selber oder kauft sie fertig).
Mehr Infos und warum die Shellys sinnvoller sind als die sonoff findet ihr hier:

CREATIONX SMARTHome

Shelly 1 Open Source WiFi

Shelly 1 ist ein kleiner (41x36x17mm) WiFi-Switch basierend auf dem ESP8266-Chip der einfach hinter einer Steckdose oder einem Schalter…

Sonoff vs. Shelly

23 Like

Das hast du ja sehr schön gemacht.
Ich finde es auch sehr gut das du es hier so super informativ mit uns teilst.
Dicker :+1: hoch

VG Micha

4 Like

Gerne doch… du hast mich im Vorfeld ja auch oft genug unterstützt und mir geholfen, wenn ich nicht weiter gekommen bin.

Eigentlich dafür :+1:t2::+1:t2::+1:t2:

4 Like

Könnt ihr noch einen EnOcean Stick empfehlen? :wink:

1 Like

EnOcean USB300…

Z.B. Hier…
Gateway USB-Stick für Module EnOcean https://www.amazon.de/dp/B01DRO7AAI/ref=cm_sw_r_cp_api_i_jbQaDb46TGTWC

:wink::joy:

2 Like

Wenn es so einfach ist die API über WLAN auszulesen, frage ich mich als 0815 User doch, ob es nicht auch dem @homee Team möglich wäre so etwas zu integrieren oder vielleicht sogar eine einfache Möglichkeit zu bieten die Daten mit homee selbst auszulesen und zu integrieren.

1 Like

Ich glaube das fragen wir uns alle.
homee muss noch offener werden und User in die Entwicklung mit einbeziehen.
Dieses Thema hatten wir ja schon zu genüge.

VG Micha

10 Like

Das wird aber leider nicht passieren…das wissen wir such schon lange…:face_with_raised_eyebrow:

3 Like

Eine breitere und vor allem schnelle Geräte Integration. Jährliche Umsetzung der Top 5 Geräte und Feature Vorschläge und meine Kugel mutiert zum Dekor Gegenstand!

4 Like

Gute Idee ! :+1:

1 Like

Na das finde ich ein wenig lang. 5 Geräte in einem Jahr :thinking: , ich denke das sollte schneller gehen.
Das Grundgerüst der homee Software steht ja schließlich und Geräteattribute sind auch angelegt. Wir reden ja nicht davon das hier Hobbyprogrammierer am Werk sind sondern Vollzeit Fachkräfte.
VG

4 Like

Ich denke (oder eher hoffe) mal mit dem neuen Z-Wave-Stack kommt dann auch eine Schwemme an neu integrierten Geräten, so dass einige Geräte-Requests geschlossen werden können. Enocean und ZigBee stehen ja explizit auch auf der Roadmap. Wenn dann auch noch (nicht nur über Partnerschaften) einige IP-Geräte implementiert werden, dann sollte das Thema erledigt sein. ONVIF-Cams (und bereits integrierte Cams) im Dashboard würden das ganze noch abrunden. Realistisch gesehen würde ich all das aber nicht in 2019 erwarten (leider).

Ich fürchte du meinst 2020…

Sorry Michael … für OT

Ich erwarte auch den Zwave Stack nicht 2019 - lasse mich gerne aber eines belehren.

Habe auch diverse WLAN-Steckdosen von Teckin (SmartLife).

Braucht man für oben beschriebene Lösung zwingend nen Enocean-Stick oder würde das nicht auch via WeMo gehen?

Geht auch mit einem Wemo.

Hm… und wie wäre dann der Flow?

Kann mir da jmd. helfen?

Welchen Vorteil bringt der Enocean-Weg oben im Vergleich zu der WeMo-Variante?

[{"id":"b2596d7f.4c02","type":"wemo-emulator","z":"6599b5ef.5a30b4","name":"","friendlyName":"","serial":"","port":"","onTopic":"","onPayload":"","offTopic":"","offPayload":"","x":500,"y":1680,"wires":[["4c50b08b.8a8d5"]]},{"id":"94f17395.6e7118","type":"tuya-smart","z":"6599b5ef.5a30b4","deviceName":"Wifi_Plug","deviceIp":"XXX","deviceId":"XXX","deviceKey":"XXX","request":"{\"schema\": true}","pollingInterval":10,"x":860,"y":1680,"wires":[[]]},{"id":"4c50b08b.8a8d5","type":"function","z":"6599b5ef.5a30b4","name":"","func":"if ( msg.meta.payload === \"010001\")\n{ return {payload:{\n        set: true\n    }}}\nif ( msg.meta.payload === \"010000\")\n{ return {payload:{\n        set: false\n    }}}","outputs":1,"noerr":0,"x":690,"y":1680,"wires":[["94f17395.6e7118"]]},{"id":"3f2d1d7.3e87662","type":"change","z":"6599b5ef.5a30b4","name":"change payload","rules":[{"t":"move","p":"payload.data.dps.1","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":680,"y":1740,"wires":[["71285f10.82ca2"]]},{"id":"71285f10.82ca2","type":"function","z":"6599b5ef.5a30b4","name":"Prüfen des Zustandes","func":"var nodeid = 403;  // node ID in homee des virtuellen Schalters\nvar attributid = 1463; // attribut ID in homee des virtuellen Schalters\nif (msg.payload === false)\n{return {payload: \"PUT:/nodes/\"+nodeid+\"/attributes/\"+attributid+\"?target_value=0\"}}\nif (msg.payload === true)\n{return {payload: \"PUT:/nodes/\"+nodeid+\"/attributes/\"+attributid+\"?target_value=1\"}}\n","outputs":1,"noerr":0,"x":900,"y":1740,"wires":[["d78f8b1e.98fb3"]]},{"id":"d78f8b1e.98fb3","type":"link out","z":"6599b5ef.5a30b4","name":"","links":["1f6d5452.168fbc"],"x":1075,"y":1740,"wires":[]},{"id":"ed0b54c5.7fbf2","type":"tuya-smart","z":"6599b5ef.5a30b4","deviceName":"Wifi_Plug","deviceIp":"XXX","deviceId":"XXX","deviceKey":"XXX","request":"{\"schema\": true}","pollingInterval":10,"x":480,"y":1740,"wires":[["3f2d1d7.3e87662"]]}]

sowas in der Art… habe selbst keine Wemos… müsste nochmal die Schaltfunktion anpassen, wenn ich eine debug Ausgabe habe…

1 Like

Ok, danke. Werd mich mal dran versuchen.

Noch zur Info:

Die WLAN Steckdosen mit tuya api sind ja cloudbasiert…

Es gibt eine Möglichkeit den Cloudzwang loszuwerden, so dass die Geräte komplett lokal im WLAN laufen. Dazu tauscht man einfach die Original-Firmware aus. Stichwort ist hier sonoff-tasmota. Im Gegensatz zu den “hässlichen” Sonoff Plugs muss man hier aber keine Hardwareänderungen (Löten) vornehmen, sondern macht das bequem über den Raspi.

Tutorial folgt…

6 Like