Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Visualisierung mit Node Red erstellen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Visualisierung mit Node Red erstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Damrak2022 last edited by mickym

      @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.

      6b7899ad-5fac-4bc4-920b-ba4a54bd3b2d-image.png

      So sieht die Lösung aus:

      a2c005cc-3848-4002-96d3-083347ae9f18-image.png

      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):

      a43fbdca-80da-4f97-83e3-f6f02c9e5bfe-image.png

      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.

      Damrak2022 1 Reply Last reply Reply Quote 0
      • Damrak2022
        Damrak2022 @mickym last edited by

        @mickym Ich habe es mehr als einmal gelesen und momentan sieht mein Flow so aus:
        Bildschirm­foto 2022-12-05 um 22.08.05.png
        Mein Debug 22 sieht so aus:
        Bildschirm­foto 2022-12-05 um 22.08.37.png
        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.

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Damrak2022 last edited by

          @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.

          Damrak2022 2 Replies Last reply Reply Quote 0
          • Damrak2022
            Damrak2022 @mickym last edited by

            @mickym Okay, ich gehe das nochmal durch.

            1 Reply Last reply Reply Quote 0
            • Damrak2022
              Damrak2022 @mickym last edited by

              @mickym So hatte ich das auch schonmal:
              Bildschirm­foto 2022-12-05 um 22.22.57.png
              Aber dann ist das auf jeden Fall der Weg, welcher zum Ziel führt

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Damrak2022 last edited by

                @damrak2022 Nein - das ist doch das gleiche Array wie nach der JOIN Node - schau Dir die 1. SPLIT Node an.

                Damrak2022 1 Reply Last reply Reply Quote 0
                • Damrak2022
                  Damrak2022 @mickym last edited by

                  @mickym Sieht noch ein klein wenig anders aus
                  Bildschirm­foto 2022-12-06 um 01.08.28.png
                  Bildschirm­foto 2022-12-06 um 01.09.23.png

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Damrak2022 last edited by

                    @damrak2022 Ja doch einiges. Zeig halt mal was debug 22 ausspukt? 😉

                    Damrak2022 1 Reply Last reply Reply Quote 0
                    • Damrak2022
                      Damrak2022 @mickym last edited by

                      @mickym Bitte
                      Bildschirm­foto 2022-12-06 um 01.14.05.png

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Damrak2022 last edited by

                        @damrak2022 Ja das schaut doch schon mal gut aus. Dann ist es wohl die Change Node. Ich kann mir auch vorstellen, weil Du Strings wahrscheinlich inder Change Node machst und keine Arrays. 😉

                        Deswegen hatte ich Dir noch den Tipp gegeben: 😉

                        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.

                        Damrak2022 1 Reply Last reply Reply Quote 0
                        • Damrak2022
                          Damrak2022 @mickym last edited by

                          @mickym Meine Change Node sieht so aus:
                          Bildschirm­foto 2022-12-06 um 01.17.29.png
                          Was ist da genau falsch?

                          mickym 2 Replies Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Damrak2022 last edited by mickym

                            @damrak2022 Na Du machst einen String - so haben wir es zwar oben gemacht, aber da war ja die Aufgabe aus 2 Array Elementen einen String zu bilden. Nun bilden wir aber aus einem Array mit 2 Elementen, wieder ein Array und vertauschen nur die Elemente. Aber was habe ich denn gerade zu einem Array geschrieben in dem Tipp:

                            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.

                            Wenn Du das Wort für Wort EINFACH befolgst, dann schreibst Du eine eckige Klammer, dann das Element, das Du als erstes Element in dem Array haben willst, dann ein Komma und dann das zweite Element, das Du in dem Array haben willst. Das Ganze schließt Du mit einer eckigen Klammer ab. Genauer kann ich es mit Worten nicht erklären, ausser dass ich Dir die Lösung hinschreibe. 😉 - Also probiers nochmal in dem Du das genau befolgst und wenn es nicht klappt dann gibts die Lösung.

                            Wie sieht denn die Arraydefinition in Deiner Inject Node aus?

                            Damrak2022 1 Reply Last reply Reply Quote 0
                            • Damrak2022
                              Damrak2022 @mickym last edited by

                              @mickym Ja Moment

                              1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Damrak2022 last edited by mickym

                                @damrak2022 sagte in Visualisierung mit Node Red erstellen:
                                Die Reihenfolge war also korrekt, aber halt keinen String.

                                Und halt die richtige Reihenfolge. Im ursprünglichen Array steht erst das Obst, dann die Anzahl.

                                Damrak2022 1 Reply Last reply Reply Quote 0
                                • Damrak2022
                                  Damrak2022 @mickym last edited by

                                  @mickym Anscheinend bin ich noch nicht ausgeschlafen. Zeig es mir bitte mal

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @Damrak2022 last edited by mickym

                                    @damrak2022 Nun also ein Array siehst Du ja in der ersten Inject Node durch eckige Klammern definiert:

                                    []
                                    

                                    Aus Deiner Debug Node kommen immer Pärchen mit der Anzahl in payload[0] und die Obstsorte in payload[1]
                                    d03fef86-903c-43a0-b825-f9b247ac6e6f-image.png

                                    Nachdem wir ja die Reihenfolge wieder vertauschen müssen, setzen wir also erst die payload[1], also die Obstsorte und dann die Anzahl (payload [0]). Die Arrayelemente werden wie gesagt einfach durch ein Komma getrennt (hatte ich so in dem Tipp geschrieben).

                                    [payload[1],payload[0]]
                                    

                                    Da wir aber die Zahl in der Anzahl noch von einem String in eine Zahl konvertieren müssen, benutzt Du am Besten die JSONATA Funktion $number().

                                    Also schaut das Ergebnis so aus:

                                    [payload[1],$number(payload[0])]
                                    
                                    Damrak2022 1 Reply Last reply Reply Quote 0
                                    • Damrak2022
                                      Damrak2022 @mickym last edited by

                                      @mickym sagte in Visualisierung mit Node Red erstellen:

                                      [payload[1],$number(payload[0])]

                                      Danke, aber auf den letzten Eintrag, wäre ich niemals gekommen.

                                      mickym 2 Replies Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @Damrak2022 last edited by

                                        @damrak2022 Na dann ist es wichtig, dass Du Dir merkst, dass Du in JSONATA 2 wichtige Konvertierungsfunktionen zur Umwandlung von Datentypen hast:

                                        1. Umwandlung in Zeichenketten (strings)

                                        07bbbe10-0c69-4f2f-90c3-f28054989a83-image.png

                                        siehe: https://docs.jsonata.org/string-functions
                                        2. Umwandlung in Zahlen (numbers)

                                        b76c5e60-a592-4a37-bc55-c566723f057d-image.png

                                        siehe: https://docs.jsonata.org/numeric-functions

                                        Wenn Du dann wieder Lust hast weiter zu machen, werden wir uns noch etwas mit Arrays und Objekten beschäftigen, damit Du siehst wie sie sich unterscheiden und was für Vor- und Nachteile die eine oder die andere Variante hat.

                                        Damrak2022 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Damrak2022 last edited by

                                          @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                                          @mickym sagte in Visualisierung mit Node Red erstellen:

                                          [payload[1],$number(payload[0])]

                                          Danke, aber auf den letzten Eintrag, wäre ich niemals gekommen.

                                          Und kommt das Array nun wieder so raus, wie Du es am Anfang hattest?

                                          Damrak2022 1 Reply Last reply Reply Quote 0
                                          • Damrak2022
                                            Damrak2022 @mickym last edited by

                                            @mickym Ja,
                                            Bildschirm­foto 2022-12-06 um 01.57.53.png

                                            mickym 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            694
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            4845
                                            2326498
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo