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

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

Vorheriges Thema - Nächstes Thema

Mikoom

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

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Mikoom

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!?

Mikoom

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



abc2006

#4
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...
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Mikoom

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

abc2006

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?

FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Mikoom

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

Damian

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

Mikoom

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

Damian

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

Mikoom

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

Damian

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

Mikoom

....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?

Damian

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