Heizung aus, wenn bei allen Räumen soll Temp erreicht

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

mrKnuspel
Beiträge: 10
Registriert: 14.10.2022, 10:25
System: Alternative CCU (auf Basis OCCU)

Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von mrKnuspel » 29.10.2022, 11:53

Hallo,

nachdem ich viele "Probleme" schon gelöst habe komme ich gerade nicht weiter und baue auf Eure Hilfe.

Ich möchte...:
Wenn in allen Räumen die Solltemperatur erreicht ist, dass der Heizkessel (oder die Pumpe) ausgeschaltet wird. Das Ganze soll dann jedoch nur ab einer bestimmten Außentemperatur erfolgen.

Soweit bin ich schon...:
Eine Regelung nach Außentemperatur und Uhrzeit habe ich schon verwirklicht, geht zuverlässig.
Den Soll-Ist-Wert Vergleich der einzelnen Räume habe ich hinbekommen.

Nun habe ich einen Funktions-Node für die UND Bedingung genommen und dachte, dass der nur entweder "wahr" oder "falsch" durch lässt. Jedoch lässt er auch durch, wenn mehrere Bedingungen nicht stimmen (ich weiß, blöd erklärt, aber hab grad keine Ahnung wie ich es anders ausdrücken soll, sorry).
Es handelt sich um insgesamt 6 Räume.

Beispiel:
Bei allen Räumen ist die Bedingung wahr (Ist-Temp größer als Soll-Temp) und der Schaltbefehl "off" wird ausgeführt, das ist ok. Jetzt wird es in einem Raum kälter, eine Bedingung wird somit falsch und der Befehl "on" wird ausgeführt, das ist auch ok. Es kommt ein weiterer Raum mit "falsch" dazu, es bleibt also bei "on", auch ok.
ABER wenn einer der beiden Räume wieder auf "wahr" geht, wird dann wieder "off" geschaltet OBWOHL noch ein Raum die Bedingung "falsch" hat.
Da die States der Räume regelmäßig gesendet werden, kommt es also ständig zu wechselnden Zuständen, und es wird immer "on" und "off" geschaltet.

1. Wie bekomme ich es hin, dass nur "on" gesendet wird wenn bei alle Räumen die Bedingung erfüllt ist?
2. Wie kann ich vermeiden, dass bei jeder State- Übermittlung der Schaltbefehl raus geht auch wenn sich kein State geändert hat?

Code: Alles auswählen

