Fussbodenheizung mit PWM steuern

Begonnen von jamesgo, 24 September 2015, 08:28:49

Vorheriges Thema - Nächstes Thema

jamesgo

Hallo Wolfgang,

wenn c_PID_useit auf 0 steht, dann verwendest du den analogen Regler statt PID.
Besonders bei eine trägen Heizung wird PID aber besser funktionieren.

Definiere den 6-ten Parameter doch mal so:

<usePID=1>:<PFactor>:<IFactor>[,<ILookBackCnt>]:<DFactor>[,<DLookBackCnt>]

1:0.8:0.3,22:0.5,10

Mein Plot sieht so aus:


# Created by FHEM/98_SVG.pm, 2017-01-08 08:59:09
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics ("Off" 0, "On" 1)
set y2tics nomirror
set grid y2tics
set ylabel "Status"
set y2label "Temperature in C"
set yrange [-0.1:5.1]

#FL_roomKochen 4:actor:0:$fld[3]=~"on"?1:0
#FL_roomKochen 4:roomKochen.desired-temp-used\x3a:6:
#FL_tempEssen 4:tempEssen.T\x3a:0:
#FL_roomKochen 4:roomKochen.PID_PWMPulse\x3a:0:$fld[3]/20

plot "<IN>" using 1:2 axes x1y1 title 'actor state' ls l2 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'desired Temperature' ls l0 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Temperatur' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'pid' ls l3 lw 1 with lines


Grüße
Andy

wowogiengen

#436
Hallo Andy,
ich hab das jetzt mal gemacht.
Vordergründig sehe ich erstmal keinen Unterschied  ;)

Ich habe aber wohl ein Problem mit dem manuellen Override der Temperatur:


PWMOnTime             00:00                             2017-10-16 18:23:13
PWMPulse              0                                 2017-10-16 18:23:13
actorState            unknown                           2017-10-16 18:23:17
desired-temp          22.0                              2017-10-17 18:23:53
desired-temp-until    2017-10-17 20:23:53               2017-10-17 18:23:53
desired-temp-used     24.0                              2017-10-16 18:23:13
energyused            000000000000000000000000000000    2017-10-17 18:22:30
energyusedp           0.0                               2017-10-17 18:22:30
lastswitch            1508169886                        2017-10-16 18:04:46
manualTempDuration    120                               2017-10-17 18:23:45
oldpulse              0                                 2017-10-17 18:22:30
temperature           23.6651312181234                  2017-10-16 18:23:13


Obwohl ich gerade die manualTempDuration auf 120 Min. gesetzt habe, und anschliessend die desired-temp auf 22°C bleibt desired-temp-used auf 24°C.

Außerdem merke ich immer wieder, dass der actorState auf unknown steht :-\

[EDIT: List des devices:]

Internals:
   ACTOR      HzgAktorBad
   CHANGED
   DEF        fh 1,0.11 HzgStatusBad HzgAktorBad dummy usePID=1:0.8:0.3,22:0.5,10
   INTERVAL   300
   IODev      fh
   NAME       PWMRBad
   NR         302
   STATE      ManualSetUntil 20:32:32
   TEMPSENSOR HzgStatusBad
   TYPE       PWMR
   WINDOW
   a_regexp_on on
   actor      HzgAktorBad
   c_PID_DFactor 0.5
   c_PID_DLookBackCnt 10
   c_PID_IFactor 0.3
   c_PID_PFactor 0.8
   c_PID_useit usePID=1
   c_autoCalcTemp 1
   c_desiredTempFrom HzgSetBad
   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
   d_name     HzgSetBad
   d_reading  desired-temp
   d_regexpTemp (\d[\d\.]+)
   p_actor    HzgAktorBad
   p_factor   1,0.11
   p_pid      usePID=1:0.8:0.3,22:0.5,10
   p_tsensor  HzgStatusBad
   p_window   dummy
   t_reading  temperature
   t_regexp   ([\d\.]+)
   t_sensor   HzgStatusBad
   w_regexp   .*Open.*
   windows    dummy
   READINGS:
     2017-10-16 18:23:13   PWMOnTime       00:00
     2017-10-16 18:23:13   PWMPulse        0
     2017-10-16 18:23:17   actorState      unknown
     2017-10-17 18:32:32   desired-temp    26.0
     2017-10-17 18:32:32   desired-temp-until 2017-10-17 20:32:32
     2017-10-16 18:23:13   desired-temp-used 24.0
     2017-10-17 18:33:30   energyused      000000000000000000000000000000
     2017-10-17 18:33:30   energyusedp     0.0
     2017-10-16 18:04:46   lastswitch      1508169886
     2017-10-17 18:32:36   manualTempDuration 120
     2017-10-17 18:33:30   oldpulse        0
     2017-10-16 18:23:13   temperature     23.6651312181234
   helper:
     PID_D_previousTemps:
Attributes:
   desiredTempFrom HzgSetBad
   event-on-change-reading .*
   room       Bad,Heizung
   verbose    3
   widgetOverride energyused

Viele Grüße
Wolfgang         

wowogiengen

Hallo Andy,
ich glaube das PWMR-Modul hat noch einen Bug...
Seit ich die Umstellung auf den PID-Regler gemacht habe, wurde kein Aktor mehr aktiv geschalten, und das obwohl ich alle Solltemperaturen auf 30°C hatte, also ca. 5-8°C mehr als die aktuellen Raumtemperaturen. Heute früh habe ich wieder umgestellt auf die Standard-Einstellung:

defmod PWMRBad PWMR fh 1,0.11 HzgStatusBad HzgAktorBad

In einem anderen Thread hat sich ja auch jemand beklagt, dass er mit den erweiterten Optionen (für die Pulse und so) auch Probleme hat.

Kannst du da bitte mal helfen?
Vielen Dank
Wolfgang

Morgennebel

Das PMWR-Modul läuft bei vielen Anwendern großartig, insofern ist Dein Problem wahrscheinlich eher ein PEBCAK.

Aber wir helfen Dir gerne, wenn Du vollständige Informationen lieferst. In Deinem Fall würde helfen:


  • list auf HzgStatusBad
  • list auf HzgAktorBad
  • list auf PWMR
  • list auf PWMRBad

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

wowogiengen

Zitat von: Morgennebel am 18 Oktober 2017, 10:07:41
Das PMWR-Modul läuft bei vielen Anwendern großartig, insofern ist Dein Problem wahrscheinlich eher ein PEBCAK.

Aber wir helfen Dir gerne, wenn Du vollständige Informationen lieferst. In Deinem Fall würde helfen:


  • list auf HzgStatusBad
  • list auf HzgAktorBad
  • list auf PWMR
  • list auf PWMRBad

Ciao, -MN
Hallo,
bei mir lief es ja auch großartig, bis ich die Änderung mit dem PID-Regler aktiv geschalten habe...

Hier mal die Lists:

list auf PWMRBad siehe vorhergehenden Post vom 17.10.17 18:31

list HzgStatusBad:


Internals:
   CFGFN      HzgThermostatBad.cfg
   CHANGED
   DEF        4596C001
   NAME       HzgStatusBad
   NOTIFYDEV  global
   NR         207
   NTFY_ORDER 50-HzgStatusBad
   STATE      Temperatur: 23.0 C° - Luftfeucht: 47 %
   TYPE       CUL_HM
   chanNo     01
   device     HzgThermostatBad
   READINGS:
     2017-09-27 20:27:12   R-sign          off
     2017-10-16 18:36:59   RegL_01.        08:00 00:00
     2017-10-18 10:16:58   humidity        47
     2017-10-18 10:16:58   state           T: 23.0 H: 47
     2017-10-18 10:16:58   temperature     23.0
   helper:
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     role:
       chn        1
     tmpl:
Attributes:
   event-aggregator temperature:900:linear:mean
   event-min-interval .*:900
   event-on-change-reading .*
   event-on-update-reading .*
   group      Heizung
   model      HM-TC-IT-WM-W-EU
   peerIDs    00000000,
   room       Bad,Heizung,System
   stateFormat Temperatur: temperature C° - Luftfeucht: humidity %
   userattr   room_map structexclude


list HzgAktorBad

Internals:
   CFGFN      HzgAktorBad.cfg
   DEF        4FB4A5
   Funkantenne_MSGCNT 6
   Funkantenne_RAWMSG A0E0980024FB4A5F110340101C8003F::-62.5:Funkantenne
   Funkantenne_RSSI -62.5
   Funkantenne_TIME 2017-10-18 06:47:01
   IODev      Funkantenne
   LASTInputDev Funkantenne
   MSGCNT     6
   NAME       HzgAktorBad
   NOTIFYDEV  global
   NR         199
   NTFY_ORDER 50-HzgAktorBad
   STATE      on
   TYPE       CUL_HM
   lastMsg    No:09 - t:02 s:4FB4A5 d:F11034 0101C8003F
   protLastRcv 2017-10-18 06:47:01
   protSnd    6 last_at:2017-10-18 06:47:01
   protState  CMDs_done
   rssi_Funkantenne min:-63 max:-62 lst:-63 cnt:6 avg:-62.16
   rssi_at_Funkantenne lst:-62.5 avg:-61.75 cnt:6 min:-62.5 max:-61
   READINGS:
     2017-10-18 06:47:01   CommandAccepted yes
     2017-09-27 19:12:00   D-firmware      2.8
     2017-09-27 19:12:00   D-serialNr      NEQ1277795
     2017-10-10 15:56:00   PairedTo        0xF11034
     2017-10-10 15:56:00   R-confBtnTime   permanent
     2017-10-10 15:56:00   R-intKeyVisib   invisib
     2017-10-10 15:56:00   R-localResDis   off
     2017-10-10 15:56:00   R-pairCentral   0xF11034
     2017-10-10 15:56:01   R-powerUpAction off
     2017-10-10 15:56:01   R-sign          off
     2017-10-10 15:56:01   R-statusInfoMinDly 2 s
     2017-10-10 15:56:01   R-statusInfoRandom 1 s
     2017-10-10 15:56:01   R-transmitTryMax 6
     2017-10-10 15:56:00   RegL_00.        02:01 0A:F1 0B:10 0C:34 15:FF 18:00 00:00
     2017-10-10 15:56:01   RegL_01.        08:00  30:06 57:24 56:00 00:00
     2017-10-18 06:47:01   deviceMsg       on (to VCCU)
     2017-10-18 06:47:01   level           100
     2017-10-18 06:47:01   pct             100
     2017-10-18 06:47:01   recentStateType ack
     2017-10-18 06:47:01   state           on
     2017-10-18 06:47:01   timedOn         off
   helper:
     HM_CMDNR   9
     cSnd       11F110344FB4A50201000000,11F110344FB4A50201C80000
     dlvlCmd    ++A011F110344FB4A50201C80000
     mId        0004
     rxType     1
     supp_Pair_Rep 0
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     io:
       newChn     +4FB4A5,00,00,00
       nextSend   1508302022.0625
       prefIO
       rxt        0
       vccu
       p:
         4FB4A5
         00
         00
         00
     mRssi:
       mNo        09
       io:
         Funkantenne -60.5
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf
       qReqStat
     role:
       chn        1
       dev        1
       prs        1
     rssi:
       Funkantenne:
         avg        -62.1666666666667
         cnt        6
         lst        -63
         max        -62
         min        -63
       at_Funkantenne:
         avg        -61.75
         cnt        6
         lst        -62.5
         max        -61
         min        -62.5
     tmpl:
Attributes:
   IODev      Funkantenne
   autoReadReg 5_readMissing
   event-on-change-reading .*
   expert     251_anything
   firmware   2.8
   group      Heizung
   model      HM-LC-SW1-FM
   peerIDs    00000000,
   room       Bad,Heizung,System
   serialNr   NEQ1277795
   subType    switch
   userattr   room_map structexclude
   verbose    3
webCmd     statusRequest:toggle:on:off

Ein list PWMR geht nicht...

Ich habe heute früh das  PWMRBad wieder umgestellt auf:

list PWMRBad

Internals:
   ACTOR      HzgAktorBad
   DEF        fh 1,0.11 HzgStatusBad HzgAktorBad
   INTERVAL   300
   IODev      fh
   NAME       PWMRBad
   NR         302
   STATE      From HzgSetBad
   TEMPSENSOR HzgStatusBad
   TYPE       PWMR
   WINDOW
   a_regexp_on on
   actor      HzgAktorBad
   c_PID_useit 0
   c_autoCalcTemp 1
   c_desiredTempFrom HzgSetBad
   c_factor   1
   c_foffset  0.11
   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
   d_name     HzgSetBad
   d_reading  desired-temp
   d_regexpTemp (\d[\d\.]+)
   p_actor    HzgAktorBad
   p_factor   1,0.11
   p_pid
   p_tsensor  HzgStatusBad
   p_window
   t_reading  temperature
   t_regexp   ([\d\.]+)
   t_sensor   HzgStatusBad
   w_regexp   .*Open.*
   windows
   READINGS:
     2017-10-18 10:20:02   PWMOnTime       12:45
     2017-10-18 10:20:02   PWMPulse        85
     2017-10-18 06:47:01   actorState      on
     2017-10-18 10:20:02   desired-temp    30.0
     2017-10-18 10:20:02   desired-temp-used 30.0
     2017-10-18 10:20:02   energyused      111111111111111111111111111111
     2017-10-18 10:20:02   energyusedp     100.0
     2017-10-18 06:47:01   lastswitch      1508302021
     2017-10-18 10:20:02   oldpulse        0.85
     2017-10-18 10:20:02   temperature     23.0
   helper:
Attributes:
   desiredTempFrom HzgSetBad
   event-on-change-reading .*
   room       Bad,Heizung
   verbose    5
   widgetOverride energyused


Wie gesagt, das alte PWMRBad ist unten zu finden...

Morgennebel

Für mich sieht das danach aus, daß Dein HM-Wandthermostat gar nicht korrekt in FHEM eingebunden ist - es fehlen Ausgaben wie PairedTo, D-serialNo, rssi-Werte, usw.

Im Aktor sind die zu sehen. Was für eine "Funkantenne" nimmst Du als CUL_HM?

Du bist ja außerdem noch ein fhem.cfg Selbsteditierer :-(

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

wowogiengen

Hallo,
ich wollte zu Beginn die CFG-Dateien etwas strukturieren. Das habe ich aber irgendwann dann sein lassen. Mag sein, dass die jetzt immer noch aufgeteilt sind, aber ich editiere da nix mehr dran rum :-)
Dass die Ausgaben wie PairedTo, D-serialNo, rssi-Werte, usw. fehlen, wird wohl daran liegen, dass HzgStatusBad nur ein Channel des HzgThermostatBad ist  :P

Als Funkantenne habe ich den USB-CUL von Busware, und habe eine 30cm Stabantenne angelötet, anstelle dem Drahtstummel.

Ich hab jetzt seit heute früh ja wieder die Basis-Einstellungen drin vom  PWMR-Modul, und jetzt hat der Aktor ausgeschalten, als ich die Solltemperatur auf 25°C runtergenommen habe...
Werde sie gleich mal wieder auf 30 °C hochnehmen und dann sehen was passiert...

Viele Grüße
Wolfgang

Morgennebel

Zitat von: wowogiengen am 18 Oktober 2017, 11:02:40
Dass die Ausgaben wie PairedTo, D-serialNo, rssi-Werte, usw. fehlen, wird wohl daran liegen, dass HzgStatusBad nur ein Channel des HzgThermostatBad ist  :P

Du hast den list auf das Gerät geschickt, oder? Bei mir stehen da viel mehr Informationen...

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

wowogiengen

Hallo,
nein, das List HzgThermostatBad ist hier:

Internals:
   CFGFN      HzgThermostatBad.cfg
   DEF        4596C0
   Funkantenne_MSGCNT 304
   Funkantenne_RAWMSG A0C6084704596C000000000E931::-72:Funkantenne
   Funkantenne_RSSI -72
   Funkantenne_TIME 2017-10-18 11:10:49
   IODev      Funkantenne
   LASTInputDev Funkantenne
   MSGCNT     304
   NAME       HzgThermostatBad
   NOTIFYDEV  global
   NR         203
   NTFY_ORDER 50-HzgThermostatBad
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 HzgStatusBad
   channel_02 HzgSetBad
   channel_03 HM_4596C0_WindowRec
   channel_07 HzgVentilBad.out
   lastMsg    No:60 - t:70 s:4596C0 d:000000 00E931
   protLastRcv 2017-10-18 11:10:49
   protSnd    21 last_at:2017-10-18 11:02:57
   protState  CMDs_done
   rssi_Funkantenne max:-57 min:-60 avg:-58.66 cnt:12 lst:-59
   rssi_at_Funkantenne lst:-72 avg:-71.5 cnt:304 min:-82 max:-66.5
   READINGS:
     2017-10-18 06:20:54   Activity        alive
     2017-10-18 11:02:56   CommandAccepted yes
     2017-09-27 19:12:00   D-firmware      1.3
     2017-09-27 19:12:00   D-serialNr      NEQ0126166
     2017-09-27 20:27:12   PairedTo        0xF11034
     2017-09-27 20:27:12   R-btnLock       off
     2017-09-27 20:27:12   R-burstRx       on
     2017-09-27 20:27:12   R-cyclicInfoMsg on
     2017-09-27 20:27:12   R-cyclicInfoMsgDis 0
     2017-09-27 20:27:12   R-globalBtnLock off
     2017-09-27 20:27:12   R-localResDis   off
     2017-09-27 20:27:12   R-lowBatLimitRT 2.2 V
     2017-09-27 20:27:12   R-modusBtnLock  off
     2017-09-27 20:27:12   R-pairCentral   0xF11034
     2017-09-27 20:27:12   RegL_00.        01:01 02:01 09:01 0A:F1 0B:10 0C:34 0F:00 11:00  12:16 16:00 18:00 19:00 1A:00 00:00
     2017-09-27 20:29:51   RegL_07.
     2017-10-18 11:03:03   battery         ok
     2017-10-18 11:03:03   batteryLevel    2.5
     2017-10-18 11:03:03   desired-temp    29.0
     2017-10-18 11:03:03   measured-temp   23.3
     2017-10-18 11:02:57   state           CMDs_done
     2017-10-17 23:49:17   time-request    -
   helper:
     HM_CMDNR   96
     PONtest    1
     cSnd       11F110344596C086043A,11F110344596C086043A
     mId        00AD
     rxType     6
     supp_Pair_Rep 0
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     io:
       newChn     +4596C0,00,00,00
       nextSend   1508317849.37179
       prefIO
       rxt        0
       vccu
       p:
         4596C0
         00
         00
         00
     mRssi:
       mNo        60
       io:
         Funkantenne -70
     prt:
       awake      0
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf
       qReqStat
     role:
       dev        1
     rssi:
       Funkantenne:
         avg        -58.6666666666667
         cnt        12
         lst        -59
         max        -57
         min        -60
       at_Funkantenne:
         avg        -71.5049342105263
         cnt        304
         lst        -72
         max        -66.5
         min        -82
     shRegW:
       07         02
     tmpl:
