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. Einfache Funktion - Wertüberwachung mit 2 Verzögerungszeiten

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    501

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Einfache Funktion - Wertüberwachung mit 2 Verzögerungszeiten

Geplant Angeheftet Gesperrt Verschoben Node-Red
48 Beiträge 2 Kommentatoren 3.0k Aufrufe 2 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.
  • I I0Br0ker

    @mickym
    44f61d5b-aae6-441d-aeb2-d45a738111b3-image.png

    hab sowas gerade mal gemacht
    die Verzögerung müsste genau umgekehrt sein ... das heisst der wert müsst für zeit x ständig getriggert werden damit er auslöst

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #9

    @i0br0ker Ja deswegen ist das mit der delay Node falsch - ich entwerfe Dir einen komplett anderen Flow.

    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.

    1 Antwort Letzte Antwort
    0
    • I I0Br0ker

      @mickym
      44f61d5b-aae6-441d-aeb2-d45a738111b3-image.png

      hab sowas gerade mal gemacht
      die Verzögerung müsste genau umgekehrt sein ... das heisst der wert müsst für zeit x ständig getriggert werden damit er auslöst

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #10

      @i0br0ker Ich gehe mal davon aus, dass wenn zwischen -50 und -300 kommt, dann soll der timer immer zurückgesetzt werden.

      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.

      I 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @i0br0ker Ich gehe mal davon aus, dass wenn zwischen -50 und -300 kommt, dann soll der timer immer zurückgesetzt werden.

        I Offline
        I Offline
        I0Br0ker
        schrieb am zuletzt editiert von
        #11

        @mickym hmm .. ja genau sollte so sein ... heisst wenn die einspeisung länger weg fällt ( zeit X) also der wert angenommen 0 ist muss er false schalten und wenn er länger als zeit X einspeist also -400 muss true schalten - das ganze sollte die ganze zeit hin und her korrespondieren und nichts doppelt passieren.

        mickymM 2 Antworten Letzte Antwort
        0
        • I I0Br0ker

          @mickym hmm .. ja genau sollte so sein ... heisst wenn die einspeisung länger weg fällt ( zeit X) also der wert angenommen 0 ist muss er false schalten und wenn er länger als zeit X einspeist also -400 muss true schalten - das ganze sollte die ganze zeit hin und her korrespondieren und nichts doppelt passieren.

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #12

          @i0br0ker sagte in Einfache Funktion - Wertüberwachung mit 2 Verzögerungszeiten:

          @mickym hmm .. ja genau sollte so sein ... heisst wenn die einspeisung länger weg fällt ( zeit X) also der wert angenommen 0 ist muss er false schalten und wenn er länger als zeit X einspeist also -400 muss true schalten - das ganze sollte die ganze zeit hin und her korrespondieren und nichts doppelt passieren.

          Du kannst es gleich probieren - einen kleinen Moment noch.

          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.

          1 Antwort Letzte Antwort
          0
          • I I0Br0ker

            @mickym hmm .. ja genau sollte so sein ... heisst wenn die einspeisung länger weg fällt ( zeit X) also der wert angenommen 0 ist muss er false schalten und wenn er länger als zeit X einspeist also -400 muss true schalten - das ganze sollte die ganze zeit hin und her korrespondieren und nichts doppelt passieren.

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #13

            @i0br0ker So dann schau mal, ob das so tut wie Du willst. Mit den Inject Nodes simulierst Du den Eingang.

            a4f75b06-0471-4aa5-9602-ca39403df482-image.png

            Am Anfang den delay setzen mit der Inject Node. Später kannst Du den Flow kontext dann selbst modifizieren.

            Hier der Import:

            [
               {
                   "id": "8972f29413316dc1",
                   "type": "inject",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "-30",
                   "payloadType": "num",
                   "x": 450,
                   "y": 5860,
                   "wires": [
                       [
                           "9b209f29c21641c6"
                       ]
                   ]
               },
               {
                   "id": "e50652f7162ed6da",
                   "type": "inject",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "-350",
                   "payloadType": "num",
                   "x": 450,
                   "y": 5940,
                   "wires": [
                       [
                           "9b209f29c21641c6"
                       ]
                   ]
               },
               {
                   "id": "77c6c23ac0772aa9",
                   "type": "inject",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "-200",
                   "payloadType": "num",
                   "x": 450,
                   "y": 5900,
                   "wires": [
                       [
                           "9b209f29c21641c6"
                       ]
                   ]
               },
               {
                   "id": "0402aac07958ca2c",
                   "type": "switch",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "property": "payload",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "gt",
                           "v": "-50",
                           "vt": "num"
                       },
                       {
                           "t": "btwn",
                           "v": "-50",
                           "vt": "num",
                           "v2": "-300",
                           "v2t": "num"
                       },
                       {
                           "t": "lt",
                           "v": "-300",
                           "vt": "num"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 3,
                   "x": 870,
                   "y": 5900,
                   "wires": [
                       [
                           "7860f28bf6fe2804",
                           "b7ecb11349870ed5"
                       ],
                       [
                           "42c12c93c04b4f40"
                       ],
                       [
                           "6d8bb6be3f2d5841",
                           "d6138d31e266df4c"
                       ]
                   ]
               },
               {
                   "id": "2d70ea83b0bd5f82",
                   "type": "inject",
                   "z": "7e6af0015415146d",
                   "name": "setze delay",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": true,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "60000",
                   "payloadType": "num",
                   "x": 450,
                   "y": 5780,
                   "wires": [
                       [
                           "56a671fce5d2c2c2"
                       ]
                   ]
               },
               {
                   "id": "b7ecb11349870ed5",
                   "type": "trigger",
                   "z": "7e6af0015415146d",
                   "name": "setze false",
                   "op1": "",
                   "op2": "false",
                   "op1type": "nul",
                   "op2type": "bool",
                   "duration": "250",
                   "extend": false,
                   "overrideDelay": true,
                   "units": "ms",
                   "reset": "",
                   "bytopic": "all",
                   "topic": "topic",
                   "outputs": 1,
                   "x": 1310,
                   "y": 5840,
                   "wires": [
                       [
                           "29944a7145d256a8"
                       ]
                   ]
               },
               {
                   "id": "56a671fce5d2c2c2",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "delay",
                           "pt": "flow",
                           "to": "payload",
                           "tot": "msg"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 640,
                   "y": 5780,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "d6138d31e266df4c",
                   "type": "trigger",
                   "z": "7e6af0015415146d",
                   "name": "setze true",
                   "op1": "",
                   "op2": "true",
                   "op1type": "nul",
                   "op2type": "bool",
                   "duration": "250",
                   "extend": false,
                   "overrideDelay": true,
                   "units": "ms",
                   "reset": "",
                   "bytopic": "all",
                   "topic": "topic",
                   "outputs": 1,
                   "x": 1300,
                   "y": 5960,
                   "wires": [
                       [
                           "29944a7145d256a8"
                       ]
                   ]
               },
               {
                   "id": "7860f28bf6fe2804",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "reset",
                           "pt": "msg",
                           "to": "true",
                           "tot": "bool"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1060,
                   "y": 5820,
                   "wires": [
                       [
                           "d6138d31e266df4c"
                       ]
                   ]
               },
               {
                   "id": "42c12c93c04b4f40",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "reset",
                           "pt": "msg",
                           "to": "true",
                           "tot": "bool"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1060,
                   "y": 5900,
                   "wires": [
                       [
                           "b7ecb11349870ed5",
                           "d6138d31e266df4c"
                       ]
                   ]
               },
               {
                   "id": "6d8bb6be3f2d5841",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "reset",
                           "pt": "msg",
                           "to": "true",
                           "tot": "bool"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1060,
                   "y": 5980,
                   "wires": [
                       [
                           "b7ecb11349870ed5"
                       ]
                   ]
               },
               {
                   "id": "29944a7145d256a8",
                   "type": "rbe",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "func": "rbe",
                   "gap": "",
                   "start": "",
                   "inout": "out",
                   "septopics": false,
                   "property": "payload",
                   "topi": "topic",
                   "x": 1510,
                   "y": 5900,
                   "wires": [
                       [
                           "51806c75fef81d44"
                       ]
                   ]
               },
               {
                   "id": "51806c75fef81d44",
                   "type": "debug",
                   "z": "7e6af0015415146d",
                   "name": "Ergebnis",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1680,
                   "y": 5900,
                   "wires": []
               },
               {
                   "id": "b89e7ecfd4414cc6",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "delay",
                           "pt": "msg",
                           "to": "delay",
                           "tot": "flow"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 680,
                   "y": 5900,
                   "wires": [
                       [
                           "0402aac07958ca2c"
                       ]
                   ]
               },
               {
                   "id": "9b209f29c21641c6",
                   "type": "junction",
                   "z": "7e6af0015415146d",
                   "x": 560,
                   "y": 5900,
                   "wires": [
                       [
                           "b89e7ecfd4414cc6"
                       ]
                   ]
               }
            ]
            

            Wie Du siehst ohne function Nodes und ohne eine Zeile Code zu schreiben. ;)

            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.

            I 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @i0br0ker So dann schau mal, ob das so tut wie Du willst. Mit den Inject Nodes simulierst Du den Eingang.

              a4f75b06-0471-4aa5-9602-ca39403df482-image.png

              Am Anfang den delay setzen mit der Inject Node. Später kannst Du den Flow kontext dann selbst modifizieren.

              Hier der Import:

              [
                 {
                     "id": "8972f29413316dc1",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "-30",
                     "payloadType": "num",
                     "x": 450,
                     "y": 5860,
                     "wires": [
                         [
                             "9b209f29c21641c6"
                         ]
                     ]
                 },
                 {
                     "id": "e50652f7162ed6da",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "-350",
                     "payloadType": "num",
                     "x": 450,
                     "y": 5940,
                     "wires": [
                         [
                             "9b209f29c21641c6"
                         ]
                     ]
                 },
                 {
                     "id": "77c6c23ac0772aa9",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "-200",
                     "payloadType": "num",
                     "x": 450,
                     "y": 5900,
                     "wires": [
                         [
                             "9b209f29c21641c6"
                         ]
                     ]
                 },
                 {
                     "id": "0402aac07958ca2c",
                     "type": "switch",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "property": "payload",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "gt",
                             "v": "-50",
                             "vt": "num"
                         },
                         {
                             "t": "btwn",
                             "v": "-50",
                             "vt": "num",
                             "v2": "-300",
                             "v2t": "num"
                         },
                         {
                             "t": "lt",
                             "v": "-300",
                             "vt": "num"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 3,
                     "x": 870,
                     "y": 5900,
                     "wires": [
                         [
                             "7860f28bf6fe2804",
                             "b7ecb11349870ed5"
                         ],
                         [
                             "42c12c93c04b4f40"
                         ],
                         [
                             "6d8bb6be3f2d5841",
                             "d6138d31e266df4c"
                         ]
                     ]
                 },
                 {
                     "id": "2d70ea83b0bd5f82",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "setze delay",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": true,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "60000",
                     "payloadType": "num",
                     "x": 450,
                     "y": 5780,
                     "wires": [
                         [
                             "56a671fce5d2c2c2"
                         ]
                     ]
                 },
                 {
                     "id": "b7ecb11349870ed5",
                     "type": "trigger",
                     "z": "7e6af0015415146d",
                     "name": "setze false",
                     "op1": "",
                     "op2": "false",
                     "op1type": "nul",
                     "op2type": "bool",
                     "duration": "250",
                     "extend": false,
                     "overrideDelay": true,
                     "units": "ms",
                     "reset": "",
                     "bytopic": "all",
                     "topic": "topic",
                     "outputs": 1,
                     "x": 1310,
                     "y": 5840,
                     "wires": [
                         [
                             "29944a7145d256a8"
                         ]
                     ]
                 },
                 {
                     "id": "56a671fce5d2c2c2",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "delay",
                             "pt": "flow",
                             "to": "payload",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 640,
                     "y": 5780,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "d6138d31e266df4c",
                     "type": "trigger",
                     "z": "7e6af0015415146d",
                     "name": "setze true",
                     "op1": "",
                     "op2": "true",
                     "op1type": "nul",
                     "op2type": "bool",
                     "duration": "250",
                     "extend": false,
                     "overrideDelay": true,
                     "units": "ms",
                     "reset": "",
                     "bytopic": "all",
                     "topic": "topic",
                     "outputs": 1,
                     "x": 1300,
                     "y": 5960,
                     "wires": [
                         [
                             "29944a7145d256a8"
                         ]
                     ]
                 },
                 {
                     "id": "7860f28bf6fe2804",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "reset",
                             "pt": "msg",
                             "to": "true",
                             "tot": "bool"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1060,
                     "y": 5820,
                     "wires": [
                         [
                             "d6138d31e266df4c"
                         ]
                     ]
                 },
                 {
                     "id": "42c12c93c04b4f40",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "reset",
                             "pt": "msg",
                             "to": "true",
                             "tot": "bool"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1060,
                     "y": 5900,
                     "wires": [
                         [
                             "b7ecb11349870ed5",
                             "d6138d31e266df4c"
                         ]
                     ]
                 },
                 {
                     "id": "6d8bb6be3f2d5841",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "reset",
                             "pt": "msg",
                             "to": "true",
                             "tot": "bool"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1060,
                     "y": 5980,
                     "wires": [
                         [
                             "b7ecb11349870ed5"
                         ]
                     ]
                 },
                 {
                     "id": "29944a7145d256a8",
                     "type": "rbe",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "func": "rbe",
                     "gap": "",
                     "start": "",
                     "inout": "out",
                     "septopics": false,
                     "property": "payload",
                     "topi": "topic",
                     "x": 1510,
                     "y": 5900,
                     "wires": [
                         [
                             "51806c75fef81d44"
                         ]
                     ]
                 },
                 {
                     "id": "51806c75fef81d44",
                     "type": "debug",
                     "z": "7e6af0015415146d",
                     "name": "Ergebnis",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1680,
                     "y": 5900,
                     "wires": []
                 },
                 {
                     "id": "b89e7ecfd4414cc6",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "delay",
                             "pt": "msg",
                             "to": "delay",
                             "tot": "flow"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 680,
                     "y": 5900,
                     "wires": [
                         [
                             "0402aac07958ca2c"
                         ]
                     ]
                 },
                 {
                     "id": "9b209f29c21641c6",
                     "type": "junction",
                     "z": "7e6af0015415146d",
                     "x": 560,
                     "y": 5900,
                     "wires": [
                         [
                             "b89e7ecfd4414cc6"
                         ]
                     ]
                 }
              ]
              

              Wie Du siehst ohne function Nodes und ohne eine Zeile Code zu schreiben. ;)

              I Offline
              I Offline
              I0Br0ker
              schrieb am zuletzt editiert von
              #14

              @mickym krasses Konstrukt ;-) aber es scheint zu passen .. gut ich brauch halt 2 versch. Verzögerungen aber die kann ich ja hard rein coden in den trigger ...
              Ich werde es morgen live testen wenn die Sonne scheint ;-)

              DANKE an der Stelle schonmal für die Hilfe und deine Zeit

              mickymM 1 Antwort Letzte Antwort
              0
              • I I0Br0ker

                @mickym krasses Konstrukt ;-) aber es scheint zu passen .. gut ich brauch halt 2 versch. Verzögerungen aber die kann ich ja hard rein coden in den trigger ...
                Ich werde es morgen live testen wenn die Sonne scheint ;-)

                DANKE an der Stelle schonmal für die Hilfe und deine Zeit

                mickymM Offline
                mickymM Offline
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #15

                @i0br0ker Du kannst den msg.delay auch an die unterschiedlichen Ausgänge setzen - dann brauchst die flow Variable nicht. Kommt halt darauf an, wie Du es modifizieren willst. Aber wie Du siehst ist es sehr transparent und man kann an jeder Node prüfen, ob die Logik funktioniert und muss sich nicht durch Code quälen.

                Ja oder einfach in die trigger Nodes eintragen - das ist am einfachsten und dann kannst Dir den flow Kontext sparen. Wenn Du die Verzögerung direkt in die trigger Node einträgst, dann kannst Du diese Nodes wegschmeißen

                e8337bed-253b-4463-97bc-684defc5527d-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.

                1 Antwort Letzte Antwort
                0
                • I Offline
                  I Offline
                  I0Br0ker
                  schrieb am zuletzt editiert von I0Br0ker
                  #16

                  Darf ich an dem Thema nochmal anknüpfen ;-)
                  Ich bin gerade am testen und habe noch folgendes Problem.
                  Ich bekomme von 3 quellen Werte mit unterschiedlichen datenraten.
                  Ich würde diese 3 Quellen gerne zeitgleich in eine Funktion einspeisen, die eine Berechnung macht.
                  Alles was ich bisher versucht habe funktioniert nicht wirklich ( Begrenzung der Nachrichten ) .. weil dann zufällig nur einzelne Quellen übertragen werden.

                  Die Berechnung ist folgende:

                  //if (msg.topic === "openWB/evu/W") context.set("netz",msg.payload);
                  if (msg.topic === "Einspeisung") context.set("netz",msg.payload);
                  if (msg.topic === "Venus system - Power on output of inverter/charger, L1 (W)") context.set("verbrauchAC",msg.payload);
                  if (msg.topic === "Venus system - VE.Bus charge power (W)") context.set("verbrauchDC",msg.payload);
                  
                  
                  var netz = context.get("netz") || 0;
                  var verbrauchAC = context.get("verbrauchAC") || 0;
                  var verbrauchDC = context.get("verbrauchDC") || 0;
                  
                  // Wenn Wert C negativ ist, addiere A und B, sonst gebe nur B aus
                  if (verbrauchDC < 0) {
                      msg.payload = netz + verbrauchAC; // A + B wird ausgegeben
                  } else {
                      msg.payload = netz; // Nur B wird ausgegeben
                  }
                  
                  msg.topic = "NETZberechnung";
                  return msg;
                  

                  Also ich würde gerne alle 3 Werte vorhalten und dann zeitgleich berechnen und ausgeben in einem 5 Sekunden Intervall zum Beispiel ...

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • I I0Br0ker

                    Darf ich an dem Thema nochmal anknüpfen ;-)
                    Ich bin gerade am testen und habe noch folgendes Problem.
                    Ich bekomme von 3 quellen Werte mit unterschiedlichen datenraten.
                    Ich würde diese 3 Quellen gerne zeitgleich in eine Funktion einspeisen, die eine Berechnung macht.
                    Alles was ich bisher versucht habe funktioniert nicht wirklich ( Begrenzung der Nachrichten ) .. weil dann zufällig nur einzelne Quellen übertragen werden.

                    Die Berechnung ist folgende:

                    //if (msg.topic === "openWB/evu/W") context.set("netz",msg.payload);
                    if (msg.topic === "Einspeisung") context.set("netz",msg.payload);
                    if (msg.topic === "Venus system - Power on output of inverter/charger, L1 (W)") context.set("verbrauchAC",msg.payload);
                    if (msg.topic === "Venus system - VE.Bus charge power (W)") context.set("verbrauchDC",msg.payload);
                    
                    
                    var netz = context.get("netz") || 0;
                    var verbrauchAC = context.get("verbrauchAC") || 0;
                    var verbrauchDC = context.get("verbrauchDC") || 0;
                    
                    // Wenn Wert C negativ ist, addiere A und B, sonst gebe nur B aus
                    if (verbrauchDC < 0) {
                        msg.payload = netz + verbrauchAC; // A + B wird ausgegeben
                    } else {
                        msg.payload = netz; // Nur B wird ausgegeben
                    }
                    
                    msg.topic = "NETZberechnung";
                    return msg;
                    

                    Also ich würde gerne alle 3 Werte vorhalten und dann zeitgleich berechnen und ausgeben in einem 5 Sekunden Intervall zum Beispiel ...

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #17

                    @i0br0ker Also ich kann an dem Code nichts falsches finden und verstehe das Problem nicht wirklich. Natürlich kann man das alles mit weniger Code machen. ;)

                    Alles was ich bisher versucht habe funktioniert nicht wirklich ( Begrenzung der Nachrichten ) .. weil dann zufällig nur einzelne Quellen übertragen werden.

                    Das ist doch richtig, weil nur dann was ausgegeben wird, wenn sich was geändert hat. Ansonsten musst Du sagen was Du willst:

                    1. Du wartest bis alle 3 topics einen Wert geliefert haben?
                    2. Du möchtest generell eine kontunierliche Ausgabe der letzten Berechnung (auch wenn sich nichts geändert hat.

                    Zu Punkt 1 - würde ich das ganze dann nicht über den Kontext machen, sondern eine Nachricht mit allen Werten erzeugen, die Du dann von mir aus wieder mit Code für die Ausgabe behandeln kannst.
                    Zu Punkt 2: Einfach eine Trigger Node die letzte Nachricht im 5s Intervall ausgeben lassen.

                    Zeitgleich passiert nur etwas in dem Du es sammelst - wie gesagt wenn Du warten willst, dass alle 3 topics geliefert haben müssen, um eine saubere Berechnung zu ermöglichen oder nicht? Es wird immer ms zeitliche Unterschiede geben, wenn die Dinge in das System kommen, da generell NodeRed oder auch andere Systeme alle Inputs nur sequentiell verarbeiten, wenn auch im ms Bereich.

                    Ich werde Dir wieder mal einen Flow mit den 3 Messgrößen mit Inject Nodes zur Simulation bereitstellen und Deinen Code zur Berechnung benutzen.

                    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.

                    I 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @i0br0ker Also ich kann an dem Code nichts falsches finden und verstehe das Problem nicht wirklich. Natürlich kann man das alles mit weniger Code machen. ;)

                      Alles was ich bisher versucht habe funktioniert nicht wirklich ( Begrenzung der Nachrichten ) .. weil dann zufällig nur einzelne Quellen übertragen werden.

                      Das ist doch richtig, weil nur dann was ausgegeben wird, wenn sich was geändert hat. Ansonsten musst Du sagen was Du willst:

                      1. Du wartest bis alle 3 topics einen Wert geliefert haben?
                      2. Du möchtest generell eine kontunierliche Ausgabe der letzten Berechnung (auch wenn sich nichts geändert hat.

                      Zu Punkt 1 - würde ich das ganze dann nicht über den Kontext machen, sondern eine Nachricht mit allen Werten erzeugen, die Du dann von mir aus wieder mit Code für die Ausgabe behandeln kannst.
                      Zu Punkt 2: Einfach eine Trigger Node die letzte Nachricht im 5s Intervall ausgeben lassen.

                      Zeitgleich passiert nur etwas in dem Du es sammelst - wie gesagt wenn Du warten willst, dass alle 3 topics geliefert haben müssen, um eine saubere Berechnung zu ermöglichen oder nicht? Es wird immer ms zeitliche Unterschiede geben, wenn die Dinge in das System kommen, da generell NodeRed oder auch andere Systeme alle Inputs nur sequentiell verarbeiten, wenn auch im ms Bereich.

                      Ich werde Dir wieder mal einen Flow mit den 3 Messgrößen mit Inject Nodes zur Simulation bereitstellen und Deinen Code zur Berechnung benutzen.

                      I Offline
                      I Offline
                      I0Br0ker
                      schrieb am zuletzt editiert von I0Br0ker
                      #18

                      @mickym ich hab es nun mal so gemacht


                      0f38fad1-1b49-4c12-87d1-b190774a29ab-image.png

                      Ich speichere die 3 Werte in jeweils in einer Flow variable und triggere die Berechnung dann
                      alle Sekunde mit dem Inject.
                      So hab ich immer den zuletzt gemessenen Wert der 3 Datenquellen zur sekündlichen Berechnung

                      mickymM 2 Antworten Letzte Antwort
                      0
                      • I I0Br0ker

                        @mickym ich hab es nun mal so gemacht


                        0f38fad1-1b49-4c12-87d1-b190774a29ab-image.png

                        Ich speichere die 3 Werte in jeweils in einer Flow variable und triggere die Berechnung dann
                        alle Sekunde mit dem Inject.
                        So hab ich immer den zuletzt gemessenen Wert der 3 Datenquellen zur sekündlichen Berechnung

                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #19

                        @i0br0ker Ja und das ist halt Käse, weil Du nicht davon ausgehen kannst, dass sich alle Sekunden, welche Werte geändert haben und Du somit nur ein zufälligest Zustandsbild bekommst. Ausserdem belasstest Du das System nur unnötig mit dieser Inject Node und dem sekündlichen Trigger. Sinnvoller ist es die 3 Teile Einspeisung, AC und DC triggern zu lassen. Ich mach Dir mal einen Vorschlag in dem ich die 3 Nodes Einspeisung, AC und DC mit Inject Nodes simuliere - und du quasi den Rest des Flows mal hinter Deine Nodes machst.

                        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.

                        1 Antwort Letzte Antwort
                        0
                        • I I0Br0ker

                          @mickym ich hab es nun mal so gemacht


                          0f38fad1-1b49-4c12-87d1-b190774a29ab-image.png

                          Ich speichere die 3 Werte in jeweils in einer Flow variable und triggere die Berechnung dann
                          alle Sekunde mit dem Inject.
                          So hab ich immer den zuletzt gemessenen Wert der 3 Datenquellen zur sekündlichen Berechnung

                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #20

                          @i0br0ker So hier mein Vorschlag:

                          91338c6a-ff70-46b3-9849-01e163b2afdb-image.png

                          Statt der Inject Nodes klemmst Du die Change Nodes zum Vereinfachen der topics hinter Deine function Nodes.

                          Die beiden Varianten unterscheiden sich wie folgt. Oben müssen alle 3 Werte aktualisiert werden, bevor eine erneute Berechnung stattfindet. Unten wird nachdem alle 3 Werte geliefert wurden, nach jeder Änderung eine Berechnung durchgeführt.

                          Unten ist einfach die blau markierte Option angehakt.

                          3053a633-8af3-444d-b2fd-098c2a9095c2-image.png

                          Hier zum Import:

                          [
                             {
                                 "id": "6242e9a2f819fd6d",
                                 "type": "comment",
                                 "z": "7e6af0015415146d",
                                 "name": "Alle 3 topics müssen immer triggern bevor Berechnung stattfindet",
                                 "info": "",
                                 "x": 310,
                                 "y": 5780,
                                 "wires": []
                             },
                             {
                                 "id": "9ad33fc7f452c8d5",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Einspeisung",
                                 "payload": "-50",
                                 "payloadType": "num",
                                 "x": 160,
                                 "y": 5840,
                                 "wires": [
                                     [
                                         "322428f9a6f303fd"
                                     ]
                                 ]
                             },
                             {
                                 "id": "5f5b5e7ba87bef7d",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "AC",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Venus system - Power on output of inverter/charger, L1 (W)",
                                 "payload": "100",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 5900,
                                 "wires": [
                                     [
                                         "4356754c809d6094"
                                     ]
                                 ]
                             },
                             {
                                 "id": "473cfab7f45ddda2",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "DC",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Venus system - VE.Bus charge power (W)",
                                 "payload": "100",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 5960,
                                 "wires": [
                                     [
                                         "2dcb913c17c8f93f"
                                     ]
                                 ]
                             },
                             {
                                 "id": "2dcb913c17c8f93f",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = verbrauchDC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "verbrauchDC",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 400,
                                 "y": 5960,
                                 "wires": [
                                     [
                                         "b28d24fcb71d82ee"
                                     ]
                                 ]
                             },
                             {
                                 "id": "4356754c809d6094",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = verbrauchAC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "verbrauchAC",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 400,
                                 "y": 5900,
                                 "wires": [
                                     [
                                         "b28d24fcb71d82ee"
                                     ]
                                 ]
                             },
                             {
                                 "id": "322428f9a6f303fd",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = netz",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "netz",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 430,
                                 "y": 5840,
                                 "wires": [
                                     [
                                         "b28d24fcb71d82ee"
                                     ]
                                 ]
                             },
                             {
                                 "id": "b28d24fcb71d82ee",
                                 "type": "join",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "mode": "custom",
                                 "build": "object",
                                 "property": "payload",
                                 "propertyType": "msg",
                                 "key": "topic",
                                 "joiner": "\\n",
                                 "joinerType": "str",
                                 "accumulate": false,
                                 "timeout": "",
                                 "count": "3",
                                 "reduceRight": false,
                                 "reduceExp": "",
                                 "reduceInit": "",
                                 "reduceInitType": "",
                                 "reduceFixup": "",
                                 "x": 610,
                                 "y": 5900,
                                 "wires": [
                                     [
                                         "85e346c30c478cb5"
                                     ]
                                 ]
                             },
                             {
                                 "id": "85e346c30c478cb5",
                                 "type": "switch",
                                 "z": "7e6af0015415146d",
                                 "name": "verbrauchDC < 0 ?",
                                 "property": "payload.verbrauchDC",
                                 "propertyType": "msg",
                                 "rules": [
                                     {
                                         "t": "lt",
                                         "v": "0",
                                         "vt": "str"
                                     },
                                     {
                                         "t": "else"
                                     }
                                 ],
                                 "checkall": "true",
                                 "repair": false,
                                 "outputs": 2,
                                 "x": 790,
                                 "y": 5900,
                                 "wires": [
                                     [
                                         "6ac4a825336230b9"
                                     ],
                                     [
                                         "b5f50b3d7ce5b577"
                                     ]
                                 ]
                             },
                             {
                                 "id": "6ac4a825336230b9",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "netz + verbrauchAC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload.netz + payload.verbrauchAC",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1020,
                                 "y": 5880,
                                 "wires": [
                                     [
                                         "0d63ae49afe306a1"
                                     ]
                                 ]
                             },
                             {
                                 "id": "b5f50b3d7ce5b577",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "netz",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload.netz",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1010,
                                 "y": 5920,
                                 "wires": [
                                     [
                                         "0d63ae49afe306a1"
                                     ]
                                 ]
                             },
                             {
                                 "id": "0d63ae49afe306a1",
                                 "type": "delay",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "pauseType": "rate",
                                 "timeout": "5",
                                 "timeoutUnits": "seconds",
                                 "rate": "1",
                                 "nbRateUnits": "5",
                                 "rateUnits": "second",
                                 "randomFirst": "1",
                                 "randomLast": "5",
                                 "randomUnits": "seconds",
                                 "drop": false,
                                 "allowrate": false,
                                 "outputs": 1,
                                 "x": 1280,
                                 "y": 5900,
                                 "wires": [
                                     [
                                         "3f3b72c9e9caa544"
                                     ]
                                 ]
                             },
                             {
                                 "id": "3f3b72c9e9caa544",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "NETZberechnung",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1510,
                                 "y": 5900,
                                 "wires": []
                             },
                             {
                                 "id": "8242208cb47150aa",
                                 "type": "comment",
                                 "z": "7e6af0015415146d",
                                 "name": "3 topics müssen anfangs triggern, dann Berechnung sobald sich ein Wert ändert",
                                 "info": "",
                                 "x": 360,
                                 "y": 6060,
                                 "wires": []
                             },
                             {
                                 "id": "0afde9516c8e49de",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Einspeisung",
                                 "payload": "-50",
                                 "payloadType": "num",
                                 "x": 160,
                                 "y": 6120,
                                 "wires": [
                                     [
                                         "c847c5e443282ab9"
                                     ]
                                 ]
                             },
                             {
                                 "id": "a48c393e89e84ed1",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "AC",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Venus system - Power on output of inverter/charger, L1 (W)",
                                 "payload": "100",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 6180,
                                 "wires": [
                                     [
                                         "6b61a9dd9f65e929"
                                     ]
                                 ]
                             },
                             {
                                 "id": "60adaf77b0272866",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "DC",
                                 "props": [
                                     {
                                         "p": "payload"
                                     },
                                     {
                                         "p": "topic",
                                         "vt": "str"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "Venus system - VE.Bus charge power (W)",
                                 "payload": "100",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 6240,
                                 "wires": [
                                     [
                                         "250a07fa52d546df"
                                     ]
                                 ]
                             },
                             {
                                 "id": "250a07fa52d546df",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = verbrauchDC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "verbrauchDC",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 400,
                                 "y": 6240,
                                 "wires": [
                                     [
                                         "f41ea55f35ea32ec"
                                     ]
                                 ]
                             },
                             {
                                 "id": "6b61a9dd9f65e929",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = verbrauchAC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "verbrauchAC",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 400,
                                 "y": 6180,
                                 "wires": [
                                     [
                                         "f41ea55f35ea32ec"
                                     ]
                                 ]
                             },
                             {
                                 "id": "c847c5e443282ab9",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "topic = netz",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "netz",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 430,
                                 "y": 6120,
                                 "wires": [
                                     [
                                         "f41ea55f35ea32ec"
                                     ]
                                 ]
                             },
                             {
                                 "id": "f41ea55f35ea32ec",
                                 "type": "join",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "mode": "custom",
                                 "build": "object",
                                 "property": "payload",
                                 "propertyType": "msg",
                                 "key": "topic",
                                 "joiner": "\\n",
                                 "joinerType": "str",
                                 "accumulate": true,
                                 "timeout": "",
                                 "count": "3",
                                 "reduceRight": false,
                                 "reduceExp": "",
                                 "reduceInit": "",
                                 "reduceInitType": "",
                                 "reduceFixup": "",
                                 "x": 610,
                                 "y": 6180,
                                 "wires": [
                                     [
                                         "4c80eba219778dc8"
                                     ]
                                 ]
                             },
                             {
                                 "id": "4c80eba219778dc8",
                                 "type": "switch",
                                 "z": "7e6af0015415146d",
                                 "name": "verbrauchDC < 0 ?",
                                 "property": "payload.verbrauchDC",
                                 "propertyType": "msg",
                                 "rules": [
                                     {
                                         "t": "lt",
                                         "v": "0",
                                         "vt": "str"
                                     },
                                     {
                                         "t": "else"
                                     }
                                 ],
                                 "checkall": "true",
                                 "repair": false,
                                 "outputs": 2,
                                 "x": 790,
                                 "y": 6180,
                                 "wires": [
                                     [
                                         "ef9f7be0eccb3f08"
                                     ],
                                     [
                                         "bec30fa4e90499c0"
                                     ]
                                 ]
                             },
                             {
                                 "id": "ef9f7be0eccb3f08",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "netz + verbrauchAC",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload.netz + payload.verbrauchAC",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1020,
                                 "y": 6160,
                                 "wires": [
                                     [
                                         "4b8ce84d13c5a534"
                                     ]
                                 ]
                             },
                             {
                                 "id": "bec30fa4e90499c0",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "netz",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload.netz",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1010,
                                 "y": 6200,
                                 "wires": [
                                     [
                                         "4b8ce84d13c5a534"
                                     ]
                                 ]
                             },
                             {
                                 "id": "4b8ce84d13c5a534",
                                 "type": "delay",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "pauseType": "rate",
                                 "timeout": "5",
                                 "timeoutUnits": "seconds",
                                 "rate": "1",
                                 "nbRateUnits": "5",
                                 "rateUnits": "second",
                                 "randomFirst": "1",
                                 "randomLast": "5",
                                 "randomUnits": "seconds",
                                 "drop": false,
                                 "allowrate": false,
                                 "outputs": 1,
                                 "x": 1280,
                                 "y": 6180,
                                 "wires": [
                                     [
                                         "4f6542a27992e53a"
                                     ]
                                 ]
                             },
                             {
                                 "id": "4f6542a27992e53a",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "NETZberechnung",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1510,
                                 "y": 6180,
                                 "wires": []
                             }
                          ]
                          

                          Alle Sekunden zu triggern - ohne das eventuell eine Änderung stattgefunden hat, ist mE Unsinn. Wenn Du einen konstante Ausgabe willst, auch ohne das sich was geändert hat, kannst Du auch die letzte Berechnung dauernd mit einer Triggernode ausgeben. Keine Ahnung - vielleicht für einen Grafen.

                          Eine Triggernode - kann die letzte Berechnung dann kontinuierlich senden, falls Du das wünschst.
                          8b4086d4-c49c-4fe0-8207-aadd1196ae64-image.png

                          [
                             {
                                 "id": "a8842b5079340b33",
                                 "type": "trigger",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "op1": "",
                                 "op2": "0",
                                 "op1type": "pay",
                                 "op2type": "str",
                                 "duration": "-5",
                                 "extend": false,
                                 "overrideDelay": false,
                                 "units": "s",
                                 "reset": "",
                                 "bytopic": "all",
                                 "topic": "topic",
                                 "outputs": 1,
                                 "x": 860,
                                 "y": 5680,
                                 "wires": [
                                     [
                                         "0e6acf0851308881"
                                     ]
                                 ]
                             },
                             {
                                 "id": "6fb21815b4c15278",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "1",
                                 "payloadType": "num",
                                 "x": 630,
                                 "y": 5680,
                                 "wires": [
                                     [
                                         "a8842b5079340b33"
                                     ]
                                 ]
                             },
                             {
                                 "id": "0e6acf0851308881",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "Sende letzte Nachricht alle 5s",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1170,
                                 "y": 5680,
                                 "wires": []
                             }
                          ]
                          

                          Ist aber meines Erachtens auch nur unsinniger Overhead - da brauche ich dann auch keine Begrenzung.

                          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.

                          1 Antwort Letzte Antwort
                          0
                          • mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #21

                            Vielleicht schaffe ich es ja noch, Dich von der Codiererei wegzubringen und Dich von den Vorteilen der grafischen Programmierung mittels NodeRed zu überzeugen.

                            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.

                            I 1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              Vielleicht schaffe ich es ja noch, Dich von der Codiererei wegzubringen und Dich von den Vorteilen der grafischen Programmierung mittels NodeRed zu überzeugen.

                              I Offline
                              I Offline
                              I0Br0ker
                              schrieb am zuletzt editiert von
                              #22

                              @mickym ja so langsam aber sicher verstehe ich die funktionsweise ;-)

                              Super hab es eingebaut und es läuft ... aber eine Frage:
                              Hinten raus variieren die Topics - dort finde ich immer mal wieder alle 3 eingangs Topics.
                              Was sagt mir das dann? der Topic der da drin steht hat auch getriggert zu dem Zeitpunkt?

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • I I0Br0ker

                                @mickym ja so langsam aber sicher verstehe ich die funktionsweise ;-)

                                Super hab es eingebaut und es läuft ... aber eine Frage:
                                Hinten raus variieren die Topics - dort finde ich immer mal wieder alle 3 eingangs Topics.
                                Was sagt mir das dann? der Topic der da drin steht hat auch getriggert zu dem Zeitpunkt?

                                mickymM Offline
                                mickymM Offline
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #23

                                @i0br0ker Ja der topic der da drin steht, war der letzte - das war ja die letzte Nachricht die getriggert hat. Wie gesagt, wenn Du willst, dass alle 3 immer neue Werte geliefert haben wollen, dann musst Du die Option auslassen. Du könntest theoretisch auch mit einer Switch Node filtern, dass Du nur dann eine Berechnung durchlässt, wenn ein bestimmter topic getriggert hat. Wie gesagt eine Parallelverarbeitung wirst Du in keinem Hausautomationssystem finden, sondern es wird immer einen zeitlichen Abstand zwischen den einzelnen Triggern geben.

                                Das topic dass Du hinten siehst, stammt also von einem der 3 Change Nodes mit dem Du die topics festlegst.

                                0b5765e0-0b67-45ac-9d6d-e6b98e4035f5-image.png

                                Das ist ja Bestandteil des Nachrichtenobjektes - auch wenn Du in der payload alle 3 Werte in einem Objekt zur Berechnung immer mitschleppst.

                                Am Besten siehst Du das, in dem Du Dir das gesamte Nachrichtenobjekt hinter der JOIN Node ausgeben lässt.

                                In der Berechnung überschreiben wir ja dann das payload Objekt wieder mit einem skalaren, numerischen Wert.
                                984f12d6-db99-463b-bdff-7b5cd3ea325a-image.png

                                4e29883b-926b-4798-bd65-7824cb8a331f-image.png

                                Das topic wird aber nicht angefasst. Du könntest das topic auch löschen oder einfach ein neues Topic Netzberechnung setzen, wenn es Dich verwirrt.

                                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.

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @i0br0ker Ja der topic der da drin steht, war der letzte - das war ja die letzte Nachricht die getriggert hat. Wie gesagt, wenn Du willst, dass alle 3 immer neue Werte geliefert haben wollen, dann musst Du die Option auslassen. Du könntest theoretisch auch mit einer Switch Node filtern, dass Du nur dann eine Berechnung durchlässt, wenn ein bestimmter topic getriggert hat. Wie gesagt eine Parallelverarbeitung wirst Du in keinem Hausautomationssystem finden, sondern es wird immer einen zeitlichen Abstand zwischen den einzelnen Triggern geben.

                                  Das topic dass Du hinten siehst, stammt also von einem der 3 Change Nodes mit dem Du die topics festlegst.

                                  0b5765e0-0b67-45ac-9d6d-e6b98e4035f5-image.png

                                  Das ist ja Bestandteil des Nachrichtenobjektes - auch wenn Du in der payload alle 3 Werte in einem Objekt zur Berechnung immer mitschleppst.

                                  Am Besten siehst Du das, in dem Du Dir das gesamte Nachrichtenobjekt hinter der JOIN Node ausgeben lässt.

                                  In der Berechnung überschreiben wir ja dann das payload Objekt wieder mit einem skalaren, numerischen Wert.
                                  984f12d6-db99-463b-bdff-7b5cd3ea325a-image.png

                                  4e29883b-926b-4798-bd65-7824cb8a331f-image.png

                                  Das topic wird aber nicht angefasst. Du könntest das topic auch löschen oder einfach ein neues Topic Netzberechnung setzen, wenn es Dich verwirrt.

                                  mickymM Offline
                                  mickymM Offline
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #24

                                  @mickym Wenn Du sagts die Einspeisung ist immer konstant, Du willst aber nur dann eine neue Berechnung machen, wenn sich verbrauchAC und verbrauchDC getriggert wurden, dann kannst Du das auch kaskadieren. Aber wie gesagt, Du musst Dich entscheiden - WANN Du eine Berechnung durchführen willst. Einen definierten Zeitpunkt musst Du festlegen und kann nicht das System für Dich festlegen.

                                  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.

                                  I 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @mickym Wenn Du sagts die Einspeisung ist immer konstant, Du willst aber nur dann eine neue Berechnung machen, wenn sich verbrauchAC und verbrauchDC getriggert wurden, dann kannst Du das auch kaskadieren. Aber wie gesagt, Du musst Dich entscheiden - WANN Du eine Berechnung durchführen willst. Einen definierten Zeitpunkt musst Du festlegen und kann nicht das System für Dich festlegen.

                                    I Offline
                                    I Offline
                                    I0Br0ker
                                    schrieb am zuletzt editiert von
                                    #25

                                    @mickym soo ich will deine Geduld ja nicht überstrapazieren ;-)
                                    Ich habe immer wieder kurze Ausreißer drin , die meine Zeiten im obigen Beispiel für false immer wieder zu schnell Resetten. :-( Kann ich mit einfachen mitteln den Wert "glätten" bzw einen Mittelwert über zeit x berechnen mit dem ich weiter arbeite?

                                    I 1 Antwort Letzte Antwort
                                    0
                                    • I I0Br0ker

                                      @mickym soo ich will deine Geduld ja nicht überstrapazieren ;-)
                                      Ich habe immer wieder kurze Ausreißer drin , die meine Zeiten im obigen Beispiel für false immer wieder zu schnell Resetten. :-( Kann ich mit einfachen mitteln den Wert "glätten" bzw einen Mittelwert über zeit x berechnen mit dem ich weiter arbeite?

                                      I Offline
                                      I Offline
                                      I0Br0ker
                                      schrieb am zuletzt editiert von
                                      #26

                                      @i0br0ker

                                      hab da was gefunden
                                      average

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • I I0Br0ker

                                        @i0br0ker

                                        hab da was gefunden
                                        average

                                        mickymM Offline
                                        mickymM Offline
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von mickym
                                        #27

                                        @i0br0ker Du kannst auch die Filternode nehmen, die kann Ausreiser über das narrow band ausfiltern, dann brauchst du keine neue Node installieren.

                                        01ce47fa-deec-4d0f-b3c6-99d8652c2467-image.png

                                        Hier kannst Du auch einen Prozentwert oder eine absolute Zahl angeben und mit der letzten Aus- oder Eingabe vergleichen.

                                        b8c104b5-a403-47aa-9cbd-50295add1605-image.png

                                        Einfach mal die Hilfe so mancher Nodes anschauen. ;)

                                        Und bevor Du die average Node installierst, schau Dir mal die aggregate Node an - die kann auch den median verwenden - und Ausreißer werden damit gänzlich ignoriert.

                                        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.

                                        I 1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @i0br0ker Du kannst auch die Filternode nehmen, die kann Ausreiser über das narrow band ausfiltern, dann brauchst du keine neue Node installieren.

                                          01ce47fa-deec-4d0f-b3c6-99d8652c2467-image.png

                                          Hier kannst Du auch einen Prozentwert oder eine absolute Zahl angeben und mit der letzten Aus- oder Eingabe vergleichen.

                                          b8c104b5-a403-47aa-9cbd-50295add1605-image.png

                                          Einfach mal die Hilfe so mancher Nodes anschauen. ;)

                                          Und bevor Du die average Node installierst, schau Dir mal die aggregate Node an - die kann auch den median verwenden - und Ausreißer werden damit gänzlich ignoriert.

                                          I Offline
                                          I Offline
                                          I0Br0ker
                                          schrieb am zuletzt editiert von
                                          #28

                                          @mickym Hi ich scheitere aktuell an einer "einfachen" UND Verknüpfung wenn beide Pfade auf TRUE Sind soll ein TRUE ausgegeben werden .... ich bekomm es ohne Function nicht geregelt :-)


                                          84dd24a4-e0b2-4a77-aa7f-42224e22bf26-image.png

                                          mickymM 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

                                          679

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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