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