FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: sledge am 04 März 2019, 19:39:19

Titel: (gelöst) DOIF schaltet obwohl Bedingung "nicht erfüllt" (Schwellenwert, wait)
Beitrag von: sledge am 04 März 2019, 19:39:19
Hallo zusammen,

irgendwie schaltet mein DOIF, obwohl mE die Bedingungen nicht erfüllt sind.

Ziel: Abschalten der Steckdose, wenn Stromaufnahme für 10 Minuten < 15 Watt. Also Lehrbuchlösung aus der Commandref.

Hier das List des Devices:

Internals:
   DEF        ([OF.ELW.SD:state] eq "on" and [OF.ELW.SD:power] < 15 )  (set OF.ELW.SD off)
   FUUID      5c7979ea-f33f-9b5f-a216-81db502d0c520dee
   MODEL      FHEM
   NAME       OF.ELW.SD.doif
   NR         1260
   NTFY_ORDER 50-OF.ELW.SD.doif
   STATE      cmd_1
   TYPE       DOIF
   VERSION    18706 2019-02-23 21:48:22
   READINGS:
     2019-03-04 18:59:50   Device          OF.ELW.SD
     2019-03-04 18:08:00   cmd             1
     2019-03-04 18:08:00   cmd_event       OF.ELW.SD
     2019-03-04 18:08:00   cmd_nr          1
     2019-03-04 18:59:50   e_OF.ELW.SD_power 64.1
     2019-03-02 13:58:24   mode            enabled
     2019-03-04 18:08:00   state           cmd_1
     2019-03-04 18:08:00   wait_timer      no timer
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         600
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'OF.ELW.SD','state') eq "on" and ::ReadingValDoIf($hash,'OF.ELW.SD','power') < 15
   devices:
     0           OF.ELW.SD
     all         OF.ELW.SD
   do:
     0:
       0          set OF.ELW.SD off
     1:
   helper:
     event      power: 64.1,consumption: 19.29
     globalinit 1
     last_timer 0
     sleepdevice OF.ELW.SD
     sleepsubtimer -1
     sleeptimer -1
     timerdev   OF.ELW.SD
     timerevent power: 14
     triggerDev OF.ELW.SD
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: OF.ELW.SD
       state: cmd_1
     timerevents:
       power: 14
     timereventsState:
       power: 14
     triggerEvents:
       power: 64.1
       consumption: 19.29
     triggerEventsState:
       power: 64.1
       consumption: 19.29
   internals:
   itimer:
   readings:
     0           OF.ELW.SD:state OF.ELW.SD:power
     all         OF.ELW.SD:state OF.ELW.SD:power
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       technik->steckdosen,system->notify
   wait       600


Anbei der Plot - man sieht deutlich, das und wann "ausgeschaltet" wurde, obwohl die 600 Sekunden wait IMHO nicht durchgängig erreicht wurden.

Denkfehler? Danke für Input oder einen Hinweis.

Gruß,
   Tom

EDIT: Plot-Ausschnitt aktualisiert
Titel: Antw:DOIF schaltet obwohl Bedingung "nicht erfüllt" (Schwellenwert, wait)
Beitrag von: Ellert am 04 März 2019, 20:27:57
Welche Größe ist auf der y-Achse dargestellt? Falls es die Leistung ist, wo liegt dann der Grenzwert?
Davon unabhängig muss do always weg, sonst gibt es kein internes DOELSE und wait wird nicht abgebrochen.
Titel: Antw:DOIF schaltet obwohl Bedingung "nicht erfüllt" (Schwellenwert, wait)
Beitrag von: sledge am 04 März 2019, 21:12:46
Zitat von: Ellert am 04 März 2019, 20:27:57
Welche Größe ist auf der y-Achse dargestellt? Falls es die Leistung ist, wo liegt dann der Grenzwert?
Davon unabhängig muss do always weg, sonst gibt es kein internes DOELSE und wait wird nicht abgebrochen.

Danke, das doalways ist mir durchgerutscht von dem Copy eines alten DOIF-Devices. Den Plot habe ich aktualisiert...

Tom
Titel: Antw:(gelöst) DOIF schaltet obwohl Bedingung "nicht erfüllt" (Schwellenwert, wait)
Beitrag von: Ellert am 05 März 2019, 09:19:53
Ja, dann war um 18:03 der Grenzwert unterschritten (die kleine Delle nach unten) und 10 min später wurde geschaltet, weil wait nicht abgebrochen wurde.
Titel: Antw:(gelöst) DOIF schaltet obwohl Bedingung "nicht erfüllt" (Schwellenwert, wait)
Beitrag von: sledge am 05 März 2019, 10:30:01
Zitat von: Ellert am 05 März 2019, 09:19:53
Ja, dann war um 18:03 der Grenzwert unterschritten (die kleine Delle nach unten) und 10 min später wurde geschaltet, weil wait nicht abgebrochen wurde.
Exakt. Ohne "do always" getestet. Klappt.

Danke nochmal