FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Mikoom am 27 Januar 2021, 13:43:52

Titel: [GELÖST] Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 13:43:52
Hallo zusammen,

ich habe mir über die Zeit, auch durch die kompetente Hilfe hier im Forum eine Hausautomation aufgebaut. Angefangen habe ich mit EnOcean und bin dann bei MQTT2 mit Sonoffs gelandet. Verschiedenste Sonoffs habe ich auch tadellos laufen. Nun bin ich gerade dabei, mir eine Steuerung der Zirkulationspumpe einzurichten mit Sonoff TH10 und Sensor DS18B20. Seit Tagen suche und lese ich nach der Lösung, bin aber jetzt ratlos.

Situation ist ein MQTT2 device und ein DOIF.
Ich möchte, nur zu bestimmten Zeiten, wenn die Temp. z.B. unter 27 Grad liegt, das device einschalten. Andersherum...wenn zu bestimmten Zeiten die Temp. z.B. unter 30 Grad lieg, soll das device wieder ausgeschaltet werden. Tasmota loggt alle 300 Sekunden. Normale Zirkulationssteuerung also.

Im device wird mir der Sensor bei den readings mit der richtigen Temperatur angezeigt. Bei den internals steht aber ein anderer Wert. Der wird nur aktualisiert, wenn ich das manuell mache.

Das DOIF reagiert auch nicht. Der Schalter ist off, obwohl er lt. Temperatur und Bedingungen on sein sollte.

Das list vom device:
Internals:
   CID        SonoffIP102
   DEF        SonoffIP102
   DEVICETOPIC MQTT2_SonoffIP102
   FUUID      60112844-f33f-c791-dc4a-c2dfc4fe5f2dc44f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     23
   NAME       MQTT2_SonoffIP102
   NR         82
   STATE      21.90 °C
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 23
   myBroker_TIME 2021-01-27 13:08:16
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-01-27 13:08:16   DS18B20_Id      01192C7E71B7
     2021-01-27 13:08:16   DS18B20_Temperature 21.9
     2021-01-27 13:08:16   Heap            25
     2021-01-27 11:37:12   Hostname        SonoffIP102-2322
     2021-01-27 11:37:12   IPAddress       192.168.178.102
     2021-01-27 12:34:37   LWT             Online
     2021-01-27 13:08:16   LoadAvg         19
     2021-01-27 13:08:16   MqttCount       2
     2021-01-27 13:08:16   POWER           OFF
     2021-01-27 11:37:12   RestartReason   Software/System restart
     2021-01-27 13:08:16   Sleep           50
     2021-01-27 13:08:16   SleepMode       Dynamic
     2021-01-27 13:08:16   TempUnit        C
     2021-01-27 13:08:16   Time            2021-01-27T13:08:16
     2021-01-27 13:08:16   Uptime          0T01:31:11
     2021-01-27 13:08:16   UptimeSec       5471
     2021-01-27 11:37:12   WebServerMode   Admin
     2021-01-27 13:08:16   Wifi_AP         1
     2021-01-27 13:08:16   Wifi_BSSId      5C:49:79:21:55:2F
     2021-01-27 13:08:16   Wifi_Channel    8
     2021-01-27 13:08:16   Wifi_Downtime   0T00:00:05
     2021-01-27 13:08:16   Wifi_LinkCount  1
     2021-01-27 13:08:16   Wifi_RSSI       88
     2021-01-27 13:08:16   Wifi_SSId       FritzDualband2.4
     2021-01-27 13:08:16   Wifi_Signal     -56
     2021-01-27 09:46:21   attrTemplateVersion 20200522 or prior
     2021-01-27 11:38:14   state           set_off
Attributes:
   IODev      myBroker
   alexaName  Warmwasser
   alias      Warmwasser
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/SonoffIP102/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon ON:ios-on-green:off OFF:ios-off:on
   genericDeviceType switch
   icon       sani_water_hot
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/SonoffIP102/LWT:.* LWT
  tele/SonoffIP102/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/SonoffIP102/POWER1:.* state
  stat/SonoffIP102/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Zirkulation,MQTT2_DEVICE
   setList    off:noArg    cmnd/SonoffIP102/POWER1 0
  on:noArg     cmnd/SonoffIP102/POWER1 1
  toggle:noArg cmnd/SonoffIP102/POWER1 2
  setOtaUrl:textField cmnd/SonoffIP102/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/SonoffIP102/upgrade 1
   setStateList on off toggle
   stateFormat {sprintf "%.2f °C", ReadingsVal($name, "DS18B20_Temperature", 0)}




Und das list vom DOIF:
Internals:
   DEF        ([MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and [06:30-09:00|8] and [12:00-14:00|8] and [19:00-22:00|8] or [09:00-12:00|7] and [19:00-22:00|7]) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 30) (set MQTT2_SonoffIP102 off)
   FUUID      601145e4-f33f-c791-ad2e-7246bce3e8109200
   MODEL      FHEM
   NAME       Zirkulationsleitung
   NOTIFYDEV  global,MQTT2_SonoffIP102
   NR         83
   NTFY_ORDER 50-Zirkulationsleitung
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   READINGS:
     2021-01-27 13:08:16   Device          MQTT2_SonoffIP102
     2021-01-27 12:53:16   cmd             2
     2021-01-27 12:53:16   cmd_event       MQTT2_SonoffIP102
     2021-01-27 12:53:16   cmd_nr          2
     2021-01-27 13:08:16   e_MQTT2_SonoffIP102_DS18B20_Temperature 21.9
     2021-01-27 12:38:14   mode            enabled
     2021-01-27 12:53:16   state           cmd_2
     2021-01-27 12:38:15   timer_01_c01    28.01.2021 06:30:00|8
     2021-01-27 12:38:15   timer_02_c01    28.01.2021 09:00:00|8
     2021-01-27 12:38:15   timer_03_c01    28.01.2021 12:00:00|8
     2021-01-27 12:38:15   timer_04_c01    27.01.2021 14:00:00|8
     2021-01-27 12:38:15   timer_05_c01    27.01.2021 19:00:00|8
     2021-01-27 12:38:15   timer_06_c01    27.01.2021 22:00:00|8
     2021-01-27 12:38:15   timer_07_c01    28.01.2021 09:00:00|7
     2021-01-27 12:38:15   timer_08_c01    28.01.2021 12:00:00|7
     2021-01-27 12:38:15   timer_09_c01    27.01.2021 19:00:00|7
     2021-01-27 12:38:15   timer_10_c01    27.01.2021 22:00:00|7
   Regex:
     accu:
     cond:
       MQTT2_SonoffIP102:
         0:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
         1:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') < 27 and ::DOIF_time($hash,0,1,$wday,$hms,"8") and ::DOIF_time($hash,2,3,$wday,$hms,"8") and ::DOIF_time($hash,4,5,$wday,$hms,"8") or ::DOIF_time($hash,6,7,$wday,$hms,"7") and ::DOIF_time($hash,8,9,$wday,$hms,"7")
     1          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') > 30
   days:
     0          8
     1          8
     2          8
     3          8
     4          8
     5          8
     6          7
     7          7
     8          7
     9          7
   do:
     0:
       0          set MQTT2_SonoffIP102 on
     1:
       0          set MQTT2_SonoffIP102 off
     2:
   helper:
     DEVFILTER  ^global$|^MQTT2_SonoffIP102$
     NOTIFYDEV  global|MQTT2_SonoffIP102
     event      DS18B20_Temperature: 21.9,Time: 2021-01-27T13:08:16,TempUnit: C,DS18B20_Id: 01192C7E71B7
     globalinit 1
     last_timer 10
     sleeptimer -1
     timerdev   MQTT2_SonoffIP102
     timerevent DS18B20_Id: 01192C7E71B7,TempUnit: C,DS18B20_Temperature: 33.4,Time: 2021-01-27T12:53:16
     triggerDev MQTT2_SonoffIP102
     timerevents:
       DS18B20_Id: 01192C7E71B7
       TempUnit: C
       DS18B20_Temperature: 33.4
       Time: 2021-01-27T12:53:16
     timereventsState:
       DS18B20_Id: 01192C7E71B7
       TempUnit: C
       DS18B20_Temperature: 33.4
       Time: 2021-01-27T12:53:16
     triggerEvents:
       DS18B20_Temperature: 21.9
       Time: 2021-01-27T13:08:16
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
     triggerEventsState:
       DS18B20_Temperature: 21.9
       Time: 2021-01-27T13:08:16
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
     8          -1
     9          8
   intervalfunc:
   localtime:
     0          1611811800
     1          1611820800
     2          1611831600
     3          1611752400
     4          1611770400
     5          1611781200
     6          1611820800
     7          1611831600
     8          1611770400
     9          1611781200
   readings:
     all         MQTT2_SonoffIP102:DS18B20_Temperature
   realtime:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          14:00:00
     4          19:00:00
     5          22:00:00
     6          09:00:00
     7          12:00:00
     8          19:00:00
     9          22:00:00
   time:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          14:00:00
     4          19:00:00
     5          22:00:00
     6          09:00:00
     7          12:00:00
     8          19:00:00
     9          22:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timers:
     0           0  1  2  3  4  5  6  7  8  9
   trigger:
   triggertime:
     1611752400:
       localtime  1611752400
       hash:
     1611770400:
       localtime  1611770400
       hash:
     1611781200:
       localtime  1611781200
       hash:
     1611811800:
       localtime  1611811800
       hash:
     1611820800:
       localtime  1611820800
       hash:
     1611831600:
       localtime  1611831600
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon ON:ios-on-green:off OFF:ios-off:on
   room       Zirkulation



