Gastherme bei Bedarf zuschalten

Begonnen von Taipan, 15 November 2015, 11:00:52

Vorheriges Thema - Nächstes Thema

Taipan

Hallo Gemeinde,
ich habe seit einem halben Jahr das fhem-Fieber. Das System auf nem Raspi läuft auch echt top. Licht regeln wir über Intertechno-Dosen und Heizkörper/Fenster über MAX...
Jetzt haben auch wir noch einen alten Junkers TRQ21 Raumthermostat.
Daran habe ich nach Anleitung aus dem ELV-Forum parallel zur Schaltuhr einen HM-LC-SW1-BA-PCB gehängt der über FHEM die Therme bei Bedarf anschaltet. Funtioniert einwandfrei nur fehlt mir die Anbindung an die MAX-Thermostaten in den Räumen.

HT.Alle ist die Structure aller Raumthermostate
SW.Therme ist der Switch der Gastherme (HM-LC-SW1-BA-PCB)

Und das möchte ich:
Wenn innerhalb der Structure die desiredTemperature aller Thermostate auf 17 Grad oder weniger steht, schaltet SW.Therme auf off
Wenn nur ein Thermostat innerhalb der Structure höher gestellt wird als 17 oder boost betätigt wird (also Bedarf vorliegt), soll SW.Therme auf on springen.
Die 'regulären' Heizungszeiten würde ich per at Befehle setzen wollen...

Damit stehe ich auf dem Schlauch und bitte Euch um Hilfe...
Könnt Ihr mir helfen solch eine Routine mit einer Intervallabfrage von einer Minute zu erstellen?
Danke für alle Tipps im voraus


Reinhart

#1
Hallo Taipan!

Ich habe dazu das fertige Modul Valves benutzt um eine Wichtung aller Ventile zu bekommen und mit dieser Wichtung erhältst du eine Wärmebedarfssteuerung. Sind die Ventile weit offen wird Wärme benötigt, sind sie fast geschlossen wird wenig bzw. keine Wärme benötigt. Der Öffnungswinkel der Ventile sagt in meinen Augen viel mehr über den Wärmebedarf aus als die reine Temperaturbetrachtung.

####################################
####### Wichtung der Ventile  ######
####################################

define WichtungAll VALVES
attr WichtungAll group Heizung Wichtung
attr WichtungAll icon time_graph
attr WichtungAll room Heizung
attr WichtungAll stateFormat {sprintf("%.2d", ReadingsVal($name,"valve_average",0))}
attr WichtungAll valvesDeviceList FHT_Wz_Fussb,FHT_Wohnzimmer,FHT_Kueche
attr WichtungAll valvesDeviceReading actuator
attr WichtungAll valvesPollInterval 16

in der valvesDeviceList legst die die Heizkörper die du in die Steuerung mit einbeziehen willst. Hier im Beispiel ist es mit FS20 Komponenten realisiert und musst entsprechend auf deine Max ändern. Im Beispiel sind 3 Heizkörper zur Wichtungsberechnung hergenommen.

define SchwelleTherme dummy
attr SchwelleTherme alias Therme abschalten unter %
attr SchwelleTherme group Heizung Wichtung
attr SchwelleTherme icon audio_eq
attr SchwelleTherme room Heizung
attr SchwelleTherme setList state:-1,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,40
attr SchwelleTherme webCmd state

hier habe ich den Dummy definiert, in welchem ich dann die Vorgabe einstelle bei welcher Schwelle geschaltet werden soll.

# Heizung ausschalten, kein Wärmebedarf
define HeizungOff_Check at +*00:15:00 IF ([SW.Therme] eq "on" && Value("WichtungAll") < Value("SchwelleTherme") && ($hour > 7 && $hour < 21)) (set SW.Therme off)

#Heizung anfahren weil die Ventile Wärme anfordern
define HeizungOn_Check at +*00:15:10 IF ([SW.Therme] eq "off" && Value("WichtungAll") > Value("SchwelleTherme") && ($hour > 5 && $hour < 20)) (set SW.Therme on)

und hier kannst du nach belieben die Therme schalten. Es wird alle 15 Minuten geprüft, auch die Schaltzeiten kannst deinen Bedürfnissen anpassen, bzw. ganz weglassen. Dieses Modul habe ich über ein Jahr mit vollem Erfolg im Einsatz und aus dem selben Grund wie du verwendet. Ich habe auch mehre Valves definiert, weil ich zusätzlich noch die Umwälzpumpen in den einzelnen Stockwerken damit steuere.
Wenn du zusätzlich die Zeiten variabel gestalten willst, musst halt für die Ein- und Ausschaltzeiten noch jeweils einen Dummy (so wie bei der Schwelle) anlegen und in die IF Abfrage einbauen.

Wie du im Bild siehst, kann ich den Wert beliebig einstellen, die richtige Einstellung wird sich nach ein paar Tagen finden und du kannst sie jederzeit deinen Bedürfnissen anpassen.
Vielleicht kannst du ja damit was anfangen.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Taipan

@Reinhart

Was soll ich sagen - Hut ab! Das werde ich gleich umsetzen und testen. Es ist ja auch noch wesentlich feiner einstellbar... Danke bis hierher schonmal!

Reinhart

ja natürlich kannst du wesentlich mehr Werte in setList eingeben um flexibler zu sein, versuche es einfach dann wirst du schnell merken wo deine persönlichen Einstellungen liegen. Bei mir ist es ideal bei Werten so um die 20.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

John

@Taipan
auch das Modul HCS könntest du in Betracht ziehen.

Es wurde genau für diesen Zweck erstellt
http://fhem.de/commandref.html#HCS

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Mitch

Reinhart, wie steuert Du denn dies set SW.Therme off?
FHEM im Proxmox Container

Reinhart

@Mitch
weil die Frage in diesem Thread um das Abschalten der Therme ging.

Ich steuere hier natürlich direkt die Heizkurve und erhöhe bzw. senke sie ab, allerdings brauche ich dazu dann insgesamt 10 IF Schleifen (erhöhen/absenken).

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa