Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Automatisierung
    5. goto in node red

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    goto in node red

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

      @bynight Ja dann viel Spaß- Ich kann Dir nur aus Erfahrung raten - vermeide Codieren in function Nodes soweit es geht. Es gibt nur wenige Fälle, wo es sinnvoll ist. Beschäftige Dich lieber mit Change Nodes und JSONATA.
      https://docs.jsonata.org/overview

      1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @bynight last edited by

        @bynight sagte: in etwa so:

        In "normalen" Programmiersprachen gibt es kein goto. Ich kenne es nur von Basic. Anstelle von

        goto end;
        

        schreibt man

        return msg;
        
        B 1 Reply Last reply Reply Quote 0
        • B
          bynight @paul53 last edited by

          @paul53 hallo Paul,
          In Batch Dateien und Visual Basic, was ich am Meisten nutze, ist es gebräuchlich.
          Der Tip mit return msg statt exit oder break fehlte mir halt.

          Gruß Ronald

          mickym OliverIO Codierknecht 3 Replies Last reply Reply Quote 0
          • mickym
            mickym Most Active @bynight last edited by mickym

            @bynight Das mit dem return msg sieht hier nur als Abbruchbedingung aus. Das ist es aber nicht.
            Mit return mit msg gibst du nur die Kontrolle von der function Node wieder an den Flow zurück. Je nachdem was Du zurückgibst, also einfaches Objekt, Array von Objekten kannst Du ein oder mehrere Nachrichten an verschiedene Ausgänge des Flows zurückgeben.

            8977ec3f-291e-4011-89b3-899e1e980cd0-image.png

            Der Vorteil einer function Node ist auch, dass Du komplett neue Nachrichtenobjekte erzeugen kannst und Dich so einfach von den Eigenschaften des bisherigen Nachrichtenobjektes entledigen kannst.

            Aber wie gesagt meide function Nodes. Sie sind vor allem dann nützlich, wenn Du in einem NodeKontext Zustände speichern möchtest, um dann Berechnungen durchzuführen oder wenn Du andere NodeJS Module verwenden willst. Ansonsten schau Dir die Hilfe zu den Nodes an, auch zu der function Node:

            Neben return msg - kannst Du auch asynchron über node.send Nachrichten erzeugen. In der Hilfe ist außerdem ein Link zur Onlinedokumentation:
            15588c70-4d43-4b44-ae8f-3d428041ae85-image.png

            https://nodered.org/docs/user-guide/writing-functions

            Dort siehst Du wie Du über ein Array mehrere Ausgänge bedienen kannst

            2a99cecf-3448-41d5-b105-6e29cdd9ca96-image.png

            oder bei Arrays in Arrays mehrere Nachrichten aufeinmal an einen Ausgang schicken kannst.

            Im Übrigen ist es KEIN guter Stil mit return msg die function Node an unterschiedlichen Stellen abzubrechen, das macht das Debuggen unter Umständen schwierig und musst mit node.warn arbeiten. Aber das ist genau einer der Gründe warum man function NOdes meiden sollte.

            B 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @bynight last edited by

              @bynight sagte in goto in node red:

              In Batch Dateien und Visual Basic, was ich am Meisten nutze, ist es gebräuchlich.

              aber auch dort nicht gut. ist halt noch das erbe, das es in basic enthalten ist.
              auch dort kann man goto vermeiden (ausser bei der fehler behandlung on error goto)

              hier ein artikel, der versucht es verständlich zu machen.
              wen dein code nur 20/30 zeilen hat ok,

              nur der browseranteil für meine widgets zu rssfeed hat fast 900 zeilen.
              wenn da wild mit goto rumgesprungen wird bist du verloren.
              https://craftofcoding.wordpress.com/2022/03/28/ever-wondered-why-goto-is-considered-harmful/

              B 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @bynight last edited by

                @bynight sagte in goto in node red:

                In Batch Dateien und Visual Basic, was ich am Meisten nutze, ist es gebräuchlich.

                ... weil das Technik aus der Steinzeit ist.

                https://de.wikipedia.org/wiki/Spaghetticode

                Auch VB schreibt man heute komplett ohne GoTo. Außer - wie @OliverIO schon schrieb - beim "On Error Goto ...".

                B 1 Reply Last reply Reply Quote 0
                • B
                  bynight @Codierknecht last edited by

                  @codierknecht
                  na ich bin ja auch aus der Steinzeit, und ich werde mit 58 sicher kein Hochleistungsprogrammierer mehr. :-)) Da bremsen mich ein paar seltene Goto Sprünge nicht aus. Mit nem 3 Seiten Bauernhof hat man auch reichlich anderes zu tun... :-))

                  Gruß,
                  Ronald

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • B
                    bynight @OliverIO last edited by

                    @oliverio
                    meine batch Dateien haben im Laufe der Jahre auch 300 bis 400 Zeilen gekriegt, bei 10 -15 goto Sprüngen, meist ans Ende oder zum Folgeabschnitt... aber noch nicht wild und nicht unübersichtlich... 🙂 Da habe ich mit komplexen Schleifen viel mehr Probleme...

                    Gruß,
                    Ronald

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

                      @mickym

                      hab noch ne Frage... ist es möglich die Bezeichung der Nodes auf 2 oder 3 Zeilen umzubrechen, also untereinander zu schreiben?

                      Gruß,
                      Ronald

                      mickym 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @bynight last edited by

                        @bynight sagte in goto in node red:

                        ich werde mit 58

                        Willkommen im Club 😀

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

                          @bynight nein. Aber du kannst zu jeder Node eigene Texte verfassen und die kann man formatieren. Die stehen dann im info tab

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

                            @mickym das weiße comment?

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

                              @bynight sagte in goto in node red:

                              @mickym das weiße comment?

                              Wenn ich daheim bin schicke ich dir ein Screenshot

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

                                @mickym
                                Danke vielmals,

                                ich glaub für's erste hab ich's nun... :-))
                                node red Snap3.jpg

                                Gruß Ronald

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

                                  @bynight

                                  f8b03ea1-495f-47ac-942f-4aa7b60b23cc-image.png

                                  Grundsätzlich kannst Du über die Beschreibung/Comment Schaltfläche Deinen eigenen Text schreiben und den siehst Du dann beim Anklicken in dem Info Tab rechts.

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

                                    @mickym
                                    Ja, aber da sieht man eben auch immer nur den Node den man angeklickt hat... Aber Danke für die Info!

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

                                      @bynight Du kannst auch noch comment Nodes verwenden - oder Gruppen verwenden und diese beschriften.

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

                                        @mickym noch eine Frage... wie macht man aus einem fortlaufenden Wert einen täglichen Wert, also aus total kWh daily kWh? Dafür gibt es doch bestimmt auch einen Node?

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

                                          @bynight Na so einfach ist das nicht. Ich weiß auch nichts über Deine Daten. Ich habe mal einen Subflow gemacht, der prüft die Zählerstände (als Deinen totalen Wert) aber in Verbindung mit dem iobroker.

                                          Ich hab mal einen eigenen Subflow gemacht, https://forum.iobroker.net/post/1148029

                                          Da kannst ja schauen, ob der Dir was hilft.

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

                                            @mickym Danke! Das muß ich gleich mal schauen...
                                            In Homeassist gibt es unter Helfern eine Subroutine "Verbrauchszähler" Da läßt sich aus jedem Wert ein viertelstündlicher, täglicher, wöchentlicher, monatlicher... Wert kreieren. Den brauche ich ja z.B. bei allen Energiesteckdosen oder -schaltern die keinen täglichen Wert ausgeben, wie z.B. Shelly Geräte... Die Solarenergie messe ich z.B. mit einem Shelly 3EM vor dem Victron MPII. Die tägliche Anzeige sollte in dem Fall um Mitternacht wieder auf 0 springen...

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            674
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            77
                                            3493
                                            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