Attributes:
   IODev      Funkantenne
   actCycle   004:00
   actStatus  alive
   autoReadReg 5_readMissing
   event-min-interval .*:900
   event-on-change-reading .*
   expert     251_anything
   firmware   1.3
   model      HM-TC-IT-WM-W-EU
   msgRepeat  1
   room       hidden
   serialNr   NEQ0126166
   subType    thermostat
   webCmd     getConfig:clear msgEvents

Morgennebel

Das entspricht sehr genau meiner Konfiguration (nur mit leicht anderen Firmware-Versionen). Ich poste für Dich mal meine Definitionen für einen Raum:

PWMR OG Flur:

Internals:
   ACTOR      HM_OG.FLUR_SwRechts_FBFlur
   CFGFN
   DEF        PWM.FussbodenHeizung 1,0  HM_OG.FLUR_Wandthermostat:measured-temp HM_OG.FLUR_SwRechts_FBFlur dummy 1:0.8:0.4,5:0.5,10
   INTERVAL   300
   IODev      PWM.FussbodenHeizung
   NAME       PW_RoomFlurOG
   NR         462
   STATE      From HM_OG.FLUR_Wandthermostat
   TEMPSENSOR HM_OG.FLUR_Wandthermostat:measured-temp
   TYPE       PWMR
   WINDOW
   a_regexp_on on
   actor      HM_OG.FLUR_SwRechts_FBFlur
   c_PID_DFactor 0.5
   c_PID_DLookBackCnt 10
   c_PID_IFactor 0.4
   c_PID_ILookBackCnt 5
   c_PID_PFactor 0.8
   c_PID_useit 1
   c_autoCalcTemp 1
   c_desiredTempFrom HM_OG.FLUR_Wandthermostat:desired-temp
   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
   d_name     HM_OG.FLUR_Wandthermostat
   d_reading  desired-temp
   d_regexpTemp (\d[\d\.]+)
   h_deltaTemp 2.5
   h_deltaTemp_D 2.5
   p_actor    HM_OG.FLUR_SwRechts_FBFlur
   p_factor   1,0
   p_pid      1:0.8:0.4,5:0.5,10
   p_tsensor  HM_OG.FLUR_Wandthermostat:measured-temp
   p_window   dummy
   t_reading  measured-temp
   t_regexp   ([\d\.]+)
   t_sensor   HM_OG.FLUR_Wandthermostat
   w_regexp   .*Open.*
   windows    dummy
   READINGS:
     2017-10-18 11:17:15   PID_DVal        0.00
     2017-10-18 11:17:15   PID_IVal        -1
     2017-10-18 11:17:15   PID_PVal        0.00
     2017-10-18 11:17:15   PID_PWMOnTime   00:00
     2017-10-18 11:17:15   PID_PWMPulse    0
     2017-10-11 11:41:41   actorState      unknown
     2017-10-18 11:15:32   desired-temp    19.0
     2017-10-18 11:17:15   desired-temp-used 19.0
     2017-10-18 11:17:15   energyused      000000000000000000000000000000
     2017-10-18 11:17:15   energyusedp     0.0
     2017-10-11 11:18:44   lastswitch      1507713524.61779
     2017-10-18 11:17:15   oldpulse        0
     2017-10-18 11:17:15   temperature     21.5
   helper:
     PID_D_previousTemps:
       21.5
       21.5
       21.5
       21.5
       21.5
       21.5
       21.5
       21.5
       21.5
       21.5
     PID_I_previousTemps:
       21.5
       21.5
       21.5
       21.5
       21.5
Attributes:
   desiredTempFrom HM_OG.FLUR_Wandthermostat:desired-temp
   frostProtect 0
   room       EG.HWR,OG.Flur


Die DEF aus dem Editor ist:

PWM.FussbodenHeizung 1,0 HM_OG.FLUR_Wandthermostat:measured-temp HM_OG.FLUR_SwRechts_FBFlur dummy 1:0.8:0.4,5:0.5,10

Der Aktor ist HM_OG.FLUR_SwRechts_FBFlur. Beachte bitte des desiredTempFrom Attribut im PWMR.

Mein PWM:


