NEWS
Wert von Payload wird nicht im Template Node angezeigt
-
@mickym Das wäre der Payload Inhalt vom Inject:
Damit lässt sich der Fehler gut nachstellen.{ "signal": "MESS_55_Aussentemp", "path": "DB727,REAL7138", "error": 0, "value": [ 13 ] }
-
@_r_a_l_f_ sagte in Wert von Payload wird nicht im Template Node angezeigt:
{ "signal": "MESS_55_Aussentemp", "path": "DB727,REAL7138", "error": 0, "value": [ 13 ] }
Probiers mal so:
-
@mickym Ok, vielen lieben Dank. Das muss erst mal einer wissen, dass es nicht payload.value[0] => So wie der Pfad im Debug von Node-Red heißt, sondern payload.value.0
-
@_r_a_l_f_ Manchmal muss man bissi rumprobieren.
Das Problem ist, dass das Debug Fenster meist den Code so ausgibt, wie es eine function Node mit Javascript funktioniert. Mit Angular Syntax in einer Template Node oder in JSONATA ist die Syntax leicht anders. In JSONATA sind eckige Klammern eben Filter.
-
@mickym Hallo,
es ist langsam zum verzweifeln, wie der Syntax aufgebaut werden muss, dass dieser angezeigt wird
Ich hab mich zwar gerade in die JSONATA Doku etwas eingelesen aber jeder Versuch, klappt nicht. (Sprich, vermutlich wirkt hier auch wieder der Filter durch die [] aber ich weiß nicht, wie ich diesen an der Stelle umgehe)
Kannst du mir bitte nochmal helfen, wie ich hier den Wert im Template Node angezeigt bekomme[ { "id": "d6d8bf5582849f8f", "type": "tab", "label": "Flow 2", "disabled": false, "info": "", "env": [] }, { "id": "d1b5a254af632319", "type": "inject", "z": "d6d8bf5582849f8f", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "E-mail_1_Trigger", "payload": "{\"E-mail_1_Trigger\":true,\"E-mail_1_Begleitwert\":40}", "payloadType": "json", "x": 190, "y": 120, "wires": [ [ "8325d8ef40db4abe", "c86735df2b7c23b7" ] ] }, { "id": "8325d8ef40db4abe", "type": "debug", "z": "d6d8bf5582849f8f", "name": "debug 4", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 360, "y": 120, "wires": [] }, { "id": "c86735df2b7c23b7", "type": "join", "z": "d6d8bf5582849f8f", "name": "E-mail_Join", "mode": "custom", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "", "count": "1", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 370, "y": 180, "wires": [ [ "45fca0b4485e4e59" ] ] }, { "id": "45fca0b4485e4e59", "type": "template", "z": "d6d8bf5582849f8f", "name": "E-mail Inhalt", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "<b>Klartextbeschreibung:</b><br>\nBitte reagieren auf ...<br><br>\n\n<b>Trigger:</b><br>\n{{payload[\"E-mail_1_Trigger\"]}}<br><br>\n\n<b>Begleitwert:</b><br>\n{{payload[\"E-mail_1_Begleitwert\"]}}<br><br>", "output": "str", "x": 550, "y": 180, "wires": [ [ "1b6c46e811564e65" ] ] }, { "id": "1b6c46e811564e65", "type": "debug", "z": "d6d8bf5582849f8f", "name": "debug 5", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 720, "y": 180, "wires": [] } ]
-
@_r_a_l_f_ Das Ei hast Du Dir mit der JOIN Node gesetzt, warum auch immer.
Wie gesagt der Path mit der Klammernotation ist nur für die function-Nodes geeignet - da dieser dort nicht als Filter interpretiert wird.
Die JOIN Node - macht Dir doch das Objekt selbst wieder zum Objekt
Falls das wirklich beabsichtigt war - dann musst Du das auch doppelt referenzieren.
Meines Erachtens ist die JOIN Node kompletter Unsinn.
-
@mickym Super, vielen vielen Dank für die schnelle Hilfe.
Dann habe ich an der Stelle die doppelte Referenzierung übersehen. Die JOIN Node ist deshalbdrin, weil ich über die Inject Node nur den Payload für den Upload hier im Forum herausgefiltert habe und die eigentlichen beiden Werte von zwei Nodes kommen welche über die JOIN Node zusammen geführt werden. Daher das JOIN Node.
Aber gut, das ich hier komplett auf die [ und " verzichten kann wusste ich nicht. Wo findet man sowas -
@mickym
Ist es eigentlich auch möglich den Name der Objekteigenschaft im Template Node anzuzeigen?
-
Also am Einfachsten ist es natürlich Du packst das vorher in eine eigene Nachrichteneigenschaft oder Du hast es noch in einem topic.
Ansonsten um Tabellen zu erzeugen musst Du halt Arrays machen - hier mal der Beitrag von Steve: https://stevesnoderedguide.com/node-red-template-node
Am einfachsten ist es dann halt ein Array mir Eigenschaft und Wertepaaren vorher zu bilden. Vielleicht gehts auch anders, aber ich kenn mich mit Angular nicht so gut aus.
Das Problem ist wie IMMER - wie ist die Ausgangslage und wie soll es aussehne.
-
@_r_a_l_f_ sagte in Wert von Payload wird nicht im Template Node angezeigt:
@mickym
Ist es eigentlich auch möglich den Name der Objekteigenschaft im Template Node anzuzeigen?
Du kannst Dir eine Tabelle zum Beispiel so ausgeben lassen:
-
@mickym Ok Dankeschön. Dann schaue ich mir das ganze in Ruhe an.
-
@_r_a_l_f_ Da ich hab mir das mal als Mail geschickt, Dein Objekt
Hier mal Deinen Flow erweitert:
Kernstück ist, dass ich aus DEINEM Objekt ein Array von Objekten mit definierten Eigenschaften gemacht habe, in dem ich jedes Objekt in die Eigenschaft und den Wert geteilt habe:
In der Template Node kannst Du dann im Array auf die Eigenschaften referenzieren (wie im Video von Steve):
-
@mickym Cool, vielen vielen Dank für die Mühe. Das sieht super aus.