Steuerung einer Fussbodenheizung mit dem PWM-Modul

Aus FHEMWiki


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 ... 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.

<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:

Universal switch to controll eg. pumps or the heater itself. It will be set to "off" if no heating is required and otherwise "on". pulseThreshold defines a threshold which is applied to reading pulseMax, pulseSum, pulseAvg, pulseAvg2 or pulseAvg3 of the PWM object to decide if heating is required. If (calculated pulse > threshold) then actor is set to "on", otherwise "off". If pulseThreshold is set to 0 (or is not defined) then the decision is based on roomsOn. If (roomsOn > 0) then actor is set to "on", otherwise "off". followUpTime defines a number of seconds which is used to delay the status change from "on" to "off". This can be used to prevent a toggling switch. regexp_on defines a regular expression to be applied to the state of the actor. Default is "on". If state matches the regular expression it is handled as "on", otherwise "off". delayTimeOn defines a number of seconds which is used to delay the status change from "off" to "on". This can be used to give the valves time to open before switching.. The pulse used for comparision is defined by attribute overallHeatingSwitchRef. Default is 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> Defines which reading is used for threshold comparision for OverallHeatingSwitch calculation. Possible values are:

pulseMax, pulseSum, pulseAvg, pulseAvg2, pulseAvg3, avgPulseRoomsOn pulseAvg is an average pulse of all rooms which should be switched to "on". pulseAvg2 and pulseAvg3 refer to the 2 or 3 romms with highest pulses.

Anwendungsbeispiele

Links