Internals:
   CFGFN
   CYCLETIME  900
   DEF        60 900 180 1 4,4 2,1,0 RP_EG.HWR.FBPumpe_Sw,0,915,on,300
   INTERVAL   60
   MINONOFFTIME 180
   MaxPulse   1
   MaxSwitchOffPerCycle 4
   MaxSwitchOnPerCycle 4
   NAME       PWM.FussbodenHeizung
   NR         458
   NoRoomsToStayOff 1
   NoRoomsToStayOn 2
   NoRoomsToStayOnThreshold 0
   OverallHeatingSwitch RP_EG.HWR.FBPumpe_Sw
   OverallHeatingSwitchTT_maxTemp 40
   OverallHeatingSwitchTT_reading temperature
   OverallHeatingSwitchTT_t_regexp (\d[\d\.]+)
   OverallHeatingSwitchTT_tsensor EG.Heizung.Mischer.Vorlauf
   OverallHeatingSwitch_delayTimeOn 300
   OverallHeatingSwitch_followUpTime 915
   OverallHeatingSwitch_regexp_on on
   OverallHeatingSwitch_roomBased on
   OverallHeatingSwitch_threshold 0
   STATE      lastrun: 2017-10-18 11:18:16
   TYPE       PWM
   p_cycletime 900
   p_interval 60
   p_maxPulse 1
   p_minOnOfftime 180
   p_overallHeatingSwitch RP_EG.HWR.FBPumpe_Sw,0,915,on,300
   p_roomsMinOnOffThreshold 2,1,0
   READINGS:
     2017-10-18 09:55:54   OverallHeatingSwitch off
     2017-10-07 16:00:40   OverallHeatingSwitchTT_Off 0
     2017-10-18 11:18:16   OverallHeatingSwitchWaitBeforeOn
     2017-10-18 11:18:16   OverallHeatingSwitchWaitUntilOff
     2017-10-18 11:18:16   avgPulseRoomsOff 0.00
     2017-10-18 11:18:16   avgPulseRoomsOn 0
     2017-10-18 11:18:16   lastrun         calculating
     2017-10-18 11:18:16   pulseAvg        0.00
     2017-10-18 11:18:16   pulseAvg2       0.00
     2017-10-18 11:18:16   pulseAvg3       0.00
     2017-10-18 11:18:16   pulseMax        0
     2017-10-18 11:18:16   pulseSum        0
     2017-10-18 11:18:16   roomsActive     9
     2017-10-18 11:18:16   roomsOff        9
     2017-10-18 11:18:16   roomsOn         0
     2017-10-18 11:18:16   roomsToStayOn   0
     2017-10-18 11:18:16   roomsToStayOnList
Attributes:
   disable    0
   overallHeatingSwitchThresholdTemp EG.Heizung.Mischer.Vorlauf,40
   room       EG.HWR
   valveProtectIdlePeriod 14
   verbose    2


Läuft seit dem letzten Winter großartig...

Ciao, -MN

Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Morgennebel

Deine PWMR Definition ist:

DEF        fh 1,0.11 HzgStatusBad HzgAktorBad

Ändere mal auf

DEF        fh 1,0.11 HzgStatusBad:measured-temp HzgAktorBad
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

wowogiengen

Hallo Morgennebel,

Kann es sein, dass das PWMR fürs Bad jetzt gerade Pause macht, weil 85% Einschaltdauer erreicht sind, und nach Ablauf der 900 Sekunden dann wieder anfängt? Aber das hätte man ja auch in den anderen PWMR-Instanzen sehen müssen?
Ich hol mir mal das Log vom PWMR...

Viele Grüße

Wolfgang

wowogiengen

Zitat von: Morgennebel am 18 Oktober 2017, 11:21:12
Deine PWMR Definition ist:

DEF        fh 1,0.11 HzgStatusBad HzgAktorBad

Ändere mal auf

DEF        fh 1,0.11 HzgStatusBad:measured-temp HzgAktorBad
Hallo Morgennebel,
ich hab mich grade gewundert, warums nicht tut...
es muss heissen:
DEF        fh 1,0.11 HzgStatusBad:temperature HzgAktorBad
[/quote]

Weil mein Status ist der Wetter-Channel und nicht das ganze Device:


defmod HzgThermostatBad CUL_HM 4596C0
defmod HzgStatusBad CUL_HM 4596C001


Morgennebel

Ich glaube, Du machst da was nicht richtig.

defmod wird nicht für das anlegen von Devices benutzt. Und HM-Geräte werden auf dem Gerät erzeugt und legen dann mehrere Channels automatisch selbst an.

Das hier ist das DEFINE für meinen HM-Wandthermostaten im OG.Flur:


