NEWS
Visualisierung mit Node Red erstellen
-
@damrak2022 Na ich denke, dass der Trick prinzipiell schon funktioniert. Würde ich ja genauso machen, aber vielleicht hast Du ja zuviel oder zuwenig entfernt.
- Der erste Satz ist ja nicht so schlecht und vielleicht solltest Du anfangen, das zu verstehen.
Sind alles nur Objekte und Arrays. Und Du weisst ja wie diese definiert sind. Habe ich eigentlich schon lange nicht mehr gefragt.
-
@mickym Bitte sehr:
Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.
-
@damrak2022 Na und was hast Du in Deinem Array für Elemente?
-
@mickym value, measurement start und stopzeit, sowie table
-
@damrak2022 Nein - in Deinem Array ist jedes Element, was aus der Influx-DB rauskommt ein Datensatz und jeder Datensatz und somit jedes Element ist ein Objekt. Wie ist denn nun ein Objekt definiert?
-
@mickym Mit einer geschweiften Klammer und durch Komma getrennt
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Mit einer geschweiften Klammer und durch Komma getrennt
Was ist durch ein Komma getrennt?
-
@mickym die unterschiedlichen Eigenschaften, falls vorhanden
Beispiel:
Objekt: Mercedes
Eigenschaften: (Klimaanlage, Sitzheizung) -
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym value, measurement start und stopzeit, sowie table
Was ist das also?
Also Eigenschaften - wie sieht denn nun das Ergebnis Deiner Abfrage aus?
-
@mickym Sorry, bin mir unsicher
-
@damrak2022 Also ich hab Dir doch in dem Flow eine debug Node gemacht vor der Change Node - also mit dem Inhalt Deiner Abfrage und dann eine debug Node mit dem Inhalt wie das Array aussieht was in die Chart Node geht. Dann schau Dir halt beides an. Und mach das Gleiche mit Deiner neuen Abfrage.
-
@mickym Ja, bin gerade dabei.
-
Hallo Micky,
Nachdem ich es irgendwie nicht wirklich begreife, schreibe ich Dir hier mal was ich nicht kapiere: Wenn ich mir das Ergebnis aus dieser Abfrage anschaue:bekomme ich diese Ausgabe:
[{"series":["Systole","Diastole","Puls"],"data":[[{"x":1674453025342,"y":127},{"x":1674454046390,"y":114},{"x":1674544046439,"y":114},{"x":1674544946521,"y":107}],[{"x":1674453055302,"y":84},{"x":1674454046390,"y":78},{"x":1674544046438,"y":78},{"x":1674544946520,"y":71}],[{"x":1674453088093,"y":114},{"x":1674454046392,"y":106},{"x":1674544046442,"y":106},{"x":1674544946521,"y":85}]],"labels":["Systole","Diastole","Puls"]}]
Wenn ich das abfrage:
bekomme ich diese Ausgabe:
[{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.438Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.52Z","_value":71,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:51:28.093Z","_value":114,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.392Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.442Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":85,"_field":"value","_measurement":"Puls"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:25.342Z","_value":127,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.439Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":107,"_field":"value","_measurement":"Systole"}]
Okay, mir ist eines zumindest klar:
Der X Wert stellt die Unix Time dar, welchen Du mit $toMillis(_time) in das akutelle Datum/Uhrzeit umrechnest.
Der Y Wert stellt den Weg der Messung dar.
In beiden Debug Ausgaben von Dir wird ein Array ausgegeben.
Wenn ich nun erstmal meine direkte Abfrage über diesen Flow mache:
bekomme ich diese Ausgabe:
[{"result":"_result","table":0,"_start":"2022-12-28T06:40:27.840084988Z","_stop":"2023-01-27T06:40:27.840084988Z","_time":"2023-01-24T03:32:27.457Z","_value":120.244,"_field":"value","_measurement":"Gewicht"},{"result":"_result","table":0,"_start":"2022-12-28T06:40:27.840084988Z","_stop":"2023-01-27T06:40:27.840084988Z","_time":"2023-01-26T04:10:02.814Z","_value":119.908,"_field":"value","_measurement":"Gewicht"}]
Dann kopiere ich den Wert von Array2 und setze ihn in die Inject Node ein um dann letztendlich irgendwann mal den Flow für das Gewicht nachzubauen.
Was mir klar ist, ist das was ich Dir vorher in einem kleinen Beispiel gepostet habe:
Objekt = Mercedes
Eigenschaften = ( Klimaanlage, Sitzheizung, Airscarf, Verbandskasten)
Wenn ich mich aber nun auf den vorletzten Screenshot beziehe, habe ich mit folgenden Dingen Probleme:
Das Array enthält 2 Objekte - Objekt 0 und Objekt 1
Dann kommen die Eigenschaften: Aber sind wirklich
result
table
start
stop
time
value
field measurement
alles Eigenschaften?
Du hast mir ja auch mal die Erklärungen hier gepostet:• Demnach ist die payload die Eigenschaft eines Nachrichtenobjekts (rosa) • Ein Array ist eine Liste mit beliebig vielen Einträgen (grün)
• Jedes Listenelement enthält ein Objekt (orange)
• Jedes Objekt enthält Eigenschaften (blau)
Obwohl ich das jetzt alles nochmal gelesen habe, tue ich mich extrem schwer damit hier die richtigen Dinge für mich herauszulesen und umzusetzen. -
@mickym Die kopierte Change Node habe ich so angepasst, aber Du darfst mal raten - Farbe rot
[ { "series" : ["Gewicht"], "data": [ [ payload[_measurement="Gewicht"].{ "x" : $toMillis(_time), "y" : _value } ], ] ], "labels" : ["Gewicht"] } ]
Irgendwo ist die eckige Klammer falsch, aber ich bin der Meinung jetzt fast alles ausprobiert zu haben:
Ungültiger JSONata-Ausdruck: The symbol "]" cannot be used as a unary operator
-
@damrak2022 zu jeder Klammer, die Du öffnest musst du auch wieder eine schließen. Lösch mal Zeile11 und 12.
-
@mickym Habe ich gemacht. Ich weiß das Klammer die geöffnet werden auch geschlossen werden müssen. Ich verstehe nur nicht warum es manchmal in einer Zeile einfach nur eine Klammer gibt oder sogar 2 untereinander.
-
@mickym Das sieht gut aus:
27.1.2023, 08:34:34node: Array zur Initialisierung der Chart Node msg.payload : array[1] array[1] 0: object series: array[1] 0: "Gewicht" data: array[1] 0: array[2] 0: object x: 1674531147457 y: 120.244 1: object x: 1674706202814 y: 119.908 labels: array[1] 0: "Gewicht"
-
@damrak2022 na das üben wir, in dem wir das Objekt nochmal von Hand aufbauen.
-
@mickym Das ist bestimmt sinnvoll, aber auf der anderen Seite habe ich auch schon wieder die größten Befürchtungen was ich da wohl anstelle.
-