NEWS
Visualisierung mit Node Red erstellen
-
@mickym Habe noch mein Auto eingebunden.
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ja, das st wahr, aber siehe .csv weiter oben. Unter Gesamtkosten taucht der Betrag auf - also Zahlen
Ja aber dann war die CSV nicht richtig. Weil da wahrscheinlich Kostenart drin stand, die es als Spalte in dieser Datei wohl nicht gab. (also die Datei 2021 anders ist, als in den anderen)
Das Problem war doch, auch wenn es in der Datei richtig stand, dass die Eigenschaft den Daten nicht richtig zugeordnet wurde. Also kann der Fehler nur in der CSV Node gewesen sein.
-
@damrak2022 Na das ist doch dann mal ein Erfolgfserlebnis, das es auf Anhieb geklappt hat.
-
@mickym Auf Anhieb ist nett gesagt.
-
@mickym Der Fehler lag einzig und allein in der csv Datei, welche ich mit nicht korrekten Spaltenüberschriften hochgeladen habe.
-
@damrak2022 wie gesagt - Du wirst nur lernen, wenn Du Fehler machst. Wenn Du mit Deinen Grundlagen und Deinem Verständnis wieder auf dem Laufenden bist. Es stehen noch 2 weitere Wege aus, wie man mit 2 unabhängige Nachrichten zusammenführt.
-
@mickym Schau mal auf die Uhr und Du weißt was ich gleich mache.
-
@damrak2022 Du ich meine nicht heute - vielleicht auch nicht morgen. Aber bevor Du Dir wieder neue Dinge ausdenkst, solltest Du die vorhandenen beherrschen. Kann auch in 1 Monat sein oder auch im nächsten Jahr.
-
@mickym Ja, das habe ich schon verstanden.
-
@damrak2022 So sieht der ganze Flow aus:
Das heißt ich habe 14 mal eine join Node, welche mir jeweils die Summe pro Jahr ausgibt.
Wenn ich nun diese 14 Join Nodes addieren möchte, muss ich diese doch wahrscheinlich erstmal mit eine change Node auf eine andere Bezeichnung setzen, da sie ja sonst alle identisch sind.
Und dann nochmal mit einer Change Node addieren und in einer Text Node ausgeben.
Oder denke ich gerade wieder zu umständlich? -
@damrak2022 Im Gegenteil - hier hast Du nun 14 Nachrichtenobjekte die Du zusammenführen müsstest und nicht nur 2, wie bei der systole und diastole.
Nun würde sich eine der beiden anderen Wege anbieten mit einer weiteren JOIN Node das erst mal zu einem Array zusammenzufassen.Du denkst nicht zu umständlich, sondern zu einfach. Du kannst keine 14 Nachrichtenobjekte mit einer Change Node zusammenfassen. Ich dachte Du hättest das verstanden, als wir das Problem mit der Systole und Diastole hatten, wo du ja nur 2 Nachrichten in ein Objekt zusammenfassen musstest. Der Kontext ist hier nur halb glücklich, weil Du nicht weisst, wann alle 14 Nachrichtenobjekte fertig sind. Deshalb würde sich hier eine weiter JOIN Node anbieten, in die Du alle Nachrichtenobjekte reinlaufen lässt. Bevor Du das aber machst - mach das was ich Dir gesagt habe. Ändere die vorhandenen JOIN Nodes - nimm die Formatierung raus und mach die mit einer anschließenden Change Node extra bzw. formatiere von mir aus nur in der Text Node. Denn dann brauchst Du die Werte ja als Zahl.
-
@mickym Das muss ich erst noch ein paar mal lesen und kapieren. Ich weiß das Du mir das mit der Join Node weiter oben erklärt hast und werde mir das nochmal anschauen.
-
@mickym Können wir das mit dem zusammenführen der Nachrichtenobjekte nochmal machen? Ich bekomme das nicht hin. Dann kann ich das auch gleich, bzw. direkt danach aufschreiben, das ich es beim nächsten Mal echt alleine hinbekomme. Wenn ich die join node wegnehme und direkt hinter die Change node eine Debug node hänge, bekomme ich alle Werte des Jahres als Number angezeigt.
-
@damrak2022 Du sollst nicht die JOIN Node wegnehmen, sondern nur die Formatierung aus der JOIN Node (also dem fixup) und diese dafür in eine anschliessende Change Node auslagern.
-
@mickym Okay, habe ich gemacht. So richtig?
Beim Debug kommt dann allerdings undefined
-
@damrak2022 In der Change Node musst du natürlich das $A gegen payload austauschen.
-
@mickym Ah okay, dann bekomme ich die Jahressumme angezeigt als Number
Was bewirkt das $A ? Das er alle Werte addiert? -
Der Reduktionsausdruck $A + payload wird also bei jeder eingehenden Nachricht ausgeführt.
Theoretisch kannst Du auch andere Operationen ausführen. Alles was Du mit JSONATA machen kannst.Richtig das ist die Summe, die sich ergibt.
Nehmen wir mal der Einfachheit an - nach der Split Node kommen 3 Nachrichten aus:
- payload = 10.06
- payload = 15.3
- payload = 72.55
dann schau Dir die JOIN Node an:
Was passiert - der Anfangswert ist 0: deshalb wird $A auf 0 gesetzt:
- Nachricht kommt:
der Reduktionsausdruck wird ausgeführt: $A + payload, also 0+10.06. Neues $A=10.06. - Nachricht kommt:
der Reduktionsausdruck wird ausgeführt: $A + payload, also 10.06+15.3. Neues $A=25.36. - Nachricht kommt:
der Reduktionsausdruck wird ausgeführt: $A + payload, also 25.36+72.55. Neues $A=97.91.
Durch die split Node bekommt die JOIN Nachricht mit, wenn sie alle Nachrichten bekommen hat - deswegen funktioniert das nur, wenn eine msg.parts Eigenschaft in der Nachricht enthalten ist.
In der msg.parts Eigenschaft siehst Du wenn Du Dir wieder die Hilfe der JOIN Node anschaust, dass diese folgenden Informationen enthält.
Deshalb weiß die JOIN Node wann die Summe entgültig ist und verschickt die payload als Summe.
Mach mal eine Debug NOde hinter die Split Node und schau Dir mal die VOLLSTÄNDIGEN NACHRICHTENOBJEKTE an.
Mach das mal und poste mal so ein vollständiges Nachrichtenobjekt.
-
@mickym Das sieht dann so aus:
-
@damrak2022 Tja und daraus erkennst Du aus dem msg.parts Objekt, dass das das 18. Element eines Arrays mit 25 Elementen ist, welches Du gepostet hast.