Wäre jemand bitte so nett, mich auf den richtigen Weg zu schubsen? Was mache ich falsch?

Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: abc2006 am 27 Januar 2021, 14:07:58
Zitat[06:30-09:00|8] and [12:00-14:00|8]
Das könnte ein Problem werden, denn es ist selten gleichzeitig zwischen zwischen Halb sieben und 9 als auch zwischen 12 und 2.



Vielleicht hilft das schon.
Grüße,
Stephan
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 14:43:59
ja, Du hast recht. Habe ich geändert. Das war's aber nicht.

Ich muss immer noch das device und das DOIF händisch updaten, damit sich die readings ändern.
Muss irgendetwas anderes sein!?
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 14:55:11
Device: STATE bei den internals wird nur nach manuellem update übernommen
DOIF: Temperatur vom Senor bei den readings wird nur nach manuellen update übernommen


device:
Internals:
   CID        SonoffIP102
   DEF        SonoffIP102
   DEVICETOPIC MQTT2_SonoffIP102
   FUUID      60112844-f33f-c791-dc4a-c2dfc4fe5f2dc44f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     84
   NAME       MQTT2_SonoffIP102
   NR         82
   STATE      24.00 °C
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 84
   myBroker_TIME 2021-01-27 14:46:45
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-01-27 14:46:45   DS18B20_Id      01192C7E71B7
     2021-01-27 14:46:45   DS18B20_Temperature 24.0
     2021-01-27 14:46:45   Heap            25
     2021-01-27 11:37:12   Hostname        SonoffIP102-2322
     2021-01-27 11:37:12   IPAddress       192.168.178.102
     2021-01-27 12:34:37   LWT             Online
     2021-01-27 14:46:45   LoadAvg         25
     2021-01-27 14:46:45   MqttCount       2
     2021-01-27 14:46:45   POWER           ON
     2021-01-27 11:37:12   RestartReason   Software/System restart
     2021-01-27 14:46:45   Sleep           50
     2021-01-27 14:46:45   SleepMode       Dynamic
     2021-01-27 14:46:45   TempUnit        C
     2021-01-27 14:46:45   Time            2021-01-27T14:46:45
     2021-01-27 14:46:45   Uptime          0T03:09:40
     2021-01-27 14:46:45   UptimeSec       11380
     2021-01-27 11:37:12   WebServerMode   Admin
     2021-01-27 14:46:45   Wifi_AP         1
     2021-01-27 14:46:45   Wifi_BSSId      5C:49:79:21:55:2F
     2021-01-27 14:46:45   Wifi_Channel    8
     2021-01-27 14:46:45   Wifi_Downtime   0T00:00:05
     2021-01-27 14:46:45   Wifi_LinkCount  1
     2021-01-27 14:46:45   Wifi_RSSI       90
     2021-01-27 14:46:45   Wifi_SSId       FritzDualband2.4
     2021-01-27 14:46:45   Wifi_Signal     -55
     2021-01-27 09:46:21   attrTemplateVersion 20200522 or prior
     2021-01-27 11:38:14   state           set_off
Attributes:
   IODev      myBroker
   alexaName  Warmwasser
   alias      Warmwasser
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/SonoffIP102/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon ON:ios-on-green:off OFF:ios-off:on
   genericDeviceType switch
   icon       sani_water_hot
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/SonoffIP102/LWT:.* LWT
  tele/SonoffIP102/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/SonoffIP102/POWER1:.* state
  stat/SonoffIP102/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Zirkulation,MQTT2_DEVICE
   setList    off:noArg    cmnd/SonoffIP102/POWER1 0
  on:noArg     cmnd/SonoffIP102/POWER1 1
  toggle:noArg cmnd/SonoffIP102/POWER1 2
  setOtaUrl:textField cmnd/SonoffIP102/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/SonoffIP102/upgrade 1
   setStateList on off toggle
   stateFormat {sprintf "%.2f °C", ReadingsVal($name, "DS18B20_Temperature", 0)}



