Steuerung der Heizung (Vorlauftemperatur) in Abhängikeit aller Thermostate

Begonnen von iTob, 27 April 2022, 08:29:37

Vorheriges Thema - Nächstes Thema

iTob

Hallo,

standardmäßig wird die Heizung ja über die Kennlinie und Aussentemperatur gesteuert. Ggf noch über EIN Raumthermostat.

Wenn nun mittlerweile zentral auf alle Thermostate zugegriffen wird, könnten doch alle Werte in die Steuerung der Heizung mit einfließen.

Meine Idee dazu: Vorlauftemperatur nach Raum mit maximaler Temperaturdifferenz. Je geringer die Differenz ist, desto niedrigere Vorlauftemperatur würde genügen.
Sagen wir mal je Grad Temperaturdifferenz 5 Grad höhere (in Abhängigkeit von der Aussentemperatur) Vorlauftemperatur.
Das würde bedeuten: Ziel: 20°C, aktuell 15°--> Vorlauf 45°, wenn 19° erreicht sind, dann nur noch Vorlauf 25° und wenn alle Räume warm genug sind, kann die Heizung vorrübergehend ausgeschaltet werden.
Das hätte dann auch den Vorteil, wenn z.B. im warmen Sommer eine Heizung in einem kalten Kellerraum aufgedreht wird, geht die die Therme erst eimal auf Maximalleistung.
(Vieleicht macht auch eine exponentielle Kurve mehr Sinn als eine lineare oder eine Art Mindest-Vorlauf-Temperatur)
Bei einer Bernnwerttherme sollte ja auch die Vor- / Rücklauf-Differenz mindestens 20° betragen - eventuell könne auch dieser Wert mit Einfluss nehmen.

Hat jemand damit schon Erfahrung gemacht? Wie ist eure Meinung dazu?
Ich habe schon im Forum gesucht, aber es ist recht schwierig ein bestimmtes Thema zu finden. 

Viele Grüße
Tobias

Beta-User

Hi,

vielleicht nicht ganz dasselbe, aber nach meinem Verständnis zumindest dieselbe Richtung. Es wird eine Art "virtueller Leitraum" ermittelt: VALVES, https://forum.fhem.de/index.php/topic,24658.msg177528.html#msg177528.

MAn. hat das den Vorteil, dass ja die Ventile selbst eine gewisse interne Logik haben, die Veränderungsgeschwindigkeit der Raumtemperatur zu berücksichtigen. Das sollte dazu führen, dass das System etwas träger reagiert wie "nur" über die Temperaturdifferenz.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Schotty

Hi Tobias,

nur ganz kurz und auf die Schnelle:
Lies mal Kap. 6.3 (https://1coderookie.github.io/BSB-LPB-LAN/kap06.html#63-raumtemperatur-%C3%BCbermitteln) vom BSB-LAN-Handbuch, dort habe ich zwei Beiträge von freetz verlinkt, in denen es
a) um die Berechnung und Übermittlung einer gemittelten IST- und SOLL-Temp (bezogen auf alle Räume) geht und
b) um den Einfluss der Raumtemp auf die reglerinterne Berechnung der Heizkurvensteilheit generell.
Vielleicht hilft dir das schon etwas weiter.

Deine beschriebene Vorgehensweise finde ich persönlich insofern etwas unglücklich, als dass ich denke, dass eine direkte Beeinflussung der VL-Temp in dieser Form (bspw Erhöhung um 5K pro Grad Temp-Diff bei direkter Berücksichtigung einzelner(!) Räume) nicht gerade die energiesparendste Form des Heizens darstellen würde. Grundsätzlich versucht man ja eigtl eher, mit einer möglichst geringen VL-Temp (geringe Heizkurvensteilheit) zurecht zu kommen und die Therme auf einer geringen Modulationssufe vor sich hindümpeln zu lassen. Wenn eine Raum-Ist-Temp unter der Raum-Soll-Temp liegt, würde ja in dem Moment das HK-Thermostat weiter öffnen und der Raum würde sich aufheizen. Dauert vielleicht bei einer geringeren VL-Temp etwas länger als bei einer höheren, aber der Regelungsmechanismus an sich ist imho ja schon da.

Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Reinhart

Ich habe das so gemacht wie Beta-User beschrieben und bilde mir eine "Wichtung", also der Durchschnitt der relevanten Heizkörper im Heizkreis.

Zusätzlich zur Aussentemperatursteuerung greife ich in die Heizkurve ein um den Vorlauf ab- bzw. anzuheben. Der Wert Valves wird alle 30 Minuten gecheckt und darauf reagiert.

############################  Heizkurve erhöhen  ################################

define Heizkurve_Check_up0 at +*00:28:00 IF (Value("WichtungAll") > (Value("Schwelle") + 25) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.3 )) (set HeizkurveEinstellen 1.50)
setuuid Heizkurve_Check_up0 5c44db9c-f33f-27bd-58dc-d798fe8e75eead9b
attr Heizkurve_Check_up0 room System

define Heizkurve_Check_up1 at +*00:29:00 IF (Value("WichtungAll") > (Value("Schwelle") + 22) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.2 )) (set HeizkurveEinstellen 1.30)
setuuid Heizkurve_Check_up1 5c44db9c-f33f-27bd-583c-ba0a33f42df66eb2
attr Heizkurve_Check_up1 room System

define Heizkurve_Check_up2 at +*00:30:00 IF (Value("WichtungAll") > (Value("Schwelle") + 18) && ($hour > 5 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.1 )) (set HeizkurveEinstellen 1.20)
setuuid Heizkurve_Check_up2 5c44db9c-f33f-27bd-6d07-078b3c2f4fd993f9
attr Heizkurve_Check_up2 room System

define Heizkurve_Check_up at +*00:31:00 IF (Value("WichtungAll") > (Value("Schwelle") + 13) && ($hour > 4 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 1.0 )) (set HeizkurveEinstellen 1.10)
setuuid Heizkurve_Check_up 5c44db9c-f33f-27bd-c8b7-99ba54d627060806
attr Heizkurve_Check_up room System

define Heizkurve_Check_up3 at +*00:32:00 IF (Value("WichtungAll") > (Value("Schwelle") - 5) && ($hour > 4 && $hour < 18) && (Value("AutoHeizkurve") eq "Ein" ) && (Value("Winter") eq "Ein") && (Value("HeizkurveEinstellen") == 0.9 )) (set HeizkurveEinstellen 1.00)
setuuid Heizkurve_Check_up3 5c44db9c-f33f-27bd-5730-723771d9ecb4c4af
attr Heizkurve_Check_up3 room System


#######################  Heizkurve absenken #################################

# Heizkurve absenken zwischen 0.90 - 1.20, aber erst wenn ValveSchwelle wieder unter Schwelle -offset gesunken ist

define Heizkurve_Check_down3 at +*00:30:00 IF (Value("WichtungAll") < Value("Schwelle") - 25 && ($hour > 8 && $hour < 19) && Value("AutoHeizkurve") eq "Ein" && Value("Winter") eq "Ein" && Value("HeizkurveEinstellen") == 1.0 ) (set HeizkurveEinstellen 0.90)
attr Heizkurve_Check_down3 room System

define Heizkurve_Check_down at +*00:30:01 IF (Value("WichtungAll") < Value("Schwelle") - 15 && ($hour > 8 && $hour < 20) && Value("AutoHeizkurve") eq "Ein" && Value("Winter") eq "Ein" && Value("HeizkurveEinstellen") == 1.1 ) (set HeizkurveEinstellen 1.00)
attr Heizkurve_Check_down room System

define Heizkurve_Check_down2 at +*00:30:02 IF (Value("WichtungAll") < Value("Schwelle") - 10 && ($hour > 8 && $hour < 20) && Value("AutoHeizkurve") eq "Ein" && Value("Winter") eq "Ein" && Value("HeizkurveEinstellen") == 1.2 ) (set HeizkurveEinstellen 1.10)
attr Heizkurve_Check_down2 room System

define Heizkurve_Check_down1 at +*00:30:03 IF (Value("WichtungAll") < Value("Schwelle") -5 && ($hour > 8 && $hour < 20) && Value("AutoHeizkurve") eq "Ein" && Value("Winter") eq "Ein" && Value("HeizkurveEinstellen") == 1.3 ) (set HeizkurveEinstellen 1.20)
attr Heizkurve_Check_down1 room System

define Heizkurve_Check_down0 at +*00:30:04 IF (Value("WichtungAll") < Value("Schwelle") && ($hour > 8 && $hour < 20) && Value("AutoHeizkurve") eq "Ein" && Value("Winter") eq "Ein" && Value("HeizkurveEinstellen") == 1.5 ) (set HeizkurveEinstellen 1.30)
attr Heizkurve_Check_down0 room System

Beispiel wie einfach ich das steuere, man kann das natürlich noch besser realisieren. Da eine Heizung aber sehr träge ist, reicht das locker aus.

der Wert hinter "Schwelle" dient der Überlappung damit das System nicht zu schwingen beginnt. Diese Art der primitiven Steuerung ist äußerst effizient und zwingt das System trotz Aussentemperatur zu reagieren wenn die Ventile zu schließen beginnen oder eben sich zu erhöhen wenn mehr Wärme angefordert als die Heizkurve hergibt. Valves erkennt das sehr genau. Habe das schon einige Jahre erfolgreich in Betrieb. Ich hatte bei meiner Heizung generell das Problem, das bei steigender Aussentemperatur die Vorlauftemperatur zu gering war um die gewünschten Raumtemperaturen zu erreichen. Aber jetzt fix die Heizkurve zu verändern wollte ich auch nicht, denn wenns kälter wird hats eh gepasst. So eine Heizkurve ist ja ein allgemeiner Wert der von Heizung zu Heizung stark abweichen kann.
Dies alles wird jetzt mit "Valves" erfolgreich kompensiert und schafft angenehmes Raumklima.

Ich habe mir die verschiedenen Parameter alle einstellbar gemacht, da es einige Wochen dauert bis man die richtigen Schwellen an die Heizung gut angepasst hat. Zu Valves sollte man halt nur relevante Heizkörper einfügen (Wohnzimmer, Küche) wo man sich halt aufhält. Heizkörper die meist abgedreht sind machen da keinen Sinn.
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Beta-User

@Reinhart:
Das sieht (prinzipiell) interessant aus...

Leider kenne ich VALVES bisher auch nur eher vom "nebenherlaufen lassen", v.a. weil ich nach wie vor keinen wirklich "guten" Zugang zu meiner Therme habe und von daher der praktische Nutzen eher begrenzt ist. Allerdings fand ich manches komisch und habe jetzt mal schnell über den Code gesehen (der Dev. hat sich vor etwas mehr als 2 Jahren hier das letzte Mal angemeldet gehabt und auch vorher wenig Zeit).

Vielleicht greife ich das auf und mache mal eine aktualisierte Fassung mit commandref und so - ich würde dazu dann aber ggf. Unterstützung/eine kritische Begleitung benötigen... Details könnten wir dann in dem Ursprungsthread (bzw. ggf. dann gesondert) diskutieren?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Schotty

@Reinhart:
Was das Problem der HK bei steigender AT angeht: Guck mal nach der Option "Heizkurve Parallelverschiebung" - bei AT >0° stellt bzw korrigiert man die HK eigtl durch die Parallelverschiebung, vielleicht könnte das noch hilfreich für dich sein.

Ansonsten hier nochmal direkt die o.g. Links aus dem erwähnten Kapitel:
- Dynamische Soll-Ist-Temperaturübermittlung an Heizungstherme: https://forum.fhem.de/index.php/topic,60900.0.html
- Auswirkung des Raumeinflusses auf die HK: https://forum.fhem.de/index.php/topic,29762.msg754102.html#msg754102
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

iTob

Vielen Dank für die Ideen und Anregungen.

Ich nutze BSBLan und habe mir die Dokus zum Raumeinfluss etwas näher angesehen und getestet.

Ist im Referenzraum die Zieltemperatur erreicht schaltet die Heizung ganz ab.
Deshalb werde ich der Heizung die Temperaturen des Raumes melden, wo ich die meiste Heizleistung benötige. Damit sollte die Zieltemperatur in jedem Raum recht schnell erreicht werden und dann regelt aber die Heizung umgehend zurück.   
Dann kann ich die Heizkurve sehr flach einstellen und die notwendige Vorlauftemperatur wird direkt von der benötigten Wärme gesteuert. Lt der Formel macht ein Raumeinfluss von 20% ca. 2° je Grad Temperaturdifferenz aus, 50% ca. 5° je Grad Temperaturdifferenz. Hier müsste man den optimalen Wert austesten.
Damit sollte doch eine recht schnelle Aufheizung, aber auch eine sofortige Regulierung auf geringe Modulation bei erreichter Zieltemperatur möglich sein.

Viele Grüße
Tobias
 


Beta-User

Auch wenn es damit jetzt vermutlich OT ist:

Zitat von: Beta-User am 27 April 2022, 13:23:35Vielleicht greife ich das auf und mache mal eine aktualisierte Fassung mit commandref und so - ich würde dazu dann aber ggf. Unterstützung/eine kritische Begleitung benötigen... Details könnten wir dann in dem Ursprungsthread (bzw. ggf. dann gesondert) diskutieren?
Aktualisierte Modulfassung siehe https://forum.fhem.de/index.php/topic,24658.msg1219913.html#msg1219913
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files