NEWS
JSON String in Template Node richtig darstellen
-
Hallo zusammen,
ich bekomme vom Device Watcher Adapter im JSON Format die entsprechenden Devices, welche Battery Low haben.
Die zwei Werte (Gerätename + Batterie Stand) möchte ich nun in einem Template Node darstellen.
Allerdings zeigt er mir die Werte verständlicherweise (die beiden Werte gemäß der Filterung hintereinander) wie folgt an:
"Der Batteriezustand von Gerät1,Gerät2 (57%,50%) erreicht einen kritischen Wert!"Ich möchte es aber so dargestellt haben:
"Der Batteriezustand von Gerät1 (57%), Gerät2 (50%) erreicht einen kritischen Wert!"Da es hier bestimmt auch eine Lösung mit JSONata gibt aber ich da noch nicht so fit bin, weißt du @mickym vielleicht ja die Lösung?
Hier mein aktueller Flow:
SG
-
Hallo zusammen,
ich bekomme vom Device Watcher Adapter im JSON Format die entsprechenden Devices, welche Battery Low haben.
Die zwei Werte (Gerätename + Batterie Stand) möchte ich nun in einem Template Node darstellen.
Allerdings zeigt er mir die Werte verständlicherweise (die beiden Werte gemäß der Filterung hintereinander) wie folgt an:
"Der Batteriezustand von Gerät1,Gerät2 (57%,50%) erreicht einen kritischen Wert!"Ich möchte es aber so dargestellt haben:
"Der Batteriezustand von Gerät1 (57%), Gerät2 (50%) erreicht einen kritischen Wert!"Da es hier bestimmt auch eine Lösung mit JSONata gibt aber ich da noch nicht so fit bin, weißt du @mickym vielleicht ja die Lösung?
Hier mein aktueller Flow:
SG
@_r_a_l_f_ Wenn ihr Euch bitte angewöhnen könnt, Code auch in CodeTags zu setzen, dann kann man damit was anfangen. So aber nicht.

Dann bekommt man nur Mist - weil der Browser interpretiert und man muss sich alles manuell selektieren.
Das Ergebnis sieht dann so aus:
Ich geh aber mal davon aus, dass dieses Array als Daten eingebunden werden soll?
[{"Device":"Gerät1","Adapter":"Zigbee","Battery":"57%"},{"Device":"Gerät2","Adapter":"Zigbee","Battery":"50%"}]Tipp:
Am sichersten, dass es funktioniert ist, wenn man das was man im Thread veröffentlicht, auch mal versucht selbst zu importieren.

-
@_r_a_l_f_ Wenn ihr Euch bitte angewöhnen könnt, Code auch in CodeTags zu setzen, dann kann man damit was anfangen. So aber nicht.

Dann bekommt man nur Mist - weil der Browser interpretiert und man muss sich alles manuell selektieren.
Das Ergebnis sieht dann so aus:
Ich geh aber mal davon aus, dass dieses Array als Daten eingebunden werden soll?
[{"Device":"Gerät1","Adapter":"Zigbee","Battery":"57%"},{"Device":"Gerät2","Adapter":"Zigbee","Battery":"50%"}]Tipp:
Am sichersten, dass es funktioniert ist, wenn man das was man im Thread veröffentlicht, auch mal versucht selbst zu importieren.

@_r_a_l_f_ sagte in JSON String in Template Node richtig darstellen:
Da es hier bestimmt auch eine Lösung mit JSONata gibt
payload.{"Device" : Device & " (" & Battery & ")"}.Device~>$join(", ")Aber man braucht nicht unbedingt JSONATA
- das macht die Template Node aufgrund der mächtigen Angular Bibliothek von selbst. Allerdings muss man aufgrund des Satzbaus das Komma wieder manuell wegmachen - insofern kommt es auf das Gleiche raus, ob man die payload vor oder nach der template Node bearbeitet .
Wenn man sich sowas hingegen HTML formatiert als Tabelle für eine e-Mail oder eine Webseite oder template Node ausgeben lassen will - dann kommt man auch nur mit der template Node hin.

