Hallo ich habe meinen FHEM Server neu aufgesetzt und seitdem funktioniert folgendes DOIF nicht mehr:
([+{sunrise_rel(0,"06:45","10:00")}|8] or [+{sunrise_rel(0,"07:45","10:00")}|7])
Die Rollladen sind so bei meiner alten installation um 6:45 hochgefahren, jetzt fahren sie immer erst um 7:45 hoch.
{$we} gibt eine 0 aus.
Meine Holiday-Datei gibt auch None aus:
defmod nw holiday
attr nw alias NRW Feiertage
attr nw group Urlaub
attr nw room Logik->Kalender
attr nw stateFormat Heute state <br>\
Morgen tomorrow <br>\
Gestern yesterday
setstate nw Heute none <br>\
Morgen none <br>\
Gestern none
setstate nw 2019-09-26 04:30:00 state none
setstate nw 2019-09-26 04:30:00 tomorrow none
setstate nw 2019-09-26 04:30:00 yesterday none
Bin über jede Hilfe dankbar
attr global holiday2we nw
attr global holiday2we nw
ist auch gesetzt.
Sorry vergessen eben mit anzugeben.
dann poste mal ein komplettes List vom DOIF bitte.
DEF (
([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and
[?FG_WC] ne "open" and
([+{sunrise_rel(0,"06:45","10:00")}|8] or [+{sunrise_rel(0,"07:45","10:00")}|7])
)
(set Ro_WC 100)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?FG_WC] eq "closed" and [?Party] eq "aus" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 1)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?FG_WC] ne "closed" and [?Party] eq "aus" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 12)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?Party] eq "ein" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 12)
FUUID 5d823126-f33f-d66a-eeac-82f8df12766a987e
FVERSION 98_DOIF.pm:0.197860/2019-07-05
MODEL FHEM
NAME RO_WCdoif
NR 293
NTFY_ORDER 50-RO_WCdoif
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-09-26 07:45:00 cmd 1
2019-09-26 07:45:00 cmd_event timer_2
2019-09-26 07:45:00 cmd_nr 1
2019-09-18 15:29:10 mode enabled
2019-09-26 07:45:00 state cmd_1
2019-09-26 06:47:18 timer_01_c01 27.09.2019 06:48:59|8
2019-09-26 07:45:00 timer_02_c01 27.09.2019 07:45:00|7
2019-09-25 19:57:15 timer_03_c02 26.09.2019 19:54:53
2019-09-25 19:57:15 timer_04_c03 26.09.2019 19:54:53
2019-09-25 19:57:15 timer_05_c04 26.09.2019 19:54:53
Regex:
accu:
attr:
cmdState:
waitdel:
condition:
0 (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') ne "open" and (::DOIF_time_once($hash,0,$wday,"8") or ::DOIF_time_once($hash,1,$wday,"7"))
1 (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') eq "closed" and ::InternalDoIf($hash,'Party','STATE') eq "aus" and ::DOIF_time_once($hash,2,$wday)
2 (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') ne "closed" and ::InternalDoIf($hash,'Party','STATE') eq "aus" and ::DOIF_time_once($hash,3,$wday)
3 (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'Party','STATE') eq "ein" and ::DOIF_time_once($hash,4,$wday)
days:
0 8
1 7
devices:
do:
0:
0 set Ro_WC 100
1:
0 set Ro_WC 1
2:
0 set Ro_WC 12
3:
0 set Ro_WC 12
4:
helper:
event timer_2
globalinit 1
last_timer 5
sleeptimer -1
timerdev
timerevent timer_2
timereventsState
triggerDev
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_2
state: cmd_1
timerevents:
timer_2
triggerEvents:
timer_2
internals:
0 Rollladensteuerung:STATE FG_WC:STATE
1 Rollladensteuerung:STATE FG_WC:STATE Party:STATE
2 Rollladensteuerung:STATE FG_WC:STATE Party:STATE
3 Rollladensteuerung:STATE Party:STATE
all Rollladensteuerung:STATE FG_WC:STATE Party:STATE
interval:
intervalfunc:
itimer:
localtime:
0 1569559739
1 1569563100
2 1569520493
3 1569520493
4 1569520493
perlblock:
readings:
realtime:
0 06:48:59
1 07:45:00
2 19:54:53
3 19:54:53
4 19:54:53
time:
0 +{sunrise_rel(0,"06:45","10:00")}
1 +{sunrise_rel(0,"07:45","10:00")}
2 +{sunset_rel(0,"16:00","23:00")}
3 +{sunset_rel(0,"16:00","23:00")}
4 +{sunset_rel(0,"16:00","23:00")}
timeCond:
0 0
1 0
2 1
3 2
4 3
timer:
0 0
1 0
2 0
3 0
4 0
timers:
0 0 1
1 2
2 3
3 4
triggertime:
1569520493:
localtime 1569520493
hash:
1569559739:
localtime 1569559739
hash:
1569563100:
localtime 1569563100
hash:
uiState:
uiTable:
Attributes:
alias RO_WCdoif
do always
room Logik->WC
seh ich gerade keinen Fehler.
GPS Koordinagen im Global sind gesetzt?
Ja die Zeiten passen: 06:48:59|8
Setze mal die Statis der Dummys "Rolladensteuerung" und "Party" neu.
Danach führst Du mal ein checkall aus
Du kannst ja mal $we zum Triggerzeitpunkt ausgeben. Die ganze Wochentagsteuerung in DOIF basiert auf dieser Variablen.
Zum Testen einfach mal definieren:
define di_we DOIF {[07:45];set_Reading ("we",$we)}
Dann kannst du im nachhinein im Reading we sehen, was DOIF für einen Wert zu diesem Zeitpunkt bekommt.
DOIF wertet inzwischen auch mehrere holiday-Dateien aus, die in global unter holiday2we definiert sind, das scheint bei dir aber nicht das Problem zu sein.
define di_we DOIF {[07:45];set_Reading ("we",$we)}
funktioniert nicht.
Fehlermeldung:
di_we DOIF: no right bracket: {[07:45]
Unknown command set_Reading, try help.
Ich habe es mal nach bestem wissen umgebaut:
define di_we DOIF ([07:45])(setrReading di_we we {$we})
dann steht aber nur {$we} im reading we.
define di_we DOIF ([07:45])(setrReading di_we we [{$we}] )
gibt ein reading [{$we}]
Zitat von: Schuetze5 am 26 September 2019, 12:40:21
define di_we DOIF {[07:45];set_Reading ("we",$we)}
funktioniert nicht.
Fehlermeldung:
di_we DOIF: no right bracket: {[07:45]
Unknown command set_Reading, try help.
Ich habe es mal nach bestem wissen umgebaut:
define di_we DOIF ([07:45])(setrReading di_we we {$we})
dann steht aber nur {$we} im reading we.
Wenn du es nicht über den Webeditor eingibst, dann musst du, wie immer, Semikolons doppeln. Deine Lösung funktioniert so nicht, weil im FHEM-Ausführungteil $we nicht definiert ist, auch wenn du es korrekterweise mit {($we)} angegeben hättest ;)
OK Danke mit doppel Simikolon funktioniert es.
Er gibt mir als we reading eine 1 aus, also muss ich mal schauen wo die jetzt wegkommt.
Zitat von: Schuetze5 am 26 September 2019, 09:29:43
Die Rollladen sind so bei meiner alten installation um 6:45 hochgefahren, jetzt fahren sie immer erst um 7:45 hoch.
Ist Dein Rechner in der falschen Zeitzone? Was sagt /etc/timezone?
Ciao, -MN
Die Uhrzeit und das Datum stimmt, kann ich ja in den readings sehen wenn ich z.B. eine Lampe einschalte.