NEWS
MQTT out an node-red-contrib-dynamic-thermostat anpassen.
-
Hallo
Habe in Node_Red einen mqtt-out der von einem Tasmota Sonoff THR320D die Temp ausgibt.0:44:37.734 MQT: tele/tasmota_Elite/SENSOR = {"Time":"2023-01-23T20:44:37","SI7021":{"Temperature":25.6,"Humidity":35.0,"DewPoint":9.0},"TempUnit":"C"}
Ich brauche die Temperature davon die 25.6.
Habe diese mit einem Change Node so eingestellt das ich die 25.6 mit einem Debug Node in der Konsole angezeigt bekomme.23.1.2023, 20:51:37node: debug 38 tele/tasmota_Elite/SENSOR : msg.payload : number 25.6
Diese 25.6 sollen einem node-red-contrib-dynamic-thermostat an seinem target (Ist-Wert) Eingang gesendet werden.
In der Beschreibung des Nodes wird der target Input mit einen Inject Node angesteuert.
Ein Debug Node am Inject gibt diese Ausgabe.3.1.2023, 20:59:54node: debug 39 target : msg.payload : string[2] "15"
Der node-red-contrib-dynamic-thermostat
gibt im Debug Node das Aus.23.1.2023, 21:02:29node: 50 msg.payload : Object { onoff: null, switch: "auto", current: "21.00", target: "NaN", hysteresis: "0.30" }
target ist immer "NaN".
Ich bekomme es einfach nicht hin den target von MQTT so zu ändern wie es das Inject Node ausgiebt.
Kann jemand helfen , Vielen Dank im voraus.
NetFritz -
@netfritz sagte in MQTT out an node-red-contrib-dynamic-thermostat anpassen.:
node-red-contrib-dynamic-thermostat
Das Problem ist einfach, dass Du das topic nicht setzt. Nämlich target.
In Deiner Nachricht nach der payload:
23.1.2023, 20:51:37node: debug 38 tele/tasmota_Elite/SENSOR : msg.payload : number 25.6
ist Dein topic immer noch tele/tasmota_Elite/SENSOR und das topic target wird nicht gesetzt - deshalb steht da auch NaN.
Du musst also nur in Deiner Change Node noch das topic auf target setzen.
Ändere also Deine Change Node wie folgt:
-
Hallo
Meinst Du so.
Ich bekomme nach dem Change Node diese Debug Ausgabe:23.1.2023, 23:48:08node: debug 38 tele/tasmota_Elite/SENSOR : msg.payload : Object { target: 25.2 }
Die Inject Debug Ausgabe:
24.1.2023, 00:01:00node: debug 39 target : msg.payload : string[2] "15"
Die Debug Ausgabe vom node-red-contrib-dynamic-thermostat
Ändert sich aber nicht.23.1.2023, 23:52:13node: 50 msg.payload : Object { onoff: null, switch: "auto", current: "21.00", target: "NaN", hysteresis: "0.30" }
Der Unterschied zwischen der Inject Debug Ausgabe und
der Change Debug Ausgabe ist Object
das Inject Debug ein String und target steht vor
target : msg.payload : string[2]Ich komme nicht weiter.
Gruß NetFritz -
@netfritz Nein ich hab Dir doch die Change Node gepostet - Du must das topic auf target setzen!!!
In Deiner Inject Node ist doch auch das topic auf target gesetzt - siehst Du das nicht?
Diese thermostat Node gibt Dir als Objekt nur aus, was durch die topics gesetzt wurde.
-
@mickym
Vielen Dank für die Lösung.
Hatte es inzwischen mit einem Function Node hinbekommen.
Gruß NetFritz