Hallo,
für alle, die auf die PWM Module warten habe ich nun 94_PWM.pm und 93_PWMR.pm in den contrib Zweig von FHEM auf dem Sourceforge Server eingestellt.
Die beiden Module können mit
wget http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/93_PWMR.pm?format=raw
wget http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/94_PWM.pm?format=raw
geholt und nach /opt/fhem/FHEM copiert werden.
Die commandref kann folgendermaßen aktualisiert werden.
cd /opt/fhem
perl contrib/commandref_join.pl
Die Kurzbeschreibung:
PWMR definiert einen Raum der mittels "Puls Weiten Modulation" beheizt werden soll. Der Raum hat einen Temperatursensor, eine Wunschtemperatur, einen Aktor (der die Heizung an und aus schaltet) und optional mehrere Fenster. Ein offenes Fenster reduziert die Wunschtemperatur auf eine Frostschutz Temperatur. Über IODev wird auf ein PWM Object referenziert.
Die Wunschtemperatur wird entweder über eine Logik ausserhalb von PWMR ermittelt und gesetzt oder über Regeln innerhalb von PWMR kalkuliert.
PWM erhält die Größe der benötigten "Heizpulse" von den Räumen und schaltet die Aktoren. Der Standardzyklus für die PMW ist 15 Minuten da Fussbodenheizungen in der Regel sehr träge reagieren.
Die Entscheidung ob die Heizung in einem Raum an oder ausgeschalten werden soll wird alle 60 Sekunden neu getroffen.
Da meine Thermo Stellantriebe für einen auf/zu Zyklus ca. 2,5 Minuten benötigen gibt es ein Minimum für einen Schaltpuls (120 Sekunden).
Ich betreibe meine Fussbodenheizung (12 Heizkreise) an einer Vailant Gastherme. Die Therme kann bis zu eine gewissen Grundlast heruntermodulieren. Werden zuwenige Räume beheizt bzw. die erzeugte
Wärme nicht abgenommen, dann Schaltet die Heizung in eine Sperrzeit. D.h. für eine bestimmte Zeit wird nicht mehr geheizt.
Für PWM gibt es einige Paramter, die verhindern, dass die Heizung in die Sperrzeit kommt oder zu häufig auf "vollast" läuft.
Eine Minimalkonfiguration könnte folgendermaßen aussehen:
- Temperatursensor für einen Raum, der im reading "temperatur" eine Temperatur angibt. Z.B. tempKitchen (reading und regex für die Temperatur kann auch definiert werden)
- Eine Aktor, der über "on" und "off" die Heizung in den zwei Schaltpunken "an" und "aus" schalten kann. (zum Testen geht natürlich auch ein dummy)
- Optional Fensterkontakte in den Räumen ...
Der Basissetup wäre dann (fh steht für Fussboden Heizung):
define fh PWM 60 900 120
define roomKitchen PWMR fh 1 tempKitchen relaisKitchen
attr roomKitchen autoCalcTemp 0
set roomKitchen desired-temp 21.5
[code]
Nun wird das PWM Modul versuchen durch Schalten von relaisKitchen die Raumtemperatur auf 21.5 zu regeln.
Ich kann noch meine Filelogs und Graphen zur Verfügung stellen damit man die Schaltpulse visualisieren kann.
Andy
PS: Das Testen/Spielen kann beginnen