DOIF:
Internals:
   DEF        ([MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and [06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7]) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 30) (set MQTT2_SonoffIP102 off)
   FUUID      601145e4-f33f-c791-ad2e-7246bce3e8109200
   MODEL      FHEM
   NAME       Zirkulationsleitung
   NOTIFYDEV  global,MQTT2_SonoffIP102
   NR         83
   NTFY_ORDER 50-Zirkulationsleitung
   STATE      cmd_1
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   READINGS:
     2021-01-27 14:46:45   Device          MQTT2_SonoffIP102
     2021-01-27 14:38:16   cmd             1
     2021-01-27 14:38:16   cmd_event       MQTT2_SonoffIP102
     2021-01-27 14:38:16   cmd_nr          1
     2021-01-27 14:46:45   e_MQTT2_SonoffIP102_DS18B20_Temperature 24.0
     2021-01-27 14:37:29   mode            enabled
     2021-01-27 14:38:16   state           cmd_1
     2021-01-27 14:37:29   timer_01_c01    28.01.2021 06:30:00|8
     2021-01-27 14:37:29   timer_02_c01    28.01.2021 09:00:00|8
     2021-01-27 14:37:29   timer_03_c01    28.01.2021 12:00:00|8
     2021-01-27 14:37:29   timer_04_c01    27.01.2021 17:00:00|8
     2021-01-27 14:37:29   timer_05_c01    27.01.2021 19:00:00|8
     2021-01-27 14:37:29   timer_06_c01    27.01.2021 22:00:00|8
     2021-01-27 14:37:29   timer_07_c01    28.01.2021 09:00:00|7
     2021-01-27 14:37:29   timer_08_c01    28.01.2021 12:00:00|7
     2021-01-27 14:37:29   timer_09_c01    27.01.2021 19:00:00|7
     2021-01-27 14:37:29   timer_10_c01    27.01.2021 22:00:00|7
   Regex:
     accu:
     cond:
       MQTT2_SonoffIP102:
         0:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
         1:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') < 27 and ::DOIF_time($hash,0,1,$wday,$hms,"8") or ::DOIF_time($hash,2,3,$wday,$hms,"8") or ::DOIF_time($hash,4,5,$wday,$hms,"8") or ::DOIF_time($hash,6,7,$wday,$hms,"7") or ::DOIF_time($hash,8,9,$wday,$hms,"7")
     1          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') > 30
   days:
     0          8
     1          8
     2          8
     3          8
     4          8
     5          8
     6          7
     7          7
     8          7
     9          7
   do:
     0:
       0          set MQTT2_SonoffIP102 on
     1:
       0          set MQTT2_SonoffIP102 off
     2:
   helper:
     DEVFILTER  ^global$|^MQTT2_SonoffIP102$
     NOTIFYDEV  global|MQTT2_SonoffIP102
     event      DS18B20_Temperature: 24.0,Time: 2021-01-27T14:46:45,TempUnit: C,DS18B20_Id: 01192C7E71B7
     globalinit 1
     last_timer 10
     sleeptimer -1
     timerdev   MQTT2_SonoffIP102
     timerevent DS18B20_Temperature: 24.0,Time: 2021-01-27T14:46:45,TempUnit: C,DS18B20_Id: 01192C7E71B7
     triggerDev MQTT2_SonoffIP102
     timerevents:
       DS18B20_Temperature: 24.0
       Time: 2021-01-27T14:46:45
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
     timereventsState:
       DS18B20_Temperature: 24.0
       Time: 2021-01-27T14:46:45
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
     triggerEvents:
       DS18B20_Temperature: 24.0
       Time: 2021-01-27T14:46:45
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
     triggerEventsState:
       DS18B20_Temperature: 24.0
       Time: 2021-01-27T14:46:45
       TempUnit: C
       DS18B20_Id: 01192C7E71B7
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
     8          -1
     9          8
   intervalfunc:
   localtime:
     0          1611811800
     1          1611820800
     2          1611831600
     3          1611763200
     4          1611770400
     5          1611781200
     6          1611820800
     7          1611831600
     8          1611770400
     9          1611781200
   readings:
     all         MQTT2_SonoffIP102:DS18B20_Temperature
   realtime:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          17:00:00
     4          19:00:00
     5          22:00:00
     6          09:00:00
     7          12:00:00
     8          19:00:00
     9          22:00:00
   time:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          17:00:00
     4          19:00:00
     5          22:00:00
     6          09:00:00
     7          12:00:00
     8          19:00:00
     9          22:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timers:
     0           0  1  2  3  4  5  6  7  8  9
   trigger:
   triggertime:
     1611763200:
       localtime  1611763200
       hash:
     1611770400:
       localtime  1611770400
       hash:
     1611781200:
       localtime  1611781200
       hash:
     1611811800:
       localtime  1611811800
       hash:
     1611820800:
       localtime  1611820800
       hash:
     1611831600:
       localtime  1611831600
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon ON:ios-on-green:off OFF:ios-off:on
   room       Zirkulation


Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: abc2006 am 27 Januar 2021, 15:01:45
Zitat[MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and [06:30-09:00|8]

Danke für das Update der DEF:)
Ich glaube, du musst da aber nochmal ran:

if (Temperatur < 27 UND [06:30-09:00|8]) oder ([12:00-17:00|8])

ist möglicherweise nicht das, was du willst.
Ich könnte mir vorstellen, dass du folgendes willst (achte auf die Klammern):

if (Temperatur < 27 UND ( [06:30-09:00|8] oder [12:00-17:00|8] ... ))

Ansonsten seh ich da grade kein Problem...
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 16:04:03
Danke, ich habe das DOIF jetzt mal nach commandref umgestellt.

Das ist aber wahrscheinlich nicht das Problem. Es liegt anscheinend am device. Der Sensor misst die Temperatur richtig und schreibt sie alle 60 Sekunden in die readings. Habe das reading Intervall mal verkürzt.

Der Temperaturwert aus dem reading kommt aber bei den internals nicht als STATE an. Da mache ich also wohl was falsch.
Ich bin noch nicht so sicher in FHEM. Kann das an der readinglist und der setlist liegen?

Internals:
   CID        SonoffIP102
   DEF        SonoffIP102
   DEVICETOPIC MQTT2_SonoffIP102
   FUUID      60112844-f33f-c791-dc4a-c2dfc4fe5f2dc44f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     153
   NAME       MQTT2_SonoffIP102
   NR         82
   STATE      25.40 °C
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 153
   myBroker_TIME 2021-01-27 16:00:59
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-01-27 16:00:59   DS18B20_Id      01192C7E71B7
     2021-01-27 16:00:59   DS18B20_Temperature 25.4
     2021-01-27 16:00:59   Heap            25
     2021-01-27 11:37:12   Hostname        SonoffIP102-2322
     2021-01-27 11:37:12   IPAddress       192.168.178.102
     2021-01-27 12:34:37   LWT             Online
     2021-01-27 16:00:59   LoadAvg         19
     2021-01-27 16:00:59   MqttCount       2
     2021-01-27 16:00:59   POWER           ON
     2021-01-27 11:37:12   RestartReason   Software/System restart
     2021-01-27 16:00:59   Sleep           50
     2021-01-27 16:00:59   SleepMode       Dynamic
     2021-01-27 16:00:59   TempUnit        C
     2021-01-27 16:00:59   Time            2021-01-27T16:00:58
     2021-01-27 16:00:59   Uptime          0T04:23:53
     2021-01-27 16:00:59   UptimeSec       15833
     2021-01-27 11:37:12   WebServerMode   Admin
     2021-01-27 16:00:59   Wifi_AP         1
     2021-01-27 16:00:59   Wifi_BSSId      5C:49:79:21:55:2F
     2021-01-27 16:00:59   Wifi_Channel    8
     2021-01-27 16:00:59   Wifi_Downtime   0T00:00:05
     2021-01-27 16:00:59   Wifi_LinkCount  1
     2021-01-27 16:00:59   Wifi_RSSI       100
     2021-01-27 16:00:59   Wifi_SSId       FritzDualband2.4
     2021-01-27 16:00:59   Wifi_Signal     -49
     2021-01-27 09:46:21   attrTemplateVersion 20200522 or prior
     2021-01-27 11:38:14   state           set_off