[{"id":"8eb59101.ac985","type":"debug","z":"3e8c65bc.e640aa","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":950,"y":2520,"wires":[]},{"id":"c1e9dd64.2d311","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2140,"wires":[["d0f5da8c.a529c8"]]},{"id":"5727434f.e8d36c","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2197,"wires":[["d0f5da8c.a529c8"]]},{"id":"d0f5da8c.a529c8","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2180,"wires":[["2b78d437.8b2cdc"]]},{"id":"a7bfd441.325cd8","type":"ccu-value","z":"3e8c65bc.e640aa","name":"Büro Soll","iface":"BidCos-RF","channel":"LEQ0750607:2 Wandthermostat DG Büro:2","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2140,"wires":[["c1e9dd64.2d311"]]},{"id":"5e22de53.73b34","type":"ccu-value","z":"3e8c65bc.e640aa","name":"Büro Ist","iface":"BidCos-RF","channel":"LEQ0750607:2 Wandthermostat DG Büro:2","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2197,"wires":[["5727434f.e8d36c"]]},{"id":"b80afa83.770d98","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2280,"wires":[["72c971f1.202f4"]]},{"id":"57a1a1d6.bc94f","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2340,"wires":[["72c971f1.202f4"]]},{"id":"72c971f1.202f4","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2300,"wires":[["2b78d437.8b2cdc"]]},{"id":"3f3ee835.6d1688","type":"ccu-value","z":"3e8c65bc.e640aa","name":"KiZi Soll","iface":"BidCos-RF","channel":"MEQ1877318:4 Stellantrieb DG KiZi:4","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2280,"wires":[["b80afa83.770d98"]]},{"id":"209d38db.b47298","type":"ccu-value","z":"3e8c65bc.e640aa","name":"KiZi Ist","iface":"BidCos-RF","channel":"MEQ1877318:4 Stellantrieb DG KiZi:4","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":110,"y":2340,"wires":[["57a1a1d6.bc94f"]]},{"id":"57e69891.32a8a8","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2420,"wires":[["e8df5fb7.e27da"]]},{"id":"64dc7027.eafb1","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2480,"wires":[["e8df5fb7.e27da"]]},{"id":"e8df5fb7.e27da","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2460,"wires":[["2b78d437.8b2cdc"]]},{"id":"62bfedde.1648f4","type":"ccu-value","z":"3e8c65bc.e640aa","name":"DG Bad Soll","iface":"BidCos-RF","channel":"MEQ0451514:4 Stellantrieb DG Bad:4","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":130,"y":2420,"wires":[["57e69891.32a8a8"]]},{"id":"c35a3092.b2357","type":"ccu-value","z":"3e8c65bc.e640aa","name":"DG Bad Ist","iface":"BidCos-RF","channel":"MEQ0451514:4 Stellantrieb DG Bad:4","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":130,"y":2480,"wires":[["64dc7027.eafb1"]]},{"id":"1ee3ab7e.ed6a35","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2560,"wires":[["3d501149.c4647e"]]},{"id":"87332cb5.8e7fd","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2620,"wires":[["3d501149.c4647e"]]},{"id":"3d501149.c4647e","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2580,"wires":[["2b78d437.8b2cdc"]]},{"id":"7548919e.e29a2","type":"ccu-value","z":"3e8c65bc.e640aa","name":"WoZi Soll","iface":"BidCos-RF","channel":"LEQ0080401:2 Wandtehrmostat EG WoZi:2","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2560,"wires":[["1ee3ab7e.ed6a35"]]},{"id":"739fac77.9a71b4","type":"ccu-value","z":"3e8c65bc.e640aa","name":"WoZi Ist","iface":"BidCos-RF","channel":"LEQ0080401:2 Wandtehrmostat EG WoZi:2","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2620,"wires":[["87332cb5.8e7fd"]]},{"id":"bc625575.ae7578","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2700,"wires":[["72cac9c9.f6ddb8"]]},{"id":"2a1c03cc.991e2c","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2760,"wires":[["72cac9c9.f6ddb8"]]},{"id":"72cac9c9.f6ddb8","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2700,"wires":[["2b78d437.8b2cdc"]]},{"id":"fe8a6b4c.ba9008","type":"ccu-value","z":"3e8c65bc.e640aa","name":"EG Bad Soll","iface":"BidCos-RF","channel":"KEQ0506617:4 Stellantrieb EG Bad:4","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":130,"y":2700,"wires":[["bc625575.ae7578"]]},{"id":"884a1608.8d9b08","type":"ccu-value","z":"3e8c65bc.e640aa","name":"EG Bad Ist","iface":"BidCos-RF","channel":"KEQ0506617:4 Stellantrieb EG Bad:4","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":130,"y":2760,"wires":[["2a1c03cc.991e2c"]]},{"id":"13437acb.f33615","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var1","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2840,"wires":[["16d233ad.5ea12c"]]},{"id":"d3ab9091.71b81","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"var2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2900,"wires":[["16d233ad.5ea12c"]]},{"id":"16d233ad.5ea12c","type":"function","z":"3e8c65bc.e640aa","name":"Vergl. Soll-Ist","func":"var v1 = flow.get(\"var1\")\nvar v2 = flow.get(\"var2\")\nvar b1 = false\n\nif (v2 <= v1)\n{b1 = true}\n\nmsg.payload = b1\n\nreturn[msg]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":2840,"wires":[["2b78d437.8b2cdc"]]},{"id":"8340ee8c.ef1d2","type":"ccu-value","z":"3e8c65bc.e640aa","name":"Hobby Soll","iface":"BidCos-RF","channel":"LEQ1283098:2 Wandthermostat KG Hobby:2","datapoint":"SET_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":130,"y":2840,"wires":[["13437acb.f33615"]]},{"id":"f5426ec1.acafa","type":"ccu-value","z":"3e8c65bc.e640aa","name":"Hobby Ist","iface":"BidCos-RF","channel":"LEQ1283098:2 Wandthermostat KG Hobby:2","datapoint":"ACTUAL_TEMPERATURE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":120,"y":2900,"wires":[["d3ab9091.71b81"]]},{"id":"2b78d437.8b2cdc","type":"function","z":"3e8c65bc.e640aa","name":"UND","func":"\nmsg.payload=(msg.payload ===false && msg.payload ===false && \nmsg.payload ===false && msg.payload ===false && \nmsg.payload ===false && msg.payload ===false);\nreturn msg;","outputs":2,"noerr":0,"initialize":"","finalize":"","x":730,"y":2520,"wires":[["8eb59101.ac985"],["8eb59101.ac985"]],"outputLabels":["fales ","true"]},{"id":"5fc30c51.5330a4","type":"http request","z":"3e8c65bc.e640aa","name":"Heizung AN","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.178.34/relay/0?turn=on","tls":"","persist":false,"proxy":"","authType":"","x":1090,"y":2700,"wires":[[]]},{"id":"d07a3a11.f55f38","type":"http request","z":"3e8c65bc.e640aa","name":"Heizung AUS","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.178.34/relay/0?turn=off","tls":"","persist":false,"proxy":"","authType":"","x":1090,"y":2640,"wires":[[]]},{"id":"734689fa.8caa18","type":"change","z":"3e8c65bc.e640aa","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":2700,"wires":[["5fc30c51.5330a4"]]},{"id":"2f19fd19.1b24e2","type":"switch","z":"3e8c65bc.e640aa","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":750,"y":2660,"wires":[["d07a3a11.f55f38"],["734689fa.8caa18"]]},{"id":"c591f333.d7c1f","type":"comment","z":"3e8c65bc.e640aa","name":"falsch in wahr umwandeln","info":"","x":910,"y":2740,"wires":[]},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"192.168.178.54","rpcServerHost":"192.168.178.54","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"Admin","password":"OrschStyle998197","queueTimeout":"5000","queuePause":"250","contextStore":""}]
FlowHeizung.png
Gruß Stefan
Umstieg von FHEM zu RaspberryMatic mit RedMatic auf Raspberry 3B+

MichaelN
Beiträge: 9829
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1660 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von MichaelN » 29.10.2022, 12:00

Meiner Meinung nach gehst du das falsch an. Wenn du den Bedarf hast die Heizung abzuwürgen, dann ist die Vorlauftemperatur zu hoch. Pass lieber die Heizkurve an, dann sparst du sogar noch Energie.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

mrKnuspel
Beiträge: 10
Registriert: 14.10.2022, 10:25
System: Alternative CCU (auf Basis OCCU)

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von mrKnuspel » 29.10.2022, 12:36

Sorry Michael, aber so eine Antwort hilft nicht weiter.

Aber wenn du möchtest erklär ich das, obwohl das hier nicht das Thema ist und DU meine "Umstände" nicht kennst.

Wir haben ein Niedrig Energie Haus (Schwörer). Leider haben die damals nur Einstrang Systeme gebaut, das bedeutet also, dass die Brühe ständig zirkuliert und somit auch immer mal nachgeheizt wird und der Ölofen ist auch noch nicht modulierend. Des weiteren brauch es kaum Sonne und die Bude ist warm, so dass eh nicht all zu viel geheizt werden muss. Die Heizkurve ist schon extrem abgesenkt (versuche eine Wärmepumpen Simulation, da so ein teil mal rein soll).
Aber das wusstest du ja schon alles :roll:

Durch eben diese Einstellung, kommt es halt zum häufigen Takten des Kessels, was vorher bei hoher Heizkurve nicht so war. Klar ist das jetzt nicht weiter all zu dramatisch, jedoch muss das nicht sein wenn eh keine Wärme benötigt wird und die Pumpe muss auch nicht ständig laufen.
Da die Hütte sehr gut isoliert ist, schalte ich Nachts bei über 14 Grad Außentemp die Heizung aus, Weil sie sonst eben auch mehrfach nachtaktet.

Das Problem ist halt diese Einstrang Heizung, wodurch ständig Energie verloren geht, aber mir geht es ehr um das Ständige An und Aus des Brenners. Ist halt nicht gesund auf Dauer und wenn man es reduzieren kann, sollte man es tun.

Aber es wäre schön, wenn man hier auf das angefragte Problem eingehen würde und keine Grundlagendiskusionen führt. Außer dem kann solch eine UND Verknüpfung ja auch bei anderen Problemen auftreten und ist nicht zwingend auf meine Heizungsanwendung beschränkt.

Danke im Voraus für alle, die mir trotz dem helfen möchten!
Gruß Stefan
Umstieg von FHEM zu RaspberryMatic mit RedMatic auf Raspberry 3B+

Benutzeravatar
robbi77
Beiträge: 13911
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von robbi77 » 29.10.2022, 13:02

Ich habe jetzt nicht alles gelesen.

Normal wird es hier üblicherweise so gemacht:

Irgendein Ventil möchte Wärme (Ventilstellung >10%) - Heizung wird über einen Schaltkontakt (Aktor) frei gegeben.
Alle Ventile sind unter 10% - Heizung wird abgeschaltet

Ich halte dies, für mich zumindest, die sinnvollere Variante.

mrKnuspel
Beiträge: 10
Registriert: 14.10.2022, 10:25
System: Alternative CCU (auf Basis OCCU)

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von mrKnuspel » 29.10.2022, 13:32

Hallo Robbi

diesen Ansatz hatte ich auch versucht, bin aber auch da gescheitert. Es müssen da ja auch irgendwie alle Ventilstellungen ausgewertet werden, weil es ja nicht nur um einen Raum geht. :shock:

Gruß Stefan
Umstieg von FHEM zu RaspberryMatic mit RedMatic auf Raspberry 3B+

Benutzeravatar
robbi77
Beiträge: 13911
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von robbi77 » 29.10.2022, 13:36

Genau. Und dazu braucht es nur ein Programm.
Dateianhänge
65648BAA-820E-46B4-BAE1-B38C97F61B8A.jpeg

MichaelN
Beiträge: 9829
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1660 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von MichaelN » 29.10.2022, 14:27

mrKnuspel hat geschrieben:
29.10.2022, 12:36
aber so eine Antwort hilft nicht weiter.
Sorry für den Versuch mit zu denken.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

mrKnuspel
Beiträge: 10
Registriert: 14.10.2022, 10:25
System: Alternative CCU (auf Basis OCCU)

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von mrKnuspel » 29.10.2022, 14:58

robbi77 hat geschrieben:
29.10.2022, 13:36
Genau. Und dazu braucht es nur ein Programm.
Oh, das sieht einleuchtend aus. Würde es halt nur gern in Node Red umsetzen, weil ich nicht unbedingt mischen will.
Hab RaspberryMatic eigentl. nur zur Verbindung der Geräte, die Logik wollte ich mit NodeRed umsetzen. Muss aber zugeben, dass es mit deinem Beispiel einfacher aussieht.
Gut, werde mich mal ans experimentieren machen. Vielen Dank!

Gruß Stefan
Umstieg von FHEM zu RaspberryMatic mit RedMatic auf Raspberry 3B+

Benutzeravatar
Henke
Beiträge: 1542
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 315 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von Henke » 29.10.2022, 16:46

NodeRed vs. CCU Programm...
Screenshot 2022-10-29 163920.jpg
Dieser komplexe Flow... 8)

Testet die Ventilposition der Fussbodenkreise und Heizkörper um die Heizung zu steuern, gibt eine Fehlermeldung aus, wenn ein Ventil klemmt und einen Feueralarm wenn es brennt. :D

Code: Alles auswählen

[
    {
        "id": "ba1cc1ab6b95cb02",
        "type": "combine-logic",
        "z": "3bef3877d73779f4",
        "name": "",
        "topic": "",
        "operator": "or",
        "defer": 250,
        "timeout": "",
        "distinction": "topic",
        "x": 1060,
        "y": 3720,
        "wires": [
            [
                "bcefd41cffd1dcfa"
            ]
        ]
    },
    {
        "id": "7fc50906e0b3de62",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "LEVEL",
        "property": "datapoint",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "LEVEL",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 440,
        "y": 3720,
        "wires": [
            [
                "1ea1a82d35c21c7e",
                "cf054acfcd2cd989"
            ]
        ]
    },
    {
        "id": "d2509981f00ac01d",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "VALVE_STATE",
        "property": "datapoint",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "VALVE_STATE",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 460,
        "y": 3820,
        "wires": [
            [
                "aa777498fd88fbde",
                "4ed387a9db850a66"
            ]
        ]
    },
    {
        "id": "aa777498fd88fbde",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "debug 16",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "msg",
        "x": 680,
        "y": 3820,
        "wires": []
    },
    {
        "id": "4ed387a9db850a66",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "gt",
                "v": "4",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 670,
        "y": 3880,
        "wires": [
            [
                "b8dc226725215b5c"
            ]
        ]
    },
    {
        "id": "b8dc226725215b5c",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "Fehler Ventil",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "value",
        "statusType": "msg",
        "x": 840,
        "y": 3880,
        "wires": []
    },
    {
        "id": "bcefd41cffd1dcfa",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "debug 17",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "msg",
        "x": 1240,
        "y": 3720,
        "wires": []
    },
    {
        "id": "1ea1a82d35c21c7e",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "0.10",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "gt",
                "v": "0.10",
                "vt": "num"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 670,
        "y": 3720,
        "wires": [
            [
                "ef18c41b8f8cce0c"
            ],
            [
                "fb11200a27a1a14f"
            ]
        ]
    },
    {
        "id": "ef18c41b8f8cce0c",
        "type": "change",
        "z": "3bef3877d73779f4",
        "name": "1",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 870,
        "y": 3700,
        "wires": [
            [
                "ba1cc1ab6b95cb02"
            ]
        ]
    },
    {
        "id": "fb11200a27a1a14f",
        "type": "change",
        "z": "3bef3877d73779f4",
        "name": "0",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 870,
        "y": 3760,
        "wires": [
            [
                "ba1cc1ab6b95cb02"
            ]
        ]
    },
    {
        "id": "cf054acfcd2cd989",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "debug 18",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "msg",
        "x": 680,
        "y": 3660,
        "wires": []
    },
    {
        "id": "e5cad690243547af",
        "type": "ccu-rpc-event",
        "z": "3bef3877d73779f4",
        "name": "HmIP-WTH-2",
        "iface": "",
        "ccuConfig": "38263145.35ea0e",
        "rooms": "",
        "roomsRx": "str",
        "functions": "",
        "functionsRx": "str",
        "device": "",
        "deviceRx": "str",
        "deviceName": "",
        "deviceNameRx": "str",
        "deviceType": "HmIP-WTH-2",
        "deviceTypeRx": "str",
        "channel": "",
        "channelRx": "str",
        "channelName": "",
        "channelNameRx": "str",
        "channelType": "",
        "channelTypeRx": "str",
        "channelIndex": "",
        "channelIndexRx": "str",
        "datapoint": "",
        "datapointRx": "str",
        "change": false,
        "working": false,
        "cache": true,
        "topic": "${CCU}/${Interface}/${channelName}/${datapoint}",
        "x": 170,
        "y": 3820,
        "wires": [
            [
                "d2509981f00ac01d",
                "7fc50906e0b3de62",
                "fa221501dd4858bd"
            ]
        ]
    },
    {
        "id": "2fa133d085b7e814",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "> 45",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "gt",
                "v": "45",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 710,
        "y": 3960,
        "wires": [
            [
                "684cf186be0fc130"
            ]
        ]
    },
    {
        "id": "684cf186be0fc130",
        "type": "function",
        "z": "3bef3877d73779f4",
        "name": "Raum",
        "func": "msg.topic= \"ALARM\";\nmsg.payload=\"ALARM BRENNT: Raum \"+msg.room;\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 850,
        "y": 3960,
        "wires": [
            [
                "2c479d99b0613124"
            ]
        ]
    },
    {
        "id": "fa221501dd4858bd",
        "type": "switch",
        "z": "3bef3877d73779f4",
        "name": "ACTUAL_TEMPERATURE",
        "property": "datapoint",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "ACTUAL_TEMPERATURE",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 500,
        "y": 3960,
        "wires": [
            [
                "2fa133d085b7e814",
                "c75ae62c55d2922b"
            ]
        ]
    },
    {
        "id": "2c479d99b0613124",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "FEUER",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "value",
        "statusType": "msg",
        "x": 1000,
        "y": 3960,
        "wires": []
    },
    {
        "id": "c75ae62c55d2922b",
        "type": "debug",
        "z": "3bef3877d73779f4",
        "name": "debug 20",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "msg",
        "x": 720,
        "y": 4020,
        "wires": []
    },
    {
        "id": "2d784f607751c177",
        "type": "ccu-rpc-event",
        "z": "3bef3877d73779f4",
        "name": "FALMOT",
        "iface": "",
        "ccuConfig": "38263145.35ea0e",
        "rooms": "",
        "roomsRx": "str",
        "functions": "",
        "functionsRx": "str",
        "device": "",
        "deviceRx": "str",
        "deviceName": "",
        "deviceNameRx": "str",
        "deviceType": "HmIP-FALMOT-C12",
        "deviceTypeRx": "str",
        "channel": "",
        "channelRx": "str",
        "channelName": "",
        "channelNameRx": "str",
        "channelType": "",
        "channelTypeRx": "str",
        "channelIndex": "",
        "channelIndexRx": "str",
        "datapoint": "",
        "datapointRx": "str",
        "change": false,
        "working": false,
        "cache": true,
        "topic": "${CCU}/${Interface}/${channelName}/${datapoint}",
        "x": 180,
        "y": 3700,
        "wires": [
            [
                "7fc50906e0b3de62"
            ]
        ]
    },
    {
        "id": "38263145.35ea0e",
        "type": "ccu-connection",
        "name": "localhost",
        "host": "localhost",
        "regaEnabled": true,
        "bcrfEnabled": true,
        "iprfEnabled": true,
        "virtEnabled": true,
        "bcwiEnabled": false,
        "jackEnabled": true,
        "cuxdEnabled": true,
        "regaPoll": true,
        "regaInterval": "30",
        "rpcPingTimeout": "60",
        "rpcInitAddress": "127.0.0.1",
        "rpcServerHost": "127.0.0.1",
        "rpcBinPort": "2047",
        "rpcXmlPort": "2048",
        "tls": false,
        "inSecure": false,
        "authentication": false,
        "queueTimeout": "5000",
        "queuePause": "250",
        "contextStore": ""
    }
]
Persönlich nutze ich aber den Durchschnittswert der Ventile um den Heizungsbedarf zu ermittel (alle Ventile auf 5% z.B. macht auch den Bedarf auf An) und die Tagesdurchschnittstemperatur um die Heizung generell zu steuern.

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 754 Mal

Re: Heizung aus, wenn bei allen Räumen soll Temp erreicht

Beitrag von shartelt » 30.10.2022, 03:06

wenn man ganz fancy ist, macht man das dann Etagen-weise wie es xel vor zig jahren bereits mal vorgestellt hat…

hach ;)

Antworten

Zurück zu „RedMatic“