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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Visualisierung mit Node Red erstellen

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

      @mickym sagte in Visualisierung mit Node Red erstellen:

      Hier dann alles offengelegt.

      Mir geht es ja nicht um fertige Lösungen, sondern um das Verstehen. Schon schwierig genug sich alles zu behalten. Auf die $1 wäre ich nie gekommen. Obwohl es ja überall steht. Jetzt verstehe ich vermutlich auch wie es über den regulären Ausdruck bei der change Node funktionieren wird. Aber woher kommt die $1. Ist das der Wert der Group 1?
      Bei mir schleppt er aber noch ein unbeliebtes Zeichen mit:
      1b89e2e5-7c18-40a1-9e8d-570f6b5e3ace-grafik.png

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

        @garf Genau - mit den Klammer gruppierst Du reguläre Ausdrücke - also neben dem insgesamten Match kannst Du solche Gruppen eben über die Klammern bilden und nach der Reihe die 1. Gruppe mit $1, die 2. Gruppe mit $2 etc. ansprechen.

        Im folgenden Bild hellblau markiert.

        Wenn Du also noch eine zweite Klammer hättest könntest Du die mit $2 ansprechen.

        f86f03da-d690-4f6d-a80f-5400a544bef3-image.png

        So Du hast aber noch einen Zeilenvorschub drin. Da der nicht gemached hat - wird dieser Zeilenvorschub mit übernommen - da der nicht matched - um den noch mit in das matching pattern aufzunehmen, musst du noch den Zeilenvorschub am Ende Deines regEx Ausdrucks anhängen - orange markiert.

        Um also den Zeilenvorschub wegzubekommen, musst Du den LineBreak noch in dein Matching Pattern aufnehmen.

        2782da3e-e4c6-4065-afba-fa6b0b395eb2-image.png f28b46de-baa3-43f1-9058-b1fbf70abef4-image.png

        Zeilenvorschübe sind also nicht im "Punkt" als beliebiges Zeichen enthalten.

        Ist auch so definiert - habe es gerade nochmal nachgeschaut:

        71566849-c154-46b7-9e44-24e4f6d78b64-image.png

        Also ein Punkt definiert alle Zeichen - außer dem Zeilenvorschub. 😉 - Deswegen hat das bei Dir nicht bis zum Ende gemached. 😉

        EDIT:

        Der korrekte Ausdruck muss also

        $replace(payload,/.*=(.*)\'.*\n/,"$1")
        

        heißen bzw. Dein RegEx Ausdruck eben noch den Zeilenvorschub enthalten:

        .*=(.*)\'.*\n
        

        Hier nochwas zu Ergänzung. Im RegEx kann man auch Parameter mitgeben, in dem der Punkt auch den Zeilenvorschub als beliebiges Zeichen akzeptiert:

        ef5b89a6-58df-4aeb-931c-d46dae1a85ea-image.png

        Leider wird diese Option aber nicht von JSONATA unterstützt -
        56ae68d1-bef6-4f2a-ab1f-2388cd2975f6-image.png

        Es wird also nur i und m unterstützt. Im Prinzip bekommst Du aber auch im Nachhinein solche Zeichen ggf. wenn Du den Zeilenvorschub nicht in das search patter aufnehmen willst über die $trim Funktion weg.

        $trim($replace(payload,/.*=(.*)\'.*/,"$1"))
        
        1 Reply Last reply Reply Quote 1
        • mickym
          mickym Most Active @Garf last edited by mickym

          @garf Ein schönes Beispiel mit der Replace Funktion und den Gruppen möchte ich Dir hier mal verdeutlichen.

          Ich hab Deinen String mal etwas aufgebohrt - und wenn es nicht darum geht, den Zahlenwert zu extrahieren - habe ich nun mal 3 Gruppen gebildet. 😉

          1. Gruppe: die Temperatur (35.9)
          2. Gruppe: die Einheit (C)
          3. Gruppe: quasi das Topic - also um welche Temperatur es sich handelt. (CPU-Temperatur)

          Mit der Replacefunktion können wir das nun komplett anders zusammensetzen:

          af69d90f-eb35-4a80-8623-6da4c71b665d-image.png

          Sting:

          temp=35.9'C ist die CPU-Temperatur
          

          RegEx

          .*=(.*)\'(.)?.*\s(.*)
          

          So kannst Du dann die eingefangenen Gruppen beliebig neu anordnen und einen neuen String bilden:

          51a896e3-92e7-4419-a1f4-5c3c0d99a678-image.png

          G Damrak2022 2 Replies Last reply Reply Quote 1
          • G
            Garf @mickym last edited by

            @mickym sagte in Visualisierung mit Node Red erstellen:

            So kannst Du dann die eingefangenen Gruppen beliebig neu anordnen und einen neuen String bilden:

            Auch nicht übel und alles direkt in die richtige Form gebracht. Du solltest Online Schulungen abhalten. Vielleicht wirst Du damit steinreich.👍

            Schon außergwöhnlich wie Du einem hilfst Probleme zu lösen und sein Wissen auszubauen.

            Danke dafür. Freue mich jetzt schon auf eure nächtlichen Beiträge.

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

              @mickym So, was möchtest Du jetzt mit der Change Node anstellen, wenn Du Lust hast?

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

                @damrak2022 Hab ich was von einer Change Node geschrieben? 😁 😏 - Wie sieht es denn erst mal aus, ob Du prüfst, ob dein regulärer Ausdruck funktioniert? - Was wollen wir denn überhaupt machen? - Hast Du das Ziel noch vor Augen?

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

                  @mickym sagte in Visualisierung mit Node Red erstellen:

                  Morgen werden wir das mit einer Change Node machen.

                  Ja, hier.
                  Äh das Ziel habe ich wohl etwas aus den Augen verloren. Wie frage ich denn mit dem $1 ab. Das weiß ich auch noch nicht

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

                    @damrak2022 OK - das hab ich da tatsächlich geschrieben. Gut dann werden wir mal kurz zusammenfassen, was wir erreichen wollen.

                    • Nun wir haben ja eine iobroker-IN Node aus dem Du alle Status des Ein- und Ausschaltzustandes raus bekommst.
                    • Nun siehst Du ja, dass aus jeder Nachricht jeder Shelly meldet, das topic den Datenpunkt des Gerätes enthält, das den Status meldet.
                    • Aus diesem Topic wollen wir die Geräte Kennung (also aus dem Pfad des Datenpunktes) extrahieren
                    • Die Gerätekennung wollen wir dann in einen sprechenden Namen übersetzen
                    • Schließlich wollen wir den Zustand der Shellies in einem Objekt zusammenfassen.
                    Damrak2022 1 Reply Last reply Reply Quote 1
                    • Damrak2022
                      Damrak2022 @mickym last edited by

                      @mickym Ja

                      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 Ja

                        Das heißt wir sind in unserem Kochbuch in der Mitte gelandet. Dann lass uns doch mal da weiter machen, wo wir gestern aufgefhört haben. Du machst nochmal die regEx Seite auf und kopierst ein Topic rein und schaust, ob Du mit Deinem RegEx Ausdruck, die Kennung extrahieren kannst.

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

                          @mickym Moment

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

                            @mickym Habe ich:
                            Bildschirm­foto 2022-12-19 um 00.07.18.png

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

                              @damrak2022 dann prüfe auch, ob das mit einem anderen topic funktioniert, der aus der iobroker-In Node rauskommt, bei der das Relay0/Switch der Shellies abgefragt wird.

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

                                @mickym Ja, klappt

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

                                  @damrak2022 Na das ist doch schön. Dann hängst Du jetzt mal eine Change Node an dein iobroker In Node und ein Debug Node dahinter. In der ChangeNode löschst Du erst mal alle Regeln raus - weil wir im ersten Schritt noch nichts ändern. 😉

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

                                    @mickym Habe ich, dann bekomme ich diesen Debug:
                                    Bildschirm­foto 2022-12-19 um 00.15.24.png

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

                                      @damrak2022 Gut Du siehst also dass die Change Node nichts verändert, wenn keine Regeln drin stehen.

                                      Also erstes wollen wir ja nun den topic ändern und wir ändern mal zum Testen in dem wir die "/" durch "." in dem Pfad ersetzen.

                                      Dies dient erst mal der Demonstration wie die Ändern Regeln in der Change Node funktionieren.

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

                                        @mickym So?
                                        Bildschirm­foto 2022-12-19 um 00.21.22.png

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

                                          @damrak2022 Na stimmt das Ergebnis? 😁

                                          Wenn ja - ist es doch perfekt. 😉 , wenn Nein dann stimmt was nicht. 😞

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

                                            @mickym Sieht gut aus

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            547
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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