Attributes:
   IODev      myBroker
   alexaName  Warmwasser
   alias      Warmwasser
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/SonoffIP102/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon ON:ios-on-green:off OFF:ios-off:on
   genericDeviceType switch
   icon       sani_water_hot
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/SonoffIP102/LWT:.* LWT
  tele/SonoffIP102/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/SonoffIP102/POWER1:.* state
  stat/SonoffIP102/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Zirkulation,MQTT2_DEVICE
   setList    off:noArg    cmnd/SonoffIP102/POWER1 0
  on:noArg     cmnd/SonoffIP102/POWER1 1
  toggle:noArg cmnd/SonoffIP102/POWER1 2
  setOtaUrl:textField cmnd/SonoffIP102/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/SonoffIP102/upgrade 1
   setStateList on off toggle
   stateFormat {sprintf "%.2f °C", ReadingsVal($name, "DS18B20_Temperature", 0)}


Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: abc2006 am 27 Januar 2021, 16:38:28
Hi,

Zitat2021-01-27 16:00:59   DS18B20_Temperature 25.4
   STATE      25.40 °C
Das passt doch.

ZitatDer Sensor misst die Temperatur richtig und schreibt sie alle 60 Sekunden in die readings.Der Temperaturwert aus dem reading kommt aber bei den internals nicht als STATE an.

Warum möchtest du denn den Temperaturwert in den Internals haben? Eigentlich sind die in den meisten Fällen uninteressant. Für dein DOIF brauchst du nur die Readings.

Wenn du im Event-Monitor das Reading DS18B20_Temperature mit einem Temperaturwert siehst (alternativ kann man es auch daran erkennen, dass sich das Reading im Device rot färbt), gab es ein Event. Das ist die Voraussetzung für das DOIF, damit es darauf reagieren kann.
Wenn es das Event nicht gab --> Sonoff-Problem
Wenn es das Event gab --> DOIF-Problem.

Kannst du mal einen Auszug aus dem Event-Monitor posten, wo man ein Event sieht, bei dem die Temperatur aktualisiert wurde?

Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 17:38:36
Dass die Temperatur da mal gleich ist, ist Zufall. Das war ein list gleich nach dem manuellen updaten der readings, sowohl beim device als auch beim DOIF.

Aktueller Stand ist:

device: vom Tasmota übermittelte, aktuelle 21,6 °C  -  weiter oben in den internals steht bei STATE 22,3 °C. Das ist ein Wert, der auch schon Stunden alt sein kann und er wird nur auf den aktuellen Wert verändert wenn man das device manuell updated

DOIF: 22,3 °C. Das ist der Wert, den er sich anscheinend vom internal STATE holt.....und das nur durch manuelles update. Kann also auch, wie oben, Stunden alt sein.


Auszug aus dem Event-Monitor:

2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_LinkCount: 1
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Uptime: 0T05:42:54
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Time: 2021-01-27T17:19:59
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Channel: 8
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Sleep: 50
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_BSSId: 5C:49:79:21:55:2F
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 POWER: OFF
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_AP: 1
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Heap: 25
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_RSSI: 98
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Signal: -51
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 SleepMode: Dynamic
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 UptimeSec: 20574
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 LoadAvg: 19
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_SSId: FritzDualband2.4
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 MqttCount: 3
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Downtime: 0T00:00:05
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 TempUnit: C
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Id: 01192C7E71B7
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 Time: 2021-01-27T17:19:59
2021-01-27 17:19:59 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 21.6
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_Signal: -86
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 UptimeSec: 790698
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 SleepMode: Dynamic
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_RSSI: 28
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_Downtime: 0T00:15:14
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 LoadAvg: 19
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_SSId: FritzDualband2.4
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 MqttCount: 43
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Time: 2021-01-27T17:20:30
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Uptime: 9T03:38:18
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_LinkCount: 56
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_AP: 1
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Heap: 26
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_Channel: 8
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Wifi_BSSId: 34:81:C4:26:BC:B0
2021-01-27 17:20:30 MQTT2_DEVICE MQTT2_SonoffIP98 Sleep: 50
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_LinkCount: 1
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Uptime: 0T05:43:54
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Time: 2021-01-27T17:20:59
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Sleep: 50
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_BSSId: 5C:49:79:21:55:2F
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Channel: 8
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Heap: 25
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 POWER: OFF
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_AP: 1
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_RSSI: 94
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 SleepMode: Dynamic
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 UptimeSec: 20634
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Signal: -53
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 MqttCount: 3
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_SSId: FritzDualband2.4
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 LoadAvg: 19
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Wifi_Downtime: 0T00:00:05
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 Time: 2021-01-27T17:20:59
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 21.6
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Id: 01192C7E71B7
2021-01-27 17:20:59 MQTT2_DEVICE MQTT2_SonoffIP102 TempUnit: C
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Uptime: 9T03:39:09
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_LinkCount: 16
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Time: 2021-01-27T17:21:31
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_BSSId: 34:81:C4:26:BC:B0
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Sleep: 50
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_Channel: 8
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Heap: 26
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 POWER: OFF
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_AP: 1
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_RSSI: 38
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 UptimeSec: 790749
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 SleepMode: Dynamic
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_Signal: -81
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 MqttCount: 42
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_SSId: FritzDualband2.4
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 LoadAvg: 19
2021-01-27 17:21:32 MQTT2_DEVICE MQTT2_SonoffIP99 Wifi_Downtime: 0T00:13:11



Stehe echt auf dem Schlauch

Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 27 Januar 2021, 17:45:27
Aus deinem DOIF-Auszug:

Zitat2021-01-27 14:46:45   e_MQTT2_SonoffIP102_DS18B20_Temperature 24.0

Es bedeutet, dass zu diesem Zeitpunkt bei 24 Grad DOIF zuletzt geschaltet hat.

Solange die Temperatur unter 27 Grad bleibt, wird dein DOIF nichts tun.
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 18:08:47
ich habe die Temperatur mal auf 35 Grad erhöht, dann wieder auf unter 25 Grad abkühlen lassen.
Im DOIF ist state cmd_2 geblieben. Hat also nicht geschaltet, egal bei welcher Temperatur.

Wenn ich DOIF manuell update, dann ändert sich auch jedesmal der Wert von

e_MQTT2_SonoffIP102_DS18B20_Temperature 24.0

Der Sonoff bekommt aber keinen Schaltbefehl. Ich kann ihn aber wohl über die buttons in der DeviceOverview schalten.

Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 27 Januar 2021, 18:36:12
Dann poste deine aktuelle DOIF-Definition.
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 19:48:25
Hi,

Auszug aus der fhem.cfg:

define Zirkulationsleitung DOIF ([06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7] and [MQTT2_SonoffIP102:DS18B20_Temperature] < 27) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 30) (set MQTT2_SonoffIP102 off)
setuuid Zirkulationsleitung 601145e4-f33f-c791-ad2e-7246bce3e8109200
attr Zirkulationsleitung devStateIcon on:on:off off:off:on
attr Zirkulationsleitung room Zirkulation


Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 27 Januar 2021, 19:58:30
Zitat von: Mikoom am 27 Januar 2021, 19:48:25
Hi,

Auszug aus der fhem.cfg:

define Zirkulationsleitung DOIF ([06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7] and [MQTT2_SonoffIP102:DS18B20_Temperature] < 27) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 30) (set MQTT2_SonoffIP102 off)
setuuid Zirkulationsleitung 601145e4-f33f-c791-ad2e-7246bce3e8109200
attr Zirkulationsleitung devStateIcon on:on:off off:off:on
attr Zirkulationsleitung room Zirkulation


Gruß

Mikoom

Das habe ich befürchtet - das kann auch nicht funktionieren.

Du hast die Empfehlung im Post #5 nicht umgesetzt ;)
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 20:42:28
....je länger ich draufschaue, desto blinder werde ich ::)

muss das so???

[MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and ([06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7]) (set MQTT2_SonoffIP102 on) DOELSEIF [MQTT2_SonoffIP102:DS18B20_Temperature] > 30 (set MQTT2_SonoffIP102 off)

Gruß

Mikoom?
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 27 Januar 2021, 21:25:37
Zitat von: Mikoom am 27 Januar 2021, 20:42:28
....je länger ich draufschaue, desto blinder werde ich ::)

muss das so???

[MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and ([06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7]) (set MQTT2_SonoffIP102 on) DOELSEIF [MQTT2_SonoffIP102:DS18B20_Temperature] > 30 (set MQTT2_SonoffIP102 off)

Gruß

Mikoom?

Nicht ganz, eher:

([MQTT2_SonoffIP102:DS18B20_Temperature] < 27 and ([06:30-09:00|8] or [12:00-17:00|8] or [19:00-22:00|8] or [09:00-12:00|7] or [19:00-22:00|7]))...
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 22:30:32
habe jetzt geändert auf

([MQTT2_SonoffIP102:DS18B20_Temperature] < 24 and ([06:30-09:00|8] or [12:00-17:00|8] or [20:00-23:00|8] or [09:00-12:00|7] or [20:00-23:00|7])) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 26) (set MQTT2_SonoffIP102 off)

der Sonoff hat 1x ausgeschaltet bei überschreiten der Bedingung (Temperatur). Bei erneutem Unterschreiten hat er aber nicht wieder eingeschaltet. Stattdessen habe ich im reading des Doif die folgende Fehlermeldung:

condition c02: syntax error, line 1, near "26 ("
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 27 Januar 2021, 22:52:19
Zitat von: Mikoom am 27 Januar 2021, 22:30:32
habe jetzt geändert auf

([MQTT2_SonoffIP102:DS18B20_Temperature] < 24 and ([06:30-09:00|8] or [12:00-17:00|8] or [20:00-23:00|8] or [09:00-12:00|7] or [20:00-23:00|7])) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 26) (set MQTT2_SonoffIP102 off)

der Sonoff hat 1x ausgeschaltet bei überschreiten der Bedingung (Temperatur). Bei erneutem Unterschreiten hat er aber nicht wieder eingeschaltet. Stattdessen habe ich im reading des Doif die folgende Fehlermeldung:

condition c02: syntax error, line 1, near "26 ("

Du musst hier immer list einer Definition posten und nicht Bruchstücke der Definition, denn so kann man das Problem nicht sinnvoll nachvollziehen.
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 23:08:05
sorry, vergessen

Internals:
   DEF        ([MQTT2_SonoffIP102:DS18B20_Temperature] < 24 and ([06:30-09:00|8] or [12:00-17:00|8] or [20:00-23:00|8] or [09:00-12:00|7] or [20:00-23:00|7])) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 26) (set MQTT2_SonoffIP102 off)
   FUUID      601145e4-f33f-c791-ad2e-7246bce3e8109200
   MODEL      FHEM
   NAME       Zirkulationsleitung
   NOTIFYDEV  MQTT2_SonoffIP102,global
   NR         83
   NTFY_ORDER 50-Zirkulationsleitung
   STATE      cmd_1
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   READINGS:
     2021-01-27 23:01:39   Device          MQTT2_SonoffIP102
     2021-01-27 22:18:20   cmd             1
     2021-01-27 22:18:20   cmd_event       MQTT2_SonoffIP102
     2021-01-27 22:18:20   cmd_nr          1
     2021-01-27 23:01:39   e_MQTT2_SonoffIP102_DS18B20_Temperature 22.5
     2021-01-27 22:11:04   mode            enabled
     2021-01-27 22:18:20   state           cmd_1
     2021-01-27 22:51:23   timer_01_c01    28.01.2021 06:30:00|8
     2021-01-27 22:51:23   timer_02_c01    28.01.2021 09:00:00|8
     2021-01-27 22:51:23   timer_03_c01    28.01.2021 12:00:00|8
     2021-01-27 22:51:23   timer_04_c01    28.01.2021 17:00:00|8
     2021-01-27 23:00:00   timer_05_c01    28.01.2021 20:00:00|8
     2021-01-27 23:00:00   timer_06_c01    28.01.2021 23:00:00|8
     2021-01-27 22:51:23   timer_07_c01    28.01.2021 09:00:00|7
     2021-01-27 22:51:23   timer_08_c01    28.01.2021 12:00:00|7
     2021-01-27 23:00:00   timer_09_c01    28.01.2021 20:00:00|7
     2021-01-27 23:00:00   timer_10_c01    28.01.2021 23:00:00|7
   Regex:
     accu:
     cond:
       MQTT2_SonoffIP102:
         0:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
         1:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
   attr:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') < 24 and (::DOIF_time($hash,0,1,$wday,$hms,"8") or ::DOIF_time($hash,2,3,$wday,$hms,"8") or ::DOIF_time($hash,4,5,$wday,$hms,"8") or ::DOIF_time($hash,6,7,$wday,$hms,"7") or ::DOIF_time($hash,8,9,$wday,$hms,"7"))
     1          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') > 26
   days:
     0          8
     1          8
     2          8
     3          8
     4          8
     5          8
     6          7
     7          7
     8          7
     9          7
   do:
     0:
       0          set MQTT2_SonoffIP102 on
     1:
       0          set MQTT2_SonoffIP102 off
     2:
   helper:
     DEVFILTER  ^global$|^MQTT2_SonoffIP102$
     NOTIFYDEV  global|MQTT2_SonoffIP102
     event      TempUnit: C,DS18B20_Temperature: 22.5,Time: 2021-01-27T23:01:39,DS18B20_Id: 01192C7E71B7
     globalinit 1
     last_timer 10
     sleeptimer -1
     timerdev   MQTT2_SonoffIP102
     timerevent DS18B20_Temperature: 22.5,TempUnit: C,Time: 2021-01-27T22:59:39,DS18B20_Id: 01192C7E71B7
     triggerDev MQTT2_SonoffIP102
     timerevents:
       DS18B20_Temperature: 22.5
       TempUnit: C
       Time: 2021-01-27T22:59:39
       DS18B20_Id: 01192C7E71B7
     timereventsState:
       DS18B20_Temperature: 22.5
       TempUnit: C
       Time: 2021-01-27T22:59:39
       DS18B20_Id: 01192C7E71B7
     triggerEvents:
       TempUnit: C
       DS18B20_Temperature: 22.5
       Time: 2021-01-27T23:01:39
       DS18B20_Id: 01192C7E71B7
     triggerEventsState:
       TempUnit: C
       DS18B20_Temperature: 22.5
       Time: 2021-01-27T23:01:39
       DS18B20_Id: 01192C7E71B7
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
     8          -1
     9          8
   intervalfunc:
   localtime:
     0          1611811800
     1          1611820800
     2          1611831600
     3          1611849600
     4          1611860400
     5          1611871200
     6          1611820800
     7          1611831600
     8          1611860400
     9          1611871200
   perlblock:
   readings:
     all         MQTT2_SonoffIP102:DS18B20_Temperature
   realtime:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          17:00:00
     4          20:00:00
     5          23:00:00
     6          09:00:00
     7          12:00:00
     8          20:00:00
     9          23:00:00
   time:
     0          06:30:00
     1          09:00:00
     2          12:00:00
     3          17:00:00
     4          20:00:00
     5          23:00:00
     6          09:00:00
     7          12:00:00
     8          20:00:00
     9          23:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   timers:
     0           0  1  2  3  4  5  6  7  8  9
   trigger:
   triggertime:
     1611811800:
       localtime  1611811800
       hash:
     1611820800:
       localtime  1611820800
       hash:
     1611831600:
       localtime  1611831600
       hash:
     1611849600:
       localtime  1611849600
       hash:
     1611860400:
       localtime  1611860400
       hash:
     1611871200:
       localtime  1611871200
       hash:
   uiTable:
