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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    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

      @damrak2022 Gut - also siehst Du wie Du auf einzelne Elemente eines Arrays über einen Index zugreifst.

      Gehen wir nun nochmal zur Split Node. Die Split Node zerlegt automatisch, wenn sie eines von den 3 Möglichkeiten sieht in einzelne Nachrichten:

      075df6f5-74c8-4f26-9351-f868d03ea7d0-image.png

      In dem Fall funktioniert also die Split node, weil die payload ein Array ist. Die anderen Möglichkeiten siehst Du ja auch.

      So in der JOIN Node siehst Du dass wir die Sequenz reduzieren und dann Dein Name rauskommt.

      In den kompletten Nachrichtenobjekten hast Du gelernt, dass in der msg.parts die Informationen zum ursprünglichen Array.

      So - das mit dem reduzieren der Nachrichten nimmt man seltener, was man aber oft braucht, dass man das ursprüngliche Objekt wiederherstellen möchte. Du kannst ja mal die JOIN Node wegsichern (damit Du Dich daran noch erinnerst) und ersetzt die JOIN Node durch eine jungfräuliche, dann solltest Du als Ergebnis wieder das ursprüngliche Array haben.

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

        @mickym Ich sichere gerade jeden Flow, welchen wir erstellen und speichere mir dazu eine ausführliche Beschreibung ab. Deshalb lasse ich das am besten so.

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

          @damrak2022 Na dann kopiere Deine Nodes halt und ersetze die JOIN Node durch eine jungfräuliche.

          8a3cca92-d796-48a7-ae63-22780e2d3765-image.png

          Du siehst also dass das was die split Node auseinander gerissen hat, automatisch wieder durch die JOIN Node zusammengesetzt wird, weil die JOIN Node wie konfiguriert ist?

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

            @mickym Äh, die join node steht jetzt auf "Automatisch".

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

              @damrak2022 Genau 🙂 und kommt auch bei Dir wieder das gleiche Array raus, dass Du in die split Node geschickt hast?

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

                @mickym Ja

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

                  @damrak2022 So und für was braucht man das?

                  Zum Beispiel um alle einzelnen Elemente ggf. zu bearbeiten und dann aber wieder das gleiche Objekt zu haben. Nun setzt Du zwischen die Split Node und die JOIN Node eine Change Node, in der Du jede payload in Großbuchstaben umwandelst.

                  867efe02-fdc5-4a0a-bc61-1523108a8411-image.png

                  Wenn alles gut geht, solltest Du in der Debug Nachricht Dein jetziges Array haben, im Ergebnis das gleiche Array mit Großbuchstaben.

                  ad72b158-6c81-405f-9cb7-4d99585cae1b-image.png

                  Hat das bei Dir geklappt?

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

                    @mickym Nein, weil ich wahrscheinlich das in der Change Node falsch eingebe

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

                      @damrak2022 Es gibt im JSONATA eine Funktion $uppercase, die die Umwandlung für Dich macht.

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

                        @mickym So, lass uns mal aufhören. Das wird mir gerade zuviel. Aber das mit der Umwandlung werde ich dann rausfinden. Uppercase habe ich, aber trotzdem stimmt meine Eingabe noch nicht. Ich muss auch erstmal da andere aufschreiben, bevor ich alles verwechsele

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

                          @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                          @mickym So, lass uns mal aufhören. Das wird mir gerade zuviel. Aber das mit der Umwandlung werde ich dann rausfinden. Uppercase habe ich, aber trotzdem stimmt meine Eingabe noch nicht. Ich muss auch erstmal da andere aufschreiben, bevor ich alles verwechsele

                          Na ich verstehe die Probleme nicht - bevor Du Dich verabschiedest. Wie soll ich helfen, wenn ich nicht weiß, wie das Problem erzeugen kann?

                          Die Lösung ist doch supereinfach:

                          b3420255-d431-4017-b5b8-b8cb05d970f7-image.png

                          Was hast Du denn anders gemacht? Oder wie kommt es zu einem Problem? Ich verstehe es halt im Moment nicht. Oben = Ziel, unten ist Quelle.

                          Setze die neue msg.payload auf $uppercase("der eingehenden" payload).

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

                            @mickym Ich habe wieder mal hinter dem uppercase kein payload eingetragen, das war mein Fehler.

                            Jetzt werde ich mir das ausführlich notieren

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

                              @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                              @mickym Ich habe wieder mal hinter dem uppercase kein payload eingetragen, das war mein Fehler.

                              OK - aber verstehst Du es nun? uppercase ist ja nur die Funktion. Aber wenn Du Dir wieder die Hilfe anschaust, dann siehst Du doch, dass man der Funktion übergeben muss, was sie umwandeln muss.

                              4fda186e-6e2e-41b3-b802-3feda8a20d51-image.png

                              Das hast Du doch mit der $round() und $floor() Funktion auch so gemacht?

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

                                @mickym Ja und mein Fehler war, das ich "str" nicht durch "payload" ersetzt habe.

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

                                  @mickym Danke für die Erklärung

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

                                    @damrak2022 Ok - dann machen wir ein anderes Mal weiter und fassen dann mal die Dinge kurz zusammen.

                                    Neben der Möglichkeit mit der JOIN Node alle Nachrichten zu einem neuen Wert zusammenzufassen (also Sequenz reduzieren), also eine Summe zu bilden oder einzelne Zeichen zu einem Wort zusammenzufügen kann man mit einer JOIN Node auch die Nachrichten, die eine split Node generiert hat, wieder in das ursprüngliche Objekt zu verwandeln.

                                    Das automatische Zusammenfügen einer JOIN Node funktioniert aber nur, wenn ein Objekt vorher durch die Split Node in einzelne Nachrichtenteile aufgeteilt wurde. Die Split-Node fügt vor dem Auftrennen in einzelnen Nachrichten msg.parts Objekte hinzu, damit die JOIN Node wieder in der Lage ist, das wieder zu einem Objekt zusammenzufassen. Die JOIN Node muss ja wissen, wann keine Nachrichten mehr kommen, bis sie selbst dann eine Nachricht ausgibt. Das geht nur, weil die Split Node mitgibt, wie Du ja schon an den kompletten Nachrichtenobjekten gesehen hast.

                                    Anhand dieser Information der split Node in msg.parts

                                    690c7098-4698-49c3-ad49-e0d8f9709c07-image.png

                                    weiß die JOIN Node, dass nach 4 Nachrichten das Objekt wieder vollständig ist und zusammengesetzt werden kann.

                                    Zwischen der Split und der Change Node kann man nun die einzelnen Elemente ändern oder analysieren. ABER: man darf keine Elemente herausfiltern, weil dann die JOIN Node unendlich lange auf die Elemente wartet.

                                    Das was man mit split und join macht ist das was man in der herkömmlichen Programmierung oder im Blockly mit Schleifen macht. Hier geht das halt ohne Code schreiben zu müssen.

                                    Wichtig ist neben dieser Funktion, dass das automatische Zusammensetzung nur funktioniert, wenn ein Objekt vorher mit der split Node aufgetrennt wurde.

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

                                      @mickym Ich habe gerade versucht meine TV und iMac Nutzungsdauer in einem Chart darzustellen.
                                      Der Flow sieht so aus:
                                      Bildschirm­foto 2022-11-16 um 11.44.00.png
                                      Die change Node so:
                                      Bildschirm­foto 2022-11-16 um 11.44.45.png
                                      Im Dashboard schaut das Ganze bei einer Standard Layout Breite von "6" so aus:
                                      Bildschirm­foto 2022-11-16 um 11.49.54.png

                                      Das mit der Farbe hat sich gerade erledigt. Anscheinend muss man die Farben von oben links beginnend auswählen.
                                      Ich bin mir auch nicht sicher ob mein Flow überhaupt korrekt ist.

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

                                        @damrak2022 na ja du siehst ja, dass du nur ganze Stunden angezeigt bekommst. Was soll denn eine chart-Node mit 5 Std. 42 min. anfangen. Du kannst von Glück reden, dass die Chart Node wenigstens die erste Zahl aus dem String versucht zu interpretieren. Normalerweise gehören in eine Chart Node nur Zahlenwerte. Wenn du Stunden und keine Minuten darstellen willst, dann solltest du halt für die Chart Node mit einer eigenen Change Node füttern, die Dir die Stunden als Dezimalzahl ausgeben, so wie du es ja schon mal mit dem Taschenrechner gemacht hast.
                                        Mit den Farben ist es so, dass die erste Nachricht immer die erste Farbe links oben nimmt, die zweite Nachricht die nächste Farbe usw.

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

                                          @mickym Um also eine korrekte Ansicht in dem Diagramm zu bekommen, müsste ich also den String, welchen ich aus der Change Node erhalte in "number" umwandeln, korrekt?
                                          So sieht der String momentan aus:
                                          Bildschirm­foto 2022-11-16 um 16.53.35.png

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

                                            @damrak2022 Nein Du zweigst einfach eine weitere Change Node an der iobroker-IN Node ab und teilst den Minutenwert durch 60. Aus der In Node kommt doch ein Zahlenwert in Minuten raus.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            985
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            4845
                                            2002912
                                            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