Internals:
   CFGFN
   DEF        35A426
   HMLAN1_MSGCNT 9882
   HMLAN1_RAWMSG E35A426,0000,1EBD460F,FF,FFC3,C6847035A42600000000D93C
   HMLAN1_RSSI -61
   HMLAN1_TIME 2017-10-18 19:59:59
   HMLAN2_MSGCNT 9779
   HMLAN2_RAWMSG E35A426,0000,F1091053,FF,FFB6,C6847035A42600000000D93C
   HMLAN2_RSSI -74
   HMLAN2_TIME 2017-10-18 19:59:59
   IODev      HMLAN1
   LASTInputDev HMLAN2
   MSGCNT     19661
   NAME       HM_OG.FLUR_Wandthermostat
   NOTIFYDEV  global
   NR         118
   NTFY_ORDER 50-OG.Flur.Wandthermostat
   STATE      21.7/20.0 C° V:0.0%
   TYPE       CUL_HM
   channel_01 HM_OG.FLUR_Wandthermostat_Weather
   channel_02 HM_OG.FLUR_Wandthermostat_Climate
   channel_03 HM_OG.FLUR_Wandthermostat_WindowRec
   channel_06 HM_OG.FLUR_Wandthermostat_remote
   channel_07 HM_OG.FLUR_Wandthermostat_SwitchTr
   lastMsg    No:C6 - t:70 s:35A426 d:000000 00D93C
   protCmdDel 11
   protCmdPend 1 CMDs pending
   protCondBurst off
   protIOerr  1 last_at:2017-10-15 15:01:29
   protLastRcv 2017-10-18 19:59:59
   protResnd  12 last_at:2017-10-17 15:01:12
   protResndFail 2 last_at:2017-10-16 15:59:14
   protSnd    197 last_at:2017-10-18 15:01:17
   protState  CMDs_pending
   rssi_HMLAN1 max:-53 cnt:7 min:-56 avg:-54.14 lst:-54
   rssi_at_HMLAN1 lst:-61 avg:-60.3 min:-70 max:-58 cnt:9882
   rssi_at_HMLAN2 avg:-78.56 cnt:9779 max:-69 min:-102 lst:-74
   READINGS:
     2017-10-10 11:54:27   Activity        alive
     2017-10-18 15:00:37   CommandAccepted yes
     2016-11-24 19:01:30   D-firmware      1.3
     2016-11-24 19:01:30   D-serialNr      LEQ1481207
     2017-09-05 09:37:15   PairedTo        0x1A2B3C
     2015-04-25 17:47:47   R-burstRx       on
     2015-04-25 17:47:47   R-cyclicInfoMsg on
     2016-07-06 17:18:08   R-cyclicInfoMsgDis 0
     2015-04-25 17:47:47   R-pairCentral   0x1A2B3C
     2017-09-05 09:37:15   RegL_00.        01:01 02:01 09:01 0A:1A 0B:2B 0C:3C 0F:00 11:00  12:16 16:00 18:00 19:00 1A:00 00:00
     2017-10-18 11:13:48   RegL_07.
     2017-10-18 19:36:45   battery         ok
     2017-10-18 19:36:45   batteryLevel    2.9
     2017-10-18 19:36:45   desired-temp    20.0
     2017-10-18 19:36:45   measured-temp   21.7
     2017-09-05 09:37:05   powerOn         2017-09-05 09:37:05
     2017-09-05 09:37:05   recentStateType info
     2017-09-05 09:37:19   sabotageAttack_ErrIoAttack cnt 3
     2017-10-18 15:01:21   state           CMDs_pending
     2017-10-18 01:37:53   time-request    -
   cmdStack:
     ++A0111A2B3C35A4268002
   helper:
     HM_CMDNR   198
     PONtest    1
     cSnd       011A2B3C35A42602040000000008,011A2B3C35A42602040000000009
     mId        00AD
     rxType     6
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +35A426,00,00,00
       nextSend   1508349599.63783
       rxt        0
       vccu       vccu
       p:
         35A426
         00
         00
         00
       prefIO:
         HMLAN1
     mRssi:
       mNo        C6
       io:
         HMLAN1     -59
         HMLAN2     -74
     prt:
       awake      0
       bErr       0
       brstWu     0
       sProc      2
     q:
       qReqConf
       qReqStat
     role:
       dev        1
     rssi:
       HMLAN1:
         avg        -54.1428571428571
         cnt        7
         lst        -54
         max        -53
         min        -56
       at_HMLAN1:
         avg        -60.3031774944342
         cnt        9882
         lst        -61
         max        -58
         min        -70
       at_HMLAN2:
         avg        -78.5623274363432
         cnt        9779
         lst        -74
         max        -69
         min        -102
     shRegW:
       07         02
     tmpl:
Attributes:
   IODev      HMLAN1
   IOgrp      vccu:HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.3
   fp_FPHeizungsanlage 253,385,0,
   group      OG,Wandthermostat
   model      HM-TC-IT-WM-W-EU
   msgRepeat  1
   room       OG.Flur,SYS_Homematic
   serialNr   LEQ1481207
   stateFormat { my $mtemp = ReadingsVal($name,"measured-temp",0); my $dtemp = ReadingsVal($name,"desired-temp",0); return $dtemp eq "off" ? sprintf("%.1f/off C° V:0.0%%",$mtemp) : sprintf("%.1f/%.1f C° V:0.0%%",$mtemp,$dtemp) }
   subType    thermostat
   webCmd     getConfig:clear msgEvents