Attributes:
   devStateIcon on:on:off off:off:on
   room       Zirkulation


Der syntax error ist wieder aus dem reading verschwunden. Steht aber immer noch auf cmd1, egal welche Temperatur.

Vielen Dank übrigens für die Unterstützung.

Gruß

Mikoom

Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 27 Januar 2021, 23:38:41
ich glaube ja immer noch, dass einen Fehler beim device habe.

Reading vom Sensor und STATE bei den internals vom device zeigen 2 unterschiedliche Temperaturen.

Nur.....immer dann, wenn ich ein list vom device aufrufe, um es hier einzustellen, aktualisiert das das device und die Temperaturen
sind dann im list gleich.

Internals:
   CID        SonoffIP102
   DEF        SonoffIP102
   DEVICETOPIC MQTT2_SonoffIP102
   FUUID      60112844-f33f-c791-dc4a-c2dfc4fe5f2dc44f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     91
   NAME       MQTT2_SonoffIP102
   NR         82
   STATE      23.40 °C
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 91
   myBroker_TIME 2021-01-27 23:30:39
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-01-27 23:30:39   DS18B20_Id      01192C7E71B7
     2021-01-27 23:30:39   DS18B20_Temperature 23.4
     2021-01-27 23:30:39   Heap            26
     2021-01-27 22:51:35   Hostname        SonoffIP102-2322
     2021-01-27 22:51:35   IPAddress       192.168.178.102
     2021-01-27 22:51:35   LWT             Online
     2021-01-27 23:30:39   LoadAvg         19
     2021-01-27 23:30:39   MqttCount       1
     2021-01-27 23:30:39   POWER           OFF
     2021-01-27 22:51:35   RestartReason   Power On
     2021-01-27 23:30:39   Sleep           50
     2021-01-27 23:30:39   SleepMode       Dynamic
     2021-01-27 23:30:39   TempUnit        C
     2021-01-27 23:30:39   Time            2021-01-27T23:30:39
     2021-01-27 23:30:39   Uptime          0T00:39:11
     2021-01-27 23:30:39   UptimeSec       2351
     2021-01-27 22:51:35   WebServerMode   Admin
     2021-01-27 23:30:39   Wifi_AP         1
     2021-01-27 23:30:39   Wifi_BSSId      5C:49:79:21:55:2F
     2021-01-27 23:30:39   Wifi_Channel    8
     2021-01-27 23:30:39   Wifi_Downtime   0T00:00:05
     2021-01-27 23:30:39   Wifi_LinkCount  1
     2021-01-27 23:30:39   Wifi_RSSI       68
     2021-01-27 23:30:39   Wifi_SSId       FritzDualband2.4
     2021-01-27 23:30:39   Wifi_Signal     -66
     2021-01-27 09:46:21   attrTemplateVersion 20200522 or prior
     2021-01-27 11:38:14   state           set_off
     2021-01-27 22:52:22   subscriptions   cmnd/SonoffIP102/# cmnd/SonoffIP102_fb/# cmnd/tasmotas/#
Attributes:
   IODev      myBroker
   alexaName  Warmwasser
   alias      Warmwasser
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/SonoffIP102/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon on:on:off off:off:on
   genericDeviceType switch
   icon       sani_water_hot
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/SonoffIP102/LWT:.* LWT
  tele/SonoffIP102/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/SonoffIP102/POWER1:.* state
  stat/SonoffIP102/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Zirkulation,MQTT2_DEVICE
   setList    off:noArg    cmnd/SonoffIP102/POWER1 0
  on:noArg     cmnd/SonoffIP102/POWER1 1
  toggle:noArg cmnd/SonoffIP102/POWER1 2
  setOtaUrl:textField cmnd/SonoffIP102/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/SonoffIP102/upgrade 1
   setStateList on off toggle
   stateFormat {sprintf "%.2f °C", ReadingsVal($name, "DS18B20_Temperature", 0)}
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Damian am 28 Januar 2021, 08:43:17
Die letzte DOIF-Definition sieht syntaktisch korrekt aus. Sie befindet sich im Zustand cmd1, weil die Temperatur unter 24 Grad ist. Wenn es nicht funktioniert, dann liegt es vermutlich an fehlenden Events des Temperatursensors. Den anderen Zustand kann ich nicht beurteilen, weil ich davon keinen list-Ausdruck gesehen habe.
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 28 Januar 2021, 10:03:20
Vielen Dank

Ich poste später nochmal das list vom Schaltzustands des DOIF und vom device, wenn die andere Bedingung > 26 erreicht ist.
Die Konfiguration des Sonoff TH10 schaue ich mir auch nochmal genau an.

Gruß

Mikoom
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Sany am 28 Januar 2021, 11:07:16
Hallo Mikoom,

die letzte Version deines DOIF scheint funktionsfähig zu sein. Ich würde Dir folgendes empfehlen, um den/die Fehler zu finden, und generell:

