NEWS
Homematic Heizungsthermostat und Aqara Fenstersensor auf/zu
-
Hallöchen,
ich stehe aktuell vor dem Problem, dass ich nicht richtig weiter komme. Ich möchte eine Heizungssteuerung über Node-Red realisieren, in der Form, dass wenn das Fenster geöffnet wird, die Heizung ausgeschaltet wird und wenn das Fenster geschlossen wird, die Heizung logischerweise wieder eingeschaltet wird.
Nun ist der erste Teil nicht allzu schwierig, ich konnte das problemlos mit folgendem Flow lösen:
Der zweite Teil ist aber etwas schwieriger, da es ja darauf ankommt, wie das Thermostat vorher eingestellt war. War es vorher im Auto-Modus, soll es auch nachher wieder in den Auto-Modus schalten. War es manuell vor dem Öffnen des Fensters, soll es entsprechend auch nach dem Schließen wieder auf manuell mit der vorherigen Temperatur stellen. Dazu müsste ich natürlich vor dem Öffnen des Fensters den Wert des Modus und der Temperatur des Thermostats auslesen und irgendwie zwischenspeichern. Beim Schließen des Fensters müsste man dann die zuvor gespeicherten Werte wieder eintragen. Leider stehe ich dabei komplett auf dem Schlauch. Wie kann ich die Werte entsprechend zwischenspeichern und wieder eintragen?
-
[ { "id": "4683ee6d.129788", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "f16868e6.277fa", "type": "ioBroker in", "z": "4683ee6d.129788", "name": "Esszimmer_Fensterkontakt_rechts", "topic": "zigbee.0.00158d0004a04457.opened", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 220, "y": 340, "wires": [ [ "e8b5dea0.89d2a8", "5e870913.e955c", "57f39731.fe8f2", "af3fa54c.b741d", "41f3ebb3.583bdc" ] ] }, { "id": "529f54ca.f78bd4", "type": "ioBroker out", "z": "4683ee6d.129788", "name": "Wohnzimmer_Heizung_manual", "topic": "hm-rpc.1.INT0000002.1.SET_TEMPERATURE", "ack": "false", "autoCreate": "false", "x": 1670, "y": 580, "wires": [] }, { "id": "cd3bd85e.cf4bf8", "type": "ioBroker out", "z": "4683ee6d.129788", "name": "Wohnzimmer_Heizung_automode", "topic": "hm-rpc.1.INT0000002.1.AUTO_MODE", "ack": "false", "autoCreate": "false", "x": 1680, "y": 340, "wires": [] }, { "id": "e0e76530.3175b", "type": "change", "z": "4683ee6d.129788", "name": "5", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1370, "y": 580, "wires": [ [ "529f54ca.f78bd4" ] ] }, { "id": "233f052f.464cf2", "type": "ioBroker in", "z": "4683ee6d.129788", "name": "Esszimmer_Fensterkontakt_links", "topic": "zigbee.0.00158d00042cbb68.opened", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 210, "y": 400, "wires": [ [ "e8b5dea0.89d2a8", "5e870913.e955c", "57f39731.fe8f2", "af3fa54c.b741d", "41f3ebb3.583bdc" ] ] }, { "id": "e8b5dea0.89d2a8", "type": "ioBroker get", "z": "4683ee6d.129788", "name": "Esszimmer_Fensterkontakt_rechts_abfrage", "topic": "zigbee.0.00158d0004a04457.contact", "attrname": "payload", "payloadType": "value", "x": 590, "y": 340, "wires": [ [ "dfa27329.0cf9e8" ] ] }, { "id": "5e870913.e955c", "type": "ioBroker get", "z": "4683ee6d.129788", "name": "Esszimmer_Fensterkontakt_links_abfrage", "topic": "zigbee.0.00158d00042cbb68.contact", "attrname": "payload", "payloadType": "value", "x": 580, "y": 400, "wires": [ [ "33308f1f.60f0b" ] ] }, { "id": "dfa27329.0cf9e8", "type": "change", "z": "4683ee6d.129788", "name": "msg.topic to name", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Esszimmer_Fensterkontakt_rechts_abfrage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 910, "y": 340, "wires": [ [ "8d0f2174.a6106" ] ] }, { "id": "33308f1f.60f0b", "type": "change", "z": "4683ee6d.129788", "name": "msg.topic to name", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Esszimmer_Fensterkontakt_links_abfrage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 910, "y": 400, "wires": [ [ "8d0f2174.a6106" ] ] }, { "id": "d77d63c6.0fb6f8", "type": "ioBroker in", "z": "4683ee6d.129788", "name": "Küche_Fensterkontakt_groß", "topic": "zigbee.0.00158d0004a019d0.opened", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 200, "y": 460, "wires": [ [ "e8b5dea0.89d2a8", "5e870913.e955c", "57f39731.fe8f2", "af3fa54c.b741d", "41f3ebb3.583bdc" ] ] }, { "id": "5249aeeb.9ebea", "type": "ioBroker in", "z": "4683ee6d.129788", "name": "Wohnzimmer_Türkontakt", "topic": "zigbee.0.00158d0004a01a68.opened", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 190, "y": 520, "wires": [ [ "e8b5dea0.89d2a8", "5e870913.e955c", "57f39731.fe8f2", "af3fa54c.b741d", "41f3ebb3.583bdc" ] ] }, { "id": "5fe74174.1c144", "type": "ioBroker in", "z": "4683ee6d.129788", "name": "Küche_Fensterkontakt_klein", "topic": "zigbee.0.00158d0004a043f6.opened", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 200, "y": 580, "wires": [ [ "41f3ebb3.583bdc", "af3fa54c.b741d", "57f39731.fe8f2", "5e870913.e955c", "e8b5dea0.89d2a8" ] ] }, { "id": "57f39731.fe8f2", "type": "ioBroker get", "z": "4683ee6d.129788", "name": "Küche_Fensterkontakt_groß", "topic": "zigbee.0.00158d0004a019d0.contact", "attrname": "payload", "payloadType": "value", "x": 540, "y": 460, "wires": [ [ "6aae16cb.da1ad" ] ] }, { "id": "af3fa54c.b741d", "type": "ioBroker get", "z": "4683ee6d.129788", "name": "Wohnzimmer_Türkontakt_abfrage", "topic": "zigbee.0.00158d0004a01a68.contact", "attrname": "payload", "payloadType": "value", "x": 560, "y": 520, "wires": [ [ "d3a40ca.72af0f" ] ] }, { "id": "41f3ebb3.583bdc", "type": "ioBroker get", "z": "4683ee6d.129788", "name": "Küche_Fensterkontakt_klein_abfrage", "topic": "zigbee.0.00158d0004a043f6.contact", "attrname": "payload", "payloadType": "value", "x": 570, "y": 580, "wires": [ [ "4d15d032.406088" ] ] }, { "id": "6aae16cb.da1ad", "type": "change", "z": "4683ee6d.129788", "name": "msg.topic to name", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Küche_Fensterkontakt_groß", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 910, "y": 460, "wires": [ [ "8d0f2174.a6106" ] ] }, { "id": "d3a40ca.72af0f", "type": "change", "z": "4683ee6d.129788", "name": "msg.topic to name", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Wohnzimmer_Türkontakt_abfrage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 910, "y": 520, "wires": [ [ "8d0f2174.a6106" ] ] }, { "id": "4d15d032.406088", "type": "change", "z": "4683ee6d.129788", "name": "msg.topic to name", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Küche_Fensterkontakt_klein_abfrage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 910, "y": 580, "wires": [ [ "8d0f2174.a6106" ] ] }, { "id": "e94c0998.9089c", "type": "comment", "z": "4683ee6d.129788", "name": "Heizung", "info": "", "x": 130, "y": 260, "wires": [] }, { "id": "bece93c7.8121d", "type": "change", "z": "4683ee6d.129788", "name": "true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1370, "y": 340, "wires": [ [ "cd3bd85e.cf4bf8" ] ] }, { "id": "8d0f2174.a6106", "type": "BooleanLogic", "z": "4683ee6d.129788", "name": "", "operation": "AND", "inputCount": "5", "topic": "result", "x": 1120, "y": 460, "wires": [ [ "b11f866d.5e9548" ] ] }, { "id": "b11f866d.5e9548", "type": "switch", "z": "4683ee6d.129788", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1250, "y": 460, "wires": [ [ "bece93c7.8121d" ], [ "e0e76530.3175b" ] ] } ]
-
@Hc-Yami said in Homematic Heizungsthermostat und Aqara Fenstersensor auf/zu:
Danke erstmal. Muss zugeben, dass ich bei dem Flow noch nicht hundertprozentig durchblicke. Ich nutze für den Fenstersensor nicht den zigbee-Adapter sondern den deconz-Adapter. Daher kann ich das mit der Abfrage nicht so richtig nachvollziehen. In deinem Bild geht der Wohnzimmer-Türkontakt auf true, dann kommt diese Abfrage der 5 Sensoren, wodurch dann das logische UND auf false geht und daher die Heizung auf manual mit 5 Grad stellt. Soweit richtig? Wenn dann alle Fenstersensoren geschlossen (also false) sind, geht das logische UND auf true und somit die Heizung auf auto. Aber was ist mit dem Fall, dass die Heizung vorher z. B. auf manuell 20 Grad gestellt war? Dann würde bei Fensteröffnung auf manuell 5 gestellt werden und bei Schließung wieder auf auto, oder hab ich etwas übersehen? Ich würde in dem Fall ja gern wieder auf manuell 20 Grad stellen...
-
@colgrim
Hi, du könntest dir 2 Datenpunkte erstellen, in die du beim öffnen des Fensters den Mode und die Temperatur reinschreibst. Beim schließen liest du die wieder aus und schreibst das zurück in deine Heizungs Datenpunkte. Ne Verzögerung vor Steuern des Mode damit der alte Wert auch sicher ausgelesen ist bevor umgesteuert wird.
Ich weiß ja nicht wie deine sonstige Heizungssteuerung aussieht, da muss man dann natürlich verhindern das irgendwelche Automatikfunktionen dir bei Fenster auf wieder den Mode übersteuern. Und falls es in der Zeit wo das Fenster auf ist irgendwelche Zieltemperaturänderungen gibt, werden bei dieser Methode, die Werte wieder mit denen überschrieben die beim Fenster öffnen aktuell waren.Edit: Und du solltest die Input Node (Fenstersensor) so einstellen das nur bei Änderung ne Nachricht ausgeben wird. Wenn sie bei jeder Aktualisierung feuert, würdest du dir bei geschlossenem Fenster sonst immer wieder die gespeicherten Werte in deine Heizungsdatenpunkte schreiben.
-
@frankyboy73
Sehr geil, der Ansatz hat es gebracht. Ich hatte mir die beiden Datenpunkte sogar schon angelegt und damit ein wenig herumgespielt, aber ich kam nicht darauf, die vernünftig in den Flow einzubinden. Aber wenn man es einmal hat, ist es eigentlich relativ einfach und logisch. Ich musste das noch ein wenig modifizieren, aber es geht nun wie gewünscht. Vielen Dank -
Inzwischen scheint es (zumindest in der HMIP Serie) um ein vielfaches einfacher zu sein. Im hm-rpc Adapter gibt es einen WINDOW_STATE welcher sich direkt schreiben lässt. Trägt man dort also OPEN bzw. CLOSED ein, so wechselt das Thermostat in die Fenster Offen Erkennung und schaltet auf die eingestellte Temperatur. Schließt man das Fenster geht es zurück in den automatischen / manuellen Modus, je nachdem was vorher eingestellt war.
Der Flow wird also ganz einfach
zwischendrin muss man nur kurz den Payload übersetzen:
Danke auf jeden Fall für Euren Input, er hat mich auf die richtige Spur gebracht!
-
@ujoerk das ist sehr sexy, danke für das mitteilen! Werde bei mir entsprechend einiges umstellen.