Hi. Ich versuche seit einigen Tagen vergeblich, meiner Rollosteuerung die Weckzeit aus Residents als Parameter mitzugeben. Die relevante Zeile lautet:
([{sunrise(+1810, "07:05", "09:40")}] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
(set az_rollo open)
Für mich heißt das: 30 min. nach Sonnenaufgang, frühestens aber um 7.05 Uhr und spätestens um 9.40 Uhr, wenn die eingestellte Weckzeit in diesen Zeitraum fällt und der Homestatus nicht "gone" ist, mach mal das Rollo hoch. Das Reading "rr_Micha:nextWakeup" wird auch korrekt (nämlich 8.30 Uhr) in den Timer der Rollosteuerung geschrieben. Es passiert aber nichts. Ich habe die commandref zum DOIF jetzt mehrfach durch und viele Klammer-Kombinationen ausprobiert; entweder gibt es direkt eine Fehlermeldung, oder das Reading wird in den Timer geschrieben aber nicht ausgeführt.
Hier mal das vollständige List:
Internals:
DEF ([{sunrise(+1810, "07:05", "09:40")}] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
(set az_rollo open)
DOELSEIF ([{sunset(-1815, "16:00", "22:00")}] and [az_fdgk] eq "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "closed" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo] ne "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "tilted" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo:position] ne "70")
(set az_rollo position 70)
MODEL FHEM
NAME az_rollosteuerung
NR 111
NTFY_ORDER 50-az_rollosteuerung
STATE initialized
TYPE DOIF
READINGS:
2018-06-28 13:49:10 Device az_rollo
2018-06-27 23:39:40 cmd 0
2018-06-28 13:48:37 e_az_fdgk_STATE open
2018-06-28 13:49:10 e_az_rollo_STATE open
2018-06-27 23:39:40 mode enabled
2018-06-27 23:39:40 state initialized
2018-06-28 07:04:59 timer_01_c01 29.06.2018 07:04:59
2018-06-28 08:30:00 timer_02_c01 29.06.2018 08:30:00
2018-06-27 23:39:40 timer_03_c02 28.06.2018 22:00:00
2018-06-28 06:00:00 timer_04_c03 28.06.2018 22:00:00
2018-06-28 06:00:00 timer_05_c03 29.06.2018 06:00:00
2018-06-28 06:00:00 timer_06_c04 28.06.2018 22:00:00
2018-06-28 06:00:00 timer_07_c04 29.06.2018 06:00:00
Regex:
attrtimer:
wait:
waitdel:
condition:
0 DOIF_time_once($hash,0,$wday) and DOIF_time_once($hash,1,$wday) and InternalDoIf($hash,'HomeStatus','STATE') ne "gone"
1 DOIF_time_once($hash,2,$wday) and InternalDoIf($hash,'az_fdgk','STATE') eq "closed"
2 InternalDoIf($hash,'az_fdgk','STATE') eq "closed" and DOIF_time($hash,3,4,$wday,$hms) and InternalDoIf($hash,'az_rollo','STATE') ne "closed"
3 InternalDoIf($hash,'az_fdgk','STATE') eq "tilted" and DOIF_time($hash,5,6,$wday,$hms) and ReadingValDoIf($hash,'az_rollo','position') ne "70"
days:
devices:
0 HomeStatus
1 az_fdgk
2 az_fdgk az_rollo
3 az_fdgk az_rollo
all HomeStatus az_fdgk az_rollo
do:
0:
0 set az_rollo open
1:
0 set az_rollo closed
2:
0 set az_rollo closed
3:
0 set az_rollo position 70
4:
helper:
DOIF_Readings_events
DOIF_eventas
event open,statePosition: open
globalinit 1
last_timer 7
sleeptimer -1
triggerDev az_rollo
triggerEvents:
open
statePosition: open
triggerEventsState:
state: open
statePosition: open
internals:
0 HomeStatus:STATE
1 az_fdgk:STATE
2 az_fdgk:STATE az_rollo:STATE
3 az_fdgk:STATE
all HomeStatus:STATE az_fdgk:STATE az_rollo:STATE
interval:
3 -1
4 3
5 -1
6 5
intervalfunc:
itimer:
all rr_Micha
localtime:
0 1530248699
1 1530253800
2 1530216000
3 1530216000
4 1530244800
5 1530216000
6 1530244800
readings:
3 az_rollo:position
all az_rollo:position
realtime:
0 07:04:59
1 08:30:00
2 22:00:00
3 22:00:00
4 06:00:00
5 22:00:00
6 06:00:00
time:
0 {sunrise(+1810,"07:05","09:40")}
1 [rr_Micha:nextWakeup]
2 {sunset(-1815,"16:00","22:00")}
3 {sunset_abs(0,"16:00","22:00")}
4 {sunrise(0,"06:00","09:00")}
5 {sunset_abs(0,"16:00","22:00")}
6 {sunrise(0,"06:00","09:00")}
timeCond:
0 0
1 0
2 1
3 2
4 2
5 3
6 3
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
timers:
0 0 1
1 2
2 3 4
3 5 6
trigger:
triggertime:
1530216000:
localtime 1530216000
hash:
1530244800:
localtime 1530244800
hash:
1530248699:
localtime 1530248699
hash:
1530253800:
localtime 1530253800
hash:
uiState:
uiTable:
Attributes:
do always
room Rolladen
Kann mir mal bitte jemand einen Tipp geben, wie man das richtig schreibt?
Vielen Dank im Voraus
Micha
30 Minuten nach Sonnenaufgang UND deine Weckzeit müssen zeitgleich sein. Denke der wird so nie auslösen.
Wann soll er denn fahren? Weckzeit ODER Sonnenaufgang?
Gesendet von meinem Doogee S60 mit Tapatalk
Hi Frank. Naja, fahren soll das Rollo nach Weckzeit (die ist zwischen 5.00 Uhr und 9.00 Uhr, je nach Dienst), aber nicht vor Sonnenaufgang und im Falle eines nicht gestellten Weckers spätestens um 9.30 Uhr. Aber mir wird jetzt das Problem deutlich: Nach Sonnenaufgang aber nicht vor 7.05 Uhr; da die Sonne früh aufgeht, triggert das DOIF um 7.05, und das fällt eben nicht mit der eingestellten Weckzeit zusammen.
Wie kann ich das denn schreiben dass es für meine Bedürfnisse passt? Jemand eine Idee?
Vielen Dank
Micha
Zitat von: Neonblack am 28 Juni 2018, 22:23:53
Hi Frank. Naja, fahren soll das Rollo nach Weckzeit (die ist zwischen 5.00 Uhr und 9.00 Uhr, je nach Dienst), aber nicht vor Sonnenaufgang und im Falle eines nicht gestellten Weckers spätestens um 9.30 Uhr. Aber mir wird jetzt das Problem deutlich: Nach Sonnenaufgang aber nicht vor 7.05 Uhr; da die Sonne früh aufgeht, triggert das DOIF um 7.05, und das fällt eben nicht mit der eingestellten Weckzeit zusammen.
Wie kann ich das denn schreiben dass es für meine Bedürfnisse passt? Jemand eine Idee?
Vielen Dank
Micha
Da musst du immer den Zeitpunkt mit einem Zeitintervall kombinieren. Beispiele gibt es zur Genüge: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
([?{sunrise(+1810, "07:05", "09:40")}-09:40] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
Zitat von: Damian am 28 Juni 2018, 23:17:36
Da musst du immer den Zeitpunkt mit einem Zeitintervall kombinieren. Beispiele gibt es zur Genüge: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
([?{sunrise(+1810, "07:05", "09:40")}-09:40] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
Hallo Damian. Ich habe diese Beispiele schon gesehen, aber so ganz blicke ich da nicht durch. Was macht das "?" vor der geschweiften Klammer, und was macht die letzte Zeitangabe (-09:40) hinter der geschweiften Klammer?
Der Code hat aber ohnehin nicht funktioniert. Die Weckzeit (nextWakeup) stand auf 7.45 Uhr, getriggert wurde das Rollo aber schon um 7.05. Noch eine Idee?
Vielen Dank
Micha
Moin Micha,
ist das wirklich so schwer zu lesen?
ZitatZeitintervalle werden im Format angegeben: [<begin>-<end>], für <begin> bzw. <end> wird das gleiche Zeitformat verwendet, wie bei einzelnen Zeitangaben.
ZitatZeitintervalle, Readings und Status ohne Trigger back
Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.
Ansonsten wäre es zur Fehlerfindung gut ein list vom DOIF zu dem Zeitpunkt zu haben, wo es 7:05 ausgelöst hat obwohl es 7:45 Uhr auslösen sollte.
Gruß Otto
Zitat von: Otto123 am 01 Juli 2018, 10:29:46
Moin Micha,
ist das wirklich so schwer zu lesen?
Hallo Otto. Es ist nicht so schwer zu lesen, wenn man die Rosinen herausgepickt bekommt. ;) Aber gerade zu DOIF sind so viele Informationen verfügbar, dass man schnell die Relevanz einzelner Stellen verkennt. Außerdem ist es für des Programmierens Unverständige auch eben nicht so ganz leicht zu kombinieren; da steht ja nach der geschweiften Klammer noch mal eine Zeitangabe. Und wie eine Abfrage in Kombination mit gesetzten Parametern dann etwas triggert, hängt ja nicht unwesentlich von der "Klammerei" ab. Also:ja. Wenn man nicht tief im Thema steckt, ist es nicht so einfach anzuwenden. Aber ich bekomme ja Hilfe.... :)
Ich habe jetzt noch mal getestet und die letzten Tage hat es nicht funktioniert. Hier mal ein List vom WakeupTimer:
Internals:
NAME rr_Micha_wakeuptimer1
NR 154
STATE 08:16
TYPE dummy
READINGS:
2018-07-05 07:05:00 lastRun 07:09
2018-07-05 08:12:06 nextRun 08:16
2018-07-05 07:09:01 running 0
2018-07-05 08:12:06 state 08:16
2018-06-24 11:02:54 time 08:28
2018-06-24 11:26:29 wakeupDefaultTime 08:30
Attributes:
alias Wake-up Timer 1
comment Auto-created by ROOMMATE module for use with RESIDENTS Toolkit
devStateIcon OFF:general_aus@red:reset running:general_an@green:stop .*:general_an@orange:nextRun%20OFF
group Micha
icon time_timer
room Residents
setList nextRun:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 reset:noArg trigger:noArg start:noArg stop:noArg end:noArg wakeupOffset:slider,0,1,120 wakeupDefaultTime:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 wakeupResetdays:multiple-strict,0,1,2,3,4,5,6 wakeupDays:multiple-strict,0,1,2,3,4,5,6 wakeupHolidays:,andHoliday,orHoliday,andNoHoliday,orNoHoliday wakeupEnforced:0,1,2,3
sortby 2
userattr wakeupOffset:slider,0,1,120 wakeupDefaultTime:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 wakeupMacro wakeupUserdevice wakeupAtdevice wakeupResetSwitcher wakeupResetdays:multiple-strict,0,1,2,3,4,5,6 wakeupDays:multiple-strict,0,1,2,3,4,5,6 wakeupHolidays:andHoliday,orHoliday,andNoHoliday,orNoHoliday wakeupEnforced:0,1,2,3 wakeupWaitPeriod:slider,0,1,360
wakeupAtdevice at_rr_Micha_wakeuptimer1
wakeupDays 1,2,3,4,5
wakeupDefaultTime 08:30
wakeupEnforced 1
wakeupHolidays andNoHoliday
wakeupMacro Macro_rr_Micha_wakeuptimer1
wakeupOffset 4
wakeupResetSwitcher rr_Micha_wakeuptimer1_resetswitcher
wakeupResetdays 1,2,3,4,5
wakeupUserdevice rr_Micha
webCmd nextRun
Gestern sollte also um 7.09 Uhr das Rollo hochfahren. Ist aber erst um 8.30 Uhr hochgefahren und im Log ist um 7.09 Uhr nichts zu sehen:
2018.07.04 08:26:00 3: Macro_rr_Micha_wakeuptimer1: Wake-up program started for rr_Micha with target time 08:30. Current state: home
2018.07.04 08:26:00 3: Macro_rr_Micha_wakeuptimer1: planning enforced wake-up
2018.07.04 08:30:00 3: ESPEasy: set az_rolloauf gpio 5 1
Vorgestern war die Weckzeit (7.12 Uhr) korrekt im Log vermerkt:
2018.07.03 07:08:00 3: Macro_rr_Micha_wakeuptimer1: Wake-up program started for rr_Micha with target time 07:12. Current state: home
2018.07.03 07:08:00 3: Macro_rr_Micha_wakeuptimer1: planning enforced wake-up
2018.07.03 07:12:01 3: Macro_rr_Micha_wakeuptimer1: Wake-up program ended for rr_Micha with target time 07:12. Current state: home
Passiert ist aber erst um 8.30 etwas:
2018.07.03 08:26:00 3: RESIDENTStk rr_Micha_wakeuptimer1: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=1530616319 > nowRunSec=1530599400)
2018.07.03 08:30:00 3: ESPEasy: set az_rolloauf gpio 5 1
2018.07.03 08:30:33 3: ESPEasy: set az_rolloauf gpio 5 0
Heute früh war der Wecker auf 7.09 gestellt:
2018.07.05 07:09:01 3: Macro_rr_Micha_wakeuptimer1: Wake-up program ended for rr_Micha with target time 07:09. Current state: home
2018.07.05 08:06:00 3: RESIDENTStk rr_Micha_wakeuptimer1: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=1530788939 > nowRunSec=1530771000)
Das Rollo blieb unten (bis 8.30 Uhr, was die defaulttime ist). Gerade eben habe ich das nochmal probiert. Weckzeit auf 8.16 Uhr gestellt und da hat es funktioniert. Das Rollo ist um 8.16 Uhr hochgefahren.
Das ist mindestens mysteriös. ;)
Ich teste das noch mal ein paar Tage und melde mich dann wieder. Danke für eure Geduld und einen schönen Tag wünscht
Micha
Heute morgen hat es wohl wieder nicht funktioniert. Der Wecker stand auf 8.16 Uhr und hochgefahren ist das Rollo um ~8.30 Uhr.
2018.07.06 08:12:00 3: Macro_rr_Micha_wakeuptimer1: Wake-up program started for rr_Micha with target time 08:16. Current state: home
2018.07.06 08:12:00 3: Macro_rr_Micha_wakeuptimer1: planning enforced wake-up
2018.07.06 08:16:01 3: Macro_rr_Micha_wakeuptimer1: Wake-up program ended for rr_Micha with target time 08:16. Current state: home
2018.07.06 08:26:00 3: RESIDENTStk rr_Micha_wakeuptimer1: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=1530879359 > nowRunSec=1530858600)
2018.07.06 08:28:58 3: ESPEasy: set az_rolloauf gpio 5 1
2018.07.06 08:29:32 3: ESPEasy: set az_rolloauf gpio 5 0
Mit der Meldung kann ich leider nicht viel anfangen. Also das Reading das von der Rollosteuerung (DOIF, s.o.) abgefragt wird ist rr_Micha:nextWakeup. Das stand auf 8.16 Uhr (steht jetzt auch bei lastWakeup). Getriggert wurde das Rollo aber zu rr_Micha_wakeuptimer1:wakeupDefaultTime. Ich blicke da nicht durch. Wahrscheinlich verstehe ich da grundsätzlich etwas falsch. Da wundert es mich aber, dass es gestern morgen geklappt hat....
Kann das vielleicht jemand erhellen?
LG
Micha
Zitat von: Neonblack am 06 Juli 2018, 21:11:40
Heute morgen hat es wohl wieder nicht funktioniert. Der Wecker stand auf 8.16 Uhr und hochgefahren ist das Rollo um ~8.30 Uhr.
2018.07.06 08:12:00 3: Macro_rr_Micha_wakeuptimer1: Wake-up program started for rr_Micha with target time 08:16. Current state: home
2018.07.06 08:12:00 3: Macro_rr_Micha_wakeuptimer1: planning enforced wake-up
2018.07.06 08:16:01 3: Macro_rr_Micha_wakeuptimer1: Wake-up program ended for rr_Micha with target time 08:16. Current state: home
2018.07.06 08:26:00 3: RESIDENTStk rr_Micha_wakeuptimer1: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=1530879359 > nowRunSec=1530858600)
2018.07.06 08:28:58 3: ESPEasy: set az_rolloauf gpio 5 1
2018.07.06 08:29:32 3: ESPEasy: set az_rolloauf gpio 5 0
Mit der Meldung kann ich leider nicht viel anfangen. Also das Reading das von der Rollosteuerung (DOIF, s.o.) abgefragt wird ist rr_Micha:nextWakeup. Das stand auf 8.16 Uhr (steht jetzt auch bei lastWakeup). Getriggert wurde das Rollo aber zu rr_Micha_wakeuptimer1:wakeupDefaultTime. Ich blicke da nicht durch. Wahrscheinlich verstehe ich da grundsätzlich etwas falsch. Da wundert es mich aber, dass es gestern morgen geklappt hat....
Kann das vielleicht jemand erhellen?
LG
Micha
Du sprichts hier von einem DOIF-Problem. All diese geposteten Meldung haben mit DOIF nichts zu tun. Wenn du eine Antwort zum DOIF-Verhalten haben willst, dann musst du hier list vom DOIF posten.
Zitat von: Damian am 06 Juli 2018, 22:27:05
Du sprichts hier von einem DOIF-Problem. All diese geposteten Meldung haben mit DOIF nichts zu tun. Wenn du eine Antwort zum DOIF-Verhalten haben willst, dann musst du hier list vom DOIF posten.
Hallo Damian. Also, Wecker auf 7.43 Uhr gestellt. Das List vom DOIF vor dem Wecken:
Internals:
DEF ([?{sunrise(+1200, "07:00", "09:30")}-09:30] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
(set az_rollo open)
DOELSEIF ([{sunset(-1815, "16:00", "22:00")}] and [az_fdgk] eq "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "closed" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo] ne "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "tilted" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo:position] ne "70")
(set az_rollo position 70)
MODEL FHEM
NAME az_rollosteuerung
NR 111
NTFY_ORDER 50-az_rollosteuerung
STATE cmd_3
TYPE DOIF
READINGS:
2018-07-08 11:44:32 Device az_fdgk
2018-07-08 00:38:50 cmd 3
2018-07-08 00:38:50 cmd_event az_fdgk
2018-07-08 00:38:50 cmd_nr 3
2018-07-08 11:44:32 e_az_fdgk_STATE tilted
2018-07-08 11:20:24 e_az_rollo_STATE open
2018-06-29 18:28:39 mode enabled
2018-07-08 00:38:50 state cmd_3
2018-07-08 13:15:37 timer_01_c01 09.07.2018 07:00:00
2018-07-08 13:15:37 timer_02_c01 09.07.2018 09:30:00
2018-07-08 13:29:27 timer_03_c01 09.07.2018 07:43:00
2018-07-08 13:15:37 timer_04_c02 08.07.2018 22:00:00
2018-07-08 13:15:37 timer_05_c03 08.07.2018 22:00:00
2018-07-08 13:15:37 timer_06_c03 09.07.2018 06:00:00
2018-07-08 13:15:37 timer_07_c04 08.07.2018 22:00:00
2018-07-08 13:15:37 timer_08_c04 09.07.2018 06:00:00
Regex:
condition:
0 DOIF_time($hash,0,1,$wday,$hms) and DOIF_time_once($hash,2,$wday) and InternalDoIf($hash,'HomeStatus','STATE') ne "gone"
1 DOIF_time_once($hash,3,$wday) and InternalDoIf($hash,'az_fdgk','STATE') eq "closed"
2 InternalDoIf($hash,'az_fdgk','STATE') eq "closed" and DOIF_time($hash,4,5,$wday,$hms) and InternalDoIf($hash,'az_rollo','STATE') ne "closed"
3 InternalDoIf($hash,'az_fdgk','STATE') eq "tilted" and DOIF_time($hash,6,7,$wday,$hms) and ReadingValDoIf($hash,'az_rollo','position') ne "70"
days:
devices:
0 HomeStatus
1 az_fdgk
2 az_fdgk az_rollo
3 az_fdgk az_rollo
all HomeStatus az_fdgk az_rollo
do:
0:
0 set az_rollo open
1:
0 set az_rollo closed
2:
0 set az_rollo closed
3:
0 set az_rollo position 70
helper:
globalinit 1
last_timer 8
sleeptimer -1
internals:
0 HomeStatus:STATE
1 az_fdgk:STATE
2 az_fdgk:STATE az_rollo:STATE
3 az_fdgk:STATE
all HomeStatus:STATE az_fdgk:STATE az_rollo:STATE
interval:
0 -1
1 0
4 -1
5 4
6 -1
7 6
intervalfunc:
intervaltimer:
itimer:
all rr_Micha
localtime:
0 1531112400
1 1531121400
2 1531114980
3 1531080000
4 1531080000
5 1531108800
6 1531080000
7 1531108800
perlblock:
readings:
3 az_rollo:position
all az_rollo:position
realtime:
0 07:00:00
1 09:30:00
2 07:43:00
3 22:00:00
4 22:00:00
5 06:00:00
6 22:00:00
7 06:00:00
time:
0 {sunrise(+1200,"07:00","09:30")}
1 09:30:00
2 [rr_Micha:nextWakeup]
3 {sunset(-1815,"16:00","22:00")}
4 {sunset_abs(0,"16:00","22:00")}
5 {sunrise(0,"06:00","09:00")}
6 {sunset_abs(0,"16:00","22:00")}
7 {sunrise(0,"06:00","09:00")}
timeCond:
0 0
1 0
2 0
3 1
4 2
5 2
6 3
7 3
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
timers:
0 2
1 3
2 4 5
3 6 7
triggertime:
1531080000:
localtime 1531080000
hash:
1531108800:
localtime 1531108800
hash:
1531112400:
localtime 1531112400
hash:
1531114980:
localtime 1531114980
hash:
1531121400:
localtime 1531121400
hash:
Attributes:
do always
room Rolladen
Auszug aus dem Logfile:
2018.07.09 07:39:00 3: Macro_rr_Micha_wakeuptimer1: Wake-up program started for rr_Micha with target time 07:43. Current state: home
2018.07.09 07:39:00 3: Macro_rr_Micha_wakeuptimer1: planning enforced wake-up
2018.07.09 07:43:01 3: Macro_rr_Micha_wakeuptimer1: Wake-up program ended for rr_Micha with target time 07:43. Current state: home
2018.07.09 08:15:52 3: ABFALL Abfallentsorgung - CALENDAR:Kalender triggered, updating ABFALL Abfallentsorgung ...
2018.07.09 08:15:58 3: Aral_Lue: Read callback: Error: read from https://www.clever-tanken.de:443 timed out
2018.07.09 08:16:19 3: [Astro_SunRise] no solution possible for astronomical twilight - maybe the sun never sets below -18 degrees?
2018.07.09 08:26:00 3: RESIDENTStk rr_Micha_wakeuptimer1: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=1531136579 > nowRunSec=1531117800)
2018.07.09 08:30:00 3: ESPEasy: set az_rolloauf gpio 5 1
2018.07.09 08:30:33 3: ESPEasy: set az_rolloauf gpio 5 0
Das Rollo ist also wieder erst um 8.30 gefahren.
List vom DOIF nach dem Wecken:
Internals:
DEF ([?{sunrise(+1200, "07:00", "09:30")}-09:30] and [[rr_Micha:nextWakeup]] and [HomeStatus] ne "gone")
(set az_rollo open)
DOELSEIF ([{sunset(-1815, "16:00", "22:00")}] and [az_fdgk] eq "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "closed" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo] ne "closed")
(set az_rollo closed)
DOELSEIF ([az_fdgk] eq "tilted" and [{sunset_abs(0,"16:00","22:00")}-{sunrise(0, "06:00", "09:00")}] and [az_rollo:position] ne "70")
(set az_rollo position 70)
MODEL FHEM
NAME az_rollosteuerung
NR 111
NTFY_ORDER 50-az_rollosteuerung
STATE cmd_1
TYPE DOIF
READINGS:
2018-07-09 08:51:33 Device az_fdgk
2018-07-09 08:30:00 cmd 1
2018-07-09 08:30:00 cmd_event timer_3
2018-07-09 08:30:00 cmd_nr 1
2018-07-09 08:51:33 e_az_fdgk_STATE open
2018-07-09 08:30:33 e_az_rollo_STATE open
2018-06-29 18:28:39 mode enabled
2018-07-09 08:30:00 state cmd_1
2018-07-09 09:30:00 timer_01_c01 10.07.2018 07:00:00
2018-07-09 09:30:00 timer_02_c01 10.07.2018 09:30:00
2018-07-09 08:30:00 timer_03_c01 10.07.2018 08:30:00
2018-07-08 22:00:00 timer_04_c02 09.07.2018 21:59:51
2018-07-09 06:00:00 timer_05_c03 09.07.2018 22:00:00
2018-07-09 06:00:00 timer_06_c03 10.07.2018 06:00:00
2018-07-09 06:00:00 timer_07_c04 09.07.2018 22:00:00
2018-07-09 06:00:00 timer_08_c04 10.07.2018 06:00:00
Regex:
attr:
cmdState:
waitdel:
condition:
0 DOIF_time($hash,0,1,$wday,$hms) and DOIF_time_once($hash,2,$wday) and InternalDoIf($hash,'HomeStatus','STATE') ne "gone"
1 DOIF_time_once($hash,3,$wday) and InternalDoIf($hash,'az_fdgk','STATE') eq "closed"
2 InternalDoIf($hash,'az_fdgk','STATE') eq "closed" and DOIF_time($hash,4,5,$wday,$hms) and InternalDoIf($hash,'az_rollo','STATE') ne "closed"
3 InternalDoIf($hash,'az_fdgk','STATE') eq "tilted" and DOIF_time($hash,6,7,$wday,$hms) and ReadingValDoIf($hash,'az_rollo','position') ne "70"
days:
devices:
0 HomeStatus
1 az_fdgk
2 az_fdgk az_rollo
3 az_fdgk az_rollo
all HomeStatus az_fdgk az_rollo
do:
0:
0 set az_rollo open
1:
0 set az_rollo closed
2:
0 set az_rollo closed
3:
0 set az_rollo position 70
4:
helper:
event battery: ok,contact: open (to broadcast),open,trigDst_broadcast: noConfig,trigger_cnt: 50
globalinit 1
last_timer 8
sleeptimer -1
timerdev
timerevent timer_3
triggerDev az_fdgk
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_3
state: cmd_1
timerevents:
timer_3
timereventsState:
state: closed
statePosition: closed
triggerEvents:
battery: ok
contact: open (to broadcast)
open
trigDst_broadcast: noConfig
trigger_cnt: 50
triggerEventsState:
battery: ok
contact: open (to broadcast)
state: open
trigDst_broadcast: noConfig
trigger_cnt: 50
internals:
0 HomeStatus:STATE
1 az_fdgk:STATE
2 az_fdgk:STATE az_rollo:STATE
3 az_fdgk:STATE
all HomeStatus:STATE az_fdgk:STATE az_rollo:STATE
interval:
0 -1
1 0
4 -1
5 4
6 -1
7 6
intervalfunc:
intervaltimer:
itimer:
all rr_Micha
localtime:
0 1531198800
1 1531207800
2 1531204200
3 1531166391
4 1531166400
5 1531195200
6 1531166400
7 1531195200
perlblock:
readings:
3 az_rollo:position
all az_rollo:position
realtime:
0 07:00:00
1 09:30:00
2 08:30:00
3 21:59:51
4 22:00:00
5 06:00:00
6 22:00:00
7 06:00:00
time:
0 {sunrise(+1200,"07:00","09:30")}
1 09:30:00
2 [rr_Micha:nextWakeup]
3 {sunset(-1815,"16:00","22:00")}
4 {sunset_abs(0,"16:00","22:00")}
5 {sunrise(0,"06:00","09:00")}
6 {sunset_abs(0,"16:00","22:00")}
7 {sunrise(0,"06:00","09:00")}
timeCond:
0 0
1 0
2 0
3 1
4 2
5 2
6 3
7 3
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
timers:
0 2
1 3
2 4 5
3 6 7
trigger:
triggertime:
1531166391:
localtime 1531166391
hash:
1531166400:
localtime 1531166400
hash:
1531195200:
localtime 1531195200
hash:
1531198800:
localtime 1531198800
hash:
1531204200:
localtime 1531204200
hash:
1531207800:
localtime 1531207800
hash:
uiState:
Attributes:
do always
room Rolladen
Woran mag das liegen? Ich nehme ja an, dass
ich etwas falsch mache.... ;)
Viele Grüße
Micha
Man kann hier erkennen
2018-07-08 13:29:27 timer_03_c01 09.07.2018 07:43:00
, dass der Timer richtig gesetzt war.
Hier ist der Timer schon auf 08:30 gesetzt gewesen:
2018-07-09 08:30:00 timer_03_c01 10.07.2018 08:30:00
Die Zeiten überlegt sich DOIF nicht selbst, die kommen durch das Setzen von rr_Micha:nextWakeup.
Da musst du prüfen, wo überall rr_Micha:nextWakeup gesetzt wird.
Wenn ich das richtig verstanden habe, hat der Timer eine defaultWakeup-Zeit, die jeden Tag gesetzt wird. Möchte man temporär die Weckzeit ändern, setzt man im Timer mit "nextRun" die gewünschte Weckzeit. Das habe ich getan, und der Wert ist ja auch korrekt im Reading gelandet. rr_Micha:nextWakeup - und das ist ja der Wert der für das DOIF von Belang ist - stand somit auf 7.43 Uhr. Ob trotzdem auf DefaultWakeup getriggert wurde (was ja eigentlich nicht möglich sein sollte) oder ob der Timer irgendwann in der Nacht auf DefaultWakeup umstellt (und wenn ja, warum und wann), das ist wohl die Frage.
Das Logfile gibt ja da auch nicht mehr her. Ich lasse heute mal den Eventmonitor mitlaufen, vielleicht bin ich dann morgen schlauer.
Vielen Dank und Gruß
Micha
Hm. Der Wecker war auf 7.06 Uhr gestellt. Der Eventmonitor sagt um 7.06 Uhr:
2018-07-10 07:06:00 RESIDENTS rgr_Bewohner durTimerPresence_cr: 75363
2018-07-10 07:06:00 RESIDENTS rgr_Bewohner durTimerPresence: 1256:02:32
2018-07-10 07:06:01 at atTmp_9_Macro_rr_Micha_wakeuptimer1 Next: 07:11:01
2018-07-10 07:06:01 Global global DEFINED atTmp_9_Macro_rr_Micha_wakeuptimer1
2018-07-10 07:06:01 notify Macro_rr_Micha_wakeuptimer1 stop 07:06 4 1 rr_Micha home
2018-07-10 07:06:02 RESIDENTS rgr_Bewohner residentsTotalWakeup: 0
2018-07-10 07:06:02 RESIDENTS rgr_Bewohner residentsTotalWakeupDevs: -
2018-07-10 07:06:02 RESIDENTS rgr_Bewohner residentsTotalWakeupNames: -
2018-07-10 07:06:02 RESIDENTS rgr_Bewohner durTimerPresence: 1256:02:33
2018-07-10 07:06:02 ROOMMATE rr_Micha wakeup: 0
2018-07-10 07:06:02 dummy rr_Micha_wakeuptimer1 stop triggerpost
2018-07-10 07:06:02 dummy rr_Micha_wakeuptimer1 running: 0
2018-07-10 07:06:02 dummy rr_Micha_wakeuptimer1 nextRun 08:30
2018-07-10 07:06:02 dummy rr_Micha_wakeuptimer1 08:30
Das Rollo ist erst um 8.30 Uhr gefahren. 'Hat jemand vielleicht noch eine Idee?
Viele Grüße
Micha