Steuerung einer Fussbodenheizung mit dem PWM-Modul

Aus FHEMWiki
Wechseln zu: Navigation, Suche


PWM
Zweck / Funktion
Dieses Modul dient zur Regelung von geschalteten Fußbodenheizkreisen mit FHEM.
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Heizungssteuerung
Modulname 94_PWM.pm
Ersteller jamesgo (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


PWM ist ein plattformunabhängiges Modul, welches gezielt Fußbodenheizkreise solange ein- bzw. ausschaltet, dass eine gewünschte Raumtemperatur in möglichst kurzer Zeit, mit nur geringem Überschwingen, erreicht werden kann.

Voraussetzungen

  • pro Heizkreis bzw. Raum ein Temperatursensor welcher den Wert der Raumtemperatur an FHEM übermitteln kann,
  • pro Heizkreis bzw. Raum ein mit an/aus per FHEM steuerbares Heizkreisventil (Aktor).

Leistungsumfang

  • Grundfunktionalität durch sinnvolle Standardwerte mit geringem Aufwand konfigurierbar,
  • Einzelraumregelung durch Instanzen des PWMR-Moduls,
  • einfache Steuerung realisierbar,
  • umfangreich konfigurierbare Zeitparameter,
  • parametrierbarer PID-Regler,
  • umfangreiche Temperatur-Zeit-Planung,
  • befristete (1..10 h) Planabweichungen von Raumsollwerten einfach konfigurierbar,
  • Unterstützung von Fensterkontakten,
  • Ventilfestsetzschutz durch zyklisches Betätigen nach langer Nichtbenutzung,

Define

define <name> PWM [<interval>] [<cycletime>] [<minonofftime>] [<maxPulse>] [<maxSwitchOnPerCycle>,
<maxSwitchOffPerCycle>] [<roomStayOn>,<roomStayOff>,<stayOnThreshold>] [<overallHeatingSwitch>
[,<pulseThreshold>[,<followUpTime>[,<h_regexp_on>[,<delayTimeOn>]]]]]

Parameter:

Parameter Beschreibung
<name> FHEM Name des Devices
<interval> Zeitspanne in s bis zur nächsten Pulsberechnung. Standardwert 60.
<cycletime> Zeitrahmen in s auf den sich die Pulslänge bezieht, Maximalwert der Pulslänge. Standard 900.
<minonofftime> Berechnete Impulse die kürzer als dieser Wert in s sind, werden wegen der üblichen Systemträgheit von FBH nicht an das Ventil ausgegeben. Standard 120.
<maxPulse> Minderungsfaktor der angibt, wie lang die Pulse bezogen auf den definierten Zeitrahmen cycletime maximal werden können. Standardwert ist 1 entsprechend maxPulse = cycletime.
<maxSwitchOnPerCycle> Maximalzahl von PWMR-Instanzen welche in Abhängigkeit von der Leistungsfähigkeit des Wärmeerzeugers gleichzeitig eingeschaltet sein können. Standard 99.
<maxSwitchoffPerCycle> Maximalzahl von PWMR-Instanzen welche in Abhängigkeit von der Leistungsfähigkeit des Wärmeerzeugers gleichzeitig ausgeschaltet sein können. Standard 99.
<stayOnThreshold> Defauts:

roomStayOn = 0 ... alle Räume können gleichzeitig ausgeschaltet werden. roomStayOff = 0 ... alle Räume können gleichzeitig eingeschaltet werden. stayOnThreshold = 0 ... keine Auswirkung. Aus Energiespargründen kann Folgendes eingestellt werden: "4,1,0,25". Dies bedeutet: Der Raum mit dem geringsten Impuls wird ausgeschaltet (roomsStayOff = 1). Wenn der durchschnittliche Impuls für die (roomsStayOn = 4) Räume mit dem höchsten Heizbedarf größer als (stayOnThreshold = 0.25) ist, wird maxRoomStayOn eingeschaltet "on", auch wenn die Zeit für den aktuellen Impuls erreicht ist. Wird die Schwelle nicht erreicht (weniger Heizen erforderlich), können alle Räume gleichzeitig ausgeschaltet werden.

<roomStayOn> Defauts:

roomStayOn = 0 ... all rooms can be switched off at the same time. roomStayOff = 0 ... all rooms can be switched on at the same time. stayOnThreshold = 0 ... no impact. For energy saving reasons the following may be set: "4,1,0.25". This means: The room with the least pulse will be kept off (roomsStayOff=1) If the average pulse for the (roomsStayOn=4) rooms with the most heating required is greater than (stayOnThreshold=0.25) then maxRoomStayOn will be kept in state "on", even if the time for the current pulse is reached. If the threshold is not reached (not so much heating required) then all rooms can be switched off at the same time.

<roomStayOff> Defauts:

roomStayOn = 0 ... all rooms can be switched off at the same time. roomStayOff = 0 ... all rooms can be switched on at the same time. stayOnThreshold = 0 ... no impact. For energy saving reasons the following may be set: "4,1,0.25". This means: The room with the least pulse will be kept off (roomsStayOff=1) If the average pulse for the (roomsStayOn=4) rooms with the most heating required is greater than (stayOnThreshold=0.25) then maxRoomStayOn will be kept in state "on", even if the time for the current pulse is reached. If the threshold is not reached (not so much heating required) then all rooms can be switched off at the same time.

<overallHeatingSwitch>[,<pulseThreshold>[,<followUpTime>[,<regexp_on>[,<delayTimeOn>]]]] Defauts:

Universalschalter zur Steuerung von zB. Pumpen oder die Heizung selbst. Sie wird auf "Aus" gesetzt, wenn keine Heizung benötigt wird, und ansonsten auf "Ein". pulseThreshold definiert einen Schwellenwert, der zum Lesen von pulseMax, pulseSum, pulseAvg, pulseAvg2 oder pulseAvg3 des PWM-Objekts angewendet wird, um zu entscheiden, ob eine Erwärmung erforderlich ist. Wenn (berechneter Impuls> Schwelle), wird der Akteur auf "Ein" gesetzt, andernfalls auf "Aus". Wenn pulseThreshold auf 0 gesetzt ist (oder nicht definiert ist), basiert die Entscheidung auf roomsOn. Wenn (roomsOn> 0), wird actor auf "on" gesetzt, andernfalls auf "off". followUpTime definiert eine Anzahl von Sekunden, mit der der Statuswechsel von "Ein" nach "Aus" verzögert wird. Dies kann verwendet werden, um einen Kippschalter zu verhindern. regexp_on definiert einen regulären Ausdruck, der auf den Status des Akteurs angewendet wird. Die Standardeinstellung ist "Ein". Wenn state mit dem regulären Ausdruck übereinstimmt, wird es als "on" behandelt, andernfalls als "off". delayTimeOn definiert eine Anzahl von Sekunden, mit der der Statuswechsel von "aus" nach "ein" verzögert wird. Hiermit können Sie den Ventilen vor dem Umschalten Zeit zum Öffnen geben. Der zum Vergleich verwendete Impuls wird durch das Attribut overallHeatingSwitchRef definiert. Standard ist maxPulse.

Attribute:

Parameter Beschreibung
<valveProtectIdlePeriod> Anzahl der Tage ohne Betätigung des Ventil bis der Ventilfestsetzschutz das Ventil einmal für 5 min vorbeugend betätigt.
<overallHeatingSwitchRef> Legt fest, welcher Messwert für den Schwellenwertvergleich für die OverallHeatingSwitch-Berechnung verwendet wird. Mögliche Werte sind:

pulseMax, pulseSum, pulseAvg, pulseAvg2, pulseAvg3, avgPulseRoomsOn pulseAvg ist ein Durchschnittspuls aller Räume, die auf "on" geschaltet werden sollen.

pulseAvg2 und pulseAvg3 beziehen sich auf die 2 oder 3 Räume mit den höchsten Impulsen pulseAvg ist ein Durchschnittspuls aller Räume, die eingeschaltet werden sollen. pulseAvg2 und pulseAvg3 beziehen sich auf die 2 oder 3 Räume mit den höchsten Impulsen.

Anwendungsbeispiele

Links