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. [gelöst] Poolsteuerung, Anfänger braucht[e] Hilfe

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] Poolsteuerung, Anfänger braucht[e] Hilfe

Geplant Angeheftet Gesperrt Verschoben Node-Red
node-red
40 Beiträge 3 Kommentatoren 4.9k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    @schneidy76 Nun eine Counter Node - ist nicht im Standard enthalten. Falls Du diese Node meinst, dann halte ich die für eher ungeeignet. Die zählt ja nur je nach Nachrichteneingang entweder rauf oder runter - aber Du willst ja zeitliche Steuerungen.

    Dann solltest Du halt streng nach der Ein- und Ausgabelogik vorgehen. ;)
    Und dann ist Deine Logik noch nicht ganz klar bzw. es fehlt noch was, aber dazu später.

    Also was haben wir als Eingangstrigger auf der linken Seite:

    1. Den Schaltzustand der Filteranlage bzw. der Heizung (true oder false) sowie ich mich erinnere.
    2. Den Zeittrigger um 0 Uhr, um die Laufzeit zurückzusetzen.
    3. Einen weiteren Zeittrigger, der am Abend (ist das ein fixer Zeitpunkt ??) überprüft, ob die Laufzeit erreicht wurde oder nicht.
    4. Oder eine periodische Überprüfung am Abend - dann empfehle ich Dir den Light-Scheduler zu installieren - den liebe ich. (das wurde mir aus der Aufgabenstellung nicht klar. ;) )

    Dann brauchst Du ja ein paar Variablen/Datenpunkte zum Speichern:

    1. Den Startzeitpunkt an dem die Zeitperiode beginnt zum Speichern - man kann auch den Timestamp der letzten Änderungen des Heizungsdatenpunktes verwenden.
    2. Die aufsummierte Zeit zu speichern.

    Nachdem Du es ja persistent machen willst (was sinnvoll ist, gerade wenn man den Adapter oder den iobroker mal neustarten muss), würde ich halte Datenpunkte anlegen, in den Du alles zwischenspeicherst.

    Wenn die normale Logik funktioniert, dann solltest Du eben die Szenarien durchgehen, dass der iobroker neugestartet wird, während die Heizung läuft oder zwischenzeitlich ausgeschaltet wurde, während der iobroker gestoppt war.

    Dazu muss man nur bissi Vorstellungskraft walten lassen.

    Ich hoffe Dir damit Anregungen zum Start gegeben zu haben.

    S Offline
    S Offline
    schneidy76
    schrieb am zuletzt editiert von schneidy76
    #12

    @mickym Huhu, ja Du hast Recht.
    Zum ersten, genau diesen Node meinte ich.
    Finde den auch nicht so ganz passend...
    Thema Trigger (in Deiner Reihenfolge)

    1. Ich setze die Filteranlage immer wenn nötig auf true, auch wenn ich die Wärmepumpe und Filteranlage über einen Parallelkontakt zwangsläufig parallel schalte. Sonst könnte die WP Schaden nehmen. Also nehmen wir die Filteranlage als Trigger.
    2. 0:00 Uhr rücksetzen - Check
    3. nein nicht fix, nennen wir ihn „Heizen nicht mehr sinnvoll“ - lassen wir mal so stehen. Ich habe eine Wetterstation da in der Nähe, eventuell nehme ich die Sonneneinstrahlung als Referenz, oder das Wasser ist warm genug. Punkt für die Ferne.

    Glaube, wenn das fertig ist, wird das super. Stelle dann alles hier rein. 😁

    Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

    mickymM 1 Antwort Letzte Antwort
    0
    • S schneidy76

      @mickym Huhu, ja Du hast Recht.
      Zum ersten, genau diesen Node meinte ich.
      Finde den auch nicht so ganz passend...
      Thema Trigger (in Deiner Reihenfolge)

      1. Ich setze die Filteranlage immer wenn nötig auf true, auch wenn ich die Wärmepumpe und Filteranlage über einen Parallelkontakt zwangsläufig parallel schalte. Sonst könnte die WP Schaden nehmen. Also nehmen wir die Filteranlage als Trigger.
      2. 0:00 Uhr rücksetzen - Check
      3. nein nicht fix, nennen wir ihn „Heizen nicht mehr sinnvoll“ - lassen wir mal so stehen. Ich habe eine Wetterstation da in der Nähe, eventuell nehme ich die Sonneneinstrahlung als Referenz, oder das Wasser ist warm genug. Punkt für die Ferne.

      Glaube, wenn das fertig ist, wird das super. Stelle dann alles hier rein. 😁

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

      @schneidy76 Gut dann kannst ja loslegen. ;)

      2 Datenpunkte anlegen - einen für aktuelle Laufzeit, einen für Laufzeit am Tag.

      1. iobroker In Node des Datenpunktes der Filteranlage triggert - bei True - Beginn der aktuellen Laufzeit, bei false auf 0 setzen und Zeitdifferenz zur aktuellen Zeit in Datenpunkt für die Tageslaufzeit aufsummieren.
      2. Inject Node mit Tageswechsel setzt Tageslaufzeit auf 0.
      3. Periodisches Prüfen ob sinnvoll - dann lightscheduler Node installieren. ;)

      Bastel mal schnell was mit 3 Datenpunkten (Filteranlage - true/false, Start aktuelle Laufzeit, Tageslaufzeit).

      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

        @schneidy76 Gut dann kannst ja loslegen. ;)

        2 Datenpunkte anlegen - einen für aktuelle Laufzeit, einen für Laufzeit am Tag.

        1. iobroker In Node des Datenpunktes der Filteranlage triggert - bei True - Beginn der aktuellen Laufzeit, bei false auf 0 setzen und Zeitdifferenz zur aktuellen Zeit in Datenpunkt für die Tageslaufzeit aufsummieren.
        2. Inject Node mit Tageswechsel setzt Tageslaufzeit auf 0.
        3. Periodisches Prüfen ob sinnvoll - dann lightscheduler Node installieren. ;)

        Bastel mal schnell was mit 3 Datenpunkten (Filteranlage - true/false, Start aktuelle Laufzeit, Tageslaufzeit).

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

        So ich habe mal einen kleinen Flow für Dich entworfen mit 3 von mir erstellten Datenpunkten:

        c7f1fa1b-2c93-4049-aeb0-da5a08140d9f-image.png

        Über Filteranlage true/false triggerst Du den Flow.

        1. Ist auf true gesetzt - wird start auf aktuellen timestamp gesetzt.
        2. Ist false gesetzt wird start auf 0 gesetzt und zeitraum ermittelt und aufaddiert in laufzeit_tag
        3. Inject Node setzt laufzeit_tag auf 0 und falls Anlage über Mitternacht läuft setzt auf start aktuellen timestamp
        4. Noch eine Inject Node, die theoretisch ab 20 Uhr abends alle 15 Minuten prüft ob Laufzeit ausreichend ist - müsste halt noch implementiert werden.

        DAs mal so auf die Schnelle

        5a5c904e-7004-4347-b53d-0a784c20bb3f-image.png

        hier zum Importieren:

        EDIT Korrigiert:

        [
           {
               "id": "66f988a6.4ca578",
               "type": "ioBroker in",
               "z": "53b323c1.acfc5c",
               "name": "Filteranlage",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
               "payloadType": "value",
               "onlyack": "",
               "func": "rbe",
               "gap": "",
               "fireOnStart": "true",
               "x": 210,
               "y": 280,
               "wires": [
                   [
                       "426bfb66.27e944"
                   ]
               ]
           },
           {
               "id": "426bfb66.27e944",
               "type": "switch",
               "z": "53b323c1.acfc5c",
               "name": "läuft oder läuft nicht",
               "property": "payload",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "true"
                   },
                   {
                       "t": "false"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 2,
               "x": 430,
               "y": 280,
               "wires": [
                   [
                       "dcd49370.c1d4"
                   ],
                   [
                       "33fb2794.80be18"
                   ]
               ]
           },
           {
               "id": "dcd49370.c1d4",
               "type": "change",
               "z": "53b323c1.acfc5c",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "",
                       "tot": "date"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 680,
               "y": 240,
               "wires": [
                   [
                       "cf188321.55ded"
                   ]
               ]
           },
           {
               "id": "cf188321.55ded",
               "type": "ioBroker out",
               "z": "53b323c1.acfc5c",
               "name": "setze start",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage.start",
               "ack": "true",
               "autoCreate": "false",
               "stateName": "",
               "role": "",
               "payloadType": "",
               "readonly": "",
               "stateUnit": "",
               "stateMin": "",
               "stateMax": "",
               "x": 1710,
               "y": 240,
               "wires": []
           },
           {
               "id": "33fb2794.80be18",
               "type": "ioBroker get",
               "z": "53b323c1.acfc5c",
               "name": "hole start",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage.start",
               "attrname": "start",
               "payloadType": "value",
               "x": 640,
               "y": 340,
               "wires": [
                   [
                       "f2ee9a2e.2e7df8"
                   ]
               ]
           },
           {
               "id": "f2ee9a2e.2e7df8",
               "type": "ioBroker get",
               "z": "53b323c1.acfc5c",
               "name": "hole Laufzeit Tag",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag",
               "attrname": "payload",
               "payloadType": "value",
               "x": 830,
               "y": 340,
               "wires": [
                   [
                       "fd210fc1.644ed",
                       "7dbc9e25.082a1"
                   ]
               ]
           },
           {
               "id": "fd210fc1.644ed",
               "type": "change",
               "z": "53b323c1.acfc5c",
               "name": "setze start = 0",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "0",
                       "tot": "num"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 1060,
               "y": 280,
               "wires": [
                   [
                       "cf188321.55ded"
                   ]
               ]
           },
           {
               "id": "7dbc9e25.082a1",
               "type": "change",
               "z": "53b323c1.acfc5c",
               "name": "addiere neue Periode",
               "rules": [
                   {
                       "t": "set",
                       "p": "period",
                       "pt": "msg",
                       "to": "$millis()-start\t",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload+period",
                       "tot": "jsonata"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 1080,
               "y": 480,
               "wires": [
                   [
                       "9f559704.ad5ae8"
                   ]
               ]
           },
           {
               "id": "9f559704.ad5ae8",
               "type": "ioBroker out",
               "z": "53b323c1.acfc5c",
               "name": "setzte Laufzeit Tag",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag",
               "ack": "true",
               "autoCreate": "false",
               "stateName": "",
               "role": "",
               "payloadType": "",
               "readonly": "",
               "stateUnit": "",
               "stateMin": "",
               "stateMax": "",
               "x": 1590,
               "y": 480,
               "wires": []
           },
           {
               "id": "2fdad162.6accae",
               "type": "inject",
               "z": "53b323c1.acfc5c",
               "name": "Tageswechsel",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "00 00 * * *",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "",
               "payloadType": "date",
               "x": 1060,
               "y": 380,
               "wires": [
                   [
                       "ab55e9c.bb08618",
                       "eabde8a.6e4d518"
                   ]
               ]
           },
           {
               "id": "ab55e9c.bb08618",
               "type": "change",
               "z": "53b323c1.acfc5c",
               "name": "setze laufzeit = 0",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "0",
                       "tot": "num"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 1310,
               "y": 440,
               "wires": [
                   [
                       "9f559704.ad5ae8"
                   ]
               ]
           },
           {
               "id": "9f0769be.59ff88",
               "type": "inject",
               "z": "53b323c1.acfc5c",
               "name": "Prüfe ob noch gefiltert werden muss",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "*/15 20-23 * * *",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "Prüfe Laufzeit Filter",
               "payloadType": "str",
               "x": 710,
               "y": 580,
               "wires": [
                   [
                       "15c02195.ce912e"
                   ]
               ]
           },
           {
               "id": "15c02195.ce912e",
               "type": "debug",
               "z": "53b323c1.acfc5c",
               "name": "Filtercheck",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1050,
               "y": 580,
               "wires": []
           },
           {
               "id": "eabde8a.6e4d518",
               "type": "ioBroker get",
               "z": "53b323c1.acfc5c",
               "name": " get status Filteranlage",
               "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
               "attrname": "status",
               "payloadType": "value",
               "x": 1320,
               "y": 320,
               "wires": [
                   [
                       "16ec6c1f.45d604"
                   ]
               ]
           },
           {
               "id": "16ec6c1f.45d604",
               "type": "switch",
               "z": "53b323c1.acfc5c",
               "name": "läuft ?",
               "property": "status",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "true"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 1550,
               "y": 300,
               "wires": [
                   [
                       "cf188321.55ded"
                   ]
               ]
           }
        ]
        

        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

          So ich habe mal einen kleinen Flow für Dich entworfen mit 3 von mir erstellten Datenpunkten:

          c7f1fa1b-2c93-4049-aeb0-da5a08140d9f-image.png

          Über Filteranlage true/false triggerst Du den Flow.

          1. Ist auf true gesetzt - wird start auf aktuellen timestamp gesetzt.
          2. Ist false gesetzt wird start auf 0 gesetzt und zeitraum ermittelt und aufaddiert in laufzeit_tag
          3. Inject Node setzt laufzeit_tag auf 0 und falls Anlage über Mitternacht läuft setzt auf start aktuellen timestamp
          4. Noch eine Inject Node, die theoretisch ab 20 Uhr abends alle 15 Minuten prüft ob Laufzeit ausreichend ist - müsste halt noch implementiert werden.

          DAs mal so auf die Schnelle

          5a5c904e-7004-4347-b53d-0a784c20bb3f-image.png

          hier zum Importieren:

          EDIT Korrigiert:

          [
             {
                 "id": "66f988a6.4ca578",
                 "type": "ioBroker in",
                 "z": "53b323c1.acfc5c",
                 "name": "Filteranlage",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
                 "payloadType": "value",
                 "onlyack": "",
                 "func": "rbe",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 210,
                 "y": 280,
                 "wires": [
                     [
                         "426bfb66.27e944"
                     ]
                 ]
             },
             {
                 "id": "426bfb66.27e944",
                 "type": "switch",
                 "z": "53b323c1.acfc5c",
                 "name": "läuft oder läuft nicht",
                 "property": "payload",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     },
                     {
                         "t": "false"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 2,
                 "x": 430,
                 "y": 280,
                 "wires": [
                     [
                         "dcd49370.c1d4"
                     ],
                     [
                         "33fb2794.80be18"
                     ]
                 ]
             },
             {
                 "id": "dcd49370.c1d4",
                 "type": "change",
                 "z": "53b323c1.acfc5c",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "",
                         "tot": "date"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 680,
                 "y": 240,
                 "wires": [
                     [
                         "cf188321.55ded"
                     ]
                 ]
             },
             {
                 "id": "cf188321.55ded",
                 "type": "ioBroker out",
                 "z": "53b323c1.acfc5c",
                 "name": "setze start",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.start",
                 "ack": "true",
                 "autoCreate": "false",
                 "stateName": "",
                 "role": "",
                 "payloadType": "",
                 "readonly": "",
                 "stateUnit": "",
                 "stateMin": "",
                 "stateMax": "",
                 "x": 1710,
                 "y": 240,
                 "wires": []
             },
             {
                 "id": "33fb2794.80be18",
                 "type": "ioBroker get",
                 "z": "53b323c1.acfc5c",
                 "name": "hole start",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.start",
                 "attrname": "start",
                 "payloadType": "value",
                 "x": 640,
                 "y": 340,
                 "wires": [
                     [
                         "f2ee9a2e.2e7df8"
                     ]
                 ]
             },
             {
                 "id": "f2ee9a2e.2e7df8",
                 "type": "ioBroker get",
                 "z": "53b323c1.acfc5c",
                 "name": "hole Laufzeit Tag",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag",
                 "attrname": "payload",
                 "payloadType": "value",
                 "x": 830,
                 "y": 340,
                 "wires": [
                     [
                         "fd210fc1.644ed",
                         "7dbc9e25.082a1"
                     ]
                 ]
             },
             {
                 "id": "fd210fc1.644ed",
                 "type": "change",
                 "z": "53b323c1.acfc5c",
                 "name": "setze start = 0",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "0",
                         "tot": "num"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 1060,
                 "y": 280,
                 "wires": [
                     [
                         "cf188321.55ded"
                     ]
                 ]
             },
             {
                 "id": "7dbc9e25.082a1",
                 "type": "change",
                 "z": "53b323c1.acfc5c",
                 "name": "addiere neue Periode",
                 "rules": [
                     {
                         "t": "set",
                         "p": "period",
                         "pt": "msg",
                         "to": "$millis()-start\t",
                         "tot": "jsonata"
                     },
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "payload+period",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 1080,
                 "y": 480,
                 "wires": [
                     [
                         "9f559704.ad5ae8"
                     ]
                 ]
             },
             {
                 "id": "9f559704.ad5ae8",
                 "type": "ioBroker out",
                 "z": "53b323c1.acfc5c",
                 "name": "setzte Laufzeit Tag",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag",
                 "ack": "true",
                 "autoCreate": "false",
                 "stateName": "",
                 "role": "",
                 "payloadType": "",
                 "readonly": "",
                 "stateUnit": "",
                 "stateMin": "",
                 "stateMax": "",
                 "x": 1590,
                 "y": 480,
                 "wires": []
             },
             {
                 "id": "2fdad162.6accae",
                 "type": "inject",
                 "z": "53b323c1.acfc5c",
                 "name": "Tageswechsel",
                 "props": [
                     {
                         "p": "payload"
                     },
                     {
                         "p": "topic",
                         "vt": "str"
                     }
                 ],
                 "repeat": "",
                 "crontab": "00 00 * * *",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "",
                 "payloadType": "date",
                 "x": 1060,
                 "y": 380,
                 "wires": [
                     [
                         "ab55e9c.bb08618",
                         "eabde8a.6e4d518"
                     ]
                 ]
             },
             {
                 "id": "ab55e9c.bb08618",
                 "type": "change",
                 "z": "53b323c1.acfc5c",
                 "name": "setze laufzeit = 0",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "0",
                         "tot": "num"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 1310,
                 "y": 440,
                 "wires": [
                     [
                         "9f559704.ad5ae8"
                     ]
                 ]
             },
             {
                 "id": "9f0769be.59ff88",
                 "type": "inject",
                 "z": "53b323c1.acfc5c",
                 "name": "Prüfe ob noch gefiltert werden muss",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "*/15 20-23 * * *",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "Prüfe Laufzeit Filter",
                 "payloadType": "str",
                 "x": 710,
                 "y": 580,
                 "wires": [
                     [
                         "15c02195.ce912e"
                     ]
                 ]
             },
             {
                 "id": "15c02195.ce912e",
                 "type": "debug",
                 "z": "53b323c1.acfc5c",
                 "name": "Filtercheck",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1050,
                 "y": 580,
                 "wires": []
             },
             {
                 "id": "eabde8a.6e4d518",
                 "type": "ioBroker get",
                 "z": "53b323c1.acfc5c",
                 "name": " get status Filteranlage",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
                 "attrname": "status",
                 "payloadType": "value",
                 "x": 1320,
                 "y": 320,
                 "wires": [
                     [
                         "16ec6c1f.45d604"
                     ]
                 ]
             },
             {
                 "id": "16ec6c1f.45d604",
                 "type": "switch",
                 "z": "53b323c1.acfc5c",
                 "name": "läuft ?",
                 "property": "status",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 1,
                 "x": 1550,
                 "y": 300,
                 "wires": [
                     [
                         "cf188321.55ded"
                     ]
                 ]
             }
          ]
          

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

          So hier habe ich noch eine ganz andere Variante des Flows die vielleicht wesentlich intuitiver ist und auch nur mit einem Daten punkt für die Laufzeit in min geht.

          Hier wird nur noch der Datenpunkt Laufzeit in min also laufzeit_tag2 hochgezählt.

          e77cb08e-bc14-433c-9a2e-701312a25d87-image.png

          4b4b310d-af95-43b8-af12-cbda86f47ae1-image.png

          Läuft der Filter sendet die Triggernode einfach jede Minute eine 1 und die wird im Datenpunkt aufsummiert, sodass hier immer die Laufzeit in Minuten jederzeit aktuell sichtbar ist. Das ist sicher von Vorteil auch bei einer Visualisierung.

          Läuft der Filter nicht, wird die Triggernode mit msg.reset einfach gestoppt. Bei Tageswechsel wird der Punkt einfach auf 0 gesetzt.

          Eigentlich gefällt mir diese Umsetzung besser. ;)

          Du siehst es führen viele Wege nach Rom - äh zum Ziel.

          EDIT: Nochmal korrigiert.

          [
             {
                 "id": "66f988a6.4ca578",
                 "type": "ioBroker in",
                 "z": "e7ee46c4.b845a8",
                 "name": "Filteranlage",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
                 "payloadType": "value",
                 "onlyack": "",
                 "func": "rbe",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 130,
                 "y": 360,
                 "wires": [
                     [
                         "426bfb66.27e944"
                     ]
                 ]
             },
             {
                 "id": "426bfb66.27e944",
                 "type": "switch",
                 "z": "e7ee46c4.b845a8",
                 "name": "läuft oder läuft nicht",
                 "property": "payload",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     },
                     {
                         "t": "false"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 2,
                 "x": 350,
                 "y": 360,
                 "wires": [
                     [
                         "23347cd3.d823d4"
                     ],
                     [
                         "770eb1d8.1b62"
                     ]
                 ]
             },
             {
                 "id": "2ccbe9ae.5de3b6",
                 "type": "ioBroker out",
                 "z": "e7ee46c4.b845a8",
                 "name": "setzte Laufzeit Tag in min",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                 "ack": "true",
                 "autoCreate": "false",
                 "stateName": "",
                 "role": "",
                 "payloadType": "",
                 "readonly": "",
                 "stateUnit": "",
                 "stateMin": "",
                 "stateMax": "",
                 "x": 1290,
                 "y": 300,
                 "wires": []
             },
             {
                 "id": "23347cd3.d823d4",
                 "type": "trigger",
                 "z": "e7ee46c4.b845a8",
                 "name": "",
                 "op1": "1",
                 "op2": "0",
                 "op1type": "num",
                 "op2type": "str",
                 "duration": "-1",
                 "extend": false,
                 "overrideDelay": false,
                 "units": "min",
                 "reset": "",
                 "bytopic": "all",
                 "topic": "topic",
                 "outputs": 1,
                 "x": 650,
                 "y": 300,
                 "wires": [
                     [
                         "f0106a67.68ccf8"
                     ]
                 ]
             },
             {
                 "id": "f0106a67.68ccf8",
                 "type": "ioBroker get",
                 "z": "e7ee46c4.b845a8",
                 "name": "get status",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                 "attrname": "status",
                 "payloadType": "value",
                 "x": 840,
                 "y": 300,
                 "wires": [
                     [
                         "2fa05a36.5ded86"
                     ]
                 ]
             },
             {
                 "id": "2fa05a36.5ded86",
                 "type": "change",
                 "z": "e7ee46c4.b845a8",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "status + payload",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 1040,
                 "y": 300,
                 "wires": [
                     [
                         "2ccbe9ae.5de3b6"
                     ]
                 ]
             },
             {
                 "id": "770eb1d8.1b62",
                 "type": "change",
                 "z": "e7ee46c4.b845a8",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "reset",
                         "pt": "msg",
                         "to": "true",
                         "tot": "bool"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 610,
                 "y": 420,
                 "wires": [
                     [
                         "23347cd3.d823d4",
                         "a3796662.1b2288"
                     ]
                 ]
             },
             {
                 "id": "f50cbcdd.4df18",
                 "type": "inject",
                 "z": "e7ee46c4.b845a8",
                 "name": "Tageswechsel",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "00 00 * * *",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "-1",
                 "payloadType": "num",
                 "x": 1060,
                 "y": 240,
                 "wires": [
                     [
                         "2ccbe9ae.5de3b6"
                     ]
                 ]
             },
             {
                 "id": "a3796662.1b2288",
                 "type": "ioBroker get",
                 "z": "e7ee46c4.b845a8",
                 "name": "get status",
                 "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                 "attrname": "status",
                 "payloadType": "value",
                 "x": 840,
                 "y": 420,
                 "wires": [
                     [
                         "c278734d.e25ed"
                     ]
                 ]
             },
             {
                 "id": "c278734d.e25ed",
                 "type": "change",
                 "z": "e7ee46c4.b845a8",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "status - 1",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 1040,
                 "y": 420,
                 "wires": [
                     [
                         "2ccbe9ae.5de3b6"
                     ]
                 ]
             }
          ]
          

          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.

          S 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            So hier habe ich noch eine ganz andere Variante des Flows die vielleicht wesentlich intuitiver ist und auch nur mit einem Daten punkt für die Laufzeit in min geht.

            Hier wird nur noch der Datenpunkt Laufzeit in min also laufzeit_tag2 hochgezählt.

            e77cb08e-bc14-433c-9a2e-701312a25d87-image.png

            4b4b310d-af95-43b8-af12-cbda86f47ae1-image.png

            Läuft der Filter sendet die Triggernode einfach jede Minute eine 1 und die wird im Datenpunkt aufsummiert, sodass hier immer die Laufzeit in Minuten jederzeit aktuell sichtbar ist. Das ist sicher von Vorteil auch bei einer Visualisierung.

            Läuft der Filter nicht, wird die Triggernode mit msg.reset einfach gestoppt. Bei Tageswechsel wird der Punkt einfach auf 0 gesetzt.

            Eigentlich gefällt mir diese Umsetzung besser. ;)

            Du siehst es führen viele Wege nach Rom - äh zum Ziel.

            EDIT: Nochmal korrigiert.

            [
               {
                   "id": "66f988a6.4ca578",
                   "type": "ioBroker in",
                   "z": "e7ee46c4.b845a8",
                   "name": "Filteranlage",
                   "topic": "0_userdata.0.Poolsteuerung.Filteranlage",
                   "payloadType": "value",
                   "onlyack": "",
                   "func": "rbe",
                   "gap": "",
                   "fireOnStart": "true",
                   "x": 130,
                   "y": 360,
                   "wires": [
                       [
                           "426bfb66.27e944"
                       ]
                   ]
               },
               {
                   "id": "426bfb66.27e944",
                   "type": "switch",
                   "z": "e7ee46c4.b845a8",
                   "name": "läuft oder läuft nicht",
                   "property": "payload",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "true"
                       },
                       {
                           "t": "false"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 2,
                   "x": 350,
                   "y": 360,
                   "wires": [
                       [
                           "23347cd3.d823d4"
                       ],
                       [
                           "770eb1d8.1b62"
                       ]
                   ]
               },
               {
                   "id": "2ccbe9ae.5de3b6",
                   "type": "ioBroker out",
                   "z": "e7ee46c4.b845a8",
                   "name": "setzte Laufzeit Tag in min",
                   "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                   "ack": "true",
                   "autoCreate": "false",
                   "stateName": "",
                   "role": "",
                   "payloadType": "",
                   "readonly": "",
                   "stateUnit": "",
                   "stateMin": "",
                   "stateMax": "",
                   "x": 1290,
                   "y": 300,
                   "wires": []
               },
               {
                   "id": "23347cd3.d823d4",
                   "type": "trigger",
                   "z": "e7ee46c4.b845a8",
                   "name": "",
                   "op1": "1",
                   "op2": "0",
                   "op1type": "num",
                   "op2type": "str",
                   "duration": "-1",
                   "extend": false,
                   "overrideDelay": false,
                   "units": "min",
                   "reset": "",
                   "bytopic": "all",
                   "topic": "topic",
                   "outputs": 1,
                   "x": 650,
                   "y": 300,
                   "wires": [
                       [
                           "f0106a67.68ccf8"
                       ]
                   ]
               },
               {
                   "id": "f0106a67.68ccf8",
                   "type": "ioBroker get",
                   "z": "e7ee46c4.b845a8",
                   "name": "get status",
                   "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                   "attrname": "status",
                   "payloadType": "value",
                   "x": 840,
                   "y": 300,
                   "wires": [
                       [
                           "2fa05a36.5ded86"
                       ]
                   ]
               },
               {
                   "id": "2fa05a36.5ded86",
                   "type": "change",
                   "z": "e7ee46c4.b845a8",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "status + payload",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1040,
                   "y": 300,
                   "wires": [
                       [
                           "2ccbe9ae.5de3b6"
                       ]
                   ]
               },
               {
                   "id": "770eb1d8.1b62",
                   "type": "change",
                   "z": "e7ee46c4.b845a8",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "reset",
                           "pt": "msg",
                           "to": "true",
                           "tot": "bool"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 610,
                   "y": 420,
                   "wires": [
                       [
                           "23347cd3.d823d4",
                           "a3796662.1b2288"
                       ]
                   ]
               },
               {
                   "id": "f50cbcdd.4df18",
                   "type": "inject",
                   "z": "e7ee46c4.b845a8",
                   "name": "Tageswechsel",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "00 00 * * *",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "-1",
                   "payloadType": "num",
                   "x": 1060,
                   "y": 240,
                   "wires": [
                       [
                           "2ccbe9ae.5de3b6"
                       ]
                   ]
               },
               {
                   "id": "a3796662.1b2288",
                   "type": "ioBroker get",
                   "z": "e7ee46c4.b845a8",
                   "name": "get status",
                   "topic": "0_userdata.0.Poolsteuerung.Filteranlage.laufzeit_tag2",
                   "attrname": "status",
                   "payloadType": "value",
                   "x": 840,
                   "y": 420,
                   "wires": [
                       [
                           "c278734d.e25ed"
                       ]
                   ]
               },
               {
                   "id": "c278734d.e25ed",
                   "type": "change",
                   "z": "e7ee46c4.b845a8",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "status - 1",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1040,
                   "y": 420,
                   "wires": [
                       [
                           "2ccbe9ae.5de3b6"
                       ]
                   ]
               }
            ]
            

            S Offline
            S Offline
            schneidy76
            schrieb am zuletzt editiert von schneidy76
            #16

            @mickym 423bc53a-1e2b-4663-b8c2-ccbb619fd1db-image.png
            ich habe mal ne generelle Frage:
            Was gebe ich im Feld "Setze" "flow" "Name" ein? Den Namen des Flows links? Oder benenne ich damit eine x beliebige Variable als flow???

            und wie sieht man den Switch Node richtig?
            Eingang ist zu Eigenschaft???
            Also hier Wassertemperatur ist 10°C <= Solartemp, oder gerade anders herum? Probiere bis es richtig schaltet, aber so richtig dahinter bin ich noch nicht gekommen.

            5545d878-c622-4879-9629-ac05d195fbcb-image.png

            Danke un LG Torsten

            Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

            mickymM 1 Antwort Letzte Antwort
            0
            • S schneidy76

              @mickym 423bc53a-1e2b-4663-b8c2-ccbb619fd1db-image.png
              ich habe mal ne generelle Frage:
              Was gebe ich im Feld "Setze" "flow" "Name" ein? Den Namen des Flows links? Oder benenne ich damit eine x beliebige Variable als flow???

              und wie sieht man den Switch Node richtig?
              Eingang ist zu Eigenschaft???
              Also hier Wassertemperatur ist 10°C <= Solartemp, oder gerade anders herum? Probiere bis es richtig schaltet, aber so richtig dahinter bin ich noch nicht gekommen.

              5545d878-c622-4879-9629-ac05d195fbcb-image.png

              Danke un LG Torsten

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

              @schneidy76

              1. Ja Du gibst den Namen einer FLOW-Variablen ein. Es ist so wie es semantisch da steht:

              Setze flow Variable(flow) Temperatur_Soll auf den Wert der Nachrichteneigenschaft (msg) payload.

              1. Wenn die Switch Node durch eine Nachricht angetriggert wird vergleicht sie die Eigenschaft mit den darunter liegenden Werten. Im obigen Screenshot wird Deine Nachricht an den Ausgang weiter geleitet - je nachdem welchen Wert Deine flow Variable Solartemp hat. Also hat mit dem Wert Deiner Nachricht gar nichts zu tun.

              Die oben abgebildete Switch macht gar keinen Sinn, weil die Nachricht sofern sie <= 10 ist immer an Ausgang 1 geleitet wird. Ist sie hingegen > 10 wird sie gar nicht mehr weitergeleitet bzw. reagiert in Deinem Fall unerwartet.

              Um die Bedingung auf einen Bereich einzuschränken musst Du die switch Node umkonfigurieren:

              935f9681-3f12-4c99-ab29-5da2215994fc-image.png

              Wenn Du es so konfigurierst wie in Deinem Fall - und ich wende es mal auf eine Payload an und Du hast "alle Regeln überprüfen an" -
              24e67309-7053-4969-a870-2126ebbb1cea-image.png
              dann kommt die Nachricht bei einer 9 an beiden Ausgängen heraus:

              ad406b73-4f9c-4cee-8a30-49ca20229ef6-image.png

              Nur wenn Du "Nach erster Übereinstimmung stoppen" setzt kommt bei 9 nur am 1. Ausgang was raus.

              Aber nochmal - in der Eigenschaft steht mit welche Eigenschaft Du mit welchen Bedingungen vergleichst.

              Also Du vergleichst nicht die Wassertemperatur (gehe mal davon aus, dass das Deine msg.payload ist), sondern leitest die Nachricht in Abhängigkeit des Zustandes Deiner Flow Variablen flow.Solartemp. Wolltest Du Deine payload mit Deiner flow Variablen Solartemperatur vergleichen, so kannst Du das ja nur relativ tun, in dem Du sagst msg.payload kleiner als flow.Solartemperatur. Damit vergleichst Du aber nicht mehr mit konstanten Werten:

              257cdef9-ae25-4fb5-98bc-014c138d083e-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.

              S 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @schneidy76

                1. Ja Du gibst den Namen einer FLOW-Variablen ein. Es ist so wie es semantisch da steht:

                Setze flow Variable(flow) Temperatur_Soll auf den Wert der Nachrichteneigenschaft (msg) payload.

                1. Wenn die Switch Node durch eine Nachricht angetriggert wird vergleicht sie die Eigenschaft mit den darunter liegenden Werten. Im obigen Screenshot wird Deine Nachricht an den Ausgang weiter geleitet - je nachdem welchen Wert Deine flow Variable Solartemp hat. Also hat mit dem Wert Deiner Nachricht gar nichts zu tun.

                Die oben abgebildete Switch macht gar keinen Sinn, weil die Nachricht sofern sie <= 10 ist immer an Ausgang 1 geleitet wird. Ist sie hingegen > 10 wird sie gar nicht mehr weitergeleitet bzw. reagiert in Deinem Fall unerwartet.

                Um die Bedingung auf einen Bereich einzuschränken musst Du die switch Node umkonfigurieren:

                935f9681-3f12-4c99-ab29-5da2215994fc-image.png

                Wenn Du es so konfigurierst wie in Deinem Fall - und ich wende es mal auf eine Payload an und Du hast "alle Regeln überprüfen an" -
                24e67309-7053-4969-a870-2126ebbb1cea-image.png
                dann kommt die Nachricht bei einer 9 an beiden Ausgängen heraus:

                ad406b73-4f9c-4cee-8a30-49ca20229ef6-image.png

                Nur wenn Du "Nach erster Übereinstimmung stoppen" setzt kommt bei 9 nur am 1. Ausgang was raus.

                Aber nochmal - in der Eigenschaft steht mit welche Eigenschaft Du mit welchen Bedingungen vergleichst.

                Also Du vergleichst nicht die Wassertemperatur (gehe mal davon aus, dass das Deine msg.payload ist), sondern leitest die Nachricht in Abhängigkeit des Zustandes Deiner Flow Variablen flow.Solartemp. Wolltest Du Deine payload mit Deiner flow Variablen Solartemperatur vergleichen, so kannst Du das ja nur relativ tun, in dem Du sagst msg.payload kleiner als flow.Solartemperatur. Damit vergleichst Du aber nicht mehr mit konstanten Werten:

                257cdef9-ae25-4fb5-98bc-014c138d083e-image.png

                S Offline
                S Offline
                schneidy76
                schrieb am zuletzt editiert von
                #18

                @mickym Blöd, was ich eigentlich erreichen wollte ist eine Schalthysterese...
                a1a7f477-5b3b-485a-a9fe-3ba1fb3f4bfa-image.png

                Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                mickymM 1 Antwort Letzte Antwort
                0
                • S schneidy76

                  @mickym Blöd, was ich eigentlich erreichen wollte ist eine Schalthysterese...
                  a1a7f477-5b3b-485a-a9fe-3ba1fb3f4bfa-image.png

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

                  @schneidy76 Na das passt schon - nur musst Du Deine Bedingungen dann halt ausschließlich setzen.

                  Die Bereiche sollen sich nicht überschneiden.

                  Also Ausgang 1 bei >= 10 und Ausgang 2 bei <8. Dazwischen mache nichts.

                  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.

                  S 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @schneidy76 Na das passt schon - nur musst Du Deine Bedingungen dann halt ausschließlich setzen.

                    Die Bereiche sollen sich nicht überschneiden.

                    Also Ausgang 1 bei >= 10 und Ausgang 2 bei <8. Dazwischen mache nichts.

                    S Offline
                    S Offline
                    schneidy76
                    schrieb am zuletzt editiert von
                    #20

                    @mickym also so?
                    0741ad89-0f7d-41b2-bd20-c686a08033d7-image.png

                    Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • S schneidy76

                      @mickym also so?
                      0741ad89-0f7d-41b2-bd20-c686a08033d7-image.png

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

                      @schneidy76 Nein so:

                      0ebe61b9-2743-4ba3-8a40-4d9a1614b575-image.png

                      Zwischen 8 und 10 passiert doch nichts - das ist doch der Sinn der Hysterese.

                      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.

                      S 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @schneidy76 Nein so:

                        0ebe61b9-2743-4ba3-8a40-4d9a1614b575-image.png

                        Zwischen 8 und 10 passiert doch nichts - das ist doch der Sinn der Hysterese.

                        S Offline
                        S Offline
                        schneidy76
                        schrieb am zuletzt editiert von
                        #22

                        @mickym funktioniert nicht, ich glaube wir reden aneinander vorbei:

                        1. Heizen aktiv true: wenn Wassertemperatur 1 Grad unter Soll liegt
                        2. Heizen aktive false: wenn Wassertemperatur 2 Grad über Soll liegt

                        Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • S schneidy76

                          @mickym funktioniert nicht, ich glaube wir reden aneinander vorbei:

                          1. Heizen aktiv true: wenn Wassertemperatur 1 Grad unter Soll liegt
                          2. Heizen aktive false: wenn Wassertemperatur 2 Grad über Soll liegt
                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #23

                          @schneidy76 Du kannst die Eigenschaft entweder mit konstaten Werten vergleichen - oder in Deinem Fall soll ja gleichzeitig mit einer Flowvariablen gerechnet werden.

                          Es gäbe nun 2 Möglichkeiten - entweder Du setzt 2 weitere Flowvariablen in einem Flow als Grenzen.
                          Also Heizen_Schalten = Flow Soll_Temp - 1 oder Heizen_Abschalten = Flow Soll_Temp + 2. Dann machst Du 2 switch Nodes in dem Du die payload (Deine aktuelle Wassertemperatur) gegen einmal oberer und untere Grenze laufen lässt.
                          Falls ich Dir diese Variante zeigen soll - dann musst Dich nochmal melden.

                          Oder man macht es mit gleichzeitiger Berechnung in dem man die Wahrheit auf einen richtigen JSONATA Ausdruck überprüft - also gleichzeitig rechnen lässt:

                          Zur Illustration habe ich Deine Flow Variable Soll_Temperatur mal auf 20 gesetzt:

                          949f27a1-b00f-40a9-b43e-a8f07898891b-image.png

                          Dann mal getestet - den "Mache Nichts Ausgang" kannst wieder weg machen - diente nur zur Illustration:

                          701ded5e-2ca5-415e-8cd9-21b6daf54c4a-image.png

                          fb63297b-481e-4e1c-9b1b-1bb749a0b218-image.png

                          Da Du vergleichen und gleichzeitig rechnen willst - kannst Du auswerten, ob ein JSONATA Ausdruck richtig ist:

                          b871a2f7-1e2a-4517-be14-ae11f5bd9907-image.png

                          Hier mal die Change Node zum Import:

                          [
                              {
                                  "id": "ded0ed78.66122",
                                  "type": "switch",
                                  "z": "6e170384.60c96c",
                                  "name": "",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "jsonata_exp",
                                          "v": "payload < $flowContext('Soll_Temperatur') - 1",
                                          "vt": "jsonata"
                                      },
                                      {
                                          "t": "jsonata_exp",
                                          "v": "payload >= $flowContext('Soll_Temperatur') + 2",
                                          "vt": "jsonata"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 3,
                                  "x": 2030,
                                  "y": 4340,
                                  "wires": [
                                      [
                                          "e145cadc.4fe838"
                                      ],
                                      [
                                          "90889703.c5e7e8"
                                      ],
                                      [
                                          "edec846e.7f4838"
                                      ]
                                  ]
                              }
                          ]
                          

                          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.

                          S 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @schneidy76 Du kannst die Eigenschaft entweder mit konstaten Werten vergleichen - oder in Deinem Fall soll ja gleichzeitig mit einer Flowvariablen gerechnet werden.

                            Es gäbe nun 2 Möglichkeiten - entweder Du setzt 2 weitere Flowvariablen in einem Flow als Grenzen.
                            Also Heizen_Schalten = Flow Soll_Temp - 1 oder Heizen_Abschalten = Flow Soll_Temp + 2. Dann machst Du 2 switch Nodes in dem Du die payload (Deine aktuelle Wassertemperatur) gegen einmal oberer und untere Grenze laufen lässt.
                            Falls ich Dir diese Variante zeigen soll - dann musst Dich nochmal melden.

                            Oder man macht es mit gleichzeitiger Berechnung in dem man die Wahrheit auf einen richtigen JSONATA Ausdruck überprüft - also gleichzeitig rechnen lässt:

                            Zur Illustration habe ich Deine Flow Variable Soll_Temperatur mal auf 20 gesetzt:

                            949f27a1-b00f-40a9-b43e-a8f07898891b-image.png

                            Dann mal getestet - den "Mache Nichts Ausgang" kannst wieder weg machen - diente nur zur Illustration:

                            701ded5e-2ca5-415e-8cd9-21b6daf54c4a-image.png

                            fb63297b-481e-4e1c-9b1b-1bb749a0b218-image.png

                            Da Du vergleichen und gleichzeitig rechnen willst - kannst Du auswerten, ob ein JSONATA Ausdruck richtig ist:

                            b871a2f7-1e2a-4517-be14-ae11f5bd9907-image.png

                            Hier mal die Change Node zum Import:

                            [
                                {
                                    "id": "ded0ed78.66122",
                                    "type": "switch",
                                    "z": "6e170384.60c96c",
                                    "name": "",
                                    "property": "payload",
                                    "propertyType": "msg",
                                    "rules": [
                                        {
                                            "t": "jsonata_exp",
                                            "v": "payload < $flowContext('Soll_Temperatur') - 1",
                                            "vt": "jsonata"
                                        },
                                        {
                                            "t": "jsonata_exp",
                                            "v": "payload >= $flowContext('Soll_Temperatur') + 2",
                                            "vt": "jsonata"
                                        },
                                        {
                                            "t": "else"
                                        }
                                    ],
                                    "checkall": "true",
                                    "repair": false,
                                    "outputs": 3,
                                    "x": 2030,
                                    "y": 4340,
                                    "wires": [
                                        [
                                            "e145cadc.4fe838"
                                        ],
                                        [
                                            "90889703.c5e7e8"
                                        ],
                                        [
                                            "edec846e.7f4838"
                                        ]
                                    ]
                                }
                            ]
                            
                            S Offline
                            S Offline
                            schneidy76
                            schrieb am zuletzt editiert von
                            #24

                            @mickym jetzt scheint es zu funktioniere. Danke :clap:
                            Bin auch unter anderen darüber gestolpert, dass eine Änderung an der Soll Temperatur natürlich keine sofortige Änderung am Flow auslöst. Er wird von der trägen Wassertemperatur getriggert, ist ja auch sinnvoll.

                            Kann man trotzdem den Trigger irgendwie kombinieren? Oder wenigstens periodisch anstoßen? :grinning:

                            Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • S schneidy76

                              @mickym jetzt scheint es zu funktioniere. Danke :clap:
                              Bin auch unter anderen darüber gestolpert, dass eine Änderung an der Soll Temperatur natürlich keine sofortige Änderung am Flow auslöst. Er wird von der trägen Wassertemperatur getriggert, ist ja auch sinnvoll.

                              Kann man trotzdem den Trigger irgendwie kombinieren? Oder wenigstens periodisch anstoßen? :grinning:

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

                              @schneidy76 Ich halte es auch für sinnvoll, dass nur die Wassertemperatur triggert, warum willst Du das periodisch anstoßen, wenn sich eh nichts ändert? - Verbraucht doch nur sinnlos - Resourcen am Rechner.

                              Grundsätzlich kannst Du natürlich manuell über die Kombi Inject-Node und iobroker Get Node den Flow antriggern. Wenn es sein muss, dann halt auch über die Inject Node periodisch, das habe ich Dir ja in dem Flow zur Laufzeit mehrfach gezeigt.
                              Um den Flow jedoch zu testen nehme ich immer die Inject Node - dafür ist sie da, um selbst über die Taste zu triggern.

                              Und natürlich könntest Du auch über den Datenpunkt im iobroker triggern, wenn dieser Schreiben zulässt. ;)

                              Und final kannst Du natürlich auch über eine Änderung der Solltemperatur antriggern. Die Solltemperatur mit einer iobrokerIn triggern lassen und die Wassertemperatur über iobrokerGet holen. Alles möglich!

                              Generell bietet sich hierfür die Huckepack Methode - also ohne Flowvariable an.

                              Nehmen wir mal an Du hast 2 Datenpunkte (ist= Wassertemperatur, soll = Solltemperatur).

                              9b7d01e8-3554-4e01-98c3-9209f55ab89e-image.png

                              Dann zeig ich Dir mal eine Flow - indem Du beide Werte im msg. Objekt mitschleifst im nächsten 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.

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @schneidy76 Ich halte es auch für sinnvoll, dass nur die Wassertemperatur triggert, warum willst Du das periodisch anstoßen, wenn sich eh nichts ändert? - Verbraucht doch nur sinnlos - Resourcen am Rechner.

                                Grundsätzlich kannst Du natürlich manuell über die Kombi Inject-Node und iobroker Get Node den Flow antriggern. Wenn es sein muss, dann halt auch über die Inject Node periodisch, das habe ich Dir ja in dem Flow zur Laufzeit mehrfach gezeigt.
                                Um den Flow jedoch zu testen nehme ich immer die Inject Node - dafür ist sie da, um selbst über die Taste zu triggern.

                                Und natürlich könntest Du auch über den Datenpunkt im iobroker triggern, wenn dieser Schreiben zulässt. ;)

                                Und final kannst Du natürlich auch über eine Änderung der Solltemperatur antriggern. Die Solltemperatur mit einer iobrokerIn triggern lassen und die Wassertemperatur über iobrokerGet holen. Alles möglich!

                                Generell bietet sich hierfür die Huckepack Methode - also ohne Flowvariable an.

                                Nehmen wir mal an Du hast 2 Datenpunkte (ist= Wassertemperatur, soll = Solltemperatur).

                                9b7d01e8-3554-4e01-98c3-9209f55ab89e-image.png

                                Dann zeig ich Dir mal eine Flow - indem Du beide Werte im msg. Objekt mitschleifst im nächsten Flow.

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

                                So hier alles ohne Flowvariable - in dem ich die Werte im Objekt mitschleife:

                                af642081-4799-43e9-a212-b095048d8a9c-image.png

                                Statt setze msg.ist bzw. msg.soll müsste hier eigentlich bewege stehen - da ich die orginäre payload Eigenschaft nach der Change Node nicht mehr vorhanden ist!

                                Damit wird das Ganze ohne Flowvariablen realisiert und kann sowohl von Änderungen der Wasser- (=IST) als auch der Soll- (SOLL) Temperatur getriggert werden.

                                Beide Werte als Eigenschaften im Nachrichtenobjekt mitgetragen als msg.ist bzw. msg.soll und können dann im switch Node direkt miteinander verglichen werden.

                                Die switch Node vereinfacht sich dann wie folgt:

                                3ab00885-357d-4df1-90cc-5d3334a26778-image.png

                                Bei einem JSONATA Ausdruck wird übrigens die Eigenschaft im switch Node völlig ignoriert. Die Nachrichten werden immer dahin geschickt dessen JSONATA Ausdruck "true" ergibt.

                                In der Heizungs (Debug Node) siehst Du als Ergebnis das gesamte Nachrichtenobjekt:

                                screen.png

                                Die payload (true oder false), die Du an Deine iobroker Out Node schickst.

                                Und die Ursprungswerte Die aus der IST und SOLL Node stammen. Das meinte ich mit Huckepack.

                                Hier wieder der Flow zum Import:

                                [
                                   {
                                       "id": "b4f00967.8768b8",
                                       "type": "ioBroker in",
                                       "z": "6e170384.60c96c",
                                       "name": "Soll-Temperatur",
                                       "topic": "0_userdata.0.Poolsteuerung.Soll-Temperatur",
                                       "payloadType": "value",
                                       "onlyack": "",
                                       "func": "all",
                                       "gap": "",
                                       "fireOnStart": "false",
                                       "x": 1740,
                                       "y": 4700,
                                       "wires": [
                                           [
                                               "7b0f991e.b2f938"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "b5c815f7.fcc2f8",
                                       "type": "change",
                                       "z": "6e170384.60c96c",
                                       "name": "setze msg.ist",
                                       "rules": [
                                           {
                                               "t": "move",
                                               "p": "payload",
                                               "pt": "msg",
                                               "to": "ist",
                                               "tot": "msg"
                                           }
                                       ],
                                       "action": "",
                                       "property": "",
                                       "from": "",
                                       "to": "",
                                       "reg": false,
                                       "x": 1970,
                                       "y": 4620,
                                       "wires": [
                                           [
                                               "f200b4c8.f74f18"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "7b0f991e.b2f938",
                                       "type": "change",
                                       "z": "6e170384.60c96c",
                                       "name": "setze msg.soll",
                                       "rules": [
                                           {
                                               "t": "move",
                                               "p": "payload",
                                               "pt": "msg",
                                               "to": "soll",
                                               "tot": "msg"
                                           }
                                       ],
                                       "action": "",
                                       "property": "",
                                       "from": "",
                                       "to": "",
                                       "reg": false,
                                       "x": 1960,
                                       "y": 4700,
                                       "wires": [
                                           [
                                               "ef3f9cdc.250e9"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "f200b4c8.f74f18",
                                       "type": "ioBroker get",
                                       "z": "6e170384.60c96c",
                                       "name": "hole soll",
                                       "topic": "0_userdata.0.Poolsteuerung.Soll-Temperatur",
                                       "attrname": "soll",
                                       "payloadType": "value",
                                       "x": 2140,
                                       "y": 4620,
                                       "wires": [
                                           [
                                               "c52f11a0.021ba"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "ef3f9cdc.250e9",
                                       "type": "ioBroker get",
                                       "z": "6e170384.60c96c",
                                       "name": "hole ist",
                                       "topic": "0_userdata.0.Poolsteuerung.Ist-Temperatur",
                                       "attrname": "ist",
                                       "payloadType": "value",
                                       "x": 2140,
                                       "y": 4700,
                                       "wires": [
                                           [
                                               "c52f11a0.021ba"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "685402b8.8e103c",
                                       "type": "ioBroker in",
                                       "z": "6e170384.60c96c",
                                       "name": "Ist-Temperatur",
                                       "topic": "0_userdata.0.Poolsteuerung.Ist-Temperatur",
                                       "payloadType": "value",
                                       "onlyack": "",
                                       "func": "all",
                                       "gap": "",
                                       "fireOnStart": "false",
                                       "x": 1750,
                                       "y": 4620,
                                       "wires": [
                                           [
                                               "b5c815f7.fcc2f8"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "c52f11a0.021ba",
                                       "type": "switch",
                                       "z": "6e170384.60c96c",
                                       "name": "",
                                       "property": "payload",
                                       "propertyType": "msg",
                                       "rules": [
                                           {
                                               "t": "jsonata_exp",
                                               "v": "ist < soll - 1",
                                               "vt": "jsonata"
                                           },
                                           {
                                               "t": "jsonata_exp",
                                               "v": "ist >= soll + 2",
                                               "vt": "jsonata"
                                           }
                                       ],
                                       "checkall": "true",
                                       "repair": false,
                                       "outputs": 2,
                                       "x": 2310,
                                       "y": 4660,
                                       "wires": [
                                           [
                                               "be5d24b5.05c5e8"
                                           ],
                                           [
                                               "c7367aee.eceed8"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "be5d24b5.05c5e8",
                                       "type": "change",
                                       "z": "6e170384.60c96c",
                                       "name": "true",
                                       "rules": [
                                           {
                                               "t": "set",
                                               "p": "payload",
                                               "pt": "msg",
                                               "to": "true",
                                               "tot": "bool"
                                           }
                                       ],
                                       "action": "",
                                       "property": "",
                                       "from": "",
                                       "to": "",
                                       "reg": false,
                                       "x": 2470,
                                       "y": 4620,
                                       "wires": [
                                           [
                                               "70732428.3cb09c"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "70732428.3cb09c",
                                       "type": "debug",
                                       "z": "6e170384.60c96c",
                                       "name": "Heizung",
                                       "active": true,
                                       "tosidebar": true,
                                       "console": false,
                                       "tostatus": false,
                                       "complete": "true",
                                       "targetType": "full",
                                       "statusVal": "",
                                       "statusType": "auto",
                                       "x": 2640,
                                       "y": 4640,
                                       "wires": []
                                   },
                                   {
                                       "id": "c7367aee.eceed8",
                                       "type": "change",
                                       "z": "6e170384.60c96c",
                                       "name": "false",
                                       "rules": [
                                           {
                                               "t": "set",
                                               "p": "payload",
                                               "pt": "msg",
                                               "to": "false",
                                               "tot": "bool"
                                           }
                                       ],
                                       "action": "",
                                       "property": "",
                                       "from": "",
                                       "to": "",
                                       "reg": false,
                                       "x": 2470,
                                       "y": 4680,
                                       "wires": [
                                           [
                                               "70732428.3cb09c"
                                           ]
                                       ]
                                   }
                                ]
                                

                                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
                                • S Offline
                                  S Offline
                                  schneidy76
                                  schrieb am zuletzt editiert von schneidy76
                                  #27

                                  @mickym Ich habe beide Varianten gewählt, die Regelung lasse ich so. Für die Solarunterstützung verwende ich die zweite Version.
                                  Mittlerweile sind noch einige Abhängigkeiten dazu gekommen.
                                  Bin überrascht, was man mit Node Red so alles anstellen kann. :grinning:

                                  Ich würde jetzt für die Restlaufzeit der Pumpe deinen Flow zur Laufzeit hernehmen und einfach rückwärts rechnen. Oder?
                                  Was mir allerdings aufgefallen ist, der stand heute Vormittag auf -72.

                                  Du setzt hier mehrmals -1 in die msg, warum?

                                  VG Torsten

                                  so sieht es derzeit aus:

                                  2021-03-31 10_47_32-Window.png

                                  Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • S schneidy76

                                    @mickym Ich habe beide Varianten gewählt, die Regelung lasse ich so. Für die Solarunterstützung verwende ich die zweite Version.
                                    Mittlerweile sind noch einige Abhängigkeiten dazu gekommen.
                                    Bin überrascht, was man mit Node Red so alles anstellen kann. :grinning:

                                    Ich würde jetzt für die Restlaufzeit der Pumpe deinen Flow zur Laufzeit hernehmen und einfach rückwärts rechnen. Oder?
                                    Was mir allerdings aufgefallen ist, der stand heute Vormittag auf -72.

                                    Du setzt hier mehrmals -1 in die msg, warum?

                                    VG Torsten

                                    so sieht es derzeit aus:

                                    2021-03-31 10_47_32-Window.png

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

                                    @schneidy76 sagte in Poolsteuerung, Anfänger braucht Hilfe:

                                    @mickym Ich habe beide Varianten gewählt, die Regelung lasse ich so. Für die Solarunterstützung verwende ich die zweite Version.
                                    Mittlerweile sind noch einige Abhängigkeiten dazu gekommen.
                                    Bin überrascht, was man mit Node Red so alles anstellen kann. :grinning:

                                    Ich würde jetzt für die Restlaufzeit der Pumpe deinen Flow zur Laufzeit hernehmen und einfach rückwärts rechnen. Oder?
                                    Was mir allerdings aufgefallen ist, der stand heute Vormittag auf -72.

                                    Du setzt hier mehrmals -1 in die msg, warum?

                                    Nun dann musst Du bei Deinen iobroker in-Nodes entweder setzen, dass die nur Senden dürfen, wenn sich der Wert ändert oder Du klemmst noch eine rbe Node zwischen Deinen UND Baustein und der "switch" Node läuft oder läuft nicht.

                                    Wie Du richtig erkannt hast wird bei jedem "false" - 1 gesetzt und beim Tageswechsel.

                                    Der Grund ist wesentlich simple - um eine kleine Ungenauigkeit von EINER Minute auszugleichen.
                                    Die trigger Node fängt ja sobald der Filter läuft gleich zu Beginn eine 1 zu schicken und dann jede weitere Minute wieder eine 1. Beim Start ist also bereits 1 Minute vergangen in der Zählung, obwohl das erst gestartet ist.
                                    Beginne ich bei - 1 und die Filter schaltet ein - wird sofort auf 0 gesetzt (initiales 1) und somit die erste 1 ignoriert und erst nach Ablauf einer Minute steht der Zähler auf 1. Deshalb wird auch beim Ausschalten auch wieder 1 abgezogen, damit sich das beim nächsten Einschalten wieder ausgleicht.

                                    Alles andere, also die erste 1 zu ignorieren würde den Flow unnötig komplizieren und Du müsstest es mit einem kleinen Programm in einer Function Node machen.

                                    Also nachdem Du mehrere Trigger hast - hänge eine rbe nach Deiner UND Node dazwischen, so dass nur noch Zustandsänderungen durchkommen.

                                    Ja mit NodeRed kann man sehr viel und vor allem in meinen Augen übersichtlich machen. Deswegen bin ich auch so ein FAN. ;) Du wirst sehen, wenn Du NodeRed als Logikmaschine einsetzt wirst Du teilweise noch mehr machen können durch die Entwicklung einer großen FAN Gemeinde. Die Eingangsnodes sind im Prinzip wie Adapter unter iobroker gleich zusetzen. Ich arbeite zum Beispiel gerade an einer SNMP Überwachung meiner Raspberries. Erst habe ich den SMNP Adapter in iobroker versucht, der wurde aber schon seit über 2 Jahren nicht mehr gepflegt und ich bekam einfach nicht alle Werte. Nun mache ich alles mit SNMP Nodes in NodeRed und funktioniert prima auch mit Tabellen etc.

                                    ============================================================================

                                    So nun zu Deinem Problem der Restlaufzeit - das ist nicht so banal wie es logisch aussieht.
                                    Im Prinzip hast Du eine einfache und eine komplexere Möglichkeit. Das Runterrechnen ist relativ kompliziert.

                                    Das Einfachste wäre, wenn Du mal Folgendes festlegen würdes.

                                    Nehmen wir an die Pumpe/Filter müsste pro Tag 2 Stunden laufen und sie wäre den ganzen Tag noch gar nicht gelaufen. Dann würde ich einfach eine Flow über eine Inject Node ab 21:45 anstossen, der alle 10 Minuten überprüft, ob die Mindestlaufzeit erreicht ist indem ich Laufzeit - 120 > oder >= 0 abprüfe. Jedenfalls brauchst Du ja einen externen Zeittrigger - da kannst Du dann ja keine Temperatur mehr verwenden.

                                    Ansonsten muss man halt wie Du sagst den Zeitpunkt des Tageswechsels minus Laufzeit berechnen - dann würde ich mir aber noch den EZTIMER installieren, der Dir dann einen Trigger zur gewünschten Uhrzeit liefern kann.

                                    Immer - >Trigger -> Verarbeitung -> Steuerung. Das ist das A und O.

                                    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.

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @schneidy76 sagte in Poolsteuerung, Anfänger braucht Hilfe:

                                      @mickym Ich habe beide Varianten gewählt, die Regelung lasse ich so. Für die Solarunterstützung verwende ich die zweite Version.
                                      Mittlerweile sind noch einige Abhängigkeiten dazu gekommen.
                                      Bin überrascht, was man mit Node Red so alles anstellen kann. :grinning:

                                      Ich würde jetzt für die Restlaufzeit der Pumpe deinen Flow zur Laufzeit hernehmen und einfach rückwärts rechnen. Oder?
                                      Was mir allerdings aufgefallen ist, der stand heute Vormittag auf -72.

                                      Du setzt hier mehrmals -1 in die msg, warum?

                                      Nun dann musst Du bei Deinen iobroker in-Nodes entweder setzen, dass die nur Senden dürfen, wenn sich der Wert ändert oder Du klemmst noch eine rbe Node zwischen Deinen UND Baustein und der "switch" Node läuft oder läuft nicht.

                                      Wie Du richtig erkannt hast wird bei jedem "false" - 1 gesetzt und beim Tageswechsel.

                                      Der Grund ist wesentlich simple - um eine kleine Ungenauigkeit von EINER Minute auszugleichen.
                                      Die trigger Node fängt ja sobald der Filter läuft gleich zu Beginn eine 1 zu schicken und dann jede weitere Minute wieder eine 1. Beim Start ist also bereits 1 Minute vergangen in der Zählung, obwohl das erst gestartet ist.
                                      Beginne ich bei - 1 und die Filter schaltet ein - wird sofort auf 0 gesetzt (initiales 1) und somit die erste 1 ignoriert und erst nach Ablauf einer Minute steht der Zähler auf 1. Deshalb wird auch beim Ausschalten auch wieder 1 abgezogen, damit sich das beim nächsten Einschalten wieder ausgleicht.

                                      Alles andere, also die erste 1 zu ignorieren würde den Flow unnötig komplizieren und Du müsstest es mit einem kleinen Programm in einer Function Node machen.

                                      Also nachdem Du mehrere Trigger hast - hänge eine rbe nach Deiner UND Node dazwischen, so dass nur noch Zustandsänderungen durchkommen.

                                      Ja mit NodeRed kann man sehr viel und vor allem in meinen Augen übersichtlich machen. Deswegen bin ich auch so ein FAN. ;) Du wirst sehen, wenn Du NodeRed als Logikmaschine einsetzt wirst Du teilweise noch mehr machen können durch die Entwicklung einer großen FAN Gemeinde. Die Eingangsnodes sind im Prinzip wie Adapter unter iobroker gleich zusetzen. Ich arbeite zum Beispiel gerade an einer SNMP Überwachung meiner Raspberries. Erst habe ich den SMNP Adapter in iobroker versucht, der wurde aber schon seit über 2 Jahren nicht mehr gepflegt und ich bekam einfach nicht alle Werte. Nun mache ich alles mit SNMP Nodes in NodeRed und funktioniert prima auch mit Tabellen etc.

                                      ============================================================================

                                      So nun zu Deinem Problem der Restlaufzeit - das ist nicht so banal wie es logisch aussieht.
                                      Im Prinzip hast Du eine einfache und eine komplexere Möglichkeit. Das Runterrechnen ist relativ kompliziert.

                                      Das Einfachste wäre, wenn Du mal Folgendes festlegen würdes.

                                      Nehmen wir an die Pumpe/Filter müsste pro Tag 2 Stunden laufen und sie wäre den ganzen Tag noch gar nicht gelaufen. Dann würde ich einfach eine Flow über eine Inject Node ab 21:45 anstossen, der alle 10 Minuten überprüft, ob die Mindestlaufzeit erreicht ist indem ich Laufzeit - 120 > oder >= 0 abprüfe. Jedenfalls brauchst Du ja einen externen Zeittrigger - da kannst Du dann ja keine Temperatur mehr verwenden.

                                      Ansonsten muss man halt wie Du sagst den Zeitpunkt des Tageswechsels minus Laufzeit berechnen - dann würde ich mir aber noch den EZTIMER installieren, der Dir dann einen Trigger zur gewünschten Uhrzeit liefern kann.

                                      Immer - >Trigger -> Verarbeitung -> Steuerung. Das ist das A und O.

                                      S Offline
                                      S Offline
                                      schneidy76
                                      schrieb am zuletzt editiert von
                                      #29

                                      @mickym jepp den rbe habe ich jetzt schon mehrfach benötigt. :grin: Hat ein wenig Suche gekostet, aber wenn man weiß wonach man suchen muss..
                                      Die eine Minute Ungenauigkeit ist nicht so wild...

                                      Für die Nachlaufzeit habe ich folgenden Schnipsel gebastelt:
                                      51968386-0720-48fc-8885-9f8b5476f6ef-image.png


                                      [
                                      {
                                      "id": "6cae00d1.7bcd6",
                                      "type": "inject",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Prüfen 20:00Uhr",
                                      "props": [
                                      {
                                      "p": "payload"
                                      }
                                      ],
                                      "repeat": "",
                                      "crontab": "00 20 * * *",
                                      "once": false,
                                      "onceDelay": 0.1,
                                      "topic": "",
                                      "payload": "true",
                                      "payloadType": "bool",
                                      "x": 1390,
                                      "y": 1340,
                                      "wires": [
                                      [
                                      "673accb8.5242a4"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "673accb8.5242a4",
                                      "type": "ioBroker get",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Hole Laufzeit_Tag",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                      "attrname": "payload",
                                      "payloadType": "value",
                                      "x": 1550,
                                      "y": 1440,
                                      "wires": [
                                      [
                                      "fb58bba0.d2a9e8"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "a1c375e7.71c418",
                                      "type": "switch",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Laufzeit prüfen",
                                      "property": "payload",
                                      "propertyType": "msg",
                                      "rules": [
                                      {
                                      "t": "jsonata_exp",
                                      "v": "gelaufen <= 300",
                                      "vt": "jsonata"
                                      },
                                      {
                                      "t": "jsonata_exp",
                                      "v": "gelaufen > 300",
                                      "vt": "jsonata"
                                      }
                                      ],
                                      "checkall": "true",
                                      "repair": false,
                                      "outputs": 2,
                                      "x": 2080,
                                      "y": 1440,
                                      "wires": [
                                      [
                                      "a6569b85.5478d8"
                                      ],
                                      [
                                      "c5b2c068.01f4a"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "dd3ddd1f.fa71b",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "setze msg",
                                      "rules": [
                                      {
                                      "t": "move",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "gelaufen",
                                      "tot": "msg"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 1890,
                                      "y": 1440,
                                      "wires": [
                                      [
                                      "a1c375e7.71c418"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "a6569b85.5478d8",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "setze true",
                                      "rules": [
                                      {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "true",
                                      "tot": "bool"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 2320,
                                      "y": 1420,
                                      "wires": [
                                      [
                                      "32290619.37b98a",
                                      "99c2148f.e09378"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "32290619.37b98a",
                                      "type": "ioBroker out",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Pumpe Nachlaufzeit",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_Nachlaufzeit",
                                      "ack": "true",
                                      "autoCreate": "false",
                                      "stateName": "",
                                      "role": "",
                                      "payloadType": "",
                                      "readonly": "",
                                      "stateUnit": "",
                                      "stateMin": "",
                                      "stateMax": "",
                                      "x": 2560,
                                      "y": 1420,
                                      "wires": []
                                      },
                                      {
                                      "id": "99c2148f.e09378",
                                      "type": "trigger",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Trigger 1 min",
                                      "op1": "1",
                                      "op2": "0",
                                      "op1type": "str",
                                      "op2type": "str",
                                      "duration": "-1",
                                      "extend": false,
                                      "overrideDelay": false,
                                      "units": "min",
                                      "reset": "",
                                      "bytopic": "all",
                                      "topic": "topic",
                                      "outputs": 1,
                                      "x": 1530,
                                      "y": 1520,
                                      "wires": [
                                      [
                                      "673accb8.5242a4"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "c5b2c068.01f4a",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "setze false",
                                      "rules": [
                                      {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "false",
                                      "tot": "bool"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 2330,
                                      "y": 1480,
                                      "wires": [
                                      [
                                      "32290619.37b98a"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "fb58bba0.d2a9e8",
                                      "type": "rbe",
                                      "z": "89394b0c.86b5a8",
                                      "name": "entprellen",
                                      "func": "rbe",
                                      "gap": "",
                                      "start": "",
                                      "inout": "out",
                                      "septopics": true,
                                      "property": "payload",
                                      "x": 1740,
                                      "y": 1440,
                                      "wires": [
                                      [
                                      "dd3ddd1f.fa71b"
                                      ]
                                      ]
                                      }
                                      ]

                                      und das dann hier verknüpft


                                      [
                                      {
                                      "id": "66f988a6.4ca578",
                                      "type": "ioBroker in",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Filterpumpe Auto Ein/Aus",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpenautomatik",
                                      "payloadType": "value",
                                      "onlyack": "",
                                      "func": "rbe",
                                      "gap": "",
                                      "fireOnStart": "true",
                                      "x": 230,
                                      "y": 1460,
                                      "wires": [
                                      [
                                      "26fc5e80.485f12"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "426bfb66.27e944",
                                      "type": "switch",
                                      "z": "89394b0c.86b5a8",
                                      "name": "läuft oder läuft nicht",
                                      "property": "payload",
                                      "propertyType": "msg",
                                      "rules": [
                                      {
                                      "t": "true"
                                      },
                                      {
                                      "t": "false"
                                      }
                                      ],
                                      "checkall": "true",
                                      "repair": false,
                                      "outputs": 2,
                                      "x": 470,
                                      "y": 1760,
                                      "wires": [
                                      [
                                      "23347cd3.d823d4"
                                      ],
                                      [
                                      "770eb1d8.1b62"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "2ccbe9ae.5de3b6",
                                      "type": "ioBroker out",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Laufzeit_Tag",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                      "ack": "true",
                                      "autoCreate": "false",
                                      "stateName": "",
                                      "role": "",
                                      "payloadType": "",
                                      "readonly": "",
                                      "stateUnit": "",
                                      "stateMin": "",
                                      "stateMax": "",
                                      "x": 1650,
                                      "y": 1700,
                                      "wires": []
                                      },
                                      {
                                      "id": "23347cd3.d823d4",
                                      "type": "trigger",
                                      "z": "89394b0c.86b5a8",
                                      "name": "",
                                      "op1": "1",
                                      "op2": "0",
                                      "op1type": "num",
                                      "op2type": "str",
                                      "duration": "-1",
                                      "extend": false,
                                      "overrideDelay": false,
                                      "units": "min",
                                      "reset": "",
                                      "bytopic": "all",
                                      "topic": "topic",
                                      "outputs": 1,
                                      "x": 770,
                                      "y": 1700,
                                      "wires": [
                                      [
                                      "f0106a67.68ccf8"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "f0106a67.68ccf8",
                                      "type": "ioBroker get",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Laufzeit_Tag",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                      "attrname": "status",
                                      "payloadType": "value",
                                      "x": 1010,
                                      "y": 1700,
                                      "wires": [
                                      [
                                      "2fa05a36.5ded86"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "2fa05a36.5ded86",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "",
                                      "rules": [
                                      {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "status + payload",
                                      "tot": "jsonata"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 1250,
                                      "y": 1700,
                                      "wires": [
                                      [
                                      "2ccbe9ae.5de3b6"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "770eb1d8.1b62",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "",
                                      "rules": [
                                      {
                                      "t": "set",
                                      "p": "reset",
                                      "pt": "msg",
                                      "to": "true",
                                      "tot": "bool"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 730,
                                      "y": 1820,
                                      "wires": [
                                      [
                                      "23347cd3.d823d4",
                                      "a3796662.1b2288"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "f50cbcdd.4df18",
                                      "type": "inject",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Tageswechsel",
                                      "props": [
                                      {
                                      "p": "payload"
                                      }
                                      ],
                                      "repeat": "",
                                      "crontab": "00 00 * * *",
                                      "once": false,
                                      "onceDelay": 0.1,
                                      "topic": "",
                                      "payload": "300",
                                      "payloadType": "num",
                                      "x": 1260,
                                      "y": 1640,
                                      "wires": [
                                      [
                                      "2ccbe9ae.5de3b6"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "a3796662.1b2288",
                                      "type": "ioBroker get",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Laufzeit_Tag",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                      "attrname": "status",
                                      "payloadType": "value",
                                      "x": 1010,
                                      "y": 1820,
                                      "wires": [
                                      [
                                      "c278734d.e25ed"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "c278734d.e25ed",
                                      "type": "change",
                                      "z": "89394b0c.86b5a8",
                                      "name": "",
                                      "rules": [
                                      {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "status ",
                                      "tot": "jsonata"
                                      }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 1230,
                                      "y": 1820,
                                      "wires": [
                                      [
                                      "2ccbe9ae.5de3b6"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "1ce956bc.969819",
                                      "type": "comment",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Laufzeit Filter",
                                      "info": "",
                                      "x": 940,
                                      "y": 1600,
                                      "wires": []
                                      },
                                      {
                                      "id": "e7444e07.459cf",
                                      "type": "ioBroker out",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Pumpe läuft",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_läuft",
                                      "ack": "false",
                                      "autoCreate": "false",
                                      "stateName": "",
                                      "role": "",
                                      "payloadType": "",
                                      "readonly": "",
                                      "stateUnit": "",
                                      "stateMin": "",
                                      "stateMax": "",
                                      "x": 790,
                                      "y": 1420,
                                      "wires": []
                                      },
                                      {
                                      "id": "151fbbd6.82ff64",
                                      "type": "ioBroker out",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Filterpumpe",
                                      "topic": "hm-rpc.3.REQ1241895.1.STATE",
                                      "ack": "true",
                                      "autoCreate": "false",
                                      "stateName": "",
                                      "role": "",
                                      "payloadType": "",
                                      "readonly": "",
                                      "stateUnit": "",
                                      "stateMin": "",
                                      "stateMax": "",
                                      "x": 790,
                                      "y": 1480,
                                      "wires": []
                                      },
                                      {
                                      "id": "26fc5e80.485f12",
                                      "type": "BooleanLogicUltimate",
                                      "z": "89394b0c.86b5a8",
                                      "name": "",
                                      "filtertrue": "both",
                                      "persist": true,
                                      "sInitializeWith": "WaitForPayload",
                                      "triggertopic": "trigger",
                                      "outputtriggeredby": "all",
                                      "inputCount": "3",
                                      "topic": "result",
                                      "x": 490,
                                      "y": 1480,
                                      "wires": [
                                      [],
                                      [
                                      "e7444e07.459cf",
                                      "151fbbd6.82ff64",
                                      "83ea4baa.e261f8"
                                      ],
                                      []
                                      ]
                                      },
                                      {
                                      "id": "d88267f6.717928",
                                      "type": "ioBroker in",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Pumpe manuell",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_manuell",
                                      "payloadType": "value",
                                      "onlyack": "",
                                      "func": "all",
                                      "gap": "",
                                      "fireOnStart": "true",
                                      "x": 200,
                                      "y": 1520,
                                      "wires": [
                                      [
                                      "26fc5e80.485f12"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "83ea4baa.e261f8",
                                      "type": "rbe",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Trigger",
                                      "func": "rbe",
                                      "gap": "",
                                      "start": "",
                                      "inout": "out",
                                      "septopics": true,
                                      "property": "payload",
                                      "x": 280,
                                      "y": 1760,
                                      "wires": [
                                      [
                                      "426bfb66.27e944"
                                      ]
                                      ]
                                      },
                                      {
                                      "id": "4aa9482f.e7c288",
                                      "type": "ioBroker in",
                                      "z": "89394b0c.86b5a8",
                                      "name": "Pumpe Nachlaufzeit",
                                      "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_Nachlaufzeit",
                                      "payloadType": "value",
                                      "onlyack": "",
                                      "func": "all",
                                      "gap": "",
                                      "fireOnStart": "true",
                                      "x": 220,
                                      "y": 1580,
                                      "wires": [
                                      [
                                      "26fc5e80.485f12"
                                      ]
                                      ]
                                      }
                                      ]

                                      9aa6614e-f641-4044-bb82-8a209e3c48de-image.png

                                      Funktioniert und war easy...

                                      Warst ein guter Lehrer!!! :muscle: :stuck_out_tongue_winking_eye:

                                      Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                                      mickymM 2 Antworten Letzte Antwort
                                      0
                                      • F Offline
                                        F Offline
                                        frankyboy73
                                        schrieb am zuletzt editiert von frankyboy73
                                        #30

                                        Hi, da habt Ihr ja ein schönes Projekt umgesetzt, von dem Einige bestimmt noch was lernen können. Und Alles gut erklärt. Gefällt mir.
                                        Ich selber würde da zwar keine Logic Nodes verwenden, sondern das mit den Standard Nodes lösen, aber da hat jeder seinen eigenen Weg und seine Vorlieben.

                                        Schöne Grüße Frank

                                        1 Antwort Letzte Antwort
                                        1
                                        • S schneidy76

                                          @mickym jepp den rbe habe ich jetzt schon mehrfach benötigt. :grin: Hat ein wenig Suche gekostet, aber wenn man weiß wonach man suchen muss..
                                          Die eine Minute Ungenauigkeit ist nicht so wild...

                                          Für die Nachlaufzeit habe ich folgenden Schnipsel gebastelt:
                                          51968386-0720-48fc-8885-9f8b5476f6ef-image.png


                                          [
                                          {
                                          "id": "6cae00d1.7bcd6",
                                          "type": "inject",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Prüfen 20:00Uhr",
                                          "props": [
                                          {
                                          "p": "payload"
                                          }
                                          ],
                                          "repeat": "",
                                          "crontab": "00 20 * * *",
                                          "once": false,
                                          "onceDelay": 0.1,
                                          "topic": "",
                                          "payload": "true",
                                          "payloadType": "bool",
                                          "x": 1390,
                                          "y": 1340,
                                          "wires": [
                                          [
                                          "673accb8.5242a4"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "673accb8.5242a4",
                                          "type": "ioBroker get",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Hole Laufzeit_Tag",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                          "attrname": "payload",
                                          "payloadType": "value",
                                          "x": 1550,
                                          "y": 1440,
                                          "wires": [
                                          [
                                          "fb58bba0.d2a9e8"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "a1c375e7.71c418",
                                          "type": "switch",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Laufzeit prüfen",
                                          "property": "payload",
                                          "propertyType": "msg",
                                          "rules": [
                                          {
                                          "t": "jsonata_exp",
                                          "v": "gelaufen <= 300",
                                          "vt": "jsonata"
                                          },
                                          {
                                          "t": "jsonata_exp",
                                          "v": "gelaufen > 300",
                                          "vt": "jsonata"
                                          }
                                          ],
                                          "checkall": "true",
                                          "repair": false,
                                          "outputs": 2,
                                          "x": 2080,
                                          "y": 1440,
                                          "wires": [
                                          [
                                          "a6569b85.5478d8"
                                          ],
                                          [
                                          "c5b2c068.01f4a"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "dd3ddd1f.fa71b",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "setze msg",
                                          "rules": [
                                          {
                                          "t": "move",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "gelaufen",
                                          "tot": "msg"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 1890,
                                          "y": 1440,
                                          "wires": [
                                          [
                                          "a1c375e7.71c418"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "a6569b85.5478d8",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "setze true",
                                          "rules": [
                                          {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "true",
                                          "tot": "bool"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 2320,
                                          "y": 1420,
                                          "wires": [
                                          [
                                          "32290619.37b98a",
                                          "99c2148f.e09378"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "32290619.37b98a",
                                          "type": "ioBroker out",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Pumpe Nachlaufzeit",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_Nachlaufzeit",
                                          "ack": "true",
                                          "autoCreate": "false",
                                          "stateName": "",
                                          "role": "",
                                          "payloadType": "",
                                          "readonly": "",
                                          "stateUnit": "",
                                          "stateMin": "",
                                          "stateMax": "",
                                          "x": 2560,
                                          "y": 1420,
                                          "wires": []
                                          },
                                          {
                                          "id": "99c2148f.e09378",
                                          "type": "trigger",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Trigger 1 min",
                                          "op1": "1",
                                          "op2": "0",
                                          "op1type": "str",
                                          "op2type": "str",
                                          "duration": "-1",
                                          "extend": false,
                                          "overrideDelay": false,
                                          "units": "min",
                                          "reset": "",
                                          "bytopic": "all",
                                          "topic": "topic",
                                          "outputs": 1,
                                          "x": 1530,
                                          "y": 1520,
                                          "wires": [
                                          [
                                          "673accb8.5242a4"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "c5b2c068.01f4a",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "setze false",
                                          "rules": [
                                          {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "false",
                                          "tot": "bool"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 2330,
                                          "y": 1480,
                                          "wires": [
                                          [
                                          "32290619.37b98a"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "fb58bba0.d2a9e8",
                                          "type": "rbe",
                                          "z": "89394b0c.86b5a8",
                                          "name": "entprellen",
                                          "func": "rbe",
                                          "gap": "",
                                          "start": "",
                                          "inout": "out",
                                          "septopics": true,
                                          "property": "payload",
                                          "x": 1740,
                                          "y": 1440,
                                          "wires": [
                                          [
                                          "dd3ddd1f.fa71b"
                                          ]
                                          ]
                                          }
                                          ]

                                          und das dann hier verknüpft


                                          [
                                          {
                                          "id": "66f988a6.4ca578",
                                          "type": "ioBroker in",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Filterpumpe Auto Ein/Aus",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpenautomatik",
                                          "payloadType": "value",
                                          "onlyack": "",
                                          "func": "rbe",
                                          "gap": "",
                                          "fireOnStart": "true",
                                          "x": 230,
                                          "y": 1460,
                                          "wires": [
                                          [
                                          "26fc5e80.485f12"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "426bfb66.27e944",
                                          "type": "switch",
                                          "z": "89394b0c.86b5a8",
                                          "name": "läuft oder läuft nicht",
                                          "property": "payload",
                                          "propertyType": "msg",
                                          "rules": [
                                          {
                                          "t": "true"
                                          },
                                          {
                                          "t": "false"
                                          }
                                          ],
                                          "checkall": "true",
                                          "repair": false,
                                          "outputs": 2,
                                          "x": 470,
                                          "y": 1760,
                                          "wires": [
                                          [
                                          "23347cd3.d823d4"
                                          ],
                                          [
                                          "770eb1d8.1b62"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "2ccbe9ae.5de3b6",
                                          "type": "ioBroker out",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Laufzeit_Tag",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                          "ack": "true",
                                          "autoCreate": "false",
                                          "stateName": "",
                                          "role": "",
                                          "payloadType": "",
                                          "readonly": "",
                                          "stateUnit": "",
                                          "stateMin": "",
                                          "stateMax": "",
                                          "x": 1650,
                                          "y": 1700,
                                          "wires": []
                                          },
                                          {
                                          "id": "23347cd3.d823d4",
                                          "type": "trigger",
                                          "z": "89394b0c.86b5a8",
                                          "name": "",
                                          "op1": "1",
                                          "op2": "0",
                                          "op1type": "num",
                                          "op2type": "str",
                                          "duration": "-1",
                                          "extend": false,
                                          "overrideDelay": false,
                                          "units": "min",
                                          "reset": "",
                                          "bytopic": "all",
                                          "topic": "topic",
                                          "outputs": 1,
                                          "x": 770,
                                          "y": 1700,
                                          "wires": [
                                          [
                                          "f0106a67.68ccf8"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "f0106a67.68ccf8",
                                          "type": "ioBroker get",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Laufzeit_Tag",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                          "attrname": "status",
                                          "payloadType": "value",
                                          "x": 1010,
                                          "y": 1700,
                                          "wires": [
                                          [
                                          "2fa05a36.5ded86"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "2fa05a36.5ded86",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "",
                                          "rules": [
                                          {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "status + payload",
                                          "tot": "jsonata"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 1250,
                                          "y": 1700,
                                          "wires": [
                                          [
                                          "2ccbe9ae.5de3b6"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "770eb1d8.1b62",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "",
                                          "rules": [
                                          {
                                          "t": "set",
                                          "p": "reset",
                                          "pt": "msg",
                                          "to": "true",
                                          "tot": "bool"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 730,
                                          "y": 1820,
                                          "wires": [
                                          [
                                          "23347cd3.d823d4",
                                          "a3796662.1b2288"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "f50cbcdd.4df18",
                                          "type": "inject",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Tageswechsel",
                                          "props": [
                                          {
                                          "p": "payload"
                                          }
                                          ],
                                          "repeat": "",
                                          "crontab": "00 00 * * *",
                                          "once": false,
                                          "onceDelay": 0.1,
                                          "topic": "",
                                          "payload": "300",
                                          "payloadType": "num",
                                          "x": 1260,
                                          "y": 1640,
                                          "wires": [
                                          [
                                          "2ccbe9ae.5de3b6"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "a3796662.1b2288",
                                          "type": "ioBroker get",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Laufzeit_Tag",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Laufzeit_Tag",
                                          "attrname": "status",
                                          "payloadType": "value",
                                          "x": 1010,
                                          "y": 1820,
                                          "wires": [
                                          [
                                          "c278734d.e25ed"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "c278734d.e25ed",
                                          "type": "change",
                                          "z": "89394b0c.86b5a8",
                                          "name": "",
                                          "rules": [
                                          {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "status ",
                                          "tot": "jsonata"
                                          }
                                          ],
                                          "action": "",
                                          "property": "",
                                          "from": "",
                                          "to": "",
                                          "reg": false,
                                          "x": 1230,
                                          "y": 1820,
                                          "wires": [
                                          [
                                          "2ccbe9ae.5de3b6"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "1ce956bc.969819",
                                          "type": "comment",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Laufzeit Filter",
                                          "info": "",
                                          "x": 940,
                                          "y": 1600,
                                          "wires": []
                                          },
                                          {
                                          "id": "e7444e07.459cf",
                                          "type": "ioBroker out",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Pumpe läuft",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_läuft",
                                          "ack": "false",
                                          "autoCreate": "false",
                                          "stateName": "",
                                          "role": "",
                                          "payloadType": "",
                                          "readonly": "",
                                          "stateUnit": "",
                                          "stateMin": "",
                                          "stateMax": "",
                                          "x": 790,
                                          "y": 1420,
                                          "wires": []
                                          },
                                          {
                                          "id": "151fbbd6.82ff64",
                                          "type": "ioBroker out",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Filterpumpe",
                                          "topic": "hm-rpc.3.REQ1241895.1.STATE",
                                          "ack": "true",
                                          "autoCreate": "false",
                                          "stateName": "",
                                          "role": "",
                                          "payloadType": "",
                                          "readonly": "",
                                          "stateUnit": "",
                                          "stateMin": "",
                                          "stateMax": "",
                                          "x": 790,
                                          "y": 1480,
                                          "wires": []
                                          },
                                          {
                                          "id": "26fc5e80.485f12",
                                          "type": "BooleanLogicUltimate",
                                          "z": "89394b0c.86b5a8",
                                          "name": "",
                                          "filtertrue": "both",
                                          "persist": true,
                                          "sInitializeWith": "WaitForPayload",
                                          "triggertopic": "trigger",
                                          "outputtriggeredby": "all",
                                          "inputCount": "3",
                                          "topic": "result",
                                          "x": 490,
                                          "y": 1480,
                                          "wires": [
                                          [],
                                          [
                                          "e7444e07.459cf",
                                          "151fbbd6.82ff64",
                                          "83ea4baa.e261f8"
                                          ],
                                          []
                                          ]
                                          },
                                          {
                                          "id": "d88267f6.717928",
                                          "type": "ioBroker in",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Pumpe manuell",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_manuell",
                                          "payloadType": "value",
                                          "onlyack": "",
                                          "func": "all",
                                          "gap": "",
                                          "fireOnStart": "true",
                                          "x": 200,
                                          "y": 1520,
                                          "wires": [
                                          [
                                          "26fc5e80.485f12"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "83ea4baa.e261f8",
                                          "type": "rbe",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Trigger",
                                          "func": "rbe",
                                          "gap": "",
                                          "start": "",
                                          "inout": "out",
                                          "septopics": true,
                                          "property": "payload",
                                          "x": 280,
                                          "y": 1760,
                                          "wires": [
                                          [
                                          "426bfb66.27e944"
                                          ]
                                          ]
                                          },
                                          {
                                          "id": "4aa9482f.e7c288",
                                          "type": "ioBroker in",
                                          "z": "89394b0c.86b5a8",
                                          "name": "Pumpe Nachlaufzeit",
                                          "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Pumpe_Nachlaufzeit",
                                          "payloadType": "value",
                                          "onlyack": "",
                                          "func": "all",
                                          "gap": "",
                                          "fireOnStart": "true",
                                          "x": 220,
                                          "y": 1580,
                                          "wires": [
                                          [
                                          "26fc5e80.485f12"
                                          ]
                                          ]
                                          }
                                          ]

                                          9aa6614e-f641-4044-bb82-8a209e3c48de-image.png

                                          Funktioniert und war easy...

                                          Warst ein guter Lehrer!!! :muscle: :stuck_out_tongue_winking_eye:

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

                                          @schneidy76 sagte in Poolsteuerung, Anfänger braucht Hilfe:
                                          ....

                                          Warst ein guter Lehrer!!! :muscle: :stuck_out_tongue_winking_eye:

                                          Na dann hat sich das Ganze schon gelohnt. Ich habe Deinen Flow nicht mehr importiert, aber ich denke Du kommst ja jetzt alleine zu Recht. Ich denke das Prinzip des Nachrichtenflusses hast Du verstanden. ;)

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          682

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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