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 Werte addieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node Red Werte addieren

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

      @_r_a_l_f_ sagte in Node Red Werte addieren:

      @mickym Da kommt leider undefined im Payload Ergebnis. Ich habe statt ' mal " genommen und so klappts. Vielen Dank für die schnelle Hilfe 😉

      Ja manchmal muss ich auch probieren. 😉 - Im Übrigen von @Marc-Berg s Lösung - kürze ich die topics meist bevor ich die Datenpunkte in einem Objekt zusammenfasse.

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

        Hänge mich mir mal rein da ich fast das gleiche vorhabe.
        Habe zum ersten mal mit node red zu tun.

        Möchte von meinem Stromzähler den ich über den iobroker laufen habe von L1 +L2+L3 zusammen adieren lassen damit ich ein Gesamtverbrauch habe in Watt und diesen Wert dann weiterverwenden kann.
        Später mal mit Grafana.

        Kann mir da mal einer helfen wie ich das anstelle soll.

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

          @siporax Wie im Anfang Posting beschrieben, alle werte L1-L3 in eine Eigenschaft des Nachrichtenobjektes sammeln und dann zusammenzählen. Über das Attribut kannst Du ja jeden Wert einer anderen Nachrichteneigenschaft zuweisen.

          8bd773b5-9d91-4d0c-8262-4920e0321307-image.png

          Hier zum Import:

          [
             {
                 "id": "a872a7ba51fd3484",
                 "type": "inject",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "props": [
                     {
                         "p": "trigger",
                         "v": "true",
                         "vt": "bool"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "x": 150,
                 "y": 4320,
                 "wires": [
                     [
                         "256da960d23f9755"
                     ]
                 ]
             },
             {
                 "id": "256da960d23f9755",
                 "type": "ioBroker get",
                 "z": "7e6af0015415146d",
                 "name": "L1",
                 "topic": "0_userdata.0.test0.test.temperature:100",
                 "attrname": "L1",
                 "payloadType": "value",
                 "errOnInvalidState": "nothing",
                 "x": 290,
                 "y": 4320,
                 "wires": [
                     [
                         "a4730fef776c6647"
                     ]
                 ]
             },
             {
                 "id": "a4730fef776c6647",
                 "type": "ioBroker get",
                 "z": "7e6af0015415146d",
                 "name": "L2",
                 "topic": "0_userdata.0.test0.test.temperature:101",
                 "attrname": "L2",
                 "payloadType": "value",
                 "errOnInvalidState": "nothing",
                 "x": 430,
                 "y": 4320,
                 "wires": [
                     [
                         "9685e5e1edcb1ba4"
                     ]
                 ]
             },
             {
                 "id": "c5166dda9c56917b",
                 "type": "debug",
                 "z": "7e6af0015415146d",
                 "name": "Summe",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 800,
                 "y": 4320,
                 "wires": []
             },
             {
                 "id": "9685e5e1edcb1ba4",
                 "type": "change",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "L1 + L2",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 610,
                 "y": 4320,
                 "wires": [
                     [
                         "c5166dda9c56917b"
                     ]
                 ]
             }
          ]
          

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

            habs mal so importiert denke ich muss die L1 bis L3 über Topic neu zuweisen da meine Adressen ja andere sind.
            Was muss ich da noch ändern das es passt.

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

              @siporax Na da ,musst halt die Datenpunkte angeben aus den Du es auslesen willst. Ich hab doch keine Ahnung wo Du Deine Werte her holst.

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

                @mickym hole sie vom iobroker über dem modbus adapter.
                Habe ich hinbekommen und um den L3 Erweitert.


                [
                {
                "id": "02ad8ca016888437",
                "type": "tab",
                "label": "Flow 1",
                "disabled": false,
                "info": "",
                "env": []
                },
                {
                "id": "a872a7ba51fd3484",
                "type": "inject",
                "z": "02ad8ca016888437",
                "name": "",
                "props": [
                {
                "p": "trigger",
                "v": "true",
                "vt": "bool"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "x": 190,
                "y": 240,
                "wires": [
                [
                "256da960d23f9755"
                ]
                ]
                },
                {
                "id": "256da960d23f9755",
                "type": "ioBroker get",
                "z": "02ad8ca016888437",
                "name": "Netzbezug L1",
                "topic": "modbus.0.inputRegisters.100.820_Netzbezug_L1",
                "attrname": "L1",
                "payloadType": "value",
                "errOnInvalidState": "nothing",
                "x": 360,
                "y": 240,
                "wires": [
                [
                "a4730fef776c6647"
                ]
                ]
                },
                {
                "id": "a4730fef776c6647",
                "type": "ioBroker get",
                "z": "02ad8ca016888437",
                "name": "Netzbezug L2",
                "topic": "modbus.0.inputRegisters.100.821_Netzbezug_L2",
                "attrname": "L2",
                "payloadType": "value",
                "errOnInvalidState": "nothing",
                "x": 500,
                "y": 240,
                "wires": [
                [
                "d04d571a8162877c"
                ]
                ]
                },
                {
                "id": "c5166dda9c56917b",
                "type": "debug",
                "z": "02ad8ca016888437",
                "name": "Summe",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 1060,
                "y": 240,
                "wires": []
                },
                {
                "id": "9685e5e1edcb1ba4",
                "type": "change",
                "z": "02ad8ca016888437",
                "name": "",
                "rules": [
                {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "L1 + L2",
                "tot": "jsonata"
                }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 870,
                "y": 240,
                "wires": [
                [
                "c5166dda9c56917b"
                ]
                ]
                },
                {
                "id": "d04d571a8162877c",
                "type": "ioBroker get",
                "z": "02ad8ca016888437",
                "name": "Netzbezug L3",
                "topic": "modbus.0.inputRegisters.100.822_Netzbezug_L3",
                "attrname": "L3",
                "payloadType": "value",
                "errOnInvalidState": "nothing",
                "x": 660,
                "y": 240,
                "wires": [
                [
                "9685e5e1edcb1ba4"
                ]
                ]
                }
                ]

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

                  @siporax Na freut mich. Noch ein Tipp: wenn Du ein Flow zum Import bereitstellen willst - dann musst Du das über CodeTags machen, sonst verfälscht der Browser den Code.

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

                    @mickym

                    code_text
                    ```[
                        {
                            "id": "02ad8ca016888437",
                            "type": "tab",
                            "label": "Flow 1",
                            "disabled": false,
                            "info": "",
                            "env": []
                        },
                        {
                            "id": "a872a7ba51fd3484",
                            "type": "inject",
                            "z": "02ad8ca016888437",
                            "name": "",
                            "props": [
                                {
                                    "p": "trigger",
                                    "v": "true",
                                    "vt": "bool"
                                }
                            ],
                            "repeat": "",
                            "crontab": "",
                            "once": false,
                            "onceDelay": 0.1,
                            "topic": "",
                            "x": 190,
                            "y": 240,
                            "wires": [
                                [
                                    "256da960d23f9755"
                                ]
                            ]
                        },
                        {
                            "id": "256da960d23f9755",
                            "type": "ioBroker get",
                            "z": "02ad8ca016888437",
                            "name": "Netzbezug L1",
                            "topic": "modbus.0.inputRegisters.100.820_Netzbezug_L1",
                            "attrname": "L1",
                            "payloadType": "value",
                            "errOnInvalidState": "nothing",
                            "x": 360,
                            "y": 240,
                            "wires": [
                                [
                                    "a4730fef776c6647"
                                ]
                            ]
                        },
                        {
                            "id": "a4730fef776c6647",
                            "type": "ioBroker get",
                            "z": "02ad8ca016888437",
                            "name": "Netzbezug L2",
                            "topic": "modbus.0.inputRegisters.100.821_Netzbezug_L2",
                            "attrname": "L2",
                            "payloadType": "value",
                            "errOnInvalidState": "nothing",
                            "x": 500,
                            "y": 240,
                            "wires": [
                                [
                                    "d04d571a8162877c"
                                ]
                            ]
                        },
                        {
                            "id": "c5166dda9c56917b",
                            "type": "debug",
                            "z": "02ad8ca016888437",
                            "name": "Summe",
                            "active": true,
                            "tosidebar": true,
                            "console": false,
                            "tostatus": false,
                            "complete": "payload",
                            "targetType": "msg",
                            "statusVal": "",
                            "statusType": "auto",
                            "x": 1060,
                            "y": 240,
                            "wires": []
                        },
                        {
                            "id": "9685e5e1edcb1ba4",
                            "type": "change",
                            "z": "02ad8ca016888437",
                            "name": "",
                            "rules": [
                                {
                                    "t": "set",
                                    "p": "payload",
                                    "pt": "msg",
                                    "to": "L1 + L2 + L3",
                                    "tot": "jsonata"
                                }
                            ],
                            "action": "",
                            "property": "",
                            "from": "",
                            "to": "",
                            "reg": false,
                            "x": 870,
                            "y": 240,
                            "wires": [
                                [
                                    "c5166dda9c56917b"
                                ]
                            ]
                        },
                        {
                            "id": "d04d571a8162877c",
                            "type": "ioBroker get",
                            "z": "02ad8ca016888437",
                            "name": "Netzbezug L3",
                            "topic": "modbus.0.inputRegisters.100.822_Netzbezug_L3",
                            "attrname": "L3",
                            "payloadType": "value",
                            "errOnInvalidState": "nothing",
                            "x": 660,
                            "y": 240,
                            "wires": [
                                [
                                    "9685e5e1edcb1ba4"
                                ]
                            ]
                        }
                    ]
                    S 1 Reply Last reply Reply Quote 0
                    • S
                      siporax @siporax last edited by

                      so besser habe den Payload um den L3 noch erweitert ich hoffe das wahr richtig.

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

                        @siporax Ja das passt schon

                        9791c5e6-4229-400f-97b4-517d508c8260-image.png

                        ABER - das mit den Codetags hast Du noch nicht richtig raus - da soll kein ''' und auch kein anderer Text drin stehen:

                        [
                           {
                               "id": "1ce484e909033214",
                               "type": "inject",
                               "z": "7c4414c4c9653e12",
                               "name": "",
                               "props": [
                                   {
                                       "p": "trigger",
                                       "v": "true",
                                       "vt": "bool"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "x": 170,
                               "y": 240,
                               "wires": [
                                   [
                                       "bfe50d1b1619adbc"
                                   ]
                               ]
                           },
                           {
                               "id": "bfe50d1b1619adbc",
                               "type": "ioBroker get",
                               "z": "7c4414c4c9653e12",
                               "name": "Netzbezug L1",
                               "topic": "modbus.0.inputRegisters.100.820_Netzbezug_L1",
                               "attrname": "L1",
                               "payloadType": "value",
                               "errOnInvalidState": "nothing",
                               "x": 320,
                               "y": 240,
                               "wires": [
                                   [
                                       "91fe785f62b94a4f"
                                   ]
                               ]
                           },
                           {
                               "id": "91fe785f62b94a4f",
                               "type": "ioBroker get",
                               "z": "7c4414c4c9653e12",
                               "name": "Netzbezug L2",
                               "topic": "modbus.0.inputRegisters.100.821_Netzbezug_L2",
                               "attrname": "L2",
                               "payloadType": "value",
                               "errOnInvalidState": "nothing",
                               "x": 500,
                               "y": 240,
                               "wires": [
                                   [
                                       "905a755e72a8bbdb"
                                   ]
                               ]
                           },
                           {
                               "id": "1f07146054b4751b",
                               "type": "debug",
                               "z": "7c4414c4c9653e12",
                               "name": "Summe",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 1060,
                               "y": 240,
                               "wires": []
                           },
                           {
                               "id": "bc706d15e6b47333",
                               "type": "change",
                               "z": "7c4414c4c9653e12",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "L1 + L2 + L3",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 870,
                               "y": 240,
                               "wires": [
                                   [
                                       "1f07146054b4751b"
                                   ]
                               ]
                           },
                           {
                               "id": "905a755e72a8bbdb",
                               "type": "ioBroker get",
                               "z": "7c4414c4c9653e12",
                               "name": "Netzbezug L3",
                               "topic": "modbus.0.inputRegisters.100.822_Netzbezug_L3",
                               "attrname": "L3",
                               "payloadType": "value",
                               "errOnInvalidState": "nothing",
                               "x": 680,
                               "y": 240,
                               "wires": [
                                   [
                                       "bc706d15e6b47333"
                                   ]
                               ]
                           }
                        ]
                        

                        Wenn Du das sauber machst - kann man mit einem Klick auf Select All

                        454692de-7500-4e8e-8016-951e2d80e1da-image.png

                        alles markieren und in die Zwischenablage kopieren.

                        Also alles gut - aber für dir Zukunft einfach etwas benutzerfreundlicher machen.

                        S 1 Reply Last reply Reply Quote 1
                        • S
                          siporax @mickym last edited by

                          @mickym Werte kommen rein über L1 bis L3 aber kein Ergebnis dazu

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

                            @siporax Du solltest doch im Status der Nodes die Werte sehen. Du kannst Dir ja mal in der Debug Node - das komplette Nachrichtenobjekt Dir ausgeben lassen.

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

                              @mickym node red 2.JPG

                              Ist das soweit dann richtig?

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

                                @siporax Ja klar - Du siehst doch was ausgelesen wird.

                                1468 + 102 + 6 = 1576

                                Das passt doch?

                                71f12604-23ec-4022-99c7-1c5235d8ab92-image.png

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

                                  @mickym Ja du hast recht wie läuft das nun automatisch ab ich muss ja immer vorne das anklicken das es gezählt wird

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

                                    @siporax Du kannst entweder in der Inject Node festlegen, dass die in bestimmten Zeiten selbstständig feuert oder die Frage ist ob die Punkte selbst feuern sollen. Das ist aber Logik. Du könntest auch sagen, wenn sich der Wert L3 ändert, dann sollen die anderen beiden geholt werden. Ich habe da keine Ahnung. Das musst Du halt alles genau sagen, was Du willst. Wie gesagt - das einfachste ist, dass Du die Inject Node in best. zeitlichen Abständen feuern lässt, aber ob das sinnvoll ist, kannst nur Du entscheiden.
                                    40834740-47e4-4a8c-8dc8-3250335bab6a-image.png
                                    Ich kann Dir nur helfen, aber das was Du willst musst Du schon genau formulieren.

                                    Die Inject Node kann auch nur zu bestimmten Zeiten feuern - Du musst Dich nur mit den Fähigkeiten der Node beschäftigen.

                                    In der Regel gibt es zu jeder Node eine Hilfe:

                                    aab8c949-c04e-4966-9213-323e2f4cc916-image.png

                                    Man könnte den Flow auch so modifizieren, dass die Summen erst gebildet werden, wenn ERST ALLE 3 Datenpunkte aktualisiert wurden (also keine fixen Zeitintervalle). Dann würde man den Flow anders aufbauen. - Aber wie gesagt Du musst sagen, was Du willst.

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

                                      @mickym Okay verstanden das muss ich mir noch überlegen mir geht nur um die ANzeige denke jede Minute langt wird ja nicht gespeicher ist nur eine Anzeige.
                                      Kann ich mir das auch wieder in den Iobroker zurückschreiben lassen den Wert ?
                                      Soll zwar über Grafana später mal angezeigt werden aber soweit bin ich noch nicht.

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

                                        @siporax sagte in Node Red Werte addieren:

                                        Kann ich mir das auch wieder in den Iobroker zurückschreiben lassen den Wert ?

                                        Ja Du kannst die payload mit der iobroker-Out Node wieder zurückschreiben. In dem Topic gibst Du wieder den Pfad zum Datenpunkt ein. Wenn es nur ein Wert ist und Du nichts steuern willst (also im Blockly aktualisiere) dann schreibst Du den Wert als Typ value zurück, falls Du was steuern willst - also unbestätigt - entspricht im Blockly steuere, dann schreibst Du es als Typ command in den Datenpunkt.

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

                                          @mickym jetzt wird es kompliziert für den alten Mann .

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

                                            @siporax sagte in Node Red Werte addieren:

                                            Soll zwar über Grafana später mal angezeigt werden aber soweit bin ich noch nicht.

                                            So lange ist der Weg nicht. Wenn Du einen Datenpunkt unter 0_userdata.0 anlegst und dann mit der iobroker-out Node beschreibst, dann brauchst Du nur wenn mit dem entsprechenden Adapter die Historie in eine Datenbank schreiben, also SQL oder Influx-DB usw. Grafana fragt dann nur diese Datenbank ab und visualisiert das dann.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            659
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            62
                                            24399
                                            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