Gelöst: Verständnisproblem DOIF_Readings

Begonnen von peter_w, 12 Januar 2020, 17:37:25

Vorheriges Thema - Nächstes Thema

peter_w

Hallo zusammen,

ich möchte bei einer Temperatur darauf reagieren wenn ein größerer Einbruch erfolgt.
Der Sensor den ich beobachten will ist:   KHZ_SchalterSonoff_HZSchalter.DHW_Temp 

list KHZ_SchalterSonoff_HZSchalter
Internals:
   DEF        ([$SELF:mybutton] eq "Off")
  (set KHZ_SchalterSonoff_DHWSchalter off)                              ## Manual_OFF
DOELSEIF ([$SELF:mybutton] eq "On")
  (set KHZ_SchalterSonoff_DHWSchalter on)                               ## Manual_ON
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] == 0) 
  (set KHZ_SchalterSonoff_DHWSchalter off)                              ## AWAY nobody home   
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
          [03:00 - 17:00] and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 36 )  ## EMERGENCY  Auto, somebody home and tank to cold
  (set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
         ([03:00 - |AT] or [10:00 - 11:30|AT] or [18:00 - 22:00|AT]) and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 42 )
  (set KHZ_SchalterSonoff_DHWSchalter on) ## AUTO_ON_AT
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
          ([06:00 - 07:30|WE] or [11:00 - 13:00|WE] or [18:00 - 22:00|WE]) and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 42 )
    ## AUTO_ON_WE
  (set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and [deltaDHW] < -3)
    (set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [KHZ_SchalterSonoff_DHWSchalter] eq "ON" and
          [KHZ_SchalterSonoff_DHWSchalter:state:sec] > 3600 )   
  (set KHZ_SchalterSonoff_DHWSchalter off )
   DOIFDEV    ^global$|^deltaDHW$|^Bewohner$|^KHZ_SchalterSonoff_DHWSchalter$|^DoKHzDhwTime$|^KHZ_SchalterSonoff_HZSchalter$
   FUUID      5cfcd637-f33f-9f5a-2e2e-33ba4b77f4e0c9ab
   MODEL      FHEM
   NAME       DoKHzDhwTime
   NR         1074
   NTFY_ORDER 50-DoKHzDhwTime
   STATE      initialized
   TYPE       DOIF
   VERSION    20744 2019-12-14 10:26:26
   .attraggr:
   .attrminint:
   DOIF_Readings:
     deltaDHW   ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp','','diff2')
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1578846889.13401
           VALUE      initialized
   READINGS:
     2020-01-12 17:35:35   Device          KHZ_SchalterSonoff_HZSchalter
     2020-01-12 15:38:15   KHZ_SchalterSonoff_HZSchalter error in DOIF_Readings: Bareword "DHW_Temp" not allowed while "strict subs" in use, line 1.

     2020-01-12 17:34:48   cmd             0
     2020-01-12 17:21:30   deltaDHW        0
     2020-01-12 17:35:35   e_KHZ_SchalterSonoff_HZSchalter_DHW_Temp 53.8
     2020-01-12 17:34:48   mode            enabled
     2019-10-11 09:32:42   mybutton        Auto
     2020-01-12 17:34:48   state           initialized
     2020-01-12 17:34:49   timer_01_c04    13.01.2020 03:00:00
     2020-01-12 17:34:49   timer_02_c04    13.01.2020 17:00:00
     2020-01-12 17:34:49   timer_03_c05    13.01.2020 03:00:00|AT
     2020-01-12 17:34:49   timer_04_c05    13.01.2020 10:00:00|AT
     2020-01-12 17:34:49   timer_05_c05    13.01.2020 11:30:00|AT
     2020-01-12 17:34:49   timer_06_c05    12.01.2020 18:00:00|AT
     2020-01-12 17:34:49   timer_07_c05    12.01.2020 22:00:00|AT
     2020-01-12 17:34:49   timer_08_c06    13.01.2020 06:00:00|WE
     2020-01-12 17:34:49   timer_09_c06    13.01.2020 07:30:00|WE
     2020-01-12 17:34:49   timer_10_c06    13.01.2020 11:00:00|WE
     2020-01-12 17:34:49   timer_11_c06    13.01.2020 13:00:00|WE
     2020-01-12 17:34:49   timer_12_c06    12.01.2020 18:00:00|WE
     2020-01-12 17:34:49   timer_13_c06    12.01.2020 22:00:00|WE
   Regex:
     DOIF_Readings:
       KHZ_SchalterSonoff_HZSchalter:
         deltaDHW:
           DHW_Temp   ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
     accu:
       KHZ_SchalterSonoff_HZSchalter:
         accu:
           DHW_Temp   ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
     cond:
       Bewohner:
         2:
           residentsHome ^Bewohner$:^residentsHome:
         3:
           residentsHome ^Bewohner$:^residentsHome:
         4:
           residentsHome ^Bewohner$:^residentsHome:
         5:
           residentsHome ^Bewohner$:^residentsHome:
         6:
           residentsHome ^Bewohner$:^residentsHome:
       DoKHzDhwTime:
         0:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         1:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         2:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         3:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         4:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         5:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         6:
           mybutton   ^DoKHzDhwTime$:^mybutton:
         7:
           mybutton   ^DoKHzDhwTime$:^mybutton:
       KHZ_SchalterSonoff_DHWSchalter:
         7:
           &STATE     ^KHZ_SchalterSonoff_DHWSchalter$
           state      ^KHZ_SchalterSonoff_DHWSchalter$:^state:
       KHZ_SchalterSonoff_HZSchalter:
         0:
         1:
         2:
         3:
           DHW_Temp   ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
         4:
           DHW_Temp   ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
         5:
           DHW_Temp   ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
         6:
         7:
       deltaDHW:
         6:
           &STATE     ^deltaDHW$
   accu:
     KHZ_SchalterSonoff_HZSchalter DHW_Temp:
       dim        2
       value:
         53.8
         53.8
   attr:
     cmdState:
       0:
         OFF
       1:
         ON
       2:
         AWAY
       3:
         EMERGENCY
       4:
         AUTO_ON_AT
       5:
         AUTO_ON_WE
       6:
         AUTO_SHOWER
       7:
         STOP
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Off"
     1          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "On"
     2          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') == 0
     3          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and            ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 36
     4          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and           (::DOIF_time_once($hash,2,$wday,"AT") or ::DOIF_time($hash,3,4,$wday,$hms,"AT") or ::DOIF_time($hash,5,6,$wday,$hms,"AT")) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 42
     5          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and            (::DOIF_time($hash,7,8,$wday,$hms,"WE") or ::DOIF_time($hash,9,10,$wday,$hms,"WE") or ::DOIF_time($hash,11,12,$wday,$hms,"WE")) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 42
     6          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and ::InternalDoIf($hash,'deltaDHW','STATE') < -3
     7          ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::InternalDoIf($hash,'KHZ_SchalterSonoff_DHWSchalter','STATE') eq "ON" and            ::ReadingSecDoIf('KHZ_SchalterSonoff_DHWSchalter','state') > 3600
   days:
     10         WE
     11         WE
     12         WE
     2          AT
     3          AT
     4          AT
     5          AT
     6          AT
     7          WE
     8          WE
     9          WE
   do:
     0:
       0          set KHZ_SchalterSonoff_DHWSchalter off
     1:
       0          set KHZ_SchalterSonoff_DHWSchalter on
     2:
       0          set KHZ_SchalterSonoff_DHWSchalter off
     3:
       0          set KHZ_SchalterSonoff_DHWSchalter on
     4:
       0          set KHZ_SchalterSonoff_DHWSchalter on
     5:
       0          set KHZ_SchalterSonoff_DHWSchalter on
     6:
       0          set KHZ_SchalterSonoff_DHWSchalter on
     7:
       0          set KHZ_SchalterSonoff_DHWSchalter off
     8:
   helper:
     DEVFILTER  ^global$|^deltaDHW$|^Bewohner$|^KHZ_SchalterSonoff_DHWSchalter$|^DoKHzDhwTime$|^KHZ_SchalterSonoff_HZSchalter$
     NOTIFYDEV  global|deltaDHW|Bewohner|KHZ_SchalterSonoff_DHWSchalter|DoKHzDhwTime|KHZ_SchalterSonoff_HZSchalter
     event      ON,Kessel_Temp: 57.9,HK1_R_Temp: 38.2,DHW_Temp: 53.8,HK1_V_Temp: 50.9
     globalinit 1
     last_timer 13
     sleeptimer -1
     triggerDev KHZ_SchalterSonoff_HZSchalter
     triggerEvents:
       ON
       Kessel_Temp: 57.9
       HK1_R_Temp: 38.2
       DHW_Temp: 53.8
       HK1_V_Temp: 50.9
     triggerEventsState:
       state: ON
       Kessel_Temp: 57.9
       HK1_R_Temp: 38.2
       DHW_Temp: 53.8
       HK1_V_Temp: 50.9
   internals:
     all         deltaDHW:STATE KHZ_SchalterSonoff_DHWSchalter:STATE
   interval:
     0          -1
     1          0
     10         9
     11         -1
     12         11
     3          -1
     4          3
     5          -1
     6          5
     7          -1
     8          7
     9          -1
   intervalfunc:
   localtime:
     0          1578880800
     1          1578931200
     10         1578916800
     11         1578848400
     12         1578862800
     2          1578880800
     3          1578906000
     4          1578911400
     5          1578848400
     6          1578862800
     7          1578891600
     8          1578897000
     9          1578909600
   readings:
     all         DoKHzDhwTime:mybutton Bewohner:residentsHome KHZ_SchalterSonoff_HZSchalter:DHW_Temp KHZ_SchalterSonoff_DHWSchalter:state
   realtime:
     0          03:00:00
     1          17:00:00
     10         13:00:00
     11         18:00:00
     12         22:00:00
     2          03:00:00
     3          10:00:00
     4          11:30:00
     5          18:00:00
     6          22:00:00
     7          06:00:00
     8          07:30:00
     9          11:00:00
   time:
     0          03:00:00
     1          17:00:00
     10         13:00:00
     11         18:00:00
     12         22:00:00
     2          03:00:00
     3          10:00:00
     4          11:30:00
     5          18:00:00
     6          22:00:00
     7          06:00:00
     8          07:30:00
     9          11:00:00
   timeCond:
     0          3
     1          3
     10         5
     11         5
     12         5
     2          4
     3          4
     4          4
     5          4
     6          4
     7          5
     8          5
     9          5
   timer:
     0          0
     1          0
     10         0
     11         0
     12         0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timers:
     3           0  1
     4           2  3  4  5  6
     5           7  8  9  10  11  12
   trigger:
   triggertime:
     1578848400:
       localtime  1578848400
       hash:
     1578862800:
       localtime  1578862800
       hash:
     1578880800:
       localtime  1578880800
       hash:
     1578891600:
       localtime  1578891600
       hash:
     1578897000:
       localtime  1578897000
       hash:
     1578906000:
       localtime  1578906000
       hash:
     1578909600:
       localtime  1578909600
       hash:
     1578911400:
       localtime  1578911400
       hash:
     1578916800:
       localtime  1578916800
       hash:
     1578931200:
       localtime  1578931200
       hash:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings deltaDHW:[KHZ_SchalterSonoff_HZSchalter:DHW_Temp:diff2]
   alias      DHW Betriebsart
   cmdState   OFF|ON|AWAY|EMERGENCY|AUTO_ON_AT|AUTO_ON_WE|AUTO_SHOWER|STOP
   readingList mybutton
   room       Heizung
   setList    mybutton:Auto,On,Off
   verbose    5
   webCmd     mybutton


