FHEM - Anwendungen > Heizungssteuerung/Raumklima

Fussbodenheizung mit PWM steuern

<< < (181/183) > >>

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