simpler Thermostat funktioniert nicht

Begonnen von netbus, 04 Dezember 2018, 08:06:15

Vorheriges Thema - Nächstes Thema

netbus

ich habe relativ viele DOIF's am Laufen doch eines davon funktioniert überhaupt nicht wie es soll.
Bei folgendem DOIF wird weiter geheizt obwohl die Soll Temperatur schon lange überschritten ist.
Woran kann das liegen?
defmod di.wcheizung DOIF ([MQTT2_wcheizung:AM2301_Temperature] < 23 and [06:00-22:00])\
(set MQTT2_wcheizung ON)\
DOELSE\
(set MQTT2_wcheizung OFF)\


Internals:
   DEF        ([06:00-22:00] and [MQTT2_wcheizung:AM2301_Temperature] < 23)
(set MQTT2_wcheizung ON)
DOELSE
(set MQTT2_wcheizung OFF)
DOELSEIF ([22:01])
   MODEL      FHEM
   NAME       di.wcheizung
   NR         872
   NTFY_ORDER 50-di.wcheizung
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-12-04 08:16:04   Device          MQTT2_wcheizung
     2018-12-04 08:16:04   cmd             2
     2018-12-04 08:16:04   cmd_event       di.wcheizung
     2018-12-04 08:16:04   cmd_nr          2
     2018-12-04 08:14:47   mode            enabled
     2018-12-04 08:16:04   state           cmd_2
     2018-12-04 08:14:47   timer_01_c01    05.12.2018 06:00:00
     2018-12-04 08:14:47   timer_02_c01    04.12.2018 22:00:00
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'MQTT2_wcheizung','AM2301_Temperature') < 23
   days:
   devices:
     0           MQTT2_wcheizung
     all         MQTT2_wcheizung
   do:
     0:
       0          set MQTT2_wcheizung ON
     1:
       0          set MQTT2_wcheizung OFF
   helper:
     event      POWER: OFF
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev MQTT2_wcheizung
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: di.wcheizung
       state: cmd_2
     triggerEvents:
       POWER: OFF
     triggerEventsState:
       POWER: OFF
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1543986000
     1          1543957200
   readings:
     0           MQTT2_wcheizung:AM2301_Temperature
     all         MQTT2_wcheizung:AM2301_Temperature
   realtime:
     0          06:00:00
     1          22:00:00
   time:
     0          06:00:00
     1          22:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1543957200:
       localtime  1543957200
       hash:
     1543986000:
       localtime  1543986000
       hash:
   uiState:
   uiTable:
Attributes:
   disable    0
   room       notifys

Damian

Nach dem List kommen keine Events von MQTT2_wcheizung:AM2301_Temperature.

Du kannst auch auf alle Events von MQTT2_wcheizung reagieren, dann musst du das Attribut checkReadingevent 0 setzen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

netbus

Vielleicht deshalb weil ich ein checkall davor ausgeführt habe.
Hier ein aktueller list:

Internals:
   DEF        ([06:00-22:00] and [MQTT2_wcheizung:AM2301_Temperature] < 23)
(set MQTT2_wcheizung ON)
DOELSE
(set MQTT2_wcheizung OFF)
DOELSEIF ([22:01])
   MODEL      FHEM
   NAME       di.wcheizung
   NR         872
   NTFY_ORDER 50-di.wcheizung
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-12-04 15:22:29   Device          MQTT2_wcheizung
     2018-12-04 15:22:29   cmd             2
     2018-12-04 15:22:29   cmd_event       MQTT2_wcheizung
     2018-12-04 15:22:29   cmd_nr          2
     2018-12-04 15:22:29   e_MQTT2_wcheizung_AM2301_Temperature 23.0
     2018-12-04 08:14:47   mode            enabled
     2018-12-04 15:22:29   state           cmd_2
     2018-12-04 08:14:47   timer_01_c01    05.12.2018 06:00:00
     2018-12-04 08:14:47   timer_02_c01    04.12.2018 22:00:00
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'MQTT2_wcheizung','AM2301_Temperature') < 23
   days:
   devices:
     0           MQTT2_wcheizung
     all         MQTT2_wcheizung
   do:
     0:
       0          set MQTT2_wcheizung ON
     1:
       0          set MQTT2_wcheizung OFF
   helper:
     event      POWER: OFF
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   MQTT2_wcheizung
     timerevent AM2301_Temperature: 23.0
     triggerDev MQTT2_wcheizung
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: MQTT2_wcheizung
       state: cmd_2
     timerevents:
       AM2301_Temperature: 23.0
     timereventsState:
       AM2301_Temperature: 23.0
     triggerEvents:
       POWER: OFF
     triggerEventsState:
       POWER: OFF
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1543986000
     1          1543957200
   readings:
     0           MQTT2_wcheizung:AM2301_Temperature
     all         MQTT2_wcheizung:AM2301_Temperature
   realtime:
     0          06:00:00
     1          22:00:00
   time:
     0          06:00:00
     1          22:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1543957200:
       localtime  1543957200
       hash:
     1543986000:
       localtime  1543986000
       hash:
   uiState:
   uiTable:
Attributes:
   disable    0
   room       notifys

Damian

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