Dort siehst Du die Channel:


   channel_01 HM_OG.FLUR_Wandthermostat_Weather
   channel_02 HM_OG.FLUR_Wandthermostat_Climate
   channel_03 HM_OG.FLUR_Wandthermostat_WindowRec
   channel_06 HM_OG.FLUR_Wandthermostat_remote
   channel_07 HM_OG.FLUR_Wandthermostat_SwitchTr


Bei HM nimmst Du nicht direkt den Channel.

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

wowogiengen

Hallo,
das defmod kam nur deswegen, weil ich es in der Geräteanzeige angeklickt habe...
alles was zu dem Raumthermostat gehört ist bei mir so definiert:


define HzgThermostatBad CUL_HM 4596C0
attr HzgThermostatBad IODev Funkantenne
attr HzgThermostatBad actCycle 004:00
attr HzgThermostatBad actStatus alive
attr HzgThermostatBad autoReadReg 5_readMissing
attr HzgThermostatBad event-min-interval .*:900
attr HzgThermostatBad event-on-change-reading .*
attr HzgThermostatBad expert 251_anything
attr HzgThermostatBad firmware 1.3
attr HzgThermostatBad model HM-TC-IT-WM-W-EU
attr HzgThermostatBad msgRepeat 1
attr HzgThermostatBad room hidden
attr HzgThermostatBad serialNr NEQ0126166
attr HzgThermostatBad subType thermostat
attr HzgThermostatBad webCmd getConfig:clear msgEvents

define FileLog_HzgThermostatBad FileLog log/Bad-%Y-%m.log HzgThermostatBad:.*
attr FileLog_HzgThermostatBad logtype text
attr FileLog_HzgThermostatBad room LogFiles,System

define HzgStatusBad CUL_HM 4596C001
attr HzgStatusBad userattr room_map structexclude
attr HzgStatusBad event-min-interval .*:900
attr HzgStatusBad event-on-change-reading .*
attr HzgStatusBad event-on-update-reading .*
attr HzgStatusBad group Heizung
attr HzgStatusBad model HM-TC-IT-WM-W-EU
attr HzgStatusBad peerIDs 00000000,
attr HzgStatusBad room Bad,Heizung,System
attr HzgStatusBad stateFormat Temperatur: temperature C° - Luftfeucht: humidity %

define FileLog_HzgStatusBad FileLog ./log/Bad-%Y-%m.log HzgStatusBad:.*
attr FileLog_HzgStatusBad group FileLog
attr FileLog_HzgStatusBad icon time_note
attr FileLog_HzgStatusBad logtype text
attr FileLog_HzgStatusBad room LogFiles,System

define HzgSetBad CUL_HM 4596C002
attr HzgSetBad userattr blablub blablub_map structexclude
attr HzgSetBad alias Bad
attr HzgSetBad event-on-change-reading .*
attr HzgSetBad expert 251_anything
attr HzgSetBad group Raumtemperaturen
attr HzgSetBad icon icoTemp
attr HzgSetBad model HM-TC-IT-WM-W-EU
attr HzgSetBad peerIDs 00000000,
attr HzgSetBad room Bad,Heizung
attr HzgSetBad stateFormat Ist: measured-temp °C Soll: desired-temp °C (rel. Feuchte: humidity %) Modus:controlMode
attr HzgSetBad tempListTmpl HzgSetBad
attr HzgSetBad verbose 3
attr HzgSetBad webCmd desired-temp:controlMode:tempTmplSet
attr HzgSetBad widgetOverride desired-temp:off,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,on

define HM_4596C0_WindowRec CUL_HM 4596C003
attr HM_4596C0_WindowRec model HM-TC-IT-WM-W-EU
attr HM_4596C0_WindowRec peerIDs 00000000,
attr HM_4596C0_WindowRec room hidden
attr HM_4596C0_WindowRec stateFormat last:trigLast


define HzgVentilBad.out CUL_HM 4596C007
attr HzgVentilBad.out event-on-change-reading .*
attr HzgVentilBad.out expert 251_anything
attr HzgVentilBad.out group Heizung
attr HzgVentilBad.out model HM-TC-IT-WM-W-EU
attr HzgVentilBad.out peerIDs 00000000,
attr HzgVentilBad.out room System
attr HzgVentilBad.out verbose 3

Ich habe die einzelnen Channels nach dem automatischen Anlegen durch fhem umbenannt.
Was macht es für einen Unterschied, ob ich bei PWMR

define PWMRBad PWMR fh 1,0.11 HzgStatusBad:temperature HzgAktorBad
oder
define PWMRBad PWMR fh 1,0.11 HzgThermostatBad:measured-temp HzgAktorBad

schreibe? Der Temperaturwert dürfte doch der selbe sein?

Das einzige, was ich mir grade bisschen kontraproduktiv vorstelle ist, wenn man für die Temperaturen einen event-aggregator definiert, der die Temperaturen ein wenig glättet?

Viele Grüße
Wolfgang