NEWS
Visualisierung mit Node Red erstellen
-
@damrak2022 verschoben
-
@mickym So, der erste Teil sieht schonmal brauchbar aus:
-
@damrak2022 Jo wie gesagt, wenn man so ein apptoken hat, kann man ggf. das Ganze direkt aus dem WEB abrufen und braucht dann den Adapter nicht mehr.
-
@mickym Ich bin ein MINI Schritt weiter:
-
@damrak2022 Sehr gut. - Und das gleiche nochmal.
-
@mickym Wie das gleiche - nochmal die gleiche Split Node?
-
@damrak2022 Na ja Du musst ja noch die Zahlen von den Obstsorten trennen - Du musst ja immer schauen, wie das Ursprungsarray ausgesehen hat.
-
@mickym Ja, okay ich mache mal weiter. Will es ja alleine hinbekommen, sonst hast Du es wieder gemacht. Bin halt immer zu schnell genervt. Aber das wird sich auch noch geben, hoffe ich.
-
@damrak2022 verschoben
-
Mein Ursprungsarray habe ich vor mir. Verstehe ich Deine Aussage: "Sehr gut. - Und das gleiche nochmal. " richtig, das hinter die erste Split Node noch einmal ein Split Node muss. Momentan verrenne ich mich nämlich in diese Richtung
-
@damrak2022 Ja letztlich besteht doch Dein Array aus 6 Elementen - insofern wären doch 6 einzelne Nachrichten mit einer payload, die nur jeweils ein zukünftiges Arrayelement enthält, doch schon mal ein guter Ansatz.
-
@mickym Ich hänge an folgender Stelle fest:
Die Ausgabe vom Debug 16 sieht dann so aus:
Dementsprechend ist die Zahl und die Bezeichnung durch ein Leerzeichen getrennt. Und ich komme nicht dahinter was ich dann eintragen muss um durch das Leerzeichen die Trennung zu erzielen. -
@damrak2022 einfach ein Leerzeichen als Trennungszeichen eingeben. Auch wenn man es nicht sieht.
-
@mickym Habe das gerade soweit fertig gemacht:
Jetzt versuche ich das andere, was Du mir geschrieben hast.
-
@mickym Da soll einer drauf kommen
-
@mickym Jetzt bin ich bei einer Change Node angekommen, weiß aber nicht wie ich das korrekt eintrage, denn so stimmt es nicht:
-
@damrak2022 Nein - Du darfst ja auch nicht selbst was da reinschreiben - also erst recht keine Zahlen und Obstsorten. Das Array muss erst mal wieder gebildet werden und natürlich nicht in dem Du selbst was da setzt, sondern natürlich immer aus der payload, also der Ausgabe der Vorgänger-Node. Ich löse es für Dich insofern auf - als dass ich Dir zeige, welche Nodes Du wann verwenden musst. Die beiden Split Nodes waren schon OK - aber da kommt nochmal was.
Das hast Du ja als Aufgabe bekommen und es gab Dir ja als Hilfe schon mal vor, wieviele Nodes ich gebraucht habe, um das Array wieder zu rekonstruieren.
So sieht die Lösung aus:
Die ersten beiden split Nodes hast Du ja schon raus bekommen. - Nun hast Du die Auflösung - welche Nodes ICH verwendet habe, um das Ausgangsarray wieder zu konstruieren. Ich kann Dir NUR EINS ganz sicher sagen: KEINE der Nodes enthält eine Hinweis auf eine Obstsorte oder eine Zahl.
Nach den beiden split Nodes, erfolgt eine JOIN Node, um das Array zu bilden. Indem Fall können wir aber nicht den automatischen Modus verwenden, da wir 2 split Nodes verwendet haben und somit die Anzahl der Elemente sich verändert hat. Aber wir wissen ja, dass wir genau 6 Nachrichten erzeugt haben und können deshalb der JOIN Node sagen, dass das Array fertig ist, wenn sie 6 Nachrichten empfangen hat. Das sind genau die 6 Nachrichten, die Du ja selbst als Ausgabe Deiner debug 17 Node gepostet hast: https://forum.iobroker.net/post/903809
Im nachfolgenden SPLIT- JOIN Pärchen können wir wieder den automatischen Modus verwenden, da wir ja aus der gleichen Anzahl an Nachrichten wieder ein Array bilden wollen und wir nur da zwischen drin was mit der Change Node ändern mussten, damit wir wieder das gleiche Ausgangslage wie im ursprünglichen Array hatten.
Wenn Du das mit der JOIN Node und dem manuellen Zusammensetzen des Arrays hinbekommen hast, sollte das Ergebnis ja wie folgt aussehen (s. Debug Ausgabe nach der JOIN Node hinter den beiden split Nodes):
da siehst Du aber, dass wir da noch nicht fertig sind, da die Datentypen der Zahlen nicht stimmen (sind ja strings und deswegen rot und nicht blau) und ausserdem vertauscht. Deswegen müssen wird das Array nochmal auftrennen und mit der Change Node richtig stellen. So das ist nun der komplette Lösungsweg. Jetzt musst Du das eigentlich nur noch umsetzen. :). Im Prinzip musst Du also das Umgekehrte machen, was Du zu Beginn des Flows gemacht hast, also Du das Array thematisch richtig getrennt hast und dann den String aus den beiden Pärchen zusammengesetzt hast. Nur dass Du in diesem Fall halt wieder ein Array raushaben willst und nach der Vertauschung die Zahl wieder in den Datentyp Zahl (=number) verwandelt hast.
Noch ein Tipp: Ein Array definierst Du immer wieder in der Inject Node mit eckigen Klammern und mit Kommas trennst Du die Array- oder Listenelemente voneinander.
-
@mickym Ich habe es mehr als einmal gelesen und momentan sieht mein Flow so aus:
Mein Debug 22 sieht so aus:
Ich weiß, das ich nun die Reihenfolge in der Change Node ändern muss, aber daran verzweifele ich schon wieder seit längerer Zeit.
Die Obstsorte müsste oben stehen und die Anzahl darunter. Ich habe auch noch im Kopf - Ziel oben, Quelle unten, aber das macht mich schon wieder kirre, weil ich es nicht hinbekomme und anscheinen auch nicht die richtige Idee habe. -
@damrak2022 Nun das Problem ist, wie Du Dein Array splittest. Schau Dir wie gesagt an, wie Du das am Anfang gemacht hast.
Ich hatte Dir ja empfohlen - meinen Text mit allen Tipps zu beherzigen.
Das hatte ich geschrieben:
Im Prinzip musst Du also das Umgekehrte machen, was Du zu Beginn des Flows gemacht hast, also Du das Array thematisch richtig getrennt hast und dann den String aus den beiden Pärchen zusammengesetzt hast. Nur dass Du in diesem Fall halt wieder ein Array raushaben willst und nach der Vertauschung die Zahl wieder in den Datentyp Zahl (=number) verwandelt hast.
Noch ein Tipp: Ein Array definierst Du immer wieder in der Inject Node mit eckigen Klammern und mit Kommas trennst Du die Array- oder Listenelemente voneinander.
-
@mickym Okay, ich gehe das nochmal durch.