Da ich die Temperaturdifferenz nicht beobachten kann, habe ich versucht daraus ain reading zu machen:

DOIF_Readings deltaDHW:[KHZ_SchalterSonoff_HZSchalter:DHW_Temp:diff2]
was zur Fehlermeldung : "error in DOIF_Readings: Bareword "DHW_Temp" not allowed while "strict subs" in use, line 1."

führt.

Kann mir Jemand einen Tip geben was ich falsch mache ?




Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O

amenomade

Zitat von: peter_w am 12 Januar 2020, 17:37:25
Der Sensor den ich beobachten will ist:   KHZ_SchalterSonoff_HZSchalter.DHW_Temp

Ist DHW_Temp ein Reading vom Device KHZ_SchalterSonoff_HZSchalter, oder heisst das Device wirklich KHZ_SchalterSonoff_HZSchalter.DHW_Temp ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

peter_w

DHW_Temp  ist ein Reading von KHZ_SchalterSonoff_HZSchalter

list KHZ_SchalterSonoff_HZSchalter :
Internals:
   FUUID      5c45b740-f33f-9f5a-25e3-da65ae17bb4d0303
   IODev      MqttBroker
   NAME       KHZ_SchalterSonoff_HZSchalter
   NR         1014
   STATE      ON
   TYPE       MQTT_DEVICE
   .attraggr:
   .attrminint:
   .qos:
     *          0
   .retain:
     *          0
   .userReadings:
     HASH(0x4949188)
     HASH(0x4a1ae28)
     HASH(0x4a1aeb8)
     HASH(0x4a1af48)
   Helper:
     DBLOG:
       DHW_Temp:
         logdb:
           TIME       1578851103.97338
           VALUE      50.8
       HK1_R_Temp:
         logdb:
           TIME       1578851103.97338
           VALUE      39.5
       HK1_V_Temp:
         logdb:
           TIME       1578851103.97338
           VALUE      51.3
       Kessel_Temp:
         logdb:
           TIME       1578851103.97338
           VALUE      60.2
   READINGS:
     2020-01-12 18:45:03   DHW_Temp        50.8
     2020-01-12 18:41:11   DS18B20-1_Id    0000074A5540
     2020-01-12 18:41:11   DS18B20-1_Temperature 60.2
     2020-01-12 18:41:11   DS18B20-2_Id    0000074A6010
     2020-01-12 18:41:11   DS18B20-2_Temperature 39.5
     2020-01-12 18:41:11   DS18B20-3_Id    0000074A791D
     2020-01-12 18:41:11   DS18B20-3_Temperature 50.8
     2020-01-12 18:41:11   DS18B20-4_Id    0000074AC1E1
     2020-01-12 18:41:11   DS18B20-4_Temperature 51.3
     2020-01-12 18:45:03   HK1_R_Temp      39.5
     2020-01-12 18:45:03   HK1_V_Temp      51.3
     2020-01-12 18:45:03   Kessel_Temp     60.2
     2020-01-12 18:41:11   SENSOR          {"Time":"2020-01-12T18:41:10","DS18B20-1":{"Id":"0000074A5540","Temperature":60.2},"DS18B20-2":{"Id":"0000074A6010","Temperature":39.5},"DS18B20-3":{"Id":"0000074A791D","Temperature":50.8},"DS18B20-4":{"Id":"0000074AC1E1","Temperature":51.3},"TempUnit":"C"}
     2020-01-12 18:41:11   TempUnit        C
     2020-01-12 18:41:11   Time            2020-01-12T18:41:10
     2020-01-12 18:45:03   state           ON
     2020-01-12 18:45:03   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      fhem/KHZ/Schalter/cmnd/sonoff/power1
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     fhem/KHZ/Schalter/tele/SENSOR
     fhem/KHZ/Schalter/stat/POWER1
   subscribeExpr:
     ^fhem\/KHZ\/Schalter\/tele\/SENSOR$
     ^fhem\/KHZ\/Schalter\/stat\/POWER1$
   subscribeQos:
     fhem/KHZ/Schalter/stat/POWER1 0
     fhem/KHZ/Schalter/tele/SENSOR 0
   subscribeReadings:
     fhem/KHZ/Schalter/stat/POWER1:
       cmd       
       name       state
     fhem/KHZ/Schalter/tele/SENSOR:
       cmd       
       name       SENSOR
Attributes:
   DbLogExclude state
   IODev      MqttBroker
   alias      Heizungsschalter
   comment    http://192.168.0.69/
   devStateIcon OFF:FS20.off:ON ON:FS20.on:OFF
   publishSet on off fhem/KHZ/Schalter/cmnd/sonoff/power1
   room       Heizung,MQTT
   stateFormat state
   subscribeReading_SENSOR fhem/KHZ/Schalter/tele/SENSOR
   subscribeReading_state fhem/KHZ/Schalter/stat/POWER1
   userReadings Kessel_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-1_Temperature",0);;}, HK1_R_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-2_Temperature",0);;}, DHW_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-3_Temperature",0);;}, HK1_V_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-4_Temperature",0);;}
   webCmd     ON:OFF
Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O

Damian

Die Meldung ist relativ alt, von: 2020-01-12 15:38:15

Um 2020-01-12 17:21:30   wurde deltaDHW  korrekt berechnet

Ich gehe davon aus, dass du zwischendurch eine falsche Definition hattest

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

peter_w

OK, vielen Dank. Manchmal sieht man den Wald vor Bäumen nicht.
Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O