Hi,
ich habe ein DOIF, das mir in der Nacht den Warmwasserbereiter ("Cumulus") anstellt. Das hat auch wochenlang sehr gut funktioniert. Jetzt plötzlich hat das DOIF aber nicht mehr ausgelöst. Es hat sich an der Konfiguration nichts verändert und ich bin sehr erstaunt!.. Hat jmd. eine Idee? Unten schreibe ich was ich schon probiert habe und habe auch das listing gepasted.
Die Definition ist denkbar einfach:
define DI_Cumulus_Creuse_ON DOIF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
d.h. um 23:05 soll der Cumulus auf AN gehen, wenn aptRented yes ist. aptRented hat sich nicht verändert.
Was sich evtl. verändert hat ist, dass der Cumulus tagsüber nicht mehr zwischen on/off gewechselt hat. Das sollte aber nichts verändern. Ich hatte kurz "attr .. do always" gesetzt, was aber eine Flut von "on" Kommandos zur Folge hatte --> nicht richtig.
Ein separates Logfile usw. habe ich noch nicht aufgesetzt. FHEM ist recht aktuell (letztes update vor zwei Wochen).
Ich würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen kann..
Lieben Dank und beste Grüße
Hendrik
PS: Hier das list des DOIF und der Vollständigkeit halber auch die anderen DOIF Definitionen für OFF und für tagsüber.
Internals:
DEF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
NAME DI_Cumulus_Creuse_ON
NR 106
NTFY_ORDER 50-DI_Cumulus_Creuse_ON
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-15 23:01:50 Device aptRented
2017-07-15 23:05:00 cmd 1
2017-07-15 23:05:00 cmd_event timer_1
2017-07-15 23:05:00 cmd_nr 1
2017-07-15 23:01:50 e_aptRented_STATE yes
2017-07-15 23:05:00 state cmd_1
2017-07-27 23:05:00 timer_01_c01 28.07.2017 23:05:00
condition:
0 DOIF_time_once($hash,0,$wday) and InternalDoIf($hash,'aptRented','STATE') eq "yes"
days:
devices:
0 aptRented
all aptRented
do:
0:
0 set Sonoff_Cumulus on
1:
helper:
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
internals:
0 aptRented:STATE
all aptRented:STATE
interval:
itimer:
localtime:
0 1501275900
readings:
realtime:
0 23:05:00
regexp:
all:
state:
STATE:
time:
0 23:05:00
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1501275900:
localtime 1501275900
hash:
Attributes:
room 99_System
Hier die kompletten Definitionen für die automatische An-/Abschaltung. Zeitgetriggert ist klar - und tagsüber dann temperaturgesteuert. aptRented ist ein einfaches Dummy mit setList yes,no.
define DI_Cumulus_Creuse_ON DOIF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
define DI_Cumulus_Creuse_OFF DOIF ([06:50]) (set Sonoff_Cumulus off)
define DI_Cumulus_Day_ON DOIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] < 32) (set Sonoff_Cumulus on)
define DI_Cumulus_Day_OFF DOIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] > 35) (set Sonoff_Cumulus off)
Bei nur einer Bedingung und keinem DOELSE immer das Attribut "Do Always" benutzen!
Denn sonst funktioniert dein DOIF genau nur einmal.
Zitat von: _hndrk am 28 Juli 2017, 16:05:53
Hi,
ich habe ein DOIF, das mir in der Nacht den Warmwasserbereiter ("Cumulus") anstellt. Das hat auch wochenlang sehr gut funktioniert. Jetzt plötzlich hat das DOIF aber nicht mehr ausgelöst. Es hat sich an der Konfiguration nichts verändert und ich bin sehr erstaunt!.. Hat jmd. eine Idee? Unten schreibe ich was ich schon probiert habe und habe auch das listing gepasted.
Die Definition ist denkbar einfach:
define DI_Cumulus_Creuse_ON DOIF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
d.h. um 23:05 soll der Cumulus auf AN gehen, wenn aptRented yes ist. aptRented hat sich nicht verändert.
Was sich evtl. verändert hat ist, dass der Cumulus tagsüber nicht mehr zwischen on/off gewechselt hat. Das sollte aber nichts verändern. Ich hatte kurz "attr .. do always" gesetzt, was aber eine Flut von "on" Kommandos zur Folge hatte --> nicht richtig.
Ein separates Logfile usw. habe ich noch nicht aufgesetzt. FHEM ist recht aktuell (letztes update vor zwei Wochen).
Ich würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen kann..
Lieben Dank und beste Grüße
Hendrik
PS: Hier das list des DOIF und der Vollständigkeit halber auch die anderen DOIF Definitionen für OFF und für tagsüber.
Internals:
DEF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
NAME DI_Cumulus_Creuse_ON
NR 106
NTFY_ORDER 50-DI_Cumulus_Creuse_ON
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-15 23:01:50 Device aptRented
2017-07-15 23:05:00 cmd 1
2017-07-15 23:05:00 cmd_event timer_1
2017-07-15 23:05:00 cmd_nr 1
2017-07-15 23:01:50 e_aptRented_STATE yes
2017-07-15 23:05:00 state cmd_1
2017-07-27 23:05:00 timer_01_c01 28.07.2017 23:05:00
condition:
0 DOIF_time_once($hash,0,$wday) and InternalDoIf($hash,'aptRented','STATE') eq "yes"
days:
devices:
0 aptRented
all aptRented
do:
0:
0 set Sonoff_Cumulus on
1:
helper:
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
internals:
0 aptRented:STATE
all aptRented:STATE
interval:
itimer:
localtime:
0 1501275900
readings:
realtime:
0 23:05:00
regexp:
all:
state:
STATE:
time:
0 23:05:00
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1501275900:
localtime 1501275900
hash:
Attributes:
room 99_System
Hier die kompletten Definitionen für die automatische An-/Abschaltung. Zeitgetriggert ist klar - und tagsüber dann temperaturgesteuert. aptRented ist ein einfaches Dummy mit setList yes,no.
define DI_Cumulus_Creuse_ON DOIF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
define DI_Cumulus_Creuse_OFF DOIF ([06:50]) (set Sonoff_Cumulus off)
define DI_Cumulus_Day_ON DOIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] < 32) (set Sonoff_Cumulus on)
define DI_Cumulus_Day_OFF DOIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] > 35) (set Sonoff_Cumulus off)
DOIF ist auch dazu gemacht Definitionen zu sparen, so kann das DOIF an einer Stelle gewartet werden, etwa so:
define DI_Cumulus_Creuse DOIF ([23:05] and [aptRented] eq "yes") (set Sonoff_Cumulus on)
DOELSEIF ([06:50]) (set Sonoff_Cumulus off)
DOELSEIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] < 32) (set Sonoff_Cumulus on)
DOELSEIF ([07:00-23:00] and [aptRented] eq "yes" and [Sonoff_Cumulus:AM2301_Temperature] > 35) (set Sonoff_Cumulus off)
Das sollte dann auch funktionieren.
Super, vielen herzlichen Dank euch! :-)