1. den Sensor ein wenig in seiner Gesprächigkeit einbremsen.
Wenn Du einen neuen Sensor definiert hast und Daten ankommen (readings werden rot in der Detailansicht), dann lässt Du den Eventmonitor eine Weile laufen (Devicenamen dort eintragen) und schaust Dir das lustige Treiben an, sprich welche Werte werden wie oft vom Sensor geliefert. Tasmotas sind furchtbar gesprächig, auch Dein Temperatursensor. Dann überlegst du dir, welche Werte denn in Deiner Steuerung etwas auslösen sollen. In diesem Fall wäre es vermutlich (erst mal) nur temperature. Alle andern Werte sind quasi nur interessant, wenn Du die Detailansicht aufrufst, in diesem Moment werden sie ja dort aktualisiert. Dann fügst Du das Attribut "event-on-change-reading temperature" ein. Das bewirkt, daß nur noch der Wert temperature einen event auslöst und im Eventmonitor (immer schön mitlaufen lassen...)  angezeigt wird. Und auch nur, wenn er sich ändert! Das ist wichtig für die weitere Verwendung, später mehr dazu.
2. Dann überlegst Du Dir, was Du damit erreichen willst: bei Temp < 24 was einschalten, bei Temp > 26 das wieder ausschalten. Dann schreibst Du erst mal damit Dein DOIF und schaust nach: kommen die temperature-Events an, und schaltet das DOIF wie gewünscht. Wenn das funktioniert, dann kannst Du deine zeitlichen Einschränkungen dazubasteln. Auch hier würde ich einen Zeitraum wählen, der von "jetzt+1Minute" bis "jetzt+4oder5 minuten" reicht und dann wiederum dem Eventmonitor zuschauen. Dazu entweder im Eventmonitor per Regex den TempSensor und das DOIF eintragen (meinDOIF|meinSensor).* oder eben 2 Seiten mit Eventmonitor aufmachen. Der Zeitraum beginnt, dein Sensor liefert Daten, dein DOIF sollte schalten. Wenn die Werte zu weit weg sind von den Schaltpunkten dann halt die Werte erst mal im DOIF ändern und was auch immer der Sensor misst versuchen zu beeinflussen, dass sich die Werte ändern, um das DOIF schalten zu lassen. Wenn das klappt, dann einen weiteren Schaltzeitraum dazuschreiben. Klappt auch das, dann scheint die Syntax richtig zu sein und Du kannst dann dazu übergehen, die Zeiträume und Schaltpunkte (Temperaturen) so einzutragen, wie Du Dir das ganz am Anfang mal überlegt hast.
zum event-on-change-Reading: diese Attribut lässt events vom Sensor nur durch, wenn sie sich ändern. Das ist bei Temperatursensoren oft ausreichend, wenn sie z.B. aussen sind und sich die Temperatur regelmäßig ändert. Im Innenbereich ist es ja deutlich seltener, weshalb man hier, je nach Anforderung, anders vorgehen kann. Entwerder man nimmt dann event-on-update-Reading, dann wird immer ein event kommen, wenn der Sensor sendet, oder man erweitert event-on-change-Reading mit event-min-interval (sekunden). Beispiel Lichtsensor draussen: der liefert jede Minute einen Wert der Helligkeit, der Tagsüber auch regelmäßig schwankt und damit Events erzeugt. Nachts kämen allerdings keine Events mehr, da sich die Helligkeit nicht ändert. Ein z.B. event-min-interval 900 würde dafür sorgen, dass trotzdem jede Viertelstunde ein Event (hier wohl immer Wert 0 für Dunkel) erzeugt wird (könnte man z.B. dafür nehmen den Sensor zu überwachen, ob er regelmäßig sendet).
Dann solltest Du immer noch ein Terminal offen haben und dort z.B. mit "tail -f -n800 /opt/fhem/log/fhem-2021-xx.log" deinem log zuschauen. Wenn Du nämlich beim DOIF-schreiben oder so einen Fehler machst wird Dir das dort meist gleich angezeigt.

Diese ganze event-on-....Geschichte mag vielleicht etwas undurchsichtig sein, lohnt sich aber da dran zu bleiben. Zu viele Events von zu vielen Devices lassen irgendwann Dein fhem in die Knie gehen, und dann  macht die Fehlersuche keinen Spaß mehr.....
Aber mit event-monitor, einem Testsensor der viele Daten liefert und der command-ref zu event-on-... mal eine Zeit lang t´rumspielen dann erschliesst sich die Funktionsweise ganz von alleine.

Viel Erfolg!

.... und nun: aktuelles list von DOIF, Tempsensor und etwas Event-Monitor posten.


P.S. viel Text, nur meine Meinung/Vorgehensweise. Kann man bestimmt anders/besser machen.
Titel: Antw:Zirkulationspumpe doif hakt - keine Aktualisierung des readings
Beitrag von: Mikoom am 30 Januar 2021, 09:57:31
Hallo,

ich glaube, ich hab's jetzt. Danke an Damian und Sany. Lösung brachte einmal ein anderes template auf dem Sonoff, das event-on-change-reading und das Herantasten beim DOIF. Habe erst nur die Temperatur als Bedingung gesetzt. Dann einen Zeitraum am Wochenende hinzugefügt. Dann einen zweiten Zeitraum am Wochenende. Ausgestiegen ist das DOIF dann, als ich es um die Zeiträume unter der Woche erweitern wollte. Ich habe mich deshalb entschieden auf 2 DOIF´s, also Woche und Wochenende aufzuteilen.

list vom Sonoff device:
Internals:
   CID        SonoffIP102
   DEF        SonoffIP102
   DEVICETOPIC MQTT2_SonoffIP102
   FUUID      60112844-f33f-c791-dc4a-c2dfc4fe5f2dc44f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     538
   NAME       MQTT2_SonoffIP102
   NR         82
   STATE      22.30 °C
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 538
   myBroker_TIME 2021-01-30 09:44:20
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-01-30 09:44:20   DS18B20_Id      01192C7E71B7
     2021-01-30 09:44:20   DS18B20_Temperature 22.3
     2021-01-30 09:44:20   Heap            25
     2021-01-30 08:16:31   Hostname        SonoffIP102-2322
     2021-01-30 08:16:31   IPAddress       192.168.178.102
     2021-01-30 08:16:31   LWT             Online
     2021-01-30 09:44:20   LoadAvg         19
     2021-01-30 09:44:20   MqttCount       1
     2021-01-30 09:44:20   POWER           ON
     2021-01-30 08:16:31   RestartReason   Software/System restart
     2021-01-30 09:44:20   Sleep           50
     2021-01-30 09:44:20   SleepMode       Dynamic
     2021-01-30 09:44:20   TempUnit        C
     2021-01-30 08:16:14   Template        Invalid JSON
     2021-01-30 09:44:20   Time            2021-01-30T09:44:20
     2021-01-30 09:44:20   Uptime          0T01:28:04
     2021-01-30 09:44:20   UptimeSec       5284
     2021-01-30 08:16:31   WebServerMode   Admin
     2021-01-30 09:44:20   Wifi_AP         1
     2021-01-30 09:44:20   Wifi_BSSId      5C:49:79:21:55:2F
     2021-01-30 09:44:20   Wifi_Channel    8
     2021-01-30 09:44:20   Wifi_Downtime   0T00:00:03
     2021-01-30 09:44:20   Wifi_LinkCount  1
     2021-01-30 09:44:20   Wifi_RSSI       82
     2021-01-30 09:44:20   Wifi_SSId       FritzDualband2.4
     2021-01-30 09:44:20   Wifi_Signal     -59
     2021-01-27 09:46:21   attrTemplateVersion 20200522 or prior
     2021-01-27 11:38:14   state           set_off
     2021-01-27 22:52:22   subscriptions   cmnd/SonoffIP102/# cmnd/SonoffIP102_fb/# cmnd/tasmotas/#
Attributes:
   IODev      myBroker
   alexaName  Warmwasser
   alias      Warmwasser
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/SonoffIP102/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon on:on:off off:off:on
   event-on-change-reading DS18B20_Temperature
   genericDeviceType switch
   icon       sani_water_hot
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/SonoffIP102/LWT:.* LWT
  tele/SonoffIP102/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/SonoffIP102/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/SonoffIP102/POWER1:.* state
  stat/SonoffIP102/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Zirkulation,MQTT2_DEVICE
   setList    off:noArg    cmnd/SonoffIP102/POWER1 0
  on:noArg     cmnd/SonoffIP102/POWER1 1
  toggle:noArg cmnd/SonoffIP102/POWER1 2
  setOtaUrl:textField cmnd/SonoffIP102/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/SonoffIP102/upgrade 1
   setStateList on off toggle
   stateFormat {sprintf "%.2f °C", ReadingsVal($name, "DS18B20_Temperature", 0)}


list vom DOIF Woche:
Internals:
   CFGFN     
   DEF        ([MQTT2_SonoffIP102:DS18B20_Temperature] < 25 and ([06:30-09:30|8] or [18:00-23:00|8])) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 26) (set MQTT2_SonoffIP102 off)
   FUUID      60151938-f33f-c791-09ef-4b6274570d65ecec
   MODEL      FHEM
   NAME       Zirkulationsleitung_Woche
   NOTIFYDEV  global,MQTT2_SonoffIP102
   NR         278
   NTFY_ORDER 50-Zirkulationsleitung_Woche
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   READINGS:
     2021-01-30 09:46:05   Device          MQTT2_SonoffIP102
     2021-01-30 09:33:36   cmd             2
     2021-01-30 09:33:36   cmd_event       MQTT2_SonoffIP102
     2021-01-30 09:33:36   cmd_nr          2
     2021-01-30 09:46:05   e_MQTT2_SonoffIP102_DS18B20_Temperature 22.3
     2021-01-30 09:30:48   mode            enabled
     2021-01-30 09:33:36   state           cmd_2
     2021-01-30 09:30:48   timer_01_c01    31.01.2021 06:30:00|8
     2021-01-30 09:30:48   timer_02_c01    31.01.2021 09:30:00|8
     2021-01-30 09:30:48   timer_03_c01    30.01.2021 18:00:00|8
     2021-01-30 09:30:48   timer_04_c01    30.01.2021 23:00:00|8
   Regex:
     accu:
     cond:
       MQTT2_SonoffIP102:
         0:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
         1:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') < 25 and (::DOIF_time($hash,0,1,$wday,$hms,"8") or ::DOIF_time($hash,2,3,$wday,$hms,"8"))
     1          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') > 26
   days:
     0          8
     1          8
     2          8
     3          8
   do:
     0:
       0          set MQTT2_SonoffIP102 on
     1:
       0          set MQTT2_SonoffIP102 off
     2:
   helper:
     DEVFILTER  ^global$|^MQTT2_SonoffIP102$
     NOTIFYDEV  global|MQTT2_SonoffIP102
     event      DS18B20_Temperature: 22.3
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   MQTT2_SonoffIP102
     timerevent DS18B20_Temperature: 26.5
     triggerDev MQTT2_SonoffIP102
     timerevents:
       DS18B20_Temperature: 26.5
     timereventsState:
       DS18B20_Temperature: 26.5
     triggerEvents:
       DS18B20_Temperature: 22.3
     triggerEventsState:
       DS18B20_Temperature: 22.3
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1612071000
     1          1612081800
     2          1612026000
     3          1612044000
   readings:
     all         MQTT2_SonoffIP102:DS18B20_Temperature
   realtime:
     0          06:30:00
     1          09:30:00
     2          18:00:00
     3          23:00:00
   time:
     0          06:30:00
     1          09:30:00
     2          18:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
   triggertime:
     1612026000:
       localtime  1612026000
       hash:
     1612044000:
       localtime  1612044000
       hash:
     1612071000:
       localtime  1612071000
       hash:
     1612081800:
       localtime  1612081800
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon on:on:off off:off:on
   room       DOIF,Zirkulation


list vom DOIF Wochenende:
Internals:
   DEF        ([MQTT2_SonoffIP102:DS18B20_Temperature] < 25 and ([08:00-12:00|7] or [19:30-23:00|7])) (set MQTT2_SonoffIP102 on) DOELSEIF ([MQTT2_SonoffIP102:DS18B20_Temperature] > 26) (set MQTT2_SonoffIP102 off)
   FUUID      601145e4-f33f-c791-ad2e-7246bce3e8109200
   MODEL      FHEM
   NAME       Zirkulationsleitung_Wochenende
   NOTIFYDEV  global,MQTT2_SonoffIP102
   NR         83
   NTFY_ORDER 50-Zirkulationsleitung
   STATE      cmd_1
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   READINGS:
     2021-01-30 09:46:35   Device          MQTT2_SonoffIP102
     2021-01-30 09:34:36   cmd             1
     2021-01-30 09:34:36   cmd_event       MQTT2_SonoffIP102
     2021-01-30 09:34:36   cmd_nr          1
     2021-01-30 09:46:35   e_MQTT2_SonoffIP102_DS18B20_Temperature 22.3
     2021-01-30 09:23:48   mode            enabled
     2021-01-30 09:34:36   state           cmd_1
     2021-01-30 09:23:48   timer_01_c01    31.01.2021 08:00:00|7
     2021-01-30 09:23:48   timer_02_c01    30.01.2021 12:00:00|7
     2021-01-30 09:23:48   timer_03_c01    30.01.2021 19:30:00|7
     2021-01-30 09:23:48   timer_04_c01    30.01.2021 23:00:00|7
   Regex:
     accu:
     cond:
       MQTT2_SonoffIP102:
         0:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
         1:
           DS18B20_Temperature ^MQTT2_SonoffIP102$:^DS18B20_Temperature:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') < 25 and (::DOIF_time($hash,0,1,$wday,$hms,"7") or ::DOIF_time($hash,2,3,$wday,$hms,"7"))
     1          ::ReadingValDoIf($hash,'MQTT2_SonoffIP102','DS18B20_Temperature') > 26
   days:
     0          7
     1          7
     2          7
     3          7
   do:
     0:
       0          set MQTT2_SonoffIP102 on
     1:
       0          set MQTT2_SonoffIP102 off
     2:
   helper:
     DEVFILTER  ^global$|^MQTT2_SonoffIP102$
     NOTIFYDEV  global|MQTT2_SonoffIP102
     event      DS18B20_Temperature: 22.3
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   MQTT2_SonoffIP102
     timerevent DS18B20_Temperature: 22.3
     triggerDev MQTT2_SonoffIP102
     timerevents:
       DS18B20_Temperature: 22.3
     timereventsState:
       DS18B20_Temperature: 22.3
     triggerEvents:
       DS18B20_Temperature: 22.3
     triggerEventsState:
       DS18B20_Temperature: 22.3
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1612076400
     1          1612004400
     2          1612031400
     3          1612044000
   readings:
     all         MQTT2_SonoffIP102:DS18B20_Temperature
   realtime:
     0          08:00:00
     1          12:00:00
     2          19:30:00
     3          23:00:00
   time:
     0          08:00:00
     1          12:00:00
     2          19:30:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
   triggertime:
     1612004400:
       localtime  1612004400
       hash:
     1612031400:
       localtime  1612031400
       hash:
     1612044000:
       localtime  1612044000
       hash:
     1612076400:
       localtime  1612076400
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon on:on:off off:off:on
   room       DOIF,Zirkulation



...und ein kurzer Auszug aus dem Eventmonitor:
2021-01-30 09:37:36 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 23.1
2021-01-30 09:38:05 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.9
2021-01-30 09:38:50 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.8
2021-01-30 09:39:20 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.7
2021-01-30 09:40:05 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.6
2021-01-30 09:40:50 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.5
2021-01-30 09:41:20 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.4
2021-01-30 09:43:05 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.3
2021-01-30 09:45:50 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.4
2021-01-30 09:46:05 MQTT2_DEVICE MQTT2_SonoffIP102 DS18B20_Temperature: 22.3


Vielen Dank nochmal an alle.

LG

Mikoom