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

    Hallo zusammen,
    ich habe für meine Poolsteuerung Node red erkoren.
    Erstens der Übersichtlichkeit halber und zweitens möchte ich mich unbedingt in Node Red einarbeiten.
    Ich benütze sowohl eine Wärmepumpe und Solarplatten per Wärmetauscher.

    Die Hardware und die Visu steht, die Logik noch nicht.
    Die Umwälzung läuft hardwaremäßig wenn die Wärmepumpe läuft.
    Folgende Datenpunkte möchte ich verwenden:

    • Außentemperatur

    • Wassertemperatur

    • Solar Vorlauftemperatur

    • Delta der Wasser und Solar Temperatur

    • Energiebilanz

    • Badetemperatur als Sollwert

    • Mindest Umwälzung der Pumpe

    Damit ich daraus was lernen kann, möchte ich gerne das schrittweise realisieren.
    Zuerst mal:
    „Wassertemperatur“ 2Grad unter „Badetemperatur Soll“ und „Energiebilanz“ >1kW steuere Ausgang 2 und schreibe die Laufzeit in eine Variable „Laufzeit Wärmepumpe/Tag“
    Reset „Laufzeit Wärmepumpe/Tag“ um 0:00Uhr

    Ich freue mich auf Euren Input, am besten mit Erklärungen.

    Vielen Dank und liebe Grüße
    Torsten


    Update: ich habe hier die fertige Lösung als Flow und auch zum Import:
    644cad05-3a1a-48d9-89e9-7f5796cb49af-image.png

    [
        {
            "id": "83e57a37.f03b48",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "hole Wassertemperatur",
            "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 140,
            "y": 220,
            "wires": [
                [
                    "f1ed6ee6.23b24"
                ]
            ]
        },
        {
            "id": "caad3ebf.a4ed9",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Temperatur_Soll",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Badetemperatur",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 120,
            "y": 140,
            "wires": [
                [
                    "312b7f9f.134a6"
                ]
            ]
        },
        {
            "id": "82194cc3.1ce8a",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Heizen aktiv",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 870,
            "y": 220,
            "wires": []
        },
        {
            "id": "312b7f9f.134a6",
            "type": "change",
            "z": "89394b0c.86b5a8",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "Badetemperatur",
                    "pt": "flow",
                    "to": "payload",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 470,
            "y": 140,
            "wires": [
                []
            ]
        },
        {
            "id": "a7bdd82b.f85928",
            "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": 590,
            "y": 220,
            "wires": [
                [
                    "82194cc3.1ce8a"
                ]
            ]
        },
        {
            "id": "bb043664.16a778",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Solarüberschuss",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarüberschuss",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 2290,
            "y": 360,
            "wires": []
        },
        {
            "id": "b875b414.953568",
            "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": 1970,
            "y": 320,
            "wires": [
                [
                    "bb043664.16a778"
                ]
            ]
        },
        {
            "id": "d1ff32a2.67231",
            "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": 1970,
            "y": 380,
            "wires": [
                [
                    "bb043664.16a778"
                ]
            ]
        },
        {
            "id": "af5f1bbf.240de8",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Bilanz",
            "topic": "hm-rega.0.18637",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 170,
            "y": 540,
            "wires": [
                [
                    "eac7cff5.d486e"
                ]
            ]
        },
        {
            "id": "eac7cff5.d486e",
            "type": "switch",
            "z": "89394b0c.86b5a8",
            "name": "",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "gt",
                    "v": "1500",
                    "vt": "str"
                },
                {
                    "t": "lte",
                    "v": "1000",
                    "vt": "str"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 360,
            "y": 540,
            "wires": [
                [
                    "f7b7a329.6e4c7"
                ],
                [
                    "5c3bc74e.4e5518"
                ]
            ]
        },
        {
            "id": "f7b7a329.6e4c7",
            "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": 560,
            "y": 540,
            "wires": [
                [
                    "fd8e9002.7f95"
                ]
            ]
        },
        {
            "id": "fd8e9002.7f95",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Energiebilanz_PV",
            "topic": "0_userdata.0.Poolsteuerung.Energiebilanz_PV",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 870,
            "y": 540,
            "wires": []
        },
        {
            "id": "f7e5cf2d.5f8ed",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "And",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "false",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": "4",
            "topic": "result",
            "x": 480,
            "y": 760,
            "wires": [
                [
                    "27231f4f.e8c2b"
                ],
                [],
                []
            ]
        },
        {
            "id": "b45122fd.32393",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Heizen aktiv",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "x": 190,
            "y": 720,
            "wires": [
                [
                    "f7e5cf2d.5f8ed"
                ]
            ]
        },
        {
            "id": "3e9d17d2.e24e68",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Solarüberschuss",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarüberschuss",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "x": 200,
            "y": 780,
            "wires": [
                [
                    "f7e5cf2d.5f8ed"
                ]
            ]
        },
        {
            "id": "b22cf1e2.189de",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Bypass Ventil öffnen",
            "topic": "hm-rpc.3.REQ1241895.3.STATE",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1360,
            "y": 900,
            "wires": []
        },
        {
            "id": "5c3bc74e.4e5518",
            "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": 560,
            "y": 600,
            "wires": [
                [
                    "fd8e9002.7f95"
                ]
            ]
        },
        {
            "id": "8e24a9bf.1a8f18",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Heizen mit Solarunterstützung",
            "info": "",
            "x": 820,
            "y": 760,
            "wires": []
        },
        {
            "id": "7a7db09f.ea9fc",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Anf_Pumpe_von_Solar",
            "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_Solar",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1370,
            "y": 960,
            "wires": []
        },
        {
            "id": "2300818d.73d40e",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "And",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "false",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": "4",
            "topic": "result",
            "x": 480,
            "y": 1480,
            "wires": [
                [
                    "4e582112.bd9e5"
                ],
                [],
                []
            ]
        },
        {
            "id": "26777bfc.b1b7c4",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Heizen aktiv",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "x": 190,
            "y": 1440,
            "wires": [
                [
                    "2300818d.73d40e"
                ]
            ]
        },
        {
            "id": "8b595b1c.d1ee58",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Energiebilanz_PV",
            "topic": "0_userdata.0.Poolsteuerung.Energiebilanz_PV",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "x": 210,
            "y": 1500,
            "wires": [
                [
                    "2300818d.73d40e"
                ]
            ]
        },
        {
            "id": "4666bdd7.4b3044",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Wärmepumpe Ein/Aus",
            "topic": "hm-rpc.3.REQ1241895.4.STATE",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1280,
            "y": 1480,
            "wires": []
        },
        {
            "id": "8e726e87.0d6b1",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Heizen mit Wärmepumpe",
            "info": "",
            "x": 600,
            "y": 1420,
            "wires": []
        },
        {
            "id": "64d819d.ac203e8",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Anf_Pumpe_von_WP",
            "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_WP",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1276,
            "y": 1560,
            "wires": []
        },
        {
            "id": "e9863387.89ef9",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Wetterstation Sonnenschein",
            "topic": "hm-rpc.4.0017D709AE31BB.1.SUNSHINE_THRESHOLD_OVERRUN",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 240,
            "y": 1200,
            "wires": [
                [
                    "d77dbeea.617e"
                ]
            ]
        },
        {
            "id": "34121d84.0ee042",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Wetterstation Außentemperatur",
            "topic": "hm-rpc.4.0017D709AE31BB.1.ACTUAL_TEMPERATURE",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 1310,
            "y": 680,
            "wires": [
                [
                    "72bfd438.8a8d3c"
                ]
            ]
        },
        {
            "id": "72bfd438.8a8d3c",
            "type": "switch",
            "z": "89394b0c.86b5a8",
            "name": "prüfe mind. 15°C",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "gte",
                    "v": "15",
                    "vt": "str"
                },
                {
                    "t": "lt",
                    "v": "12",
                    "vt": "str"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 1570,
            "y": 680,
            "wires": [
                [
                    "423e48af.6e3878"
                ],
                [
                    "ea104121.7f8e2"
                ]
            ]
        },
        {
            "id": "d77dbeea.617e",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "false",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": "3",
            "topic": "result",
            "x": 480,
            "y": 1200,
            "wires": [
                [
                    "9da27ed0.eae5e"
                ],
                [],
                []
            ]
        },
        {
            "id": "389afbfa.d856b4",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Freigabe_Außentemp_",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Freigabe_Außentemp_",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 2120,
            "y": 680,
            "wires": []
        },
        {
            "id": "423e48af.6e3878",
            "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": 1820,
            "y": 680,
            "wires": [
                [
                    "389afbfa.d856b4"
                ]
            ]
        },
        {
            "id": "ea104121.7f8e2",
            "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": 1830,
            "y": 720,
            "wires": [
                [
                    "389afbfa.d856b4"
                ]
            ]
        },
        {
            "id": "842cd1d0.98b48",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Freigabe_Außentemp_",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Freigabe_Außentemp_",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 220,
            "y": 1260,
            "wires": [
                [
                    "d77dbeea.617e"
                ]
            ]
        },
        {
            "id": "d10301b7.ef0ef",
            "type": "InvertUltimate",
            "z": "89394b0c.86b5a8",
            "name": "Invert",
            "x": 510,
            "y": 1100,
            "wires": [
                [
                    "d77dbeea.617e"
                ]
            ]
        },
        {
            "id": "ff39afa.039565",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Anforderung Umwälzpumpe Solar",
            "info": "",
            "x": 1750,
            "y": 1140,
            "wires": []
        },
        {
            "id": "66f988a6.4ca578",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Anf_Pumpe_von_Solar",
            "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_Solar",
            "payloadType": "value",
            "onlyack": "",
            "func": "rbe",
            "gap": "",
            "fireOnStart": "true",
            "x": 220,
            "y": 1780,
            "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": 2120,
            "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": 2060,
            "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": 2060,
            "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": 2060,
            "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": 2060,
            "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": 2180,
            "wires": [
                [
                    "23347cd3.d823d4",
                    "a3796662.1b2288"
                ]
            ]
        },
        {
            "id": "f50cbcdd.4df18",
            "type": "inject",
            "z": "89394b0c.86b5a8",
            "name": "Tageswechsel",
            "props": [
                {
                    "p": "payload"
                }
            ],
            "repeat": "",
            "crontab": "01 00 * * *",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "0",
            "payloadType": "num",
            "x": 1260,
            "y": 2000,
            "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": 2180,
            "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": 2180,
            "wires": [
                [
                    "2ccbe9ae.5de3b6"
                ]
            ]
        },
        {
            "id": "1ce956bc.969819",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Laufzeit Filter",
            "info": "",
            "x": 940,
            "y": 1960,
            "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": 1010,
            "y": 1780,
            "wires": []
        },
        {
            "id": "bda9097.228eff8",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Umwälzpumpe Solar",
            "topic": "hm-rpc.3.REQ1241895.2.STATE",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1920,
            "y": 1220,
            "wires": []
        },
        {
            "id": "f1ed6ee6.23b24",
            "type": "switch",
            "z": "89394b0c.86b5a8",
            "name": "vergleiche",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "jsonata_exp",
                    "v": "payload < $flowContext('Badetemperatur') - 1",
                    "vt": "jsonata"
                },
                {
                    "t": "jsonata_exp",
                    "v": "payload >= $flowContext('Badetemperatur') + 2",
                    "vt": "jsonata"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 390,
            "y": 220,
            "wires": [
                [
                    "a7bdd82b.f85928"
                ],
                [
                    "83dabc7e.f0fc3"
                ]
            ]
        },
        {
            "id": "83dabc7e.f0fc3",
            "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": 590,
            "y": 260,
            "wires": [
                [
                    "82194cc3.1ce8a"
                ]
            ]
        },
        {
            "id": "37e04735.ada178",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Solartemperatur",
            "topic": "hm-rpc.3.OEQ0674784.1.TEMPERATURE",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 1040,
            "y": 400,
            "wires": [
                [
                    "340cade6.0d94d2"
                ]
            ]
        },
        {
            "id": "f14c597d.b7db28",
            "type": "change",
            "z": "89394b0c.86b5a8",
            "name": "setze msg.Wasser",
            "rules": [
                {
                    "t": "move",
                    "p": "payload",
                    "pt": "msg",
                    "to": "Wasser",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1290,
            "y": 320,
            "wires": [
                [
                    "348acde4.602cd2"
                ]
            ]
        },
        {
            "id": "340cade6.0d94d2",
            "type": "change",
            "z": "89394b0c.86b5a8",
            "name": "setze msg.Solar",
            "rules": [
                {
                    "t": "move",
                    "p": "payload",
                    "pt": "msg",
                    "to": "Solar",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1260,
            "y": 400,
            "wires": [
                [
                    "6a06a0d5.977a9"
                ]
            ]
        },
        {
            "id": "348acde4.602cd2",
            "type": "ioBroker get",
            "z": "89394b0c.86b5a8",
            "name": "Solar",
            "topic": "hm-rpc.3.OEQ0674784.1.TEMPERATURE",
            "attrname": "Solar",
            "payloadType": "value",
            "x": 1490,
            "y": 320,
            "wires": [
                [
                    "fbef2e28.ca6e2"
                ]
            ]
        },
        {
            "id": "6a06a0d5.977a9",
            "type": "ioBroker get",
            "z": "89394b0c.86b5a8",
            "name": "Wasser",
            "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
            "attrname": "Wasser",
            "payloadType": "value",
            "x": 1500,
            "y": 400,
            "wires": [
                [
                    "fbef2e28.ca6e2"
                ]
            ]
        },
        {
            "id": "858ad7b6.87a0d8",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Wassertemperatur",
            "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 1070,
            "y": 320,
            "wires": [
                [
                    "f14c597d.b7db28"
                ]
            ]
        },
        {
            "id": "fbef2e28.ca6e2",
            "type": "switch",
            "z": "89394b0c.86b5a8",
            "name": "vergleiche",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "jsonata_exp",
                    "v": "Wasser + 10 < Solar",
                    "vt": "jsonata"
                },
                {
                    "t": "jsonata_exp",
                    "v": "Wasser + 8 >= Solar ",
                    "vt": "jsonata"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 1710,
            "y": 360,
            "wires": [
                [
                    "b875b414.953568"
                ],
                [
                    "d1ff32a2.67231"
                ]
            ]
        },
        {
            "id": "f546f28e.70e08",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Energiebilanz für Wärmepumpe",
            "info": "",
            "x": 450,
            "y": 460,
            "wires": []
        },
        {
            "id": "17932509.7135ab",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Vergleich Wasser mit gewünschter Badetemperatur",
            "info": "",
            "x": 440,
            "y": 60,
            "wires": []
        },
        {
            "id": "5aa26bab.a24754",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Vorlauftemperatur Solar ausreichend?",
            "info": "",
            "x": 1600,
            "y": 180,
            "wires": []
        },
        {
            "id": "f38215c5.6e0af8",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Freigabe zum Prüfen Solar Vorlauf",
            "info": "",
            "x": 1770,
            "y": 600,
            "wires": []
        },
        {
            "id": "1a65125f.38c11e",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Steuerung aktiv?",
            "topic": "0_userdata.0.Poolsteuerung.Steuerung_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 200,
            "y": 840,
            "wires": [
                [
                    "f7e5cf2d.5f8ed"
                ]
            ]
        },
        {
            "id": "683f53b1.de0e7c",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Solarunterstützung aktiv?",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarunterstützung_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 230,
            "y": 900,
            "wires": [
                [
                    "f7e5cf2d.5f8ed"
                ]
            ]
        },
        {
            "id": "bc5c5753.f8c1c8",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Steuerung aktiv?",
            "topic": "0_userdata.0.Poolsteuerung.Steuerung_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 200,
            "y": 1560,
            "wires": [
                [
                    "2300818d.73d40e"
                ]
            ]
        },
        {
            "id": "eabe6b1.5bb8f98",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Heizen mit Wärmepumpe aktiv?",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Wärmepumpe_aktiv",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 250,
            "y": 1620,
            "wires": [
                [
                    "2300818d.73d40e"
                ]
            ]
        },
        {
            "id": "27231f4f.e8c2b",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "Oder",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "WaitForPayload",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": 2,
            "topic": "result",
            "x": 710,
            "y": 980,
            "wires": [
                [],
                [
                    "6b46e83d.9f89b8"
                ],
                []
            ]
        },
        {
            "id": "16a5792e.1472f7",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Solarunterstützung Dauer Ein/Aus",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarunterstützung_manuell",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 260,
            "y": 980,
            "wires": [
                [
                    "27231f4f.e8c2b"
                ]
            ]
        },
        {
            "id": "4e582112.bd9e5",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "WaitForPayload",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": 2,
            "topic": "result",
            "x": 820,
            "y": 1480,
            "wires": [
                [],
                [
                    "8a5de38e.7929e"
                ],
                []
            ]
        },
        {
            "id": "591c2bb5.6016a4",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Wärmepumpe Dauer E/n/Aus",
            "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Wärmepumpe_manuell",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 540,
            "y": 1560,
            "wires": [
                [
                    "4e582112.bd9e5"
                ]
            ]
        },
        {
            "id": "151fbbd6.82ff64",
            "type": "ioBroker out",
            "z": "89394b0c.86b5a8",
            "name": "Filterpumpe",
            "topic": "hm-rpc.3.REQ1241895.1.STATE",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1010,
            "y": 1840,
            "wires": []
        },
        {
            "id": "26fc5e80.485f12",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "WaitForPayload",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": "4",
            "topic": "result",
            "x": 490,
            "y": 1840,
            "wires": [
                [],
                [
                    "ff9e5924.99fd08"
                ],
                []
            ]
        },
        {
            "id": "a8db85c1.6843d8",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Ansteuerung Filterpumpe",
            "info": "",
            "x": 530,
            "y": 1740,
            "wires": []
        },
        {
            "id": "a4b0d5bc.a9fe48",
            "type": "trigger",
            "z": "89394b0c.86b5a8",
            "name": "Laufzeit 5min",
            "op1": "1",
            "op2": "0",
            "op1type": "str",
            "op2type": "str",
            "duration": "5",
            "extend": false,
            "overrideDelay": false,
            "units": "min",
            "reset": "",
            "bytopic": "all",
            "topic": "topic",
            "outputs": 1,
            "x": 1190,
            "y": 1300,
            "wires": [
                [
                    "bc8faceb.0a56e"
                ]
            ]
        },
        {
            "id": "9da27ed0.eae5e",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "entprellen",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 660,
            "y": 1200,
            "wires": [
                [
                    "639840c5.cf2c"
                ]
            ]
        },
        {
            "id": "893287f3.bbeac8",
            "type": "trigger",
            "z": "89394b0c.86b5a8",
            "name": "alle 30 min erneut einschalten",
            "op1": "1",
            "op2": "0",
            "op1type": "str",
            "op2type": "str",
            "duration": "-30",
            "extend": false,
            "overrideDelay": false,
            "units": "min",
            "reset": "",
            "bytopic": "all",
            "topic": "topic",
            "outputs": 1,
            "x": 930,
            "y": 1300,
            "wires": [
                [
                    "a4b0d5bc.a9fe48"
                ]
            ]
        },
        {
            "id": "6cae00d1.7bcd6",
            "type": "inject",
            "z": "89394b0c.86b5a8",
            "name": "Prüfen 20:00Uhr",
            "props": [
                {
                    "p": "payload"
                }
            ],
            "repeat": "",
            "crontab": "*/1 20-23 * * *",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "true",
            "payloadType": "bool",
            "x": 210,
            "y": 2340,
            "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": 430,
            "y": 2340,
            "wires": [
                [
                    "dd3ddd1f.fa71b"
                ]
            ]
        },
        {
            "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": 860,
            "y": 2340,
            "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": 670,
            "y": 2340,
            "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": 1100,
            "y": 2320,
            "wires": [
                [
                    "32290619.37b98a"
                ]
            ]
        },
        {
            "id": "83ea4baa.e261f8",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "Trigger",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 280,
            "y": 2120,
            "wires": [
                [
                    "426bfb66.27e944"
                ]
            ]
        },
        {
            "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": 1340,
            "y": 2320,
            "wires": []
        },
        {
            "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": 1110,
            "y": 2380,
            "wires": [
                [
                    "32290619.37b98a"
                ]
            ]
        },
        {
            "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": 210,
            "y": 1960,
            "wires": [
                [
                    "26fc5e80.485f12"
                ]
            ]
        },
        {
            "id": "e52739a4.f06978",
            "type": "comment",
            "z": "89394b0c.86b5a8",
            "name": "Nachlaufzeit",
            "info": "",
            "x": 850,
            "y": 2280,
            "wires": []
        },
        {
            "id": "ff9e5924.99fd08",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "entprellen",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 660,
            "y": 1840,
            "wires": [
                [
                    "151fbbd6.82ff64",
                    "e7444e07.459cf",
                    "83ea4baa.e261f8"
                ]
            ]
        },
        {
            "id": "8a5de38e.7929e",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "entprellen",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 1000,
            "y": 1480,
            "wires": [
                [
                    "4666bdd7.4b3044",
                    "64d819d.ac203e8"
                ]
            ]
        },
        {
            "id": "6b46e83d.9f89b8",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "entprellen",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 940,
            "y": 980,
            "wires": [
                [
                    "b22cf1e2.189de",
                    "7a7db09f.ea9fc",
                    "d10301b7.ef0ef",
                    "bc8faceb.0a56e"
                ]
            ]
        },
        {
            "id": "598cc201.e0e62c",
            "type": "rbe",
            "z": "89394b0c.86b5a8",
            "name": "entprellen",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "x": 1700,
            "y": 1220,
            "wires": [
                [
                    "bda9097.228eff8",
                    "72a0e2ab.04ea5c"
                ]
            ]
        },
        {
            "id": "639840c5.cf2c",
            "type": "switch",
            "z": "89394b0c.86b5a8",
            "name": "nur ausführen bei true",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "false"
                },
                {
                    "t": "true"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 900,
            "y": 1200,
            "wires": [
                [
                    "537f0467.80407c"
                ],
                [
                    "893287f3.bbeac8"
                ]
            ]
        },
        {
            "id": "18da7235.f874ee",
            "type": "ioBroker in",
            "z": "89394b0c.86b5a8",
            "name": "Anf_Pumpe_von_WP",
            "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_WP",
            "payloadType": "value",
            "onlyack": "",
            "func": "all",
            "gap": "",
            "fireOnStart": "true",
            "x": 220,
            "y": 1840,
            "wires": [
                [
                    "26fc5e80.485f12"
                ]
            ]
        },
        {
            "id": "8c28dba9.cc42c8",
            "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": 1900,
            "wires": [
                [
                    "26fc5e80.485f12"
                ]
            ]
        },
        {
            "id": "bc8faceb.0a56e",
            "type": "BooleanLogicUltimate",
            "z": "89394b0c.86b5a8",
            "name": "",
            "filtertrue": "both",
            "persist": true,
            "sInitializeWith": "false",
            "triggertopic": "trigger",
            "outputtriggeredby": "all",
            "inputCount": 2,
            "topic": "result",
            "x": 1500,
            "y": 1220,
            "wires": [
                [],
                [
                    "598cc201.e0e62c"
                ],
                []
            ]
        },
        {
            "id": "36244687.bf616a",
            "type": "inject",
            "z": "89394b0c.86b5a8",
            "name": "",
            "props": [
                {
                    "p": "payload"
                }
            ],
            "repeat": "",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "true",
            "payloadType": "bool",
            "x": 1880,
            "y": 800,
            "wires": [
                [
                    "389afbfa.d856b4"
                ]
            ]
        },
        {
            "id": "72a0e2ab.04ea5c",
            "type": "debug",
            "z": "89394b0c.86b5a8",
            "name": "",
            "active": true,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "false",
            "statusVal": "",
            "statusType": "auto",
            "x": 1950,
            "y": 1300,
            "wires": []
        },
        {
            "id": "537f0467.80407c",
            "type": "change",
            "z": "89394b0c.86b5a8",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "reset",
                    "pt": "msg",
                    "to": "true",
                    "tot": "bool"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1160,
            "y": 1200,
            "wires": [
                [
                    "893287f3.bbeac8"
                ]
            ]
        }
    ]
    

    dazu habe ich eine einfach vis -läuft auf einen Raspi Zero mit 10.1" Toch Display im Edelstahl Gehäuße:
    Zustand "Steuerung aus"
    6bc954a8-4a5c-4a43-a743-a9fd3a5225db-image.png
    Zustand "Steuerung an"
    16ba8cb1-e047-4e8f-a227-f38fe0b72f0a-image.png
    Seite 2
    9728c3e0-44aa-451a-b27c-107501760a3f-image.png

    Vielleicht kann der eine, oder ander hier was mitnehmen. Ich habe bei dem Projekt unheimlich viel gelernt.

    Achtung: Ich habe noch einen Fehler endeckt: Das Schalten der Homematic Aktoren aus dem Node geht nur wenn wenn der Sendungstyp "command" ist, nicht "value"!

    Danke an @mickym !!!

    Update 26.04.2021: habe nun nach einigen Tagen live testen, noch ein paar bugs gefunden und den Export aktualisiert.

    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 2 Antworten Letzte Antwort
    1
    • S schneidy76

      Hallo zusammen,
      ich habe für meine Poolsteuerung Node red erkoren.
      Erstens der Übersichtlichkeit halber und zweitens möchte ich mich unbedingt in Node Red einarbeiten.
      Ich benütze sowohl eine Wärmepumpe und Solarplatten per Wärmetauscher.

      Die Hardware und die Visu steht, die Logik noch nicht.
      Die Umwälzung läuft hardwaremäßig wenn die Wärmepumpe läuft.
      Folgende Datenpunkte möchte ich verwenden:

      • Außentemperatur

      • Wassertemperatur

      • Solar Vorlauftemperatur

      • Delta der Wasser und Solar Temperatur

      • Energiebilanz

      • Badetemperatur als Sollwert

      • Mindest Umwälzung der Pumpe

      Damit ich daraus was lernen kann, möchte ich gerne das schrittweise realisieren.
      Zuerst mal:
      „Wassertemperatur“ 2Grad unter „Badetemperatur Soll“ und „Energiebilanz“ >1kW steuere Ausgang 2 und schreibe die Laufzeit in eine Variable „Laufzeit Wärmepumpe/Tag“
      Reset „Laufzeit Wärmepumpe/Tag“ um 0:00Uhr

      Ich freue mich auf Euren Input, am besten mit Erklärungen.

      Vielen Dank und liebe Grüße
      Torsten


      Update: ich habe hier die fertige Lösung als Flow und auch zum Import:
      644cad05-3a1a-48d9-89e9-7f5796cb49af-image.png

      [
          {
              "id": "83e57a37.f03b48",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "hole Wassertemperatur",
              "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 140,
              "y": 220,
              "wires": [
                  [
                      "f1ed6ee6.23b24"
                  ]
              ]
          },
          {
              "id": "caad3ebf.a4ed9",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Temperatur_Soll",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Badetemperatur",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 120,
              "y": 140,
              "wires": [
                  [
                      "312b7f9f.134a6"
                  ]
              ]
          },
          {
              "id": "82194cc3.1ce8a",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Heizen aktiv",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 870,
              "y": 220,
              "wires": []
          },
          {
              "id": "312b7f9f.134a6",
              "type": "change",
              "z": "89394b0c.86b5a8",
              "name": "",
              "rules": [
                  {
                      "t": "set",
                      "p": "Badetemperatur",
                      "pt": "flow",
                      "to": "payload",
                      "tot": "msg"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 470,
              "y": 140,
              "wires": [
                  []
              ]
          },
          {
              "id": "a7bdd82b.f85928",
              "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": 590,
              "y": 220,
              "wires": [
                  [
                      "82194cc3.1ce8a"
                  ]
              ]
          },
          {
              "id": "bb043664.16a778",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Solarüberschuss",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarüberschuss",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 2290,
              "y": 360,
              "wires": []
          },
          {
              "id": "b875b414.953568",
              "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": 1970,
              "y": 320,
              "wires": [
                  [
                      "bb043664.16a778"
                  ]
              ]
          },
          {
              "id": "d1ff32a2.67231",
              "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": 1970,
              "y": 380,
              "wires": [
                  [
                      "bb043664.16a778"
                  ]
              ]
          },
          {
              "id": "af5f1bbf.240de8",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Bilanz",
              "topic": "hm-rega.0.18637",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 170,
              "y": 540,
              "wires": [
                  [
                      "eac7cff5.d486e"
                  ]
              ]
          },
          {
              "id": "eac7cff5.d486e",
              "type": "switch",
              "z": "89394b0c.86b5a8",
              "name": "",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "gt",
                      "v": "1500",
                      "vt": "str"
                  },
                  {
                      "t": "lte",
                      "v": "1000",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 360,
              "y": 540,
              "wires": [
                  [
                      "f7b7a329.6e4c7"
                  ],
                  [
                      "5c3bc74e.4e5518"
                  ]
              ]
          },
          {
              "id": "f7b7a329.6e4c7",
              "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": 560,
              "y": 540,
              "wires": [
                  [
                      "fd8e9002.7f95"
                  ]
              ]
          },
          {
              "id": "fd8e9002.7f95",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Energiebilanz_PV",
              "topic": "0_userdata.0.Poolsteuerung.Energiebilanz_PV",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 870,
              "y": 540,
              "wires": []
          },
          {
              "id": "f7e5cf2d.5f8ed",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "And",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "false",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": "4",
              "topic": "result",
              "x": 480,
              "y": 760,
              "wires": [
                  [
                      "27231f4f.e8c2b"
                  ],
                  [],
                  []
              ]
          },
          {
              "id": "b45122fd.32393",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Heizen aktiv",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "false",
              "x": 190,
              "y": 720,
              "wires": [
                  [
                      "f7e5cf2d.5f8ed"
                  ]
              ]
          },
          {
              "id": "3e9d17d2.e24e68",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Solarüberschuss",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarüberschuss",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "false",
              "x": 200,
              "y": 780,
              "wires": [
                  [
                      "f7e5cf2d.5f8ed"
                  ]
              ]
          },
          {
              "id": "b22cf1e2.189de",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Bypass Ventil öffnen",
              "topic": "hm-rpc.3.REQ1241895.3.STATE",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1360,
              "y": 900,
              "wires": []
          },
          {
              "id": "5c3bc74e.4e5518",
              "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": 560,
              "y": 600,
              "wires": [
                  [
                      "fd8e9002.7f95"
                  ]
              ]
          },
          {
              "id": "8e24a9bf.1a8f18",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Heizen mit Solarunterstützung",
              "info": "",
              "x": 820,
              "y": 760,
              "wires": []
          },
          {
              "id": "7a7db09f.ea9fc",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Anf_Pumpe_von_Solar",
              "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_Solar",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1370,
              "y": 960,
              "wires": []
          },
          {
              "id": "2300818d.73d40e",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "And",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "false",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": "4",
              "topic": "result",
              "x": 480,
              "y": 1480,
              "wires": [
                  [
                      "4e582112.bd9e5"
                  ],
                  [],
                  []
              ]
          },
          {
              "id": "26777bfc.b1b7c4",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Heizen aktiv",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Heizen_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "false",
              "x": 190,
              "y": 1440,
              "wires": [
                  [
                      "2300818d.73d40e"
                  ]
              ]
          },
          {
              "id": "8b595b1c.d1ee58",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Energiebilanz_PV",
              "topic": "0_userdata.0.Poolsteuerung.Energiebilanz_PV",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "false",
              "x": 210,
              "y": 1500,
              "wires": [
                  [
                      "2300818d.73d40e"
                  ]
              ]
          },
          {
              "id": "4666bdd7.4b3044",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Wärmepumpe Ein/Aus",
              "topic": "hm-rpc.3.REQ1241895.4.STATE",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1280,
              "y": 1480,
              "wires": []
          },
          {
              "id": "8e726e87.0d6b1",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Heizen mit Wärmepumpe",
              "info": "",
              "x": 600,
              "y": 1420,
              "wires": []
          },
          {
              "id": "64d819d.ac203e8",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Anf_Pumpe_von_WP",
              "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_WP",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1276,
              "y": 1560,
              "wires": []
          },
          {
              "id": "e9863387.89ef9",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Wetterstation Sonnenschein",
              "topic": "hm-rpc.4.0017D709AE31BB.1.SUNSHINE_THRESHOLD_OVERRUN",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 240,
              "y": 1200,
              "wires": [
                  [
                      "d77dbeea.617e"
                  ]
              ]
          },
          {
              "id": "34121d84.0ee042",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Wetterstation Außentemperatur",
              "topic": "hm-rpc.4.0017D709AE31BB.1.ACTUAL_TEMPERATURE",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 1310,
              "y": 680,
              "wires": [
                  [
                      "72bfd438.8a8d3c"
                  ]
              ]
          },
          {
              "id": "72bfd438.8a8d3c",
              "type": "switch",
              "z": "89394b0c.86b5a8",
              "name": "prüfe mind. 15°C",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "gte",
                      "v": "15",
                      "vt": "str"
                  },
                  {
                      "t": "lt",
                      "v": "12",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 1570,
              "y": 680,
              "wires": [
                  [
                      "423e48af.6e3878"
                  ],
                  [
                      "ea104121.7f8e2"
                  ]
              ]
          },
          {
              "id": "d77dbeea.617e",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "false",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": "3",
              "topic": "result",
              "x": 480,
              "y": 1200,
              "wires": [
                  [
                      "9da27ed0.eae5e"
                  ],
                  [],
                  []
              ]
          },
          {
              "id": "389afbfa.d856b4",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Freigabe_Außentemp_",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Freigabe_Außentemp_",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 2120,
              "y": 680,
              "wires": []
          },
          {
              "id": "423e48af.6e3878",
              "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": 1820,
              "y": 680,
              "wires": [
                  [
                      "389afbfa.d856b4"
                  ]
              ]
          },
          {
              "id": "ea104121.7f8e2",
              "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": 1830,
              "y": 720,
              "wires": [
                  [
                      "389afbfa.d856b4"
                  ]
              ]
          },
          {
              "id": "842cd1d0.98b48",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Freigabe_Außentemp_",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Freigabe_Außentemp_",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 220,
              "y": 1260,
              "wires": [
                  [
                      "d77dbeea.617e"
                  ]
              ]
          },
          {
              "id": "d10301b7.ef0ef",
              "type": "InvertUltimate",
              "z": "89394b0c.86b5a8",
              "name": "Invert",
              "x": 510,
              "y": 1100,
              "wires": [
                  [
                      "d77dbeea.617e"
                  ]
              ]
          },
          {
              "id": "ff39afa.039565",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Anforderung Umwälzpumpe Solar",
              "info": "",
              "x": 1750,
              "y": 1140,
              "wires": []
          },
          {
              "id": "66f988a6.4ca578",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Anf_Pumpe_von_Solar",
              "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_Solar",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "fireOnStart": "true",
              "x": 220,
              "y": 1780,
              "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": 2120,
              "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": 2060,
              "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": 2060,
              "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": 2060,
              "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": 2060,
              "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": 2180,
              "wires": [
                  [
                      "23347cd3.d823d4",
                      "a3796662.1b2288"
                  ]
              ]
          },
          {
              "id": "f50cbcdd.4df18",
              "type": "inject",
              "z": "89394b0c.86b5a8",
              "name": "Tageswechsel",
              "props": [
                  {
                      "p": "payload"
                  }
              ],
              "repeat": "",
              "crontab": "01 00 * * *",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "0",
              "payloadType": "num",
              "x": 1260,
              "y": 2000,
              "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": 2180,
              "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": 2180,
              "wires": [
                  [
                      "2ccbe9ae.5de3b6"
                  ]
              ]
          },
          {
              "id": "1ce956bc.969819",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Laufzeit Filter",
              "info": "",
              "x": 940,
              "y": 1960,
              "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": 1010,
              "y": 1780,
              "wires": []
          },
          {
              "id": "bda9097.228eff8",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Umwälzpumpe Solar",
              "topic": "hm-rpc.3.REQ1241895.2.STATE",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1920,
              "y": 1220,
              "wires": []
          },
          {
              "id": "f1ed6ee6.23b24",
              "type": "switch",
              "z": "89394b0c.86b5a8",
              "name": "vergleiche",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "jsonata_exp",
                      "v": "payload < $flowContext('Badetemperatur') - 1",
                      "vt": "jsonata"
                  },
                  {
                      "t": "jsonata_exp",
                      "v": "payload >= $flowContext('Badetemperatur') + 2",
                      "vt": "jsonata"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 390,
              "y": 220,
              "wires": [
                  [
                      "a7bdd82b.f85928"
                  ],
                  [
                      "83dabc7e.f0fc3"
                  ]
              ]
          },
          {
              "id": "83dabc7e.f0fc3",
              "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": 590,
              "y": 260,
              "wires": [
                  [
                      "82194cc3.1ce8a"
                  ]
              ]
          },
          {
              "id": "37e04735.ada178",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Solartemperatur",
              "topic": "hm-rpc.3.OEQ0674784.1.TEMPERATURE",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 1040,
              "y": 400,
              "wires": [
                  [
                      "340cade6.0d94d2"
                  ]
              ]
          },
          {
              "id": "f14c597d.b7db28",
              "type": "change",
              "z": "89394b0c.86b5a8",
              "name": "setze msg.Wasser",
              "rules": [
                  {
                      "t": "move",
                      "p": "payload",
                      "pt": "msg",
                      "to": "Wasser",
                      "tot": "msg"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 1290,
              "y": 320,
              "wires": [
                  [
                      "348acde4.602cd2"
                  ]
              ]
          },
          {
              "id": "340cade6.0d94d2",
              "type": "change",
              "z": "89394b0c.86b5a8",
              "name": "setze msg.Solar",
              "rules": [
                  {
                      "t": "move",
                      "p": "payload",
                      "pt": "msg",
                      "to": "Solar",
                      "tot": "msg"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 1260,
              "y": 400,
              "wires": [
                  [
                      "6a06a0d5.977a9"
                  ]
              ]
          },
          {
              "id": "348acde4.602cd2",
              "type": "ioBroker get",
              "z": "89394b0c.86b5a8",
              "name": "Solar",
              "topic": "hm-rpc.3.OEQ0674784.1.TEMPERATURE",
              "attrname": "Solar",
              "payloadType": "value",
              "x": 1490,
              "y": 320,
              "wires": [
                  [
                      "fbef2e28.ca6e2"
                  ]
              ]
          },
          {
              "id": "6a06a0d5.977a9",
              "type": "ioBroker get",
              "z": "89394b0c.86b5a8",
              "name": "Wasser",
              "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
              "attrname": "Wasser",
              "payloadType": "value",
              "x": 1500,
              "y": 400,
              "wires": [
                  [
                      "fbef2e28.ca6e2"
                  ]
              ]
          },
          {
              "id": "858ad7b6.87a0d8",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Wassertemperatur",
              "topic": "hm-rpc.3.OEQ0674784.2.TEMPERATURE",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 1070,
              "y": 320,
              "wires": [
                  [
                      "f14c597d.b7db28"
                  ]
              ]
          },
          {
              "id": "fbef2e28.ca6e2",
              "type": "switch",
              "z": "89394b0c.86b5a8",
              "name": "vergleiche",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "jsonata_exp",
                      "v": "Wasser + 10 < Solar",
                      "vt": "jsonata"
                  },
                  {
                      "t": "jsonata_exp",
                      "v": "Wasser + 8 >= Solar ",
                      "vt": "jsonata"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 1710,
              "y": 360,
              "wires": [
                  [
                      "b875b414.953568"
                  ],
                  [
                      "d1ff32a2.67231"
                  ]
              ]
          },
          {
              "id": "f546f28e.70e08",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Energiebilanz für Wärmepumpe",
              "info": "",
              "x": 450,
              "y": 460,
              "wires": []
          },
          {
              "id": "17932509.7135ab",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Vergleich Wasser mit gewünschter Badetemperatur",
              "info": "",
              "x": 440,
              "y": 60,
              "wires": []
          },
          {
              "id": "5aa26bab.a24754",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Vorlauftemperatur Solar ausreichend?",
              "info": "",
              "x": 1600,
              "y": 180,
              "wires": []
          },
          {
              "id": "f38215c5.6e0af8",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Freigabe zum Prüfen Solar Vorlauf",
              "info": "",
              "x": 1770,
              "y": 600,
              "wires": []
          },
          {
              "id": "1a65125f.38c11e",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Steuerung aktiv?",
              "topic": "0_userdata.0.Poolsteuerung.Steuerung_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 200,
              "y": 840,
              "wires": [
                  [
                      "f7e5cf2d.5f8ed"
                  ]
              ]
          },
          {
              "id": "683f53b1.de0e7c",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Solarunterstützung aktiv?",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarunterstützung_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 230,
              "y": 900,
              "wires": [
                  [
                      "f7e5cf2d.5f8ed"
                  ]
              ]
          },
          {
              "id": "bc5c5753.f8c1c8",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Steuerung aktiv?",
              "topic": "0_userdata.0.Poolsteuerung.Steuerung_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 200,
              "y": 1560,
              "wires": [
                  [
                      "2300818d.73d40e"
                  ]
              ]
          },
          {
              "id": "eabe6b1.5bb8f98",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Heizen mit Wärmepumpe aktiv?",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Wärmepumpe_aktiv",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 250,
              "y": 1620,
              "wires": [
                  [
                      "2300818d.73d40e"
                  ]
              ]
          },
          {
              "id": "27231f4f.e8c2b",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "Oder",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "WaitForPayload",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": 2,
              "topic": "result",
              "x": 710,
              "y": 980,
              "wires": [
                  [],
                  [
                      "6b46e83d.9f89b8"
                  ],
                  []
              ]
          },
          {
              "id": "16a5792e.1472f7",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Solarunterstützung Dauer Ein/Aus",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Solarunterstützung_manuell",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 260,
              "y": 980,
              "wires": [
                  [
                      "27231f4f.e8c2b"
                  ]
              ]
          },
          {
              "id": "4e582112.bd9e5",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "WaitForPayload",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": 2,
              "topic": "result",
              "x": 820,
              "y": 1480,
              "wires": [
                  [],
                  [
                      "8a5de38e.7929e"
                  ],
                  []
              ]
          },
          {
              "id": "591c2bb5.6016a4",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Wärmepumpe Dauer E/n/Aus",
              "topic": "0_userdata.0.Poolsteuerung.Temperatursteuerung.Wärmepumpe_manuell",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 540,
              "y": 1560,
              "wires": [
                  [
                      "4e582112.bd9e5"
                  ]
              ]
          },
          {
              "id": "151fbbd6.82ff64",
              "type": "ioBroker out",
              "z": "89394b0c.86b5a8",
              "name": "Filterpumpe",
              "topic": "hm-rpc.3.REQ1241895.1.STATE",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1010,
              "y": 1840,
              "wires": []
          },
          {
              "id": "26fc5e80.485f12",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "WaitForPayload",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": "4",
              "topic": "result",
              "x": 490,
              "y": 1840,
              "wires": [
                  [],
                  [
                      "ff9e5924.99fd08"
                  ],
                  []
              ]
          },
          {
              "id": "a8db85c1.6843d8",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Ansteuerung Filterpumpe",
              "info": "",
              "x": 530,
              "y": 1740,
              "wires": []
          },
          {
              "id": "a4b0d5bc.a9fe48",
              "type": "trigger",
              "z": "89394b0c.86b5a8",
              "name": "Laufzeit 5min",
              "op1": "1",
              "op2": "0",
              "op1type": "str",
              "op2type": "str",
              "duration": "5",
              "extend": false,
              "overrideDelay": false,
              "units": "min",
              "reset": "",
              "bytopic": "all",
              "topic": "topic",
              "outputs": 1,
              "x": 1190,
              "y": 1300,
              "wires": [
                  [
                      "bc8faceb.0a56e"
                  ]
              ]
          },
          {
              "id": "9da27ed0.eae5e",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "entprellen",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 660,
              "y": 1200,
              "wires": [
                  [
                      "639840c5.cf2c"
                  ]
              ]
          },
          {
              "id": "893287f3.bbeac8",
              "type": "trigger",
              "z": "89394b0c.86b5a8",
              "name": "alle 30 min erneut einschalten",
              "op1": "1",
              "op2": "0",
              "op1type": "str",
              "op2type": "str",
              "duration": "-30",
              "extend": false,
              "overrideDelay": false,
              "units": "min",
              "reset": "",
              "bytopic": "all",
              "topic": "topic",
              "outputs": 1,
              "x": 930,
              "y": 1300,
              "wires": [
                  [
                      "a4b0d5bc.a9fe48"
                  ]
              ]
          },
          {
              "id": "6cae00d1.7bcd6",
              "type": "inject",
              "z": "89394b0c.86b5a8",
              "name": "Prüfen 20:00Uhr",
              "props": [
                  {
                      "p": "payload"
                  }
              ],
              "repeat": "",
              "crontab": "*/1 20-23 * * *",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "true",
              "payloadType": "bool",
              "x": 210,
              "y": 2340,
              "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": 430,
              "y": 2340,
              "wires": [
                  [
                      "dd3ddd1f.fa71b"
                  ]
              ]
          },
          {
              "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": 860,
              "y": 2340,
              "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": 670,
              "y": 2340,
              "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": 1100,
              "y": 2320,
              "wires": [
                  [
                      "32290619.37b98a"
                  ]
              ]
          },
          {
              "id": "83ea4baa.e261f8",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "Trigger",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 280,
              "y": 2120,
              "wires": [
                  [
                      "426bfb66.27e944"
                  ]
              ]
          },
          {
              "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": 1340,
              "y": 2320,
              "wires": []
          },
          {
              "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": 1110,
              "y": 2380,
              "wires": [
                  [
                      "32290619.37b98a"
                  ]
              ]
          },
          {
              "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": 210,
              "y": 1960,
              "wires": [
                  [
                      "26fc5e80.485f12"
                  ]
              ]
          },
          {
              "id": "e52739a4.f06978",
              "type": "comment",
              "z": "89394b0c.86b5a8",
              "name": "Nachlaufzeit",
              "info": "",
              "x": 850,
              "y": 2280,
              "wires": []
          },
          {
              "id": "ff9e5924.99fd08",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "entprellen",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 660,
              "y": 1840,
              "wires": [
                  [
                      "151fbbd6.82ff64",
                      "e7444e07.459cf",
                      "83ea4baa.e261f8"
                  ]
              ]
          },
          {
              "id": "8a5de38e.7929e",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "entprellen",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 1000,
              "y": 1480,
              "wires": [
                  [
                      "4666bdd7.4b3044",
                      "64d819d.ac203e8"
                  ]
              ]
          },
          {
              "id": "6b46e83d.9f89b8",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "entprellen",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 940,
              "y": 980,
              "wires": [
                  [
                      "b22cf1e2.189de",
                      "7a7db09f.ea9fc",
                      "d10301b7.ef0ef",
                      "bc8faceb.0a56e"
                  ]
              ]
          },
          {
              "id": "598cc201.e0e62c",
              "type": "rbe",
              "z": "89394b0c.86b5a8",
              "name": "entprellen",
              "func": "rbe",
              "gap": "",
              "start": "",
              "inout": "out",
              "septopics": true,
              "property": "payload",
              "x": 1700,
              "y": 1220,
              "wires": [
                  [
                      "bda9097.228eff8",
                      "72a0e2ab.04ea5c"
                  ]
              ]
          },
          {
              "id": "639840c5.cf2c",
              "type": "switch",
              "z": "89394b0c.86b5a8",
              "name": "nur ausführen bei true",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "false"
                  },
                  {
                      "t": "true"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 900,
              "y": 1200,
              "wires": [
                  [
                      "537f0467.80407c"
                  ],
                  [
                      "893287f3.bbeac8"
                  ]
              ]
          },
          {
              "id": "18da7235.f874ee",
              "type": "ioBroker in",
              "z": "89394b0c.86b5a8",
              "name": "Anf_Pumpe_von_WP",
              "topic": "0_userdata.0.Poolsteuerung.Filteranlage.Anf_Pumpe_von_WP",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "x": 220,
              "y": 1840,
              "wires": [
                  [
                      "26fc5e80.485f12"
                  ]
              ]
          },
          {
              "id": "8c28dba9.cc42c8",
              "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": 1900,
              "wires": [
                  [
                      "26fc5e80.485f12"
                  ]
              ]
          },
          {
              "id": "bc8faceb.0a56e",
              "type": "BooleanLogicUltimate",
              "z": "89394b0c.86b5a8",
              "name": "",
              "filtertrue": "both",
              "persist": true,
              "sInitializeWith": "false",
              "triggertopic": "trigger",
              "outputtriggeredby": "all",
              "inputCount": 2,
              "topic": "result",
              "x": 1500,
              "y": 1220,
              "wires": [
                  [],
                  [
                      "598cc201.e0e62c"
                  ],
                  []
              ]
          },
          {
              "id": "36244687.bf616a",
              "type": "inject",
              "z": "89394b0c.86b5a8",
              "name": "",
              "props": [
                  {
                      "p": "payload"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "true",
              "payloadType": "bool",
              "x": 1880,
              "y": 800,
              "wires": [
                  [
                      "389afbfa.d856b4"
                  ]
              ]
          },
          {
              "id": "72a0e2ab.04ea5c",
              "type": "debug",
              "z": "89394b0c.86b5a8",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "false",
              "statusVal": "",
              "statusType": "auto",
              "x": 1950,
              "y": 1300,
              "wires": []
          },
          {
              "id": "537f0467.80407c",
              "type": "change",
              "z": "89394b0c.86b5a8",
              "name": "",
              "rules": [
                  {
                      "t": "set",
                      "p": "reset",
                      "pt": "msg",
                      "to": "true",
                      "tot": "bool"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 1160,
              "y": 1200,
              "wires": [
                  [
                      "893287f3.bbeac8"
                  ]
              ]
          }
      ]
      

      dazu habe ich eine einfach vis -läuft auf einen Raspi Zero mit 10.1" Toch Display im Edelstahl Gehäuße:
      Zustand "Steuerung aus"
      6bc954a8-4a5c-4a43-a743-a9fd3a5225db-image.png
      Zustand "Steuerung an"
      16ba8cb1-e047-4e8f-a227-f38fe0b72f0a-image.png
      Seite 2
      9728c3e0-44aa-451a-b27c-107501760a3f-image.png

      Vielleicht kann der eine, oder ander hier was mitnehmen. Ich habe bei dem Projekt unheimlich viel gelernt.

      Achtung: Ich habe noch einen Fehler endeckt: Das Schalten der Homematic Aktoren aus dem Node geht nur wenn wenn der Sendungstyp "command" ist, nicht "value"!

      Danke an @mickym !!!

      Update 26.04.2021: habe nun nach einigen Tagen live testen, noch ein paar bugs gefunden und den Export aktualisiert.

      LG Torsten

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

      @schneidy76 Wie immer empfehle ich damit anzufangen, mir zu überlegen wer oder was soll Deinen Flow triggern und was willst Du damit steuern bzw. wie sieht Dein Output aus - und so arbeitest Du Dich von links nach rechts, wie Du auch schreiben würdest.
      Im Prinzip ist es wie Logikzeichnen.

      Für die Trigger kannst Du pollen (also in regelmäßigen Zeitabständen abfragen) oder nur bei Änderungen den Flow anstoßen, wobei Du natürlich auch bei Systemstart den Flow einmal durch laufen lassen kannst.

      Zur schnellen Visualisierung empfehle ich das NR-Dashboard, dass ist ein tolles Toll und basiert auf dem Google Material Design. Später kannst Du dann VIS oder was anderes dazunehmen, wenn Du grafisch anspruchsvoller arbeiten willst, aber mit dem NR-Dashboard kannst Du am schnellsten steuern, was Du mit Deiner Logik fabriziert hast.

      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 Wie immer empfehle ich damit anzufangen, mir zu überlegen wer oder was soll Deinen Flow triggern und was willst Du damit steuern bzw. wie sieht Dein Output aus - und so arbeitest Du Dich von links nach rechts, wie Du auch schreiben würdest.
        Im Prinzip ist es wie Logikzeichnen.

        Für die Trigger kannst Du pollen (also in regelmäßigen Zeitabständen abfragen) oder nur bei Änderungen den Flow anstoßen, wobei Du natürlich auch bei Systemstart den Flow einmal durch laufen lassen kannst.

        Zur schnellen Visualisierung empfehle ich das NR-Dashboard, dass ist ein tolles Toll und basiert auf dem Google Material Design. Später kannst Du dann VIS oder was anderes dazunehmen, wenn Du grafisch anspruchsvoller arbeiten willst, aber mit dem NR-Dashboard kannst Du am schnellsten steuern, was Du mit Deiner Logik fabriziert hast.

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

        @mickym Vielen Dank, als Trigger würde ich das Delta der „Wasser und Solar Temperatur“ & „Energiebilanz“ heranziehen. Welche Knoten kann man da nehmen und wie kann ich Vergleiche am besten auswerten?

        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 Vielen Dank, als Trigger würde ich das Delta der „Wasser und Solar Temperatur“ & „Energiebilanz“ heranziehen. Welche Knoten kann man da nehmen und wie kann ich Vergleiche am besten auswerten?

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

          @schneidy76 Nun die Anbindung Deiner Sensoren in den iobroker hast Du wohl schon gemacht.
          Also wird alles über Deine iobroker in Nodes getriggert.
          Ein DELTA kann nicht triggern, sondern nur ein Datenpunkt der sich ändert oder man nutzt Zeitintervalle.
          Ein DELTA ist etwas was Du ermitteln kannst aufgrund von Ereignissen. Ereignisse triggern und sonst nichts. Also Zustandsänderungen oder Zeitinitervalle etc. ;)
          In Deinem Fall würde sich wohl eine Temperaturänderung als Trigger anbieten und nun ist die Frage - die Wassertemperatur? - was ist eine SOlartemperatur? Durch wen oder was ändert sich eine Energiebilanz?

          Vergleiche musst Du selbst anstellen - indem DU Werte ausliest und mit anderen vergleichst.

          Also fang erst mal damit an, was Deinen Flow triggern soll oder wenn es alles 3 ist, dann fang mit einem an und mach Dich später an die anderen.

          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 Nun die Anbindung Deiner Sensoren in den iobroker hast Du wohl schon gemacht.
            Also wird alles über Deine iobroker in Nodes getriggert.
            Ein DELTA kann nicht triggern, sondern nur ein Datenpunkt der sich ändert oder man nutzt Zeitintervalle.
            Ein DELTA ist etwas was Du ermitteln kannst aufgrund von Ereignissen. Ereignisse triggern und sonst nichts. Also Zustandsänderungen oder Zeitinitervalle etc. ;)
            In Deinem Fall würde sich wohl eine Temperaturänderung als Trigger anbieten und nun ist die Frage - die Wassertemperatur? - was ist eine SOlartemperatur? Durch wen oder was ändert sich eine Energiebilanz?

            Vergleiche musst Du selbst anstellen - indem DU Werte ausliest und mit anderen vergleichst.

            Also fang erst mal damit an, was Deinen Flow triggern soll oder wenn es alles 3 ist, dann fang mit einem an und mach Dich später an die anderen.

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

            @mickym Ja, alles was ich verwenden möchte,ist bereits als Datenpunkt in iobroker vorhanden. das Delta ist ein Datenpunkt vom Differenz Temperatur Sensor. Fangen wir mal noch kleiner an.
            Trigger Datenpunkt Delta vom Diff. Temperatur.Sensor
            Vergleiche Wassertemperatur mit Badetemperatur(Soll)
            Ist Wassertemperatur 2 Grad unter Badetemperatur dann setze heizen auf 1 (oder „wahr“)

            Vg 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 Ja, alles was ich verwenden möchte,ist bereits als Datenpunkt in iobroker vorhanden. das Delta ist ein Datenpunkt vom Differenz Temperatur Sensor. Fangen wir mal noch kleiner an.
              Trigger Datenpunkt Delta vom Diff. Temperatur.Sensor
              Vergleiche Wassertemperatur mit Badetemperatur(Soll)
              Ist Wassertemperatur 2 Grad unter Badetemperatur dann setze heizen auf 1 (oder „wahr“)

              Vg Torsten

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

              @schneidy76 Nun als erstes check Mal ob in Deinem NR Adapter der Haken, dass alles in Strings umgewandelt wird - nicht gesetzt ist, sonst musst Du für die Rechnerei jedesmal einen Datenpunkt in eine Zahl umwandeln.

              Dann würde ich mal als Trigger die Wassertemperatur holen. Die Badetemperatur nehme ich mal an ist konstant und wird nicht in einem Datenpunkt gespeichert.

              Du holst Dir also die Wassertemperatur mit einer iobroker In Node. im Topic wählst Du den Datenpunkt im iobroker aus, der die Wassertemperatur enthält. Diese befindet sich dann in Deiner msg.payload. In einer SwitchNode gleichst Du die nun mit Deiner Badetemperatur ab und kannst nun filtern, dass der weitere Flow nur dann weitergehen soll, wenn das DELTA mehr als 2 °C beträgt. Dann setzt Du die payload mit einer Change Node auf 1 oder true und schickst das über die iobroker out Node zu Deiner Wasserheizung. Ist doch logisch oder? :D

              Kannst ja einen Screenshot posten, wenn Du das gemacht hast.

              Ich könnte Dir den Flow - auch schnell zum Importieren basteln - aber das machen wir dann, wenn Du nicht weiterkommst. ;)

              So einfach sollte es dann aussehen:

              6e07f709-d730-497b-b064-891d91949bd3-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 Nun als erstes check Mal ob in Deinem NR Adapter der Haken, dass alles in Strings umgewandelt wird - nicht gesetzt ist, sonst musst Du für die Rechnerei jedesmal einen Datenpunkt in eine Zahl umwandeln.

                Dann würde ich mal als Trigger die Wassertemperatur holen. Die Badetemperatur nehme ich mal an ist konstant und wird nicht in einem Datenpunkt gespeichert.

                Du holst Dir also die Wassertemperatur mit einer iobroker In Node. im Topic wählst Du den Datenpunkt im iobroker aus, der die Wassertemperatur enthält. Diese befindet sich dann in Deiner msg.payload. In einer SwitchNode gleichst Du die nun mit Deiner Badetemperatur ab und kannst nun filtern, dass der weitere Flow nur dann weitergehen soll, wenn das DELTA mehr als 2 °C beträgt. Dann setzt Du die payload mit einer Change Node auf 1 oder true und schickst das über die iobroker out Node zu Deiner Wasserheizung. Ist doch logisch oder? :D

                Kannst ja einen Screenshot posten, wenn Du das gemacht hast.

                Ich könnte Dir den Flow - auch schnell zum Importieren basteln - aber das machen wir dann, wenn Du nicht weiterkommst. ;)

                So einfach sollte es dann aussehen:

                6e07f709-d730-497b-b064-891d91949bd3-image.png

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

                @mickym ohwe schon gescheitert :blush:
                das setzen auf true war weg:
                Vergleich.png Out.png iobroker in.png

                Ach ja, der Datenpunkt Badetemperatur ist natürlich nicht fix, sondern auch ein "echter" Wert der aus der VIS gesetzt wird

                VG 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 ohwe schon gescheitert :blush:
                  das setzen auf true war weg:
                  Vergleich.png Out.png iobroker in.png

                  Ach ja, der Datenpunkt Badetemperatur ist natürlich nicht fix, sondern auch ein "echter" Wert der aus der VIS gesetzt wird

                  VG Torsten

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

                  @schneidy76 Nun wenn der Datenpunkt Badetemperatur nicht fix ist, dann ist das etwas schwieriger. Du musst Dir immer vorstellen, dass alle Nachrichten in Bewegung, im Fluss, im Flow sind. ;) Nichts ist statisch. ;) Wenn Du Dir also Deine Nachricht aus dem Datenpunkt Badetemperatur holst, dann wartet die nicht auf Dich bzw. bis der Wert der Wassertemperatur da ist. ;) - Ich hoffe Du verstehst was ich meine.

                  Um dieses Problem zu lösen gibt es 2 Möglichkeiten:

                  1. Du speicherst den Punkt mit dem Du vergleichen möchtest im Flow und kannst dann vergleichen. Empfohlen!
                  2. Du nimmst den Wert quasi im Vorbeigehen mit und schleppst ihn bis zum Vergleich so lange in Deiner Nachricht mit. ( ist aber vielleicht für den Anfang bissi schwer zu verstehen).

                  Also bleiben wir bei 1.

                  Hier hast Du den kompletten Flow zum Importieren - musst nur noch Deine Datenpunkte unter den Topic in die in und out Nodes machen:

                  [
                      {
                          "id": "b6e037d2.04c208",
                          "type": "ioBroker in",
                          "z": "6e170384.60c96c",
                          "name": "",
                          "topic": "Hole Badetemperatur",
                          "payloadType": "value",
                          "onlyack": "",
                          "func": "all",
                          "gap": "",
                          "fireOnStart": "false",
                          "x": 2700,
                          "y": 3680,
                          "wires": [
                              [
                                  "2007aae4.061916"
                              ]
                          ]
                      },
                      {
                          "id": "2007aae4.061916",
                          "type": "change",
                          "z": "6e170384.60c96c",
                          "name": "",
                          "rules": [
                              {
                                  "t": "set",
                                  "p": "Badtemperatur",
                                  "pt": "flow",
                                  "to": "payload",
                                  "tot": "msg"
                              }
                          ],
                          "action": "",
                          "property": "",
                          "from": "",
                          "to": "",
                          "reg": false,
                          "x": 2980,
                          "y": 3680,
                          "wires": [
                              []
                          ]
                      },
                      {
                          "id": "ea29fa4f.6aef78",
                          "type": "ioBroker in",
                          "z": "6e170384.60c96c",
                          "name": "",
                          "topic": "Hole Wassertemperatur",
                          "payloadType": "value",
                          "onlyack": "",
                          "func": "all",
                          "gap": "",
                          "fireOnStart": "false",
                          "x": 2700,
                          "y": 3740,
                          "wires": [
                              [
                                  "db44f45.f117208"
                              ]
                          ]
                      },
                      {
                          "id": "db44f45.f117208",
                          "type": "switch",
                          "z": "6e170384.60c96c",
                          "name": "ist < 2 unter Badetemperatur?",
                          "property": "Badetemperatur",
                          "propertyType": "flow",
                          "rules": [
                              {
                                  "t": "eq",
                                  "v": "2",
                                  "vt": "num"
                              }
                          ],
                          "checkall": "true",
                          "repair": false,
                          "outputs": 1,
                          "x": 3000,
                          "y": 3740,
                          "wires": [
                              [
                                  "f3667f03.13cd6"
                              ]
                          ]
                      },
                      {
                          "id": "f3667f03.13cd6",
                          "type": "change",
                          "z": "6e170384.60c96c",
                          "name": "setze true",
                          "rules": [
                              {
                                  "t": "set",
                                  "p": "payload",
                                  "pt": "msg",
                                  "to": "true",
                                  "tot": "bool"
                              }
                          ],
                          "action": "",
                          "property": "",
                          "from": "",
                          "to": "",
                          "reg": false,
                          "x": 3250,
                          "y": 3740,
                          "wires": [
                              [
                                  "e12f768f.804578"
                              ]
                          ]
                      },
                      {
                          "id": "e12f768f.804578",
                          "type": "ioBroker out",
                          "z": "6e170384.60c96c",
                          "name": "",
                          "topic": "... und heize",
                          "ack": "false",
                          "autoCreate": "false",
                          "stateName": "",
                          "role": "",
                          "payloadType": "",
                          "readonly": "",
                          "stateUnit": "",
                          "stateMin": "",
                          "stateMax": "",
                          "x": 3430,
                          "y": 3740,
                          "wires": []
                      }
                  ]
                  

                  Importieren geht indem Du die den Inhalt des schwarzen Kastens in die Zwischenablage kopierst, dann gehst Du rechts oben auf das Menü Import

                  6bf2832f-9078-467b-abea-2e3c0e0246f7-image.png

                  Kopierst den Inhalt der Zwischenablage in das rosa Fenster und importierst die Nodes:

                  f958f180-d3c9-4534-ab76-0835678d900f-image.png

                  Im Kontextmenü rechts kannst Du Dir dann auch immer den Inhalt der Variablen anschauen - in diesem Fall einer Flowvariable:

                  9d7e3934-84ab-48c1-902e-8c21a92a5709-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 2 Antworten Letzte Antwort
                  0
                  • mickymM mickym

                    @schneidy76 Nun wenn der Datenpunkt Badetemperatur nicht fix ist, dann ist das etwas schwieriger. Du musst Dir immer vorstellen, dass alle Nachrichten in Bewegung, im Fluss, im Flow sind. ;) Nichts ist statisch. ;) Wenn Du Dir also Deine Nachricht aus dem Datenpunkt Badetemperatur holst, dann wartet die nicht auf Dich bzw. bis der Wert der Wassertemperatur da ist. ;) - Ich hoffe Du verstehst was ich meine.

                    Um dieses Problem zu lösen gibt es 2 Möglichkeiten:

                    1. Du speicherst den Punkt mit dem Du vergleichen möchtest im Flow und kannst dann vergleichen. Empfohlen!
                    2. Du nimmst den Wert quasi im Vorbeigehen mit und schleppst ihn bis zum Vergleich so lange in Deiner Nachricht mit. ( ist aber vielleicht für den Anfang bissi schwer zu verstehen).

                    Also bleiben wir bei 1.

                    Hier hast Du den kompletten Flow zum Importieren - musst nur noch Deine Datenpunkte unter den Topic in die in und out Nodes machen:

                    [
                        {
                            "id": "b6e037d2.04c208",
                            "type": "ioBroker in",
                            "z": "6e170384.60c96c",
                            "name": "",
                            "topic": "Hole Badetemperatur",
                            "payloadType": "value",
                            "onlyack": "",
                            "func": "all",
                            "gap": "",
                            "fireOnStart": "false",
                            "x": 2700,
                            "y": 3680,
                            "wires": [
                                [
                                    "2007aae4.061916"
                                ]
                            ]
                        },
                        {
                            "id": "2007aae4.061916",
                            "type": "change",
                            "z": "6e170384.60c96c",
                            "name": "",
                            "rules": [
                                {
                                    "t": "set",
                                    "p": "Badtemperatur",
                                    "pt": "flow",
                                    "to": "payload",
                                    "tot": "msg"
                                }
                            ],
                            "action": "",
                            "property": "",
                            "from": "",
                            "to": "",
                            "reg": false,
                            "x": 2980,
                            "y": 3680,
                            "wires": [
                                []
                            ]
                        },
                        {
                            "id": "ea29fa4f.6aef78",
                            "type": "ioBroker in",
                            "z": "6e170384.60c96c",
                            "name": "",
                            "topic": "Hole Wassertemperatur",
                            "payloadType": "value",
                            "onlyack": "",
                            "func": "all",
                            "gap": "",
                            "fireOnStart": "false",
                            "x": 2700,
                            "y": 3740,
                            "wires": [
                                [
                                    "db44f45.f117208"
                                ]
                            ]
                        },
                        {
                            "id": "db44f45.f117208",
                            "type": "switch",
                            "z": "6e170384.60c96c",
                            "name": "ist < 2 unter Badetemperatur?",
                            "property": "Badetemperatur",
                            "propertyType": "flow",
                            "rules": [
                                {
                                    "t": "eq",
                                    "v": "2",
                                    "vt": "num"
                                }
                            ],
                            "checkall": "true",
                            "repair": false,
                            "outputs": 1,
                            "x": 3000,
                            "y": 3740,
                            "wires": [
                                [
                                    "f3667f03.13cd6"
                                ]
                            ]
                        },
                        {
                            "id": "f3667f03.13cd6",
                            "type": "change",
                            "z": "6e170384.60c96c",
                            "name": "setze true",
                            "rules": [
                                {
                                    "t": "set",
                                    "p": "payload",
                                    "pt": "msg",
                                    "to": "true",
                                    "tot": "bool"
                                }
                            ],
                            "action": "",
                            "property": "",
                            "from": "",
                            "to": "",
                            "reg": false,
                            "x": 3250,
                            "y": 3740,
                            "wires": [
                                [
                                    "e12f768f.804578"
                                ]
                            ]
                        },
                        {
                            "id": "e12f768f.804578",
                            "type": "ioBroker out",
                            "z": "6e170384.60c96c",
                            "name": "",
                            "topic": "... und heize",
                            "ack": "false",
                            "autoCreate": "false",
                            "stateName": "",
                            "role": "",
                            "payloadType": "",
                            "readonly": "",
                            "stateUnit": "",
                            "stateMin": "",
                            "stateMax": "",
                            "x": 3430,
                            "y": 3740,
                            "wires": []
                        }
                    ]
                    

                    Importieren geht indem Du die den Inhalt des schwarzen Kastens in die Zwischenablage kopierst, dann gehst Du rechts oben auf das Menü Import

                    6bf2832f-9078-467b-abea-2e3c0e0246f7-image.png

                    Kopierst den Inhalt der Zwischenablage in das rosa Fenster und importierst die Nodes:

                    f958f180-d3c9-4534-ab76-0835678d900f-image.png

                    Im Kontextmenü rechts kannst Du Dir dann auch immer den Inhalt der Variablen anschauen - in diesem Fall einer Flowvariable:

                    9d7e3934-84ab-48c1-902e-8c21a92a5709-image.png

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

                    @mickym Vielen vielen Dank, ich denke ich komme jetzt mal ein Stück weit.
                    Vergleichen und dann setzen, das ist mal zu 70% die Logic.
                    Ich probiere mich mal aus und melde mich wieder!
                    Danke für die (Start)Hilfe.

                    Viele liebe Grüße 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

                    1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @schneidy76 Nun wenn der Datenpunkt Badetemperatur nicht fix ist, dann ist das etwas schwieriger. Du musst Dir immer vorstellen, dass alle Nachrichten in Bewegung, im Fluss, im Flow sind. ;) Nichts ist statisch. ;) Wenn Du Dir also Deine Nachricht aus dem Datenpunkt Badetemperatur holst, dann wartet die nicht auf Dich bzw. bis der Wert der Wassertemperatur da ist. ;) - Ich hoffe Du verstehst was ich meine.

                      Um dieses Problem zu lösen gibt es 2 Möglichkeiten:

                      1. Du speicherst den Punkt mit dem Du vergleichen möchtest im Flow und kannst dann vergleichen. Empfohlen!
                      2. Du nimmst den Wert quasi im Vorbeigehen mit und schleppst ihn bis zum Vergleich so lange in Deiner Nachricht mit. ( ist aber vielleicht für den Anfang bissi schwer zu verstehen).

                      Also bleiben wir bei 1.

                      Hier hast Du den kompletten Flow zum Importieren - musst nur noch Deine Datenpunkte unter den Topic in die in und out Nodes machen:

                      [
                          {
                              "id": "b6e037d2.04c208",
                              "type": "ioBroker in",
                              "z": "6e170384.60c96c",
                              "name": "",
                              "topic": "Hole Badetemperatur",
                              "payloadType": "value",
                              "onlyack": "",
                              "func": "all",
                              "gap": "",
                              "fireOnStart": "false",
                              "x": 2700,
                              "y": 3680,
                              "wires": [
                                  [
                                      "2007aae4.061916"
                                  ]
                              ]
                          },
                          {
                              "id": "2007aae4.061916",
                              "type": "change",
                              "z": "6e170384.60c96c",
                              "name": "",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "Badtemperatur",
                                      "pt": "flow",
                                      "to": "payload",
                                      "tot": "msg"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 2980,
                              "y": 3680,
                              "wires": [
                                  []
                              ]
                          },
                          {
                              "id": "ea29fa4f.6aef78",
                              "type": "ioBroker in",
                              "z": "6e170384.60c96c",
                              "name": "",
                              "topic": "Hole Wassertemperatur",
                              "payloadType": "value",
                              "onlyack": "",
                              "func": "all",
                              "gap": "",
                              "fireOnStart": "false",
                              "x": 2700,
                              "y": 3740,
                              "wires": [
                                  [
                                      "db44f45.f117208"
                                  ]
                              ]
                          },
                          {
                              "id": "db44f45.f117208",
                              "type": "switch",
                              "z": "6e170384.60c96c",
                              "name": "ist < 2 unter Badetemperatur?",
                              "property": "Badetemperatur",
                              "propertyType": "flow",
                              "rules": [
                                  {
                                      "t": "eq",
                                      "v": "2",
                                      "vt": "num"
                                  }
                              ],
                              "checkall": "true",
                              "repair": false,
                              "outputs": 1,
                              "x": 3000,
                              "y": 3740,
                              "wires": [
                                  [
                                      "f3667f03.13cd6"
                                  ]
                              ]
                          },
                          {
                              "id": "f3667f03.13cd6",
                              "type": "change",
                              "z": "6e170384.60c96c",
                              "name": "setze true",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "true",
                                      "tot": "bool"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 3250,
                              "y": 3740,
                              "wires": [
                                  [
                                      "e12f768f.804578"
                                  ]
                              ]
                          },
                          {
                              "id": "e12f768f.804578",
                              "type": "ioBroker out",
                              "z": "6e170384.60c96c",
                              "name": "",
                              "topic": "... und heize",
                              "ack": "false",
                              "autoCreate": "false",
                              "stateName": "",
                              "role": "",
                              "payloadType": "",
                              "readonly": "",
                              "stateUnit": "",
                              "stateMin": "",
                              "stateMax": "",
                              "x": 3430,
                              "y": 3740,
                              "wires": []
                          }
                      ]
                      

                      Importieren geht indem Du die den Inhalt des schwarzen Kastens in die Zwischenablage kopierst, dann gehst Du rechts oben auf das Menü Import

                      6bf2832f-9078-467b-abea-2e3c0e0246f7-image.png

                      Kopierst den Inhalt der Zwischenablage in das rosa Fenster und importierst die Nodes:

                      f958f180-d3c9-4534-ab76-0835678d900f-image.png

                      Im Kontextmenü rechts kannst Du Dir dann auch immer den Inhalt der Variablen anschauen - in diesem Fall einer Flowvariable:

                      9d7e3934-84ab-48c1-902e-8c21a92a5709-image.png

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

                      @mickym Hallo, ich habe mich länger nicht gemeldet.
                      Ein Zwischenstand:
                      die Vergleiche stehen soweit alle und funktionieren
                      And und Or Verknüpfung passt auch.
                      Danke nochmals für die Starthilfe.

                      Was mir noch fehlt:
                      Immer wenn die Filteranlage läuft, was sie beim Heizen immer tut, sollen die Laufzeiten addiert werden und nach 0Uhr resetet werden.
                      Ist diese Laufzeit unter Zeit X soll die Filteranlage am Abend laufen bis die Zeit X erreicht ist. Damit wird eine Mindest Filterzeit sichergestellt.
                      Habe schon ein wenig mit dem Counter Node experimentiert, bin mir aber nicht sicher, ob der das Richtige ist. Zudem würde ich diese Zeit gerne peristent machen.

                      Danke und Vg 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 Hallo, ich habe mich länger nicht gemeldet.
                        Ein Zwischenstand:
                        die Vergleiche stehen soweit alle und funktionieren
                        And und Or Verknüpfung passt auch.
                        Danke nochmals für die Starthilfe.

                        Was mir noch fehlt:
                        Immer wenn die Filteranlage läuft, was sie beim Heizen immer tut, sollen die Laufzeiten addiert werden und nach 0Uhr resetet werden.
                        Ist diese Laufzeit unter Zeit X soll die Filteranlage am Abend laufen bis die Zeit X erreicht ist. Damit wird eine Mindest Filterzeit sichergestellt.
                        Habe schon ein wenig mit dem Counter Node experimentiert, bin mir aber nicht sicher, ob der das Richtige ist. Zudem würde ich diese Zeit gerne peristent machen.

                        Danke und Vg Torsten

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

                        @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.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          717

                                          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