Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node Red Werte addieren

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

Node Red Werte addieren

Geplant Angeheftet Gesperrt Verschoben Node-Red
62 Beiträge 9 Kommentatoren 29.1k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #53

    Und was ist nun Deine Frage? Die letzte Version sollte doch immer funktionieren auch ohne dass Du die Inject Node betätigst.

    Bei der Variante mit der functionNode hole ich mir die Daten mit der ioB-in-Node, mit Join verbinden und in der functionNode berechnen. Nur das Berechnen funktioniert bei mir erst dann vollständig, wenn mindestens alle 3 Datenpunkte einmal aktualisiert wurden.

    Gleiches scheint bei der Variante 2x changeNode von @mickym zu sein.

    Dann musst halt die iobroker IN Node so konfigurieren, dass sie zu Beginn - wenn der Flow startet die Werte ausliest.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    DancerVlt69D 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      Und was ist nun Deine Frage? Die letzte Version sollte doch immer funktionieren auch ohne dass Du die Inject Node betätigst.

      Bei der Variante mit der functionNode hole ich mir die Daten mit der ioB-in-Node, mit Join verbinden und in der functionNode berechnen. Nur das Berechnen funktioniert bei mir erst dann vollständig, wenn mindestens alle 3 Datenpunkte einmal aktualisiert wurden.

      Gleiches scheint bei der Variante 2x changeNode von @mickym zu sein.

      Dann musst halt die iobroker IN Node so konfigurieren, dass sie zu Beginn - wenn der Flow startet die Werte ausliest.

      DancerVlt69D Offline
      DancerVlt69D Offline
      DancerVlt69
      schrieb am zuletzt editiert von
      #54

      Die Frage steht im Post @mickym : was mache ich falsch oder habe ich übersehen, dass die ersten beiden Varianten nicht so funktionieren, wie sie eigentlich sollen/sollten.

      ioB-In-Node 'richtig' konfigurieren: jo, aber wie, denn in allen 3 Varianten ist die selbe Node, nur mit unterschiedlicher Datenpunktabfrage. Alle 9 sind per copy & paste 'entstanden' aber jeweils nur die für L2 wird sofort abgefragt/eingelesen, die für L1 und L3 erst, wenn sich Daten ändern.

      Und ja, die dritte Variante funktioniert so wie sie ist, nur das kann ja nicht die 'korrekte' Lösung sein, nur weil sie (zufällig) funktioniert. Denke ich zumindest mal. Wie erwähnt, meine Kenntnisse in Sachen ioB, Blockly, JS und Node-Red stecken noch in den Kinderschuhen. Da ist man, zumindest ich, doch recht Dankbar, wenn man den einen oder anderen Tipp bekommt, oder zumindest mit der Nase draufgestoßen wird, wo das Problem liegt. Ganze Lösungen müssen es ja nicht sein, will schließlich noch was lernen, auch debugging will erst mal gelernt sein...

      mickymM 1 Antwort Letzte Antwort
      0
      • DancerVlt69D DancerVlt69

        Die Frage steht im Post @mickym : was mache ich falsch oder habe ich übersehen, dass die ersten beiden Varianten nicht so funktionieren, wie sie eigentlich sollen/sollten.

        ioB-In-Node 'richtig' konfigurieren: jo, aber wie, denn in allen 3 Varianten ist die selbe Node, nur mit unterschiedlicher Datenpunktabfrage. Alle 9 sind per copy & paste 'entstanden' aber jeweils nur die für L2 wird sofort abgefragt/eingelesen, die für L1 und L3 erst, wenn sich Daten ändern.

        Und ja, die dritte Variante funktioniert so wie sie ist, nur das kann ja nicht die 'korrekte' Lösung sein, nur weil sie (zufällig) funktioniert. Denke ich zumindest mal. Wie erwähnt, meine Kenntnisse in Sachen ioB, Blockly, JS und Node-Red stecken noch in den Kinderschuhen. Da ist man, zumindest ich, doch recht Dankbar, wenn man den einen oder anderen Tipp bekommt, oder zumindest mit der Nase draufgestoßen wird, wo das Problem liegt. Ganze Lösungen müssen es ja nicht sein, will schließlich noch was lernen, auch debugging will erst mal gelernt sein...

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #55

        @dancervlt69 Nochmal die join node funktioniert - nur ist es richtig, dass erst mit allen 3 verschiedenen Werten initialisiert werden muss - weil sonst ja das Ergebnis Unsinn ist. Wenn man darauf nicht warten will konfiguriert man die iobroker-In NOde so, dass sie zu Beginn die Werte auslesen.

        Dazu müssen die iobroker-In Nodes sofort die Werte nachdem der Flow gestartet wird auslesen, wenn man nicht warten will.

        f52717ee-17b4-4ea9-996f-0d476c5283ca-image.png

        Anschließend - wenn die JOIN Node mit allen unterschiedlichen Werten initialisiert wurde, kann man die JOIN Node so konfigurieren, dass jedes weitere Update eine Nachricht erzeugt.

        07b96247-4a45-4d1b-8450-31b37e8e9cf2-image.png

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        derAugeD 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @dancervlt69 Nochmal die join node funktioniert - nur ist es richtig, dass erst mit allen 3 verschiedenen Werten initialisiert werden muss - weil sonst ja das Ergebnis Unsinn ist. Wenn man darauf nicht warten will konfiguriert man die iobroker-In NOde so, dass sie zu Beginn die Werte auslesen.

          Dazu müssen die iobroker-In Nodes sofort die Werte nachdem der Flow gestartet wird auslesen, wenn man nicht warten will.

          f52717ee-17b4-4ea9-996f-0d476c5283ca-image.png

          Anschließend - wenn die JOIN Node mit allen unterschiedlichen Werten initialisiert wurde, kann man die JOIN Node so konfigurieren, dass jedes weitere Update eine Nachricht erzeugt.

          07b96247-4a45-4d1b-8450-31b37e8e9cf2-image.png

          derAugeD Offline
          derAugeD Offline
          derAuge
          schrieb am zuletzt editiert von
          #56

          Bei meinem Projekt muss ich auch die Einzelwerte (L1,L2,L3) zu einer Summe errechnen.
          Meine Werte werden vom CerboGX verarbeitet und dann an den ioBroker per MQTT gesendet.
          b62aa8b5-80fd-427a-a68f-cf5dedad4bf5-image.png
          Im "change" habe ich dann noch den Path angepasst
          29b147a1-2c1a-478b-8d79-71da0104e99a-image.png
          So sieht es dann bei mir aus.
          6109085c-724f-45a0-aaa6-e3f0293bc37e-image.png
          Danke für die Informationen @mickym

          Gruß
          Jürgen

          K 1 Antwort Letzte Antwort
          0
          • derAugeD derAuge

            Bei meinem Projekt muss ich auch die Einzelwerte (L1,L2,L3) zu einer Summe errechnen.
            Meine Werte werden vom CerboGX verarbeitet und dann an den ioBroker per MQTT gesendet.
            b62aa8b5-80fd-427a-a68f-cf5dedad4bf5-image.png
            Im "change" habe ich dann noch den Path angepasst
            29b147a1-2c1a-478b-8d79-71da0104e99a-image.png
            So sieht es dann bei mir aus.
            6109085c-724f-45a0-aaa6-e3f0293bc37e-image.png
            Danke für die Informationen @mickym

            Gruß
            Jürgen

            K Offline
            K Offline
            kla960
            schrieb am zuletzt editiert von
            #57

            Ich nutze join wie hier beschrieben zum addieren von Leistungswerten. Jetzt ist darunter ein BKW, welches natürlich nach Sonnenuntergang keine Werte mehr liefert. Somit erfolgt auch keine Addition der anderen Werte mehr. Debug liefert dann folgende Meldung:

            "Ungültiger JSONata Ausdruck: The right side of the "+" operator must evaluate to a number"

            Mir fällt gerade keine Lösung ein hier bei fehlenden Werten eine 0 einzusetzen. Jemand eine Idee?

            mickymM 1 Antwort Letzte Antwort
            0
            • K kla960

              Ich nutze join wie hier beschrieben zum addieren von Leistungswerten. Jetzt ist darunter ein BKW, welches natürlich nach Sonnenuntergang keine Werte mehr liefert. Somit erfolgt auch keine Addition der anderen Werte mehr. Debug liefert dann folgende Meldung:

              "Ungültiger JSONata Ausdruck: The right side of the "+" operator must evaluate to a number"

              Mir fällt gerade keine Lösung ein hier bei fehlenden Werten eine 0 einzusetzen. Jemand eine Idee?

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #58

              @kla960 du filterst einfach mit einer switch node. lasse nur Nachrichten durch vom Typ number bzw. alternativ halt wie du geschrieben hast, wenn keine Zahl über eine change node auf 0 setzen. Anstelle mit einer Change Node zu addieren, kann man das ganze auch mit einer weiteren JOIN Node nochmals addieren.
              Also entweder zu Beginn an der Triggerquelle filtern:
              fe4f71b0-d936-4fd0-ab6e-0734cc5a0fff-image.png
              oder wenn man bereits ein Objekt hat, das wieder auseinanderreisen und mit einer JOIN Node aufaddieren.

              886f2795-0ca2-40cc-921f-6a1d85c2d5c5-image.png

              5b217520-2b6a-4fcc-9d29-f446c9709fad-image.png

              [
                 {
                     "id": "c529cc59f4628936",
                     "type": "inject",
                     "z": "517cd16e4d7e6ae4",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "{\"L1\":20,\"L2\":null,\"L3\":40}",
                     "payloadType": "json",
                     "x": 270,
                     "y": 7140,
                     "wires": [
                         [
                             "8cca54bb3a90b513",
                             "e62f9f2cf4527653",
                             "6076f122486577cc"
                         ]
                     ]
                 },
                 {
                     "id": "8cca54bb3a90b513",
                     "type": "debug",
                     "z": "517cd16e4d7e6ae4",
                     "name": "Objekt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 450,
                     "y": 7080,
                     "wires": []
                 },
                 {
                     "id": "e62f9f2cf4527653",
                     "type": "change",
                     "z": "517cd16e4d7e6ae4",
                     "name": "erzeugt Fehler",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.L1 + payload.L2 + payload.L3",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 480,
                     "y": 7140,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "6076f122486577cc",
                     "type": "split",
                     "z": "517cd16e4d7e6ae4",
                     "name": "",
                     "splt": "\\n",
                     "spltType": "str",
                     "arraySplt": 1,
                     "arraySpltType": "len",
                     "stream": false,
                     "addname": "",
                     "x": 450,
                     "y": 7200,
                     "wires": [
                         [
                             "b1eba9d170a5804b",
                             "6bfd9422469622ee"
                         ]
                     ]
                 },
                 {
                     "id": "b1eba9d170a5804b",
                     "type": "debug",
                     "z": "517cd16e4d7e6ae4",
                     "name": "Einzelwerte",
                     "active": false,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 610,
                     "y": 7240,
                     "wires": []
                 },
                 {
                     "id": "6bfd9422469622ee",
                     "type": "change",
                     "z": "517cd16e4d7e6ae4",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$type(payload) = \"number\" ? payload : 0\t",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 630,
                     "y": 7200,
                     "wires": [
                         [
                             "5952436440189cef",
                             "af7d6bdc891fb2f5"
                         ]
                     ]
                 },
                 {
                     "id": "5952436440189cef",
                     "type": "debug",
                     "z": "517cd16e4d7e6ae4",
                     "name": "Typprüfung und ggf. 0",
                     "active": false,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 860,
                     "y": 7240,
                     "wires": []
                 },
                 {
                     "id": "af7d6bdc891fb2f5",
                     "type": "join",
                     "z": "517cd16e4d7e6ae4",
                     "name": "",
                     "mode": "reduce",
                     "build": "object",
                     "property": "payload",
                     "propertyType": "msg",
                     "key": "topic",
                     "joiner": "\\n",
                     "joinerType": "str",
                     "accumulate": true,
                     "timeout": "",
                     "count": "",
                     "reduceRight": false,
                     "reduceExp": "$A + payload",
                     "reduceInit": "0",
                     "reduceInitType": "num",
                     "reduceFixup": "",
                     "x": 810,
                     "y": 7200,
                     "wires": [
                         [
                             "772ca07b52740a13"
                         ]
                     ]
                 },
                 {
                     "id": "772ca07b52740a13",
                     "type": "debug",
                     "z": "517cd16e4d7e6ae4",
                     "name": "Summe",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 960,
                     "y": 7200,
                     "wires": []
                 }
              ]
              

              Man kann das Ganze Array direkt filtern und Aufsummieren:

              [
                 {
                     "id": "acf33f19fdae3223",
                     "type": "change",
                     "z": "517cd16e4d7e6ae4",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$sum($filter(payload.*,function($v){$type($v)=\"number\"}))",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 510,
                     "y": 7320,
                     "wires": [
                         [
                             "f5158d3973628fb1"
                         ]
                     ]
                 },
                 {
                     "id": "f5158d3973628fb1",
                     "type": "debug",
                     "z": "517cd16e4d7e6ae4",
                     "name": "Summe über JSONATA",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 750,
                     "y": 7320,
                     "wires": []
                 }
              ]
              

              1e85dfb0-91ac-44ff-9e54-7aadd499c5c4-image.png

              $sum($filter(payload.*,function($v){$type($v)="number"}))
              

              oder noch einfacher:

              $sum(payload.*[($type($)="number")])
              

              17cf0504-253b-4138-bc5b-2a42151cb9cc-image.png

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              K 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @kla960 du filterst einfach mit einer switch node. lasse nur Nachrichten durch vom Typ number bzw. alternativ halt wie du geschrieben hast, wenn keine Zahl über eine change node auf 0 setzen. Anstelle mit einer Change Node zu addieren, kann man das ganze auch mit einer weiteren JOIN Node nochmals addieren.
                Also entweder zu Beginn an der Triggerquelle filtern:
                fe4f71b0-d936-4fd0-ab6e-0734cc5a0fff-image.png
                oder wenn man bereits ein Objekt hat, das wieder auseinanderreisen und mit einer JOIN Node aufaddieren.

                886f2795-0ca2-40cc-921f-6a1d85c2d5c5-image.png

                5b217520-2b6a-4fcc-9d29-f446c9709fad-image.png

                [
                   {
                       "id": "c529cc59f4628936",
                       "type": "inject",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "{\"L1\":20,\"L2\":null,\"L3\":40}",
                       "payloadType": "json",
                       "x": 270,
                       "y": 7140,
                       "wires": [
                           [
                               "8cca54bb3a90b513",
                               "e62f9f2cf4527653",
                               "6076f122486577cc"
                           ]
                       ]
                   },
                   {
                       "id": "8cca54bb3a90b513",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "Objekt",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 450,
                       "y": 7080,
                       "wires": []
                   },
                   {
                       "id": "e62f9f2cf4527653",
                       "type": "change",
                       "z": "517cd16e4d7e6ae4",
                       "name": "erzeugt Fehler",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.L1 + payload.L2 + payload.L3",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 480,
                       "y": 7140,
                       "wires": [
                           []
                       ]
                   },
                   {
                       "id": "6076f122486577cc",
                       "type": "split",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "splt": "\\n",
                       "spltType": "str",
                       "arraySplt": 1,
                       "arraySpltType": "len",
                       "stream": false,
                       "addname": "",
                       "x": 450,
                       "y": 7200,
                       "wires": [
                           [
                               "b1eba9d170a5804b",
                               "6bfd9422469622ee"
                           ]
                       ]
                   },
                   {
                       "id": "b1eba9d170a5804b",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "Einzelwerte",
                       "active": false,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 610,
                       "y": 7240,
                       "wires": []
                   },
                   {
                       "id": "6bfd9422469622ee",
                       "type": "change",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "$type(payload) = \"number\" ? payload : 0\t",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 630,
                       "y": 7200,
                       "wires": [
                           [
                               "5952436440189cef",
                               "af7d6bdc891fb2f5"
                           ]
                       ]
                   },
                   {
                       "id": "5952436440189cef",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "Typprüfung und ggf. 0",
                       "active": false,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 860,
                       "y": 7240,
                       "wires": []
                   },
                   {
                       "id": "af7d6bdc891fb2f5",
                       "type": "join",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "mode": "reduce",
                       "build": "object",
                       "property": "payload",
                       "propertyType": "msg",
                       "key": "topic",
                       "joiner": "\\n",
                       "joinerType": "str",
                       "accumulate": true,
                       "timeout": "",
                       "count": "",
                       "reduceRight": false,
                       "reduceExp": "$A + payload",
                       "reduceInit": "0",
                       "reduceInitType": "num",
                       "reduceFixup": "",
                       "x": 810,
                       "y": 7200,
                       "wires": [
                           [
                               "772ca07b52740a13"
                           ]
                       ]
                   },
                   {
                       "id": "772ca07b52740a13",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "Summe",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 960,
                       "y": 7200,
                       "wires": []
                   }
                ]
                

                Man kann das Ganze Array direkt filtern und Aufsummieren:

                [
                   {
                       "id": "acf33f19fdae3223",
                       "type": "change",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "$sum($filter(payload.*,function($v){$type($v)=\"number\"}))",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 510,
                       "y": 7320,
                       "wires": [
                           [
                               "f5158d3973628fb1"
                           ]
                       ]
                   },
                   {
                       "id": "f5158d3973628fb1",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "Summe über JSONATA",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 750,
                       "y": 7320,
                       "wires": []
                   }
                ]
                

                1e85dfb0-91ac-44ff-9e54-7aadd499c5c4-image.png

                $sum($filter(payload.*,function($v){$type($v)="number"}))
                

                oder noch einfacher:

                $sum(payload.*[($type($)="number")])
                

                17cf0504-253b-4138-bc5b-2a42151cb9cc-image.png

                K Offline
                K Offline
                kla960
                schrieb am zuletzt editiert von
                #59

                @mickym danke für die ausführliche Hilfestellung. Da die letzte Möglichkeit sehr vielversprechend aussah, habe ich diese probiert. Leider findet auch hier über Nacht keine Summierung statt. Meine Dashboard Anzeige bleibt dann bei dem letzen Wert stehen. Irgendwie hängt es damit zusammen, dass wenn der iobroker parser keine Daten mehr liefert, auch kein msg.payload.b bei join ankommt.

                Ich muss das mal weiter aufdröseln.

                mickymM 1 Antwort Letzte Antwort
                0
                • K kla960

                  @mickym danke für die ausführliche Hilfestellung. Da die letzte Möglichkeit sehr vielversprechend aussah, habe ich diese probiert. Leider findet auch hier über Nacht keine Summierung statt. Meine Dashboard Anzeige bleibt dann bei dem letzen Wert stehen. Irgendwie hängt es damit zusammen, dass wenn der iobroker parser keine Daten mehr liefert, auch kein msg.payload.b bei join ankommt.

                  Ich muss das mal weiter aufdröseln.

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #60

                  @kla960 ja dann mussr du wohl deinen flow posten.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  K 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @kla960 ja dann mussr du wohl deinen flow posten.

                    K Offline
                    K Offline
                    kla960
                    schrieb am zuletzt editiert von
                    #61

                    @mickym Zumindest den relevanten Teil ;-)

                    Habe mir das jetzt nochmal angesehen. Wenn keine Daten vom BKW kommen, kommt

                    msg.payload = NaN

                    Versuche es heute dann mal mit

                    msg.payload = msg.payload ? msg.payload : 0;
                    return msg;
                    

                    zu korrigieren. Dann sehen wir weiter.

                    K 1 Antwort Letzte Antwort
                    0
                    • K kla960

                      @mickym Zumindest den relevanten Teil ;-)

                      Habe mir das jetzt nochmal angesehen. Wenn keine Daten vom BKW kommen, kommt

                      msg.payload = NaN

                      Versuche es heute dann mal mit

                      msg.payload = msg.payload ? msg.payload : 0;
                      return msg;
                      

                      zu korrigieren. Dann sehen wir weiter.

                      K Offline
                      K Offline
                      kla960
                      schrieb am zuletzt editiert von
                      #62

                      7e9b076e-2308-4886-ab79-edf75cc54292-image.png

                      payload = payload ? payload : 0
                      

                      Das hat für Abhilfe gesorgt.

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      764

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe