Regelung FBH mit 3 Wege Mischer nach Aussentemperatur

Begonnen von Carsten1981, 26 Juli 2017, 10:25:41

Vorheriges Thema - Nächstes Thema

Carsten1981

Hallo zusammen,

bis vor 6 Monaten wusste ich weder was ein Raspi, was FHEM oder was PERL ist. Aber dank dieses Forums und Onkel GOOGLE konnte ich schon jede Menge schöne Sachen realisieren. Mein neustes Projekt ist die Steuerung meiner FBH komplett über FHEM.
Ich habe das auf einem Test RasPi mit jede Menge Dummies zusammengebaut und nach meinen Tests auch keine Fehler mehr gefunden.

Da es aber hier viele Leute mit einem vielfachem von meinem Wissen gibt würde ich mich sehr freuen wenn ich auf den ein oder anderen bestimmt vorhanden Fehler hingewiesen werde, bevor ich das alles in Betrieb nehme und es kalt bleibt wenn es das erste mal wieder kalt wird.

In dem angehangenen PDF habe ich die abhängigkeit als Flussdiagramm mal dargestellt.
- Vorlauf ist und Aussentemperatur sind DS18B20
- Mischer auf und Mischer zu sind GPIO's auf ein 230V Relais
- Heizungspumpe geht ebenfalls über ein GPIO auf das 230V Relais
- Betriebsart wird über einen Dummy (SetList) geschaltet --> Automatik, Heizen, Abschalten, Komfort
- Heizzeit beginn und Heizzeit ende werden über einen Dummy (SetList) gesetzt

---- DOIF zur Berechnung Vorlauf soll (abgesenkte bzw erhöhte Vorlauftemperatur über Betriebsart Absenken bzw. Komfort kommt noch------
( [Aussentemperatur] >= "-25" and [Aussentemperatur] < "-10" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 34)
DOELSEIF
( [Aussentemperatur] >= "-10" and [Aussentemperatur] < "-5" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 32)
DOELSEIF
( [Aussentemperatur] >= "-5" and [Aussentemperatur] < "0" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 30)
DOELSEIF
( [Aussentemperatur] >= "0" and [Aussentemperatur] < "5" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 28)
DOELSEIF
( [Aussentemperatur] >= "5" and [Aussentemperatur] < "10" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 26)
  DOELSEIF
( [Aussentemperatur] >= "10" and [Aussentemperatur] < "15" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 24)
DOELSEIF
( [Aussentemperatur] >= "15" and [Aussentemperatur] < "20" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 22)
DOELSEIF
( [Aussentemperatur] >= "20" and [Aussentemperatur] < "25" and (([Betriebsart] eq "Heizen") or ([Betriebsart] eq "Automatik")))
  (set Vorlauf_soll 20)
DOELSE
  (set Vorlauf_soll 0)

-------DOIF Heizungspumpe (AN/AUS)--------

(([Aussentemperatur] < 17 and
  ([[Heizeit_beginn]-[Heizeit_ende]]) and
([Betriebsart:state] eq "Automatik")))
(set Heizungspumpe on)
DOELSEIF
((([Betriebsart:state] eq "Komfort") or
([Betriebsart:state] eq "Heizen")) or
([Aussentemperatur] < 0))
(set Heizungspumpe on)
DOELSE
(set Heizungspumpe off)

-------DOIF Mischersteuerung (AUF/ZU)--------
(([Vorlauf_soll]-[Vorlauf_ist]) > 2 and [Heizungspumpe] eq "on")
(set Mischer_zu off)
(set Mischer_auf on-for-timer 3)
(set Mischer_auf off) ## Cmd 1: Schnell oeffnen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) > 1 and [Heizungspumpe] eq "on")
(set Mischer_zu off)
(set Mischer_auf on-for-timer 2)
(set Mischer_auf off)    ## Cmd 2: Ganz langsam oeffnen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) > 0.5 and [Heizungspumpe] eq "on")
(set Mischer_zu off)
(set Mischer_auf on-for-timer 1)
(set Mischer_auf off)    ## Cmd 3: Noch ein bisschen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) > 0 and [Heizungspumpe] eq "on")
(set Mischer_zu off)
(set Mischer_auf off) ## Cmd 4: Mischer aus
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) < -2 and [Heizungspumpe] eq "on")
(set Mischer_auf off)
(set Mischer_zu on-for-timer 2)
(set Mischer_zu off)## Cmd 5: schnell schließen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) < -1 and [Heizungspumpe] eq "on")
(set Mischer_auf off)
(set Mischer_zu on-for-timer 2)
(set Mischer_zu off)  ## Cmd 6: Ganz langsam schließen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) < -0.5 and [Heizungspumpe] eq "on")
(set Mischer_auf off)
(set Mischer_zu on-for-timer 1)
(set Mischer_zu off)  ## Cmd 7: Noch ein bisschen
DOELSEIF
(([Vorlauf_soll]-[Vorlauf_ist]) < 0 and [Heizungspumpe] eq "on")
(set Mischer_auf off)
(set Mischer_zu off) ## Cmd 8: Mischer aus


