NEWS
Verbindung Tasmota (Sonoff) zu Node-Red
-
Gut ich will mich nicht einmischen, wenn ihr nicht wollt. Ich schau mir mal die Node an.
- Was ist denn das für eine Node, die Du installiert hast, (kannst Du mal einen Link schicken ?)
- Welchen mqtt Broker nutzt Du?
- Welche Reihenfolge ist Dir lieber, lieber %prefix%%topic%, so ist es standardmässig und bei auch bei @Ralla66
oder lieber %topic%%prefix%, so wie ich das auch lieber habe.
Da sind halt erst mal ein paar Fragen, die man vorab klären muss.
Wie gesagt ich nutze mosquitto als mqtt Broker und steuere auch alles über NodeRed. Ich habe halt ein paar Fehler entdeckt bei Dir und deshalb die Fragen.
Das ist halt bei Dir verkehrt:
das muss identisch sein!!!
Der Switch ist falsch:
Wie gesagt ich helfe Dir ja gerne - aber da müssen wir halt erst mal wissen, was Du alles gemacht hast.
Das wichtigste ist, wer oder was sind diese Nodes und was ist Dein mqtt-Broker.
Grundsätzlich kannst Du dir beim topic auch eine Struktur aufbauen und Zum Beispiel auch eine Hierarchie aufbauen, indem Du noch Örtlichkeit oder Gerätetypen in das topic aufnimmst.
Ich habe das topic nur steckdosenleiste genannt
Ich hätte es aber auch Kueche/Steckdosenleiste oder Schalter/Steckdosen nennen können, um eine Hierarchie zu erzeugen.
Das topic im Nachrichtenobjekt von NodeRed hat nichts mit dem topic von Tasmota zu tun. Also wenn man Dir helfen soll, müsstest Du halt mal die paar Fragen beantworten.
-
Na gut - er scheint nun offline gegangen zu sein. Tut mir leid, dass ich mich eingemischt habe. Dann macht ihr das besser lieber unter Euch aus. Ich halte mcih wohl doch besser aus dem Thread raus.
Nachtrag:
OK ich habe gesehen, es wurde wohl diese 7 Jahre alte Node installiert:
https://flows.nodered.org/node/node-red-contrib-sonoff-tasmotaund man kann dort wohl doch booleans (true/false) schicken - insofern waren meine Anmerkungen falsch. Allerdings sollte man es als payload und nicht als msg.tas-1
Inzwischen gibt es schon neue Nodes (https://flows.nodered.org/node/node-red-contrib-tasmota oder https://flows.nodered.org/node/node-red-contrib-tasmotas) aber ich würde es lieber komplett ohne machen.
Mit den mqtt-Nodes, die NodeRed standardmässig an Board hat, kann man alles machen.
Aber wie gesagt, ich halte mich jetzt auch gerne wieder raus.
-
@mickym
Du sollst Dich aber einmischen, es würde mir helfen. Ich bin nicht offline, bin noch am schreiben und muss zwischendurch
auch der Frau helfen...Ich habe einen nackten Rasperry-Pi4 genommen, wollte halt die anderen nicht gefährden (großes DMS, riesige Gallery, Raid mit 7TB).
Darauf nach einem eBook (RNTlab, Smart_Home_Raspberry_Pi_ESP32_ESP8266_V_1_1) Node-Red installiert. Der Pi hängt im Netz unter 192.168.178.95.
Im Netz laufen einige D1mini für Temperaturmessung mit Fühler, mit Infrarot, Kameras, Relaissteuerung.
Im Node-Red habe ich die Node "node-red-contrib-sonoff-tasmota" installiert.
Gesteuert werden soll nur Power on/off von einem Sonoff S26, den ich mit der neuesten Tasmota-Software von Github geflashed habe.
Der S26 ist im Netz mit fester IP unter 192.168.178.120 erreichbar. Über den Browser komme ich an ihn ran, kann ihn konfigurieren, on/off steuern.
Ziel ist ein Mini-Flow, der den S26 schaltet. Weiterre könnten folgen, falls das mal irgendwann klappt.
-
@hajo-0 Ok. Das mit der Node habe ich kapiert. Wie gesagt, die ist schon 7 Jahre alt und ich würde es lieber ohne machen. Welchen mqtt-Broker hast Du installiert? Mosquitto? Und hast Du irgendwein mqtt Browser zur Verfügung. Ich gehe mal nicht davon aus, dass Du den iobroker Adapter installiert hast.
Ach und eine kleine Nachricht, wenn Du afk gehst, wäre trotzdem hilfreich, dann weiß man, dass man in nächster Zeit nicht auf eine Antwort warten braucht.
-
@mickym Mosquitto ja. mqtt Browser nein. Und jetzt muss ich weitermachen. Habe Auftrag, das ganze Haus zu saugen, Küche usw. wischen... Und das ständige "herumhängen vor dem Rechner nervt" sie.
Melde mich später wieder. -
@hajo-0 sagte in Verbindung Tasmota (Sonoff) zu Node-Red:
@mickym Mosquitto ja. mqtt Browser nein. Und jetzt muss ich weitermachen. Habe Auftrag, das ganze Haus zu saugen, Küche usw. wischen... Und das ständige "herumhängen vor dem Rechner nervt" sie.
Melde mich später wieder.Gut (wie gesagt die tasmota Node würde ich dann später wieder rauslöschen - und wir machen das ohne - aber das kannst ja ggf. später machen. )
Wenn Du eine mqtt-In Node in Deinen Editor ziehst, dann sollte es ja so aussehen:
Wenn Du die dann aufmachst, sollte die Node so aussehen:
Bei Server klickst Du auf den Bleistift und verbindest Dich mit Deinem mosquitto, in dem Du localhost bzw. IP Adresse eingibst und ggf. Benutzername und Passwort.
Wenn du alles richtig konfiguriert hast, dann abonnierst Du erst mal alles in dem Du als topic ein "#" einträgst.
Dann machst Du eine Debug Node hinten dran:
Und im Debug-Fenster siehst Du dann alle mqtt Nachrichten, die Dein mosquitto Broker empfängt, durchlaufen.
Wenn Du über den Browser über die Geräteseite schaltest, dann solltest Du ja so ähnliche Nachrichten bekommen.
Zusätzlich dürften so im 5 Minuten- Rhythmus noch tele Nachrichten auftauchen mit den Tasmota den Status des Gerätes übermittelt
In der Regel sendet Tasmota immer alle 5 Minuten den Status des Gerätes ( also ..../tele/STATE) und den Status der Sensoren ( also .../tele/SENSOR).
Wenn Du die Objekte des STATE aufmachst, dann siehst Du was gemeldet wird:
Im Hauptobjekt siehst Du die Uhrzeit mit der dein Gerät läuft, standard ist natürlich die lokale Zeit (mit SZ):
Das erkennst Du an der Diskrepanz zwischen der Uhrzeit, wann die Nachricht erstellt wurde und der Nachricht des Gerätes:
Ansonsten siehst da noch Uptime und das WIFI Objekt mit Signalstärke etc.
Im Prinzip siehst Du die Nachrichten auch im Konsolenfenster dieser Geräte:
Die Uhrzeit kannst am Besten über ein Backlog Kommando über diesen Helfer richtig einstellen: https://tasmota-tz.cloudfree.io/
Ist die Uhrzeit korrekt eingestellt, ist das Datum der Uhrzeit mit dem in dem Objekt identisch:
Im .../stat/Status7 - kannst Du dann übrigens sehen, ob die Zeitzone etc richtig konfiguriert ist:
Die UTC Zeit ist also korrekt 2 Std. hinterher. Erst Timezone +1 und dann Sommerzeit.In dem Sensorobjekt bekommst dann ggf. weitere Daten, falls die Hardware einen Sensor hat.
Hier mal als Beispiel wieder meine Beleuchtung mit dem SonoffIn der tele/SENSOR Nachricht gibt es dann ein ENERGY Objekt, dass die Daten zum Stromverbrauch zum Beispiel enthält.
Wie gesagt, wenn Du dann soweit mal bist, dann überlegen wir uns, welche Struktur Du in Deinem mqtt den haben willst.
-
@mickym Ok, danke für die Super Anleitung. Die Spezialitäten mit Uhrzeit und Sensoren hebe ich mir für später auf...
Im Debug-Fenster kommt bei Betätigung des Switches
-
Ich habe eben mal einen zweiten Schalter ausprobiert. Läuft mit einem D1mini mit Relay-Shield und schaltet die 5V Versorgung für einen nachfolgenden D1mini, der eine 2m Lichtleiste mit vielen Programmen steuert. Als Topic steht nur "led" im Sketch und im Flow.
-
@hajo-0 OK - dann könnten wir jetzt schon direkt schalten, aber die Frage ist, ob Du Dir eine eigene Struktur bauen willst und/oder ob Du die Präfixe nicht unter die Geräte haben wills.
Damit Du testen kannst wie das Schalten geht nimmst Du Deinen Dashboard switch oder ziehst einen neuen raus und konfigurierst den nun mit ON und OFF und nicht mit true und false und lässt die paylaod:
Das topic kannst Du auch direkt im Schalter setzen, dann kannst Du mehrere Schalter in EINE mqtt-Node speisen.
Den Haken nimmst Du raus, damit Du Dir nicht so schnell eine Endlosschleife einfängst:Das leitest Du in eine mqtt-Out Node, wobei Du das topic frei lässt und nur Dein mosquitto Server angibst.
So und wenn Du siehst dass dieser Schalter funktioniert, dann machen wir das Ganze in Schön.
-
@mickym Ok. Done.
-
@hajo-0 Na funktioniert es?
-
@mickym nö
-
@hajo-0 Was mich wundert ist - das tas-1. Was Du da eingetragen hast. Zeig mal den DEBUG Fenster kommen denn da Deine tele Nachrichten an und dann zeig Deinen Flow als Screenshot.
Am Besten ist du exportierst den neuen Flow (also nicht das mit den tasmota Nodes) und stellst es hier in CodeTags ein, damit ich das sehen kann und bei mir importieren kann.
Und am Besten Du deaktivierst die tasmota Node in Deinem Flow.
-
@hajo-0 sagte in Verbindung Tasmota (Sonoff) zu Node-Red:
@mickym Ok. Done.
Ausserdem müssten da viel mehr Nachrichten kommen.
-
@mickym tas-1 bzw. tas_1 ist längst raus, die Tasmota Node ist gelöscht. Die Tele-Nachrichten von allen (derzeit inaktiven) Sensoren kommen imm Debug.
[ { "id": "d716387c8b97f48a", "type": "tab", "label": "Flow 8", "disabled": false, "info": "", "env": [] }, { "id": "2d64dd1ca2851019", "type": "ui_switch", "z": "d716387c8b97f48a", "name": "", "label": "LED-Leiste Küche", "tooltip": "schaltet D1 für LED Küche", "group": "2f506714b6b1813c", "order": 1, "width": 0, "height": 0, "passthru": true, "decouple": "false", "topic": "topic", "topicType": "msg", "style": "", "onvalue": "true", "onvalueType": "bool", "onicon": "", "oncolor": "", "offvalue": "false", "offvalueType": "bool", "officon": "", "offcolor": "", "animate": false, "className": "", "x": 190, "y": 240, "wires": [ [ "df854b72ae7c9326" ] ] }, { "id": "df854b72ae7c9326", "type": "mqtt out", "z": "d716387c8b97f48a", "name": "", "topic": "led", "qos": "2", "retain": "true", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "9f9e276987b2fb1f", "x": 350, "y": 240, "wires": [] }, { "id": "a2e6c2892447438e", "type": "comment", "z": "d716387c8b97f48a", "name": "Schaltet den D1 für die Lichtleiste Küche", "info": "", "x": 260, "y": 200, "wires": [] }, { "id": "c885d57548110d73", "type": "ui_switch", "z": "d716387c8b97f48a", "name": "", "label": "Tasmota-Steckdose 1", "tooltip": "", "group": "2f506714b6b1813c", "order": 1, "width": 0, "height": 0, "passthru": false, "decouple": "false", "topic": "tasmota_340796/cmnd/power", "topicType": "str", "style": "", "onvalue": "ON", "onvalueType": "str", "onicon": "", "oncolor": "", "offvalue": "OFF", "offvalueType": "str", "officon": "", "offcolor": "", "animate": false, "className": "", "x": 200, "y": 360, "wires": [ [ "4a3acd4df8a7a2bd" ] ] }, { "id": "8de87098084c846c", "type": "mqtt in", "z": "d716387c8b97f48a", "name": "", "topic": "#", "qos": "2", "datatype": "auto-detect", "broker": "9f9e276987b2fb1f", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 500, "wires": [ [ "fa8f7b3635f4467a" ] ] }, { "id": "fa8f7b3635f4467a", "type": "debug", "z": "d716387c8b97f48a", "name": "debug 1", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 340, "y": 500, "wires": [] }, { "id": "4a3acd4df8a7a2bd", "type": "mqtt out", "z": "d716387c8b97f48a", "name": "", "topic": "", "qos": "", "retain": "", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "9f9e276987b2fb1f", "x": 390, "y": 360, "wires": [] }, { "id": "2f506714b6b1813c", "type": "ui_group", "name": "Schalter", "tab": "17fecb8389f359f0", "order": 1, "disp": true, "width": "6", "collapse": false, "className": "" }, { "id": "9f9e276987b2fb1f", "type": "mqtt-broker", "name": "", "broker": "192.168.178.95", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" }, { "id": "17fecb8389f359f0", "type": "ui_tab", "name": "Schalter", "icon": "dashboard", "order": 8, "disabled": false, "hidden": false } ]
-
OK - mal schauen. Warum das nicht geht ist mir im Moment schleierhaft.
Zeig nochmal alle Nachrichten aus dem Debugfenster. Und nicht nur die 2 - wenn Du über das Webinterface schaltest
-
20.7.2024, 15:20:28node: debug 1esp/Badewanne/Temperatur : msg.payload : number 23.88 20.7.2024, 15:20:28node: debug 1esp/bme280/temperature : msg.payload : number 23.93 20.7.2024, 15:20:28node: debug 1esp/bme280/humidity : msg.payload : number 41.69 20.7.2024, 15:20:28node: debug 1esp/bme280/pressure : msg.payload : number 987.6 20.7.2024, 15:20:28node: debug 1esp/dht22/temperature : msg.payload : number 20.9 20.7.2024, 15:20:28node: debug 1esp/dht22/humidity : msg.payload : number 55.7 20.7.2024, 15:20:28node: debug 1esp/dht22/heatindex : msg.payload : number 20.5 20.7.2024, 15:20:28node: debug 1abstand/abstand : msg.payload : number 45.32 20.7.2024, 15:20:28node: debug 1temperatur/infrarot : msg.payload : number 23.33 20.7.2024, 15:20:28node: debug 1counter : msg.payload : number 8 20.7.2024, 15:20:28node: debug 1esp/bme280/temperature : msg.payload : number 23.93 20.7.2024, 15:20:28node: debug 1esp/bme280/humidity : msg.payload : number 41.69 20.7.2024, 15:20:28node: debug 1 esp/bme280/pressure : msg.payload : number 987.6 20.7.2024, 15:20:28node: debug 1esp/ds18b20/temperature : msg.payload : number 21.25 20.7.2024, 15:20:28node: debug 1esp/dht22/temperature : msg.payload : number 20.9 20.7.2024, 15:20:28node: debug 1esp/dht22/humidity : msg.payload : number 55.7 20.7.2024, 15:20:28node: debug 1esp/dht22/heatindex : msg.payload : number 20.5 20.7.2024, 15:20:28node: debug 1esp/dht22/date : msg.payload : number 21.87 20.7.2024, 15:20:28node: debug 1esp/hcsr04/abstand : msg.payload : number 0 20.7.2024, 15:20:29node: debug 1esp/Badewanne/Temperatur : msg.payload : number 23.88 20.7.2024, 15:20:29node: debug 1esp/Badewanne/Abstand : msg.payload : number 0 20.7.2024, 15:20:29node: debug 1esp/distance : msg.payload : number 19.21 20.7.2024, 15:20:29node: debug 1esp/abstand : msg.payload : number 19.3 20.7.2024, 15:20:29node: debug 1abstand/abstand : msg.payload : number 45.32 20.7.2024, 15:20:29node: debug 1temperatur/infrarot : msg.payload : number 23.33 20.7.2024, 15:20:29node: debug 1temperatur/raum : msg.payload : number 1037.55 20.7.2024, 15:20:29node: debug 1test : msg.payload : string[6] "test 3" 20.7.2024, 15:20:29node: debug 1led : msg.payload : boolean false 20.7.2024, 15:28:00node: debug 1tasmota_340796/cmnd/power : msg.payload : string[2] "ON" 20.7.2024, 15:28:01node: debug 1tasmota_340796/cmnd/power : msg.payload : string[3] "OFF" 20.7.2024, 15:33:44node: debug 1esp/Badewanne/Temperatur : msg.payload : number 23.88 20.7.2024, 15:33:44node: debug 1esp/bme280/temperature : msg.payload : number 23.93 20.7.2024, 15:33:44node: debug 1esp/bme280/humidity : msg.payload : number 41.69 20.7.2024, 15:33:44node: debug 1esp/bme280/pressure : msg.payload : number 987.6 20.7.2024, 15:33:44node: debug 1esp/dht22/temperature : msg.payload : number 20.9 20.7.2024, 15:33:44node: debug 1esp/dht22/humidity : msg.payload : number 55.7 20.7.2024, 15:33:44node: debug 1esp/dht22/heatindex : msg.payload : number 20.5 20.7.2024, 15:33:44node: debug 1abstand/abstand : msg.payload : number 45.32 20.7.2024, 15:33:44node: debug 1temperatur/infrarot : msg.payload : number 23.33 20.7.2024, 15:33:44node: debug 1counter : msg.payload : number 8 20.7.2024, 15:33:44node: debug 1esp/bme280/temperature : msg.payload : number 23.93 20.7.2024, 15:33:44node: debug 1esp/bme280/humidity : msg.payload : number 41.69 20.7.2024, 15:33:44node: debug 1esp/bme280/pressure : msg.payload : number 987.6 20.7.2024, 15:33:44node: debug 1esp/ds18b20/temperature : msg.payload : number 21.25 20.7.2024, 15:33:44node: debug 1esp/dht22/temperature : msg.payload : number 20.9 20.7.2024, 15:33:44node: debug 1esp/dht22/humidity : msg.payload : number 55.7 20.7.2024, 15:33:44node: debug 1esp/dht22/heatindex : msg.payload : number 20.5 20.7.2024, 15:33:45node: debug 1esp/dht22/date : msg.payload : number 21.87 20.7.2024, 15:33:45node: debug 1esp/hcsr04/abstand : msg.payload : number 0 20.7.2024, 15:33:45node: debug 1esp/Badewanne/Temperatur : msg.payload : number 23.88 20.7.2024, 15:33:45node: debug 1esp/Badewanne/Abstand : msg.payload : number 0 20.7.2024, 15:33:45node: debug 1esp/distance : msg.payload : number 19.21 20.7.2024, 15:33:45node: debug 1esp/abstand : msg.payload : number 19.3 20.7.2024, 15:33:45node: debug 1abstand/abstand : msg.payload : number 45.32 20.7.2024, 15:33:45node: debug 1temperatur/infrarot : msg.payload : number 23.33 20.7.2024, 15:33:45node: debug 1temperatur/raum : msg.payload : number 1037.55 20.7.2024, 15:33:45node: debug 1test : msg.payload : string[6] "test 3" 20.7.2024, 15:33:45node: debug 1led : msg.payload : boolean false 20.7.2024, 15:33:57node: debug 1tasmota_340796/cmnd/power : msg.payload : string[2] "ON" 20.7.2024, 15:33:59node: debug 1tasmota_340796/cmnd/power : msg.payload : string[3] "OFF"
-
@hajo-0 sagte in Verbindung Tasmota (Sonoff) zu Node-Red:
tasmota_340796/cmnd/power
OK - wenn Du das nochmal überprüfst, dann sollte wenn Du das wegschickst, genau das gleiche über Deine mqtt-In Node wieder rein kommen, wie es auch beim manuellen Schalten kommt.
Schau auch mal in die Konsole, ob da was ankommt, wenn Du über das Dashboard schaltest.
-
@mickym Konsole war ein guter Tip. Das Problem liegt offenbar woanders:
14:52:05.460 MQT: Verbindungsversuch… 14:52:05.641 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.95:1883, rc 5. Wiederversuch in 10 s 14:52:07.296 QPC: Reset 14:52:16.807 MQT: Verbindungsversuch… 14:52:16.878 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.95:1883, rc 5. Wiederversuch in 20 s 14:52:37.788 MQT: Verbindungsversuch… 14:52:37.859 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.95:1883, rc 5. Wiederversuch in 30 s
-
@hajo-0 Hast Du denn die mqtt Konfigurationsnode richtige gesetzt. Mit UserID, Passwort, mqtt Protokoll 3.1.1. ? rc 5 bedeuted sonst meist Zugriff verweigert.
Wenns gar nicht geht - du solltest halt auch keine Retain Nachrichten am Anfang schicken, dann stop mosquitto und fang nochmal mit einer jungfräulichen Datenbank an.