ist jetzt nicht superschön - aber dient nur zur Demo, dass man dann alles in einer Template Node abhandeln kann (wenn man nicht auf deutsche Grammatik Rücksicht nehmen muss. :) ) - Dann braucht es auch kein JSONATA.


Das geht natürlich auch als reiner Text (wie gesagt - die zusätzlich Node war nur wegen der Grammatik notwendig)

-
@_r_a_l_f_ Wenn ihr Euch bitte angewöhnen könnt, Code auch in CodeTags zu setzen, dann kann man damit was anfangen. So aber nicht.

Dann bekommt man nur Mist - weil der Browser interpretiert und man muss sich alles manuell selektieren.
Das Ergebnis sieht dann so aus:
Ich geh aber mal davon aus, dass dieses Array als Daten eingebunden werden soll?
[{"Device":"Gerät1","Adapter":"Zigbee","Battery":"57%"},{"Device":"Gerät2","Adapter":"Zigbee","Battery":"50%"}]Tipp:
Am sichersten, dass es funktioniert ist, wenn man das was man im Thread veröffentlicht, auch mal versucht selbst zu importieren.

-
@_r_a_l_f_ sagte in JSON String in Template Node richtig darstellen:
Da es hier bestimmt auch eine Lösung mit JSONata gibt
payload.{"Device" : Device & " (" & Battery & ")"}.Device~>$join(", ")Aber man braucht nicht unbedingt JSONATA
- das macht die Template Node aufgrund der mächtigen Angular Bibliothek von selbst. Allerdings muss man aufgrund des Satzbaus das Komma wieder manuell wegmachen - insofern kommt es auf das Gleiche raus, ob man die payload vor oder nach der template Node bearbeitet .
Wenn man sich sowas hingegen HTML formatiert als Tabelle für eine e-Mail oder eine Webseite oder template Node ausgeben lassen will - dann kommt man auch nur mit der template Node hin.

ist jetzt nicht superschön - aber dient nur zur Demo, dass man dann alles in einer Template Node abhandeln kann (wenn man nicht auf deutsche Grammatik Rücksicht nehmen muss. :) ) - Dann braucht es auch kein JSONATA.


Das geht natürlich auch als reiner Text (wie gesagt - die zusätzlich Node war nur wegen der Grammatik notwendig)

@mickym Ansonsten wie immer super gelöst :) Genau so sollte es aussehen, aber wie gesagt, da muss man immer erst darauf kommen, wie einfach es dann doch teilweise geht:
Folgende Geräte weisen ein kritisches Batterieniveau auf: {{#payload}} {{Device}} mit {{Battery}} der Batteriekapazität {{/payload}}Auch was die HTML Tabelle angeht ein guter Tipp :)
Vielen Dank an der Stelle für die Hilfe und ausführliche Erklärung :)
-
@mickym Ansonsten wie immer super gelöst :) Genau so sollte es aussehen, aber wie gesagt, da muss man immer erst darauf kommen, wie einfach es dann doch teilweise geht:
Folgende Geräte weisen ein kritisches Batterieniveau auf: {{#payload}} {{Device}} mit {{Battery}} der Batteriekapazität {{/payload}}Auch was die HTML Tabelle angeht ein guter Tipp :)
Vielen Dank an der Stelle für die Hilfe und ausführliche Erklärung :)
@_r_a_l_f_ sagte in JSON String in Template Node richtig darstellen:
wie einfach es dann doch teilweise geht:
Na das ist halt NodeRed. ;) ;) bzw. Angular.
Aber das kommt ja auch nicht von mir. Hin und wieder mal bei Steve vorbeischauen - hilft:
-
@_r_a_l_f_ sagte in JSON String in Template Node richtig darstellen:
wie einfach es dann doch teilweise geht:
Na das ist halt NodeRed. ;) ;) bzw. Angular.
Aber das kommt ja auch nicht von mir. Hin und wieder mal bei Steve vorbeischauen - hilft:
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