Ich bedanke mich schon mal bei allen recht herzlich die micht mit ein wenig ihrer Zeit vor einer Frau mit kalten Füßen bewahren.

Gruß Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

Morgennebel

#1
Das kann funktionieren, muß aber nicht.

Das Problem an der Sache ist, daß wir nicht wissen, wie alt und wie träge Deine Heizungsanlage ist. Wir wissen nicht, wie gut die Isolierung Deines Hauses ist (= wie schnell geht die eingebrachte Wärme flöten). Wir wissen nicht, wie Du über die Dummies die Heizung ansprichst und wir wissen nicht, ob Du einen taktenden Brenner hast oder einen modulierenden.

Ich habe einen taktenden Brenner, schlechte Isolierung und überdimensionierte Heizung. Mein Mischer wird so angesteuert: https://wiki.fhem.de/wiki/Heizung:_Verbrauchsoptimierung,_Radiator/Fu%C3%9Fboden-Steuerung#STELLMOTOR_Mischersteuerung

Da mein Haus nicht isoliert ist (und auch nicht isoliert wird), fahre ich eine möglichst hohe FB-Vorlauftemperatur. Ist im Hinsicht auf Geld bestimmt nicht ideal.

Hauptaussage ist, daß eine Heizungsanlage viel träger ist, als Du denkst und die Temperaturen nach der Nachtabsenkung sehr schnell steigen können. Daher hat meine Mischersteuerung viele wait-Kommandos und ist relativ ausgelegt (zu kalt, mach auf - zu warm, mach zu).

Du wirst sehr sehr viel experimentieren müssen, um Deine DOIFs der Realität anzupassen. Solltest Du einen modullierenden Brenner und ein gut gedämmtes Haus haben, würde ich das alles der Thermen-Steuerung überlassen und nur die Umwälzpumpen mit 1-Wire übersteuern: https://wiki.fhem.de/wiki/1W-WPump

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Carsten1981

Hallo Morgennebel,

danke für die schnelle Antwort.
Heize überwiegend mit einem Feststoffoffen, unterstützt wird der von einer Solaranlage und als rückfallebene haben ich eine Gastherme, die ebenfalls in den 1.000l Pufferspeicher heizt, wo sich der 3 Wege Mischer die Wärme für die FBH herholt.

Die Temperaturen und die Mischerlaufzeiten habe ich aus unseren alten Steuerung für die Umwälzpumpe und den Mischer genommen.

Da dies das erste mal ist das ich eure Hilfe hier im Forum in anspruch nehmen muss habe ich leider nur die DEF der DOIF's gepostet und die Attribute vergessen, was ich hiermit nachholen will.

Hoffe habe das über die Attribute so richtig abgebildet, dass die Mischersteuerung abwartet nachdem das DOIF getriggert wurde bevor es sich wieder triggern lässt.

Steuerung_Heizungspumpe
attr: Do Allways

Steuerung_Mischer
attr cmdPause 20:20:20:20:20:20:20:20
attr wait 0,2,10:0,2,10:0,2,10:1,1:0,2,10:0,2,10:0,2,10:1,1
attr do allways

berechnung_Vorlauf_soll
attr do allways

Gruß und danke Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung