Hallo,
ich habe bis jetzt alles mit "at`s" gesteuert. Das lief alles problemlos.
Jetzt bin ich auf DOIF umgezogen und habe festgestellt, das nach einem Neustart des RasPi´s die Jalousien am nächsten morgen nicht geschaltet werden.
([06:45|1235] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
Könnt Ihr mir sagen warum nicht geschaltet wird?
Im Anhang ein Screenshot vom heutigen Tag, wo KEINE Jalousie sich bewegte.
Lieben gruß
Hoffi
das Attribut do always ist gesetzt ?
attr Bad_hoch1 do always
Zitat von: kumue am 11 November 2015, 07:53:35
das Attribut do always ist gesetzt ?
Ich denke nicht, sonst wäre heute nacht um 3:45 Uhr das Rollo hochgegangen.
Das
do always muss gesetzt werden. Allerdings muss es dann auch einen DOELSE-Zweig geben, notfalls leer:
DOELSE ()Sonst kann das do always dazu führen, dass die letzte Aktion wiederholt wird, selbst wenn die Bedingung in dem Moment nicht erfüllt ist.
Hinweis: Anstelle eines Screenshots sollte man bei Problemen die Ausgabe von
list <Name des DOIFs> posten. Dann erübrigen sich Rückfragen dieser Art.
Mit einem Neustart hat das übrigens alles nichts zu tun. Das DOIF passt einfach noch nicht.
ZitatIch denke nicht, sonst wäre heute nacht um 3:45 Uhr das Rollo hochgegangen.
wieso 03:45 ?
Vielen Dank für die Antworten.
Um 3.45Uhr wären die Jalousien dann wohl hoch gegangen, weil ein neuer Status abgefragt wird (Ferien).
Hier die List:
Internals:
DEF ([06:45|1235] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
NAME Bad_hoch1
NR 202
NTFY_ORDER 50-Bad_hoch1
STATE cmd_1
TYPE DOIF
Readings:
2015-11-11 03:45:00 Device SH_Ferientag
2015-11-09 06:45:00 cmd_event timer_1
2015-11-09 06:45:00 cmd_nr 1
2015-11-11 03:45:00 e_SH_Ferientag_STATE 0
2015-11-09 06:45:00 state cmd_1
2015-11-11 06:45:00 timer_1_c1 12.11.2015 06:45:00|1235
2015-11-11 07:30:00 timer_2_c2 12.11.2015 07:30:00|4
Condition:
0 DOIF_time_once($hash,$hash->{timer}{0},$wday,"1235") and InternalDoIf('SH_Ferientag','STATE','') eq "0" and (Value("Jalousie_Automatik") eq "Auto")
1 DOIF_time_once($hash,$hash->{timer}{1},$wday,"4") and InternalDoIf('SH_Ferientag','STATE','') eq "0" and (Value("Jalousie_Automatik") eq "Auto")
Days:
0 1235
1 4
Devices:
0 SH_Ferientag
1 SH_Ferientag
all SH_Ferientag
Do:
0:
0 set Jalo_Bad 100
1:
0 set Jalo_Bad 100
2:
Helper:
globalinit 1
last_timer 2
sleeptimer -1
Internals:
0 SH_Ferientag:STATE
1 SH_Ferientag:STATE
all SH_Ferientag:STATE
Itimer:
Readings:
Realtime:
0 06:45:00
1 07:30:00
State:
Time:
0 06:45:00
1 07:30:00
Timecond:
0 0
1 1
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0
1 1
Trigger:
Attributes:
eventMap off:Runter on:Hoch
group Jalousien_seite
room Bad,Jalousien
set Rollo_Gruppe
userattr room_map set set_map structexclude /code]
ZitatUm 3.45Uhr wären die Jalousien dann wohl hoch gegangen, weil ein neuer Status abgefragt wird (Ferien).
Finde ich nicht. Wenn Bedingung1 UND Bedingung2 UND Bedingung3 zutrifft, wird der Befehl ausgeführt...
Aber das bekommen wir ja einfach raus ... :)
Kannst ja morgen berichten, ob 3:45 Uhr oder 7:30 Uhr das Rollo hoch ging...
Gruß
Kai
Vielleicht lieber mal so machen
([06:45|1235] and [?SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [?SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
Irgendwie ist das eh alles bisschen durcheinander finde ich
Probiere mal so
([06:45|1235] and [?SH_Ferientag] eq "0" and [?Jalousie_Automatik] eq "Auto") (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [?SH_Ferientag] eq "0" and [?Jalousie_Automatik] eq "Auto") (set Jalo_Bad 100)
Kann mich aber auch irre
Grüße