Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node red Wert regelmäßig senden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node red Wert regelmäßig senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Black-jocker last edited by Black-jocker

      Moin

      Ich bin ziemlicher Note red Anfänger und verwende Note Red auf einem Victron Cerbo.
      Ich möchte bei einem Batteriestand größer x ein Relais schalten.
      Die komplette Funktion wird über einen Schalter aktiviert.
      Der Wert kann über ein Numeric Node geändeet werden.
      Das Ganze funktioniert soweit, nur wir der eingestellte Numeric-Wert nicht regelmäßig, daher ist kein Wert vorhanden wenn der Schalter betätigt wird.
      Der blau markierte Wert soll zyklisch gesendet werden. Wie kann ich das bspw. durch einfügen eines triggerr oder timestamp
      anstoßen?

      Flow.png numeric.png fuction13.png

      Idee ist ein Timestamp wie hier rot markiert einzufügen.
      Aber wie muss dieser Timestamp konfiguriert werden damit der "wert" in Funktion 13 regelmäßig gesendet wird?

      timestamp.JPG

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Black-jocker last edited by mickym

        @black-jocker sagte in Node red Wert regelmäßig senden:

        Aber wie muss dieser Timestamp konfiguriert werden damit der "wert" in Funktion 13 regelmäßig gesendet wird?

        Gar nicht - weil das Nachrichtenobjekt aus der Inject Node gar nichts von irgendeiner anderen Node kennt.

        Wenn Du aus Deinem Dashboard einen Wert regelmäßig senden willst, dann spar Dir Deine function Nodes und hänge einfach Deine GUI Node vor eine trigger Node und lass Dir dann die payload regelmäßig senden.

        a026e9d0-8e34-4841-b359-1115ebca37c3-image.png

        [
           {
               "id": "cacc9b0c3a4d7c63",
               "type": "inject",
               "z": "7e6af0015415146d",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "20",
               "payloadType": "num",
               "x": 390,
               "y": 7340,
               "wires": [
                   [
                       "274200195f7f69ca"
                   ]
               ]
           },
           {
               "id": "274200195f7f69ca",
               "type": "trigger",
               "z": "7e6af0015415146d",
               "name": "",
               "op1": "",
               "op2": "0",
               "op1type": "pay",
               "op2type": "str",
               "duration": "-20",
               "extend": false,
               "overrideDelay": false,
               "units": "s",
               "reset": "",
               "bytopic": "all",
               "topic": "topic",
               "outputs": 1,
               "x": 620,
               "y": 7400,
               "wires": [
                   [
                       "1b1e3db9b32e665d"
                   ]
               ]
           },
           {
               "id": "43081ef774c280a0",
               "type": "inject",
               "z": "7e6af0015415146d",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "30",
               "payloadType": "num",
               "x": 390,
               "y": 7380,
               "wires": [
                   [
                       "274200195f7f69ca"
                   ]
               ]
           },
           {
               "id": "1b1e3db9b32e665d",
               "type": "debug",
               "z": "7e6af0015415146d",
               "name": "Wert",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 810,
               "y": 7400,
               "wires": []
           },
           {
               "id": "32eefb3dfb29a130",
               "type": "ui_numeric",
               "z": "7e6af0015415146d",
               "name": "",
               "label": "Batterieladung ....",
               "tooltip": "",
               "group": "57f13d6f733e5c9d",
               "order": 6,
               "width": 0,
               "height": 0,
               "wrap": false,
               "passthru": true,
               "topic": "topic",
               "topicType": "msg",
               "format": "{{value}}",
               "min": 0,
               "max": 10,
               "step": 1,
               "className": "",
               "x": 370,
               "y": 7440,
               "wires": [
                   [
                       "274200195f7f69ca"
                   ]
               ]
           },
           {
               "id": "57f13d6f733e5c9d",
               "type": "ui_group",
               "name": "Test",
               "tab": "20b3095113f94d70",
               "order": 1,
               "disp": true,
               "width": "6",
               "collapse": false,
               "className": ""
           },
           {
               "id": "20b3095113f94d70",
               "type": "ui_tab",
               "name": "Home",
               "icon": "dashboard",
               "order": 2,
               "disabled": false,
               "hidden": false
           }
        ]
        

        Wenn Du mit Inject und function Node arbeiten willst, dann musst Du halt wieder codieren und schauen, von welcher Node die Nachricht kommt und dann im Kontext speichern. Würde ich Dir aber nicht raten, da meine Lösung viel einfacher ist.

        B 1 Reply Last reply Reply Quote 0
        • B
          Black-jocker @mickym last edited by

          @mickym
          Danke. Probiere ich mal aus.
          Aber anstatt vielleicht den Wert regelmäßig zu senden, (was unnötigen Traffic erzeugt) könnte auch der Schalter als Trigger genutzt werden.
          Wäre das Logischste, da wenn der Schalter betätigt wird, genau dann der Wert vorhanden sein soll.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Black-jocker last edited by

            @black-jocker Natürlich kannst Du auch einen Schalter oder Button als Trigger nutzen. Wie immer die Logik musst Du Dir vorher überlegen, ob das sinnvoll ist - die Umsetzung in NodeRed sollte immer der Logik folgen, die man sich vorher überlegt und nicht die Nodes verwenden ohne sich über die Logik Gedanken machen.

            B 1 Reply Last reply Reply Quote 0
            • B
              Black-jocker @mickym last edited by

              @mickym
              Wie könnte ich den vorhandenen Schalter als Trigger verwenden?
              Als „If then“ in der Funktion 7 hinzufügen?
              Leider weiß ich nicht wie ich das machen kann.

              mickym F 2 Replies Last reply Reply Quote 0
              • mickym
                mickym Most Active @Black-jocker last edited by mickym

                @black-jocker Ich weiß zwar nicht welcher Schalter und welche Funktion 7 - aber wenn Du unbedingt mit function Nodes programmieren willst, dann kannst Du doch anhand des topics herausfinden, woher eine Nachricht stammt und diese dann in eine if else Abfrage einbauen.

                if (msg.topic === "Schalter"){
                    //mach was 
                }
                return msg;
                

                Ansonsten programmiert man aber nicht, sondern verzweigt seinen Flow mit switch Nodes.

                1 Reply Last reply Reply Quote 0
                • F
                  Felli @Black-jocker last edited by

                  @black-jocker wo kommt denn der Wert her? Also da ich mit IoBroker arbeite, Versuche ich stets die Werte dort zentral zu holen, mittels Adapter Integrationen, per MQTT usw. Diese werden ja zwangsweise automatisch bei Änderung oder nach Intervallen aktualisiert je nachdem. Wenn ich nun in NodeRed eine Logik baue die einen Wert oder Schaltzustand als Trigger nutzt, nehme ich gerne einen iorboker IN node. Dieser erhält einen Wert, sobald er sich in IoBroker ändert. Hinter diesem kann man dann per Switch oder Function damit eine Aktion starten. Je nachdem was es ist, natürlich was zum entprellen einbauen, damit deinem Relais im Zweifelsfall nicht schwindelig wird 😵‍💫😉

                  Hier mal ein Beispiel, wie ich den DPL nach Zustand ByPass meines Zenduresystems schalte. Sobald dieser auf true geht, sage ich der DTU SolarPassthrough also Mode 2 und wenn false bekommt sie Mode 0 also Normalbetrieb. Diese Logik würde schon fast zu Deinem Usecase passen, nur wäre deine Abhängigkeit halt der Batterie-Stand wenn ich es richtig verstehe. Der Rest steckt in dem Subflow, finde das übersichtlicher.

                  Screenshot_20250517-100200.png

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

                    @felli sein node-red läuft auf einer victron cerbro und da läuft kein iobroker.

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

                      @mickym danke habe ich verstanden 😜 Sollte auch als Beispiel dienen, irgendwie kommt der Wert ja in sein NodeRed und in seinem Falle würde ich den dann als Trigger nutzen. Sorry wenn das nicht zu 100% rüber kam ✌🏼

                      1 Reply Last reply Reply Quote 0
                      • P
                        peterfido last edited by peterfido

                        @black-jocker Den Wert bei Änderung / Aktualisierung in einer Flow Variable ablegen und nur diese einfach per wiederholendem Trigger weitersenden. Dann macht das auch nichts, wenn der Trigger direkt mit dem Schalter evtl. zu früh kommt, weil nach dem Schalten evtl. noch irgendwas zeitbrauchendes passiert.

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          Black-jocker @peterfido last edited by Black-jocker

                          Danke für eure Antworten.

                          Ich habe es jetzt über ein Swtich Node hinbekommen.
                          Der Wert kommt über das Dashboard, einen Numeric Node.

                          Flow.JPG

                          @mickym: Dein Ansatz gefällt mir, grundsätzlich alles mit Nodes abzubilden und nicht unbedingt in functions zu programmieren. Das ist wohl auch der grundsätzliche Gedanke von Node Red.

                          Mein Wissen über Node red basiert auf learning by doing sowie aus ein paar youTube Videos. In den Videos wurde viel mit functions programmiert.
                          Ich habe einen Automatisierungs-Background, d.h. ich habe mal SPS programmiert und im Studium mal etwas Java. Aber meine Java Kenntnisse würde ich als sehr rudimentär bezeichnen.

                          Welche Lektüre oder Webseite könnt ihr mir empfehlen um sich mal grundsätzlich mit Node Red vertraut zu machen?

                          Ich möchte noch eine paar Dinge auf meinem Dashboard abbilden, wie zum Beispiel die Signalstärke/ den Verbindungsstatus eines Teltonika RUTX 50 Router. Aber das ist wohl für einen Anfänger schon sehr ambitioniert.
                          Vielleicht stelle ich noch die eine oder andere Frage hier im Forum dazu 🙂

                          mickym F 2 Replies Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Black-jocker last edited by mickym

                            @black-jocker sagte in Node red Wert regelmäßig senden:

                            Welche Lektüre oder Webseite könnt ihr mir empfehlen um sich mal grundsätzlich mit Node Red vertraut zu machen?

                            Ich würde nach wie vor das Tutorial von Steve empfehlen, auch wenn es in Englisch ist:

                            https://stevesnoderedguide.com/
                            https://www.youtube.com/watch?v=jWjyIz4Jz58

                            Deutschsprachig gibts eine kleine Turorialreihe auch mit dem iobroker - auch wenn das inzwischen auch schon in die Jahre gekommen ist:
                            https://www.smarthome-tricks.de/uebersicht-iobroker-node-red/

                            Im Prinzip brauchst Du anstelle von function Nodes in der Regel nur Change Nodes, um Deine Nachrichtenobjekte zu verändern und switch Nodes um Deinen Flow mit Bedingungen zu versehen.

                            Dazwischen sind Input/Trigger Nodes aus dem Dashboard oder aus verschiedenen Systemen und Ausgaben wiederum auf Dashboard oder zum Steuern in Systeme hinein.

                            Deshalb muss Dein Logik immer sein.

                            1. Was triggert meinen Flow
                            2. Was will ich ausgeben und/oder steuern

                            Und dazwischen bildest Du 3. Deine Logik ab - in dem Du die Nachrichtenobjekte entsprechende behandelst.

                            1 Reply Last reply Reply Quote 0
                            • F
                              Felli @Black-jocker last edited by

                              @black-jocker ich habe null Plan von Javascript aber mit Programmierung von CNC Maschinen. Daher ist das logische denken nicht das Problem wie bei dir, ich brauche nur jemand der die Sprache spricht. Habe mir selbst an der Stelle viel mit KI geholfen muss ich sagen. Der große Vorteil den ich in function nodes sehe, ist halt das man komplexere Szenarien in einem Flow erschlagen kann, anstatt zig switch und Change nodes. Aber das muss jeder selbst rausfinden was man besser gehandelt bekommt.

                              Top das es läuft, freut mich 🤙🏼

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

                                @felli Man kann auch komplexere Flows mit Nodes realisieren und das muss nicht unübersichtlich sein - man kann auch Subflows verwenden.
                                f625f58a-5392-4e30-b875-c65e065e5dd2-image.png

                                Du kannst auch jeden Flow in einer function Node realisieren - nur das hat halt nichts mehr mit den Vorteilen einer wartungsfreundlichen grafischen Programmierung zu tun.

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

                                  @mickym habe mich falsch ausgedrückt sorry meinte nicht in einem einzelnen Flow sondern einem einzelnen node sorry. Wenn ich mehr als einen Wert in der Logik habe die am Ende entscheiden ob true oder false z.B. nehme ich gerne function nodes, in anderen Fällen arbeite ich ebenso gerne mit Switch - Change usw. Aber am Ende doch egal, jeder macht es so wie es ihm am besten passt und es übersichtlich bleibt. Eine Funktion im Flow ist natürlich Blödsinn das war echt falsch gegriffen das Wort, dann kann man tatsächlich direkt in einem Script hexen 🤣

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

                                    @felli Ein Function Node ist halt auch wesentlich schwieriger zu debuggen - Du musst mit node.warn arbeiten etc., wenn Deine Logik in der function Node nicht funktioniert.
                                    In einem Flow kannst Du einfach das Kabel trennen oder irgendwo eine Debug Node hinmachen.
                                    Function Nodes nutze ich wirklich nur, wenn ich einen Nodekontext benötige, ggf. andere NodeJS Funktionen nutze möchte. Je länger ich mit NodeRed arbeite, desto mehr habe ich function Nodes ersetzt.

                                    Wenn ich mehr als einen Wert in der Logik habe die am Ende entscheiden ob true oder false z.B. nehme ich gerne function nodes,

                                    Gerade hier ist das grafische Arbeiten von Vorteil, in dem man die Bedingungen als switches implementiert. Ordnet man diese nun parallel oder seriell an, hat man sofort den Überblick ob man mit UND oder ODER verknüpft hat und diese Bedingungen sind leichter zu durchschauen oder zu debuggen.

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

                                      @mickym da hat du Recht aber wenns einmal läuft ist es auch gut. Wie gesagt ich nutze es oft bei einfachen Logiken mit Switch und Change aber z.B. bei einer dynamischen Berechnung der Ladeleistung aus Überschuss inkl Flow Kontext komme ich einfach nicht an der Function vorbei. Lerne hier aber auch mega gerne von Profis ehrlich gesagt, ich bin bei den Sachen noch halbwegs grün hinter den Ohren 😵‍💫🤣

                                      Schau dir gerne mal mein Werk an, ist nicht der letzte Stand aber groß hat sich hier nichts mehr geändert.

                                      https://github.com/Felliglanz/Zendure

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

                                        @felli Na schaut schön übersichtlich aus. 👍 😄 - jedenfalls sollte man gerade, wenn man Anfänger Tipps gibt - diesen das Codeschreiben nicht unbedingt angewöhnen und ja ich weiß, dass wenn man im Netz nach Beispielen sucht, die meisten codieren und ChatGPT codiert sowieso am liebsten, da es die Node nicht wirklich malen kann. 😉

                                        Aber gut - ich denke es wurde genügend Argumente ausgetauscht und am Ende zählt das Ergebnis. Nur wie gesagt, man sollte halt das Debuggen und das Verstehen bei der Fehlersuche immer mitbedenken, da dies in meinen Augen halt ein fundamental und wesentlicher Vorteil dieser grafischen Programmierung ist.

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

                                          @mickym ich bin doch hier vollkommen bei Dir und habe auch nicht das Gegenteil empfohlen 😜

                                          Schau in meinen Flow und die Subflows ich nutze beides und immer so wie es muss. Am liebsten mag ich es pragmatisch und einfach und das besonders weil ich auch erst vor kurzem wirklich intensiv angefangen habe mit NodeRed und IoBroker. Aber für so einen Austausch ist ein Forum doch da, alle Meinungen in einen Pott und am Ende kommt hoffentlich was lauffähiges raus 😵‍💫😉

                                          Danke das dir mein Werk gefällt habe auch Monate dran gefeilt ... Aber es läuft mehr soll es ja auch nicht.

                                          By the way, der FC ist wieder erstklassig 🎉🍻

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          690
                                          Online

                                          31.7k
                                          Users

                                          79.7k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          19
                                          430
                                          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