Füllen des Data-Feldes der HA-action-Node mit variablen Werten

Moin,

ich habe eine Anwendung für meine openCCU-Rollladensteuerung, in der ich je nach Uhrzeit und/oder Sonnenstand meine Rollläden in unterschiedliche Positionen fahre. Wenn ich die Beschreibung der action-Node (Input – Merging – (If the incoming message has a payload.data that is an object these properties will be merged with any config values set.) richtig verstehe, muss ich dafür nur ein payload.data mit dem Wert dafür senden.

Alle meine Versuche JSON-Obj (1. Wahl, da NodeRed JSON verwendet), JSONata oder String enden mit dieser Fehlermeldung:

Hier will ich den Wert eintragen:

Eine HA-Automation stellt den Rollladen auf den gewünschten Wert.

So sieht ein Ausschnitt aus meiner NodeRed-Anwendung aus. “Roll U” ist ein HmiP-BROLL
image

Vor der action-Node ist z.Z. ein inject mit den Versuchen.

Wo habe ich meinen Denkfehler?

LG UlPe

Bin gerade unterwegs und poste vom Handy, ich mache das so:

Darüber fährt der Rollladen auf 60%-Öffnung,
d.h. Du musst davor in einer function-node einen payload erzeugen und oben anstatt 60 eben den payload einsetzen:

{"position":msg.payload}

Vielen Dank, leider nur halb! Wenn ich den Wert so wie in Deinem Bild eintrage, dann fährt der Rollladen. Versuche, msg.payload anstelle des Wertes einzugeben, enden leider immer mit einer Fehlermeldung. Ich vermute, dass das an der Formatierung liegt. Aus anderen NodeRed-Dashboards weiß ich, dass man < > und {{ }} verwenden muss. Ich habe auch schon einiges probiert, bin aber noch nicht weiter gekommen.

LG UlPe

Was zeigt denn eine debug-node vor der action-node und was sagt die debug-node hinter der action-node?

Evtl. muss es auch

{"position":message.payload}

sein.

Leider auch nicht! Die Debug-Node nach der action-Node erzählt mir nichts, solange Fehler bei der Ausführung vorhanden sind. Und die davor zeigt nur den payload.

Aktiviere in der action-node mal das hier:

Beim Versuch mit payload kommt Fehlermeldung und nichts.

Beim Versuch mit der Direkteingabe gibt es ein Ergebnis:

Habe gerade etwas rumprobiert, so geht es:

{"position":"{{payload}}"}

Es haben “nur” zwei Klammern gefehlt.

“That was it” - wie der Lateiner sagt, wenn er Englisch spricht. Ich hatte mich auch daran versucht, die zusätzlichen Klammer aber um payload gesetzt.

LG UlPe

PS Ich versuche jetzt mal, die inject-Node durch meine Anwendung zu ersetzen und dann: Schaun meer mal, was morgige Tag bringt.