FHEM - Anwendungen > Heizungssteuerung/Raumklima
Fussbodenheizung mit PWM steuern
Obi-Wan:
Hallo,
auf der Suche nach einer externen PWM-Steuerung von 4 Heizkreisen bin ich mit diesem Modul hier fündig geworden und seit gestern nun Neunutzer des Moduls. Von der bereitgestellten Funktionalität überwältigt und (noch) überfordert ist mir folgendes aufgefallen:
Alle 60 Sekunden wird bei 1-2 Heizkreisen der "set Heizkreis on" Befehl abgesetzt obwohl die Heizkreise zwischenzeitlich nie ausgeschaltet waren, bspw. wurde so der Heizkreis-Aktor HKKind1 seit Mitternacht bis gerade eben 1.033 mal "eingeschaltet" ohne das er jemals ausgeschaltet wurde da die Ist-Temperatur (temperature) hier aktuell dauerhaft ca. 0,7 Grad unter desired-temp liegt.
Somit wurde nur für diesen Heizkreis innerhalb von ca. 17 Stunden über 1.000 mal unnötigerweise ein HTTPMOD abgesetzt.
Könnte bitte mal jemand (Andreas?) über meine device-Listings schauen ob ich bei der Einrichtung hier einen Fehler gemacht habe?
Vielen Dank vorab,
Obi-Wan
Hier ein Protokollauszug von 3 Durchläufen die sich im wesentlichen so über den ganzen Tag verhalten:
--- Code: ---2022.02.06 07:04:39 3: PWM_Calculate Heizung_PWM
2022.02.06 07:04:39 3: PWM_CalcRoom Temperaturregler_Kind1: F2 new on
2022.02.06 07:04:39 3: PWM_CalcRoom Temperaturregler_Kind2: F11 stay off (0)
2022.02.06 07:04:39 3: PWM_CalcRoom Temperaturregler_Gast: F11 stay off (0)
2022.02.06 07:04:39 3: PWM_CalcRoom Temperaturregler_Schlafzimmer: F2 new on
2022.02.06 07:04:39 3: PWM_Calculate Temperaturregler_Kind1: F98 switch on (pulse=1)
2022.02.06 07:04:39 3: PWM_Calculate Temperaturregler_Schlafzimmer: F98 switch on (pulse=1)
2022.02.06 07:04:39 2: PWMR_SetRoom Temperaturregler_Kind1: set HKKind1 on
2022.02.06 07:04:39 2: PWMR_SetRoom Temperaturregler_Schlafzimmer: set HKSchlafen on
2022.02.06 07:04:39 3: PWM_Calculate Heizung_PWM done
2022.02.06 07:05:39 3: PWM_Calculate Heizung_PWM
2022.02.06 07:05:39 3: PWM_CalcRoom Temperaturregler_Kind1: F2 new on
2022.02.06 07:05:39 3: PWM_CalcRoom Temperaturregler_Kind2: F11 stay off (0)
2022.02.06 07:05:39 3: PWM_CalcRoom Temperaturregler_Gast: F11 stay off (0)
2022.02.06 07:05:39 3: PWM_CalcRoom Temperaturregler_Schlafzimmer: F8 stay off
2022.02.06 07:05:39 3: PWM_Calculate Temperaturregler_Kind1: F98 switch on (pulse=1)
2022.02.06 07:05:39 2: PWMR_SetRoom Temperaturregler_Kind1: set HKKind1 on
2022.02.06 07:05:39 3: PWM_Calculate Heizung_PWM done
2022.02.06 07:06:39 3: PWM_Calculate Heizung_PWM
2022.02.06 07:06:39 3: PWM_CalcRoom Temperaturregler_Kind1: F2 new on
2022.02.06 07:06:39 3: PWM_CalcRoom Temperaturregler_Kind2: F11 stay off (0)
2022.02.06 07:06:39 3: PWM_CalcRoom Temperaturregler_Gast: F11 stay off (0)
2022.02.06 07:06:39 3: PWM_CalcRoom Temperaturregler_Schlafzimmer: F8 stay off
2022.02.06 07:06:39 3: PWM_Calculate Temperaturregler_Kind1: F98 switch on (pulse=1)
2022.02.06 07:06:39 2: PWMR_SetRoom Temperaturregler_Kind1: set HKKind1 on
2022.02.06 07:06:39 3: PWM_Calculate Heizung_PWM done
--- Ende Code ---
list Temperaturregler_Kind1:
--- Code: ---Internals:
ACTOR HKKind1
CFGFN
DEF Heizung_PWM 0 TemperaturKind1:1.ACTUAL_TEMPERATURE HKKind1 dummy 1:0.8:0.3:0.5
FUUID 61fe8691-f33f-06c4-e0dd-e555630059e0d3b2
INTERVAL 300
IODev Heizung_PWM
NAME Temperaturregler_Kind1
NR 22820
STATE From TemperaturKind1
TEMPSENSOR TemperaturKind1:1.ACTUAL_TEMPERATURE
TYPE PWMR
WINDOW
a_regexp_on on
actor HKKind1
c_PID_DFactor 0.5
c_PID_DLookBackCnt 10
c_PID_IFactor 0.3
c_PID_ILookBackCnt 5
c_PID_PFactor 0.8
c_PID_useit 1
c_autoCalcTemp 1
c_desiredTempFrom TemperaturKind1:1.SET_POINT_TEMPERATURE
c_frostProtect 0
c_tempC 22
c_tempD 20
c_tempE 19
c_tempFrostProtect 6
c_tempN 16
c_tempRule1 1-5 0600,D 2200,N
c_tempRule2 6-0 0800,D 2200,N
c_tempRule3
c_tempRule4
c_tempRule5
c_tempRuleS D
d_name TemperaturKind1
d_reading 1.SET_POINT_TEMPERATURE
d_regexpTemp (\d[\d\.]+)
h_deltaTemp -0.7
h_deltaTemp_D -0.7
p_actor HKKind1
p_factor 0
p_pid 1:0.8:0.3:0.5
p_tsensor TemperaturKind1:1.ACTUAL_TEMPERATURE
p_window dummy
t_reading 1.ACTUAL_TEMPERATURE
t_regexp ([\d\.]+)
t_sensor TemperaturKind1
w_regexp .*[Oo]pen.*
windows dummy
READINGS:
2022-02-06 17:23:05 PID_DVal 0.00
2022-02-06 17:23:05 PID_IVal 1
2022-02-06 17:23:05 PID_PVal 0.56
2022-02-06 17:23:05 PID_PWMOnTime 15:00
2022-02-06 17:23:05 PID_PWMPulse 100
2022-02-06 17:23:05 actorState on
2022-02-06 17:20:04 desired-temp 22.5
2022-02-06 17:23:05 desired-temp-used 22.5
2022-02-06 17:23:05 energyused 111111111111111111111111111111
2022-02-06 17:23:05 energyusedp 100.0
2022-02-06 17:23:05 lastswitch 1644164585.85536
2022-02-06 17:23:05 oldpulse 1
2022-02-06 17:20:04 state From TemperaturKind1
2022-02-06 17:23:05 temperature 21.8
helper:
PID_D_previousTemps:
21.8
21.8
21.8
21.8
21.8
21.8
21.8
21.8
21.8
21.8
PID_I_previousTemps:
21.8
21.8
21.8
21.8
21.8
hmccu:
Attributes:
desiredTempFrom TemperaturKind1:1.SET_POINT_TEMPERATURE
group Heizung
room Kind1
--- Ende Code ---
list Heizung_PWM:
--- Code: --- INTERVAL 60
MINONOFFTIME 120
MaxPulse 1
MaxSwitchOffPerCycle 99
MaxSwitchOnPerCycle 99
NAME Heizung_PWM
NR 22632
NoRoomsToStayOff 0
NoRoomsToStayOn 0
NoRoomsToStayOnThreshold 0
OverallHeatingSwitch
OverallHeatingSwitch_delayTimeOn
OverallHeatingSwitch_followUpTime
OverallHeatingSwitch_regexp_on
OverallHeatingSwitch_roomBased
OverallHeatingSwitch_threshold
STATE lastrun: 2022-02-06 17:26:05
TYPE PWM
p_cycletime 900
p_interval 60
p_maxPulse 1
p_minOnOffThreshold
p_minOnOfftime 120
p_overallHeatingSwitch
READINGS:
2022-02-05 14:20:12 OverallHeatingSwitch
2022-02-05 14:20:12 OverallHeatingSwitchWaitBeforeOn
2022-02-05 14:20:12 OverallHeatingSwitchWaitUntilOff
2022-02-06 17:26:05 avgPulseRoomsOff 0.12
2022-02-06 17:26:05 avgPulseRoomsOn 0.73
2022-02-06 17:26:05 lastrun calculating
2022-02-06 17:26:05 pulseAvg 0.42
2022-02-06 17:26:05 pulseAvg2 0.73
2022-02-06 17:26:05 pulseAvg3 0.56
2022-02-06 17:26:05 pulseMax 1
2022-02-06 17:26:05 pulseSum 1.69
2022-02-06 17:26:05 roomsActive 4
2022-02-06 17:26:05 roomsOff 2
2022-02-06 17:26:05 roomsOn 2
2022-02-06 17:26:05 roomsToStayOn 0
2022-02-06 17:26:05 roomsToStayOnList
2022-02-06 17:26:05 state lastrun: 2022-02-06 17:26:05
helper:
pulses:
Temperaturregler_Kind1 1.00 / 0
Temperaturregler_Kind2 0.46 / 0
Temperaturregler_Gast 0.23 / 0
Temperaturregler_Schlafzimmer 0 / 0
hmccu:
Attributes:
group Heizung
room HWR
--- Ende Code ---
Der Vollständigkeit halber hier ein list des httpmod HKKind1 (set ... on und off ist vorhanden):
--- Code: ---Internals:
CFGFN
CYCLETIME 900
FUUID 61fe798c-f33f-06c4-f14d-74680bfdd7d54e2a
Internals:
BUSY 0
DEF http://192.16geheim/Info 280
FUUID 61e5d453-f33f-06c4-f423-9594ce7e3b9c2322
Interval 280
MainURL http://192.16geheim/Info
ModuleVersion 4.1.10 - 6.7.2021
NAME HKKind1
NOTIFYDEV global
NR 207
NTFY_ORDER 50-HKKind1
STATE An
TYPE HTTPMOD
httpbody {"HKKind2": "An",
"HKKind1": "An",
"HKGast": "An",
"HKSchlafen": "An",
"Version": "3"}
value
HttpUtils:
NAME
addr http://192.16geheim
auth 0
buf
code 200
compress 1
conn
data
displayurl http://192.16geheim/Info
header
host 192.16geheim
httpheader HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 91
Connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 1
hu_port 25xx7
hu_portSfx :25xx7
ignoreredirects 1
loglevel 4
noshutdown 1
path /Info
protocol http
redirects 0
timeout 2
url http://192.16geheim/Info
sslargs:
QUEUE:
READINGS:
2022-02-06 17:21:04 Heartbeat alive
2022-02-06 17:30:50 Status An
REQUEST:
context reading
data
header
ignoreredirects 0
num unknown
retryCount 0
type update
url http://192.16geheim/Info
defptr:
readingBase:
Status reading
readingNum:
Status 01
readingOutdated:
requestReadings:
update:
Status reading 01
hmccu:
Attributes:
bodyDecode utf-8
devStateIcon An:FS20.on Aus:light_light Aus:light_light
group Heizung
icon light_ceiling
noShutdown 1
reading01JSON HKKind1
reading01Name Status
readingsWatcher 650,Störung,Status
room Kind1
set01Name on
set01NoArg 1
set01URL http://192.16geheim/HK?Kind1=an
set02Name off
set02NoArg 1
set02URL http://192.16geheim/HK?Kind1=aus
set03Name An
set03NoArg 1
set03URL http://192.16geheim/HK?Kind1=an
set04Name Aus
set04NoArg 1
set04URL http://192.16geheim/HK?Kind1=aus
setParseResponse 1
showBody 1
stateFormat Status
webCmd An:Aus
--- Ende Code ---
jamesgo:
Hallo Obi-WAN,
Ich schaue mir das morgen im Detail an. Aus dem Bauch würde ich sagen dass der Regexp des Aktors nicht zum Status passt. D.h. das Modul kann nicht erkennen dass der Aktor auf on steht.
Viele Grüße
Andreas
McShire:
Hallo jamesgo,
ich habe schon Jahre PWMR für unsere Fußbodenheizung in Betrieb, sie funktioniert einwandfrei.
Jetzt möchte ich das Modul für eine weitere Installation an einem anderen Standort verwenden
und habe folgendes Problem.
Ich habe PWMR und pwm mit Standards eingerichtet, es funktionierte auch.
Dann habe ich ein Dummy definiert und in PWMR das attr desiredTempFrom auf den Dummy:state gesetzt.
funktionierte auch.
Danach habe ich für den Dummy das attr webCmd und attr setList 6.0,7.0, usw gesetzt.
Da ich auch andere Werte einsetzen wollte, habe ich die Attribute wieder gelöscht.
Jetzt lassen sich Solltemperaturen ausserhalb der setList Reihe weder im PWMR device noch über den
Dummy als desired-temp einstellen. Wenn ich auf das PopUp vom PWMR gehe, kommt immer die
Reihe der vorherigen setList vom Dummy.
Setze ich den Dummy:state auf einen Wert ausserhalb der setList, nimmt der Dummy den Wert an,
aber PWMR setzt ais desired-temp immer den nächsten Wert aus der Liste.
Ich habe den Dummy gelöscht und neu definiert, keine Änderung, ich habe den PWMR umbenannt,
keine Änderung, auch jeweils nach Neustart nicht.
Irgendwoher holt PWMR immer die alte Liste, obwohl sie nirgendwo eingetragen ist.
Ich habe das gesamte fhem-Verzeichnis mit allen unterstrukturen mit grep durchsucht. Nirgendwo steht die Liste, aber PWMR hat diese immer wieder imPopUp und akzeptiert nur Werte aus der Liste.
Teilweise verschwindet dann bei Versuchen und Neustart auch jeweils das attr desiredTempFrom aus dem Modul.
Was kann ich noch tun, um über den Dummy wahlfrei eine Vorgabetemperatur einzugeben.
Setze ich in der Commandzeile set PWMR desired-temp 3.0 ,dann wird diese akzeptiert und erscheint
dann zusätzlich im PopUp, aber wird nur für die Duration-Zeit behalten.
Viele Grüße
Werner
jamesgo:
Hallo Werner,
ich habe das gerade ausprobiert und letztendlich funktioniert es. Wichtig ist:
- wenn du desiredTempFrom auf dummy:state setzt wird das Reading "state" verwendet. Nicht das internal "STATE"
- setList setzt "STATE" und "state"; webCmd ist nur was das dummy in der Übersicht anzeigt
- ich habe setList auf "16 17 18 19" gesetzt; also mit Leerzeichen separiert
- der Raum (PWMR) muss auf "autoCalc" stehen und die Temperatur wird nur bei dem Berechnungszyklus übernommen. Schau nochmal was beim PWMR im internal "INTERVAL" steht. Also per Default nur alle 5 Minuten.
- Raum und Variable für das "desiredTempFrom" müssen zwei getrennte Objekte sein. Aus deiner Beschreibung geht das nicht klar hervor.
Wenn das dein Problem nicht löst dann bitte ein "list" von dem Raum und dem Dummy posten.
Viele Grüße
Andreas
McShire:
Hallo Andreas,
vielen Dank für Deine Hinweise.
Ich hatte schon einige Tage verschiedenes ausprobiert mit unterschiedlichen Ergebnissen.
Mal wurde im PWMR der Sollwert auf 1 gesetzt,
mal wurde der Wert aus der Rule übernommen,
mal war das attr desiredTempFrom im PWMR gelöscht,
mal wurde im Dummy für den Sollwert ein neues Reading desired-temp mit Wert 0 anglegt, ...
Es war schon seltsam, zumal auf dem 1. System im Haus alles einwandfrei funktionierte.
Das 2. System war für ein Objekt auswärts. Ich habe alles verglichen und bis auf die Namen
und Werte keinen Unterschied gefunden.
Jetzt habe ich alles komplett gelöscht, devices, logs, plots und
unter Beachtung Deiner Hinweise alles komplett mit veränderten Namen neu angelegt.
Und jetzt funktioniert alles. Da muss doch ein Tippfehler gewesen sein, den ich immer übersehen habe.
Vielen Dank nochmal und viele Grüße
Werner
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln