[GELÖST] Zirkulationspumpe doif hakt - keine Aktualisierung des readings

Begonnen von Mikoom, 27 Januar 2021, 13:43:52

Vorheriges Thema - Nächstes Thema

Mikoom

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 ("

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Mikoom

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


Mikoom

#18
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)}

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Mikoom

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

Sany

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.
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Mikoom

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