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:
[
{
"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"
Zustand "Steuerung an"
Seite 2
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