Hallo zusammen,
Seit ein paar Wochen habe ich mit einem Rollo das Problem, dass dieser zwar am Abend zufährt, aber nach ca. einer Stunde wiedermit dem cmd 8.2 hoch.
Auszug aus dem Log:
di_Rollladen_Eltern: Herbst eq "Herbst" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]: Unknown command
Die Internals für den Rollo:
Internals:
DEF ([du_Rollo_Art] eq "Sommer" and ([{sunset("HORIZON=-3.0",0,"19:00","21:00")}] ))
(set Rollo_Eltern off-for-timer 19) ##3
DOELSEIF ([du_Rollo_Art] eq "Sommer" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##4
DOELSEIF ([du_Rollo_Art] eq "Herbst" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off-for-timer 19) ##5
DOELSEIF ([du_Rollo_Art] eq "Herbst" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##6
DOELSEIF ([du_Rollo_Art] eq "Winter" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off) ##7
DOELSEIF ([du_Rollo_Art] eq "Winter" and [{sunrise("HORIZON=3.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##8
DOELSEIF ([du_Rollo_Art] eq "Fruehling" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off-for-timer 19) ##9
DOELSE ([du_Rollo_Art] eq "Fruehling" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##10
FUUID 5c449cec-f33f-28eb-57d7-bad885586416000f
MODEL FHEM
NAME di_Rollladen_Eltern
NOTIFYDEV global,du_Rollo_Art
NR 102
NTFY_ORDER 50-di_Rollladen_Eltern
STATE cmd_8
TYPE DOIF
VERSION 20268 2019-09-28 21:00:39
READINGS:
2019-10-27 11:11:29 Device du_Rollo_Art
2019-10-27 11:11:29 cmd 8.2
2019-10-27 11:11:29 cmd_event du_Rollo_Art
2019-10-27 11:11:29 cmd_nr 8
2019-10-27 11:11:29 cmd_seqnr 2
2019-10-27 11:11:29 e_du_Rollo_Art_STATE Herbst
2019-10-27 11:11:01 mode enabled
2019-10-27 11:11:29 state cmd_8
2019-10-27 10:33:01 timer_01_c01 27.10.2019 19:00:00
2019-10-27 10:33:01 timer_02_c02 28.10.2019 07:30:00|7
2019-10-27 10:33:01 timer_03_c02 28.10.2019 06:58:21|8
2019-10-27 10:33:01 timer_04_c03 27.10.2019 17:29:23
2019-10-27 10:33:01 timer_05_c04 28.10.2019 07:30:00|7
2019-10-27 10:33:01 timer_06_c04 28.10.2019 06:58:21|8
2019-10-27 10:33:01 timer_07_c05 27.10.2019 17:29:23
2019-10-27 10:33:01 timer_08_c06 28.10.2019 07:30:00|7
2019-10-27 10:33:01 timer_09_c06 28.10.2019 06:58:21|8
2019-10-27 10:33:01 timer_10_c07 27.10.2019 17:29:23
Regex:
accu:
cond:
du_Rollo_Art:
0:
&STATE ^du_Rollo_Art$
1:
&STATE ^du_Rollo_Art$
2:
&STATE ^du_Rollo_Art$
3:
&STATE ^du_Rollo_Art$
4:
&STATE ^du_Rollo_Art$
5:
&STATE ^du_Rollo_Art$
6:
&STATE ^du_Rollo_Art$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Sommer" and (::DOIF_time_once($hash,0,$wday) )
1 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Sommer" and ::DOIF_time_once($hash,1,$wday,"7") or ::DOIF_time_once($hash,2,$wday,"8")
2 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Herbst" and (::DOIF_time_once($hash,3,$wday))
3 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Herbst" and ::DOIF_time_once($hash,4,$wday,"7") or ::DOIF_time_once($hash,5,$wday,"8")
4 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Winter" and (::DOIF_time_once($hash,6,$wday))
5 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Winter" and ::DOIF_time_once($hash,7,$wday,"7") or ::DOIF_time_once($hash,8,$wday,"8")
6 ::InternalDoIf($hash,'du_Rollo_Art','STATE') eq "Fruehling" and (::DOIF_time_once($hash,9,$wday))
days:
1 7
2 8
4 7
5 8
7 7
8 8
do:
0:
0 set Rollo_Eltern off-for-timer 19
1:
0 set Rollo_Eltern on
2:
0 set Rollo_Eltern off-for-timer 19
3:
0 set Rollo_Eltern on
4:
0 set Rollo_Eltern off
5:
0 set Rollo_Eltern on
6:
0 set Rollo_Eltern off-for-timer 19
7:
0 [du_Rollo_Art] eq "Fruehling" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]
1 set Rollo_Eltern on
helper:
DEVFILTER ^global$|^du_Rollo_Art$
NOTIFYDEV global|du_Rollo_Art
event Herbst
globalinit 1
last_timer 10
sleeptimer -1
timerdev du_Rollo_Art
timerevent Herbst
triggerDev du_Rollo_Art
DOIF_eventa:
cmd_nr: 8
cmd_seqnr: 2
cmd_event: du_Rollo_Art
cmd_8
DOIF_eventas:
cmd_nr: 8
cmd_seqnr: 2
cmd_event: du_Rollo_Art
state: cmd_8
timerevents:
Herbst
timereventsState:
state: Herbst
triggerEvents:
Herbst
triggerEventsState:
state: Herbst
internals:
all du_Rollo_Art:STATE
intervalfunc:
localtime:
0 1572199200
1 1572244200
2 1572242301
3 1572193763
4 1572244200
5 1572242301
6 1572193763
7 1572244200
8 1572242301
9 1572193763
perlblock:
readings:
realtime:
0 19:00:00
1 07:30:00
2 06:58:21
3 17:29:23
4 07:30:00
5 06:58:21
6 17:29:23
7 07:30:00
8 06:58:21
9 17:29:23
time:
0 {sunset("HORIZON=-3.0",0,"19:00","21:00")}
1 {sunrise("HORIZON=-1.0",0,"7:30","8:00")}
2 {sunrise("HORIZON=-1.0",0,"06:00","8:00")}
3 {sunset("HORIZON=-3.0",0,"17:00","21:00")}
4 {sunrise("HORIZON=-1.0",0,"7:30","8:00")}
5 {sunrise("HORIZON=-1.0",0,"06:00","8:00")}
6 {sunset("HORIZON=-3.0",0,"17:00","21:00")}
7 {sunrise("HORIZON=3.0",0,"7:30","8:00")}
8 {sunrise("HORIZON=-1.0",0,"06:00","8:00")}
9 {sunset("HORIZON=-3.0",0,"17:00","21:00")}
timeCond:
0 0
1 1
2 1
3 2
4 3
5 3
6 4
7 5
8 5
9 6
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
timers:
0 0
1 1 2
2 3
3 4 5
4 6
5 7 8
6 9
trigger:
triggertime:
1572193763:
localtime 1572193763
hash:
1572199200:
localtime 1572199200
hash:
1572242301:
localtime 1572242301
hash:
1572244200:
localtime 1572244200
hash:
uiState:
uiTable:
Attributes:
alias Rollladen Eltern
devStateIcon cmd_1:fts_shutter_70@orange:cmd_2 cmd_2:fts_shutter_10@green cmd_3:fts_shutter_70@orange cmd_4:fts_shutter_10@green cmd_5:fts_shutter_70@orange cmd_6:fts_shutter_10@green cmd_7:fts_shutter_90@blue cmd_8:fts_shutter_10@green cmd_9:fts_shutter_70@orange cmd_10:fts_shutter_10@green:cmd_1
group DOIF_OG
icon helper_doif@#548dd4
loglevel 5
room Obergeschoss,System
sortby 4
hier der Dummy für die Jahreszeiten:
Internals:
FUUID 5c449cee-f33f-28eb-8a60-885bf70756db62b5
NAME du_Rollo_Art
NR 228
STATE Herbst
TYPE dummy
READINGS:
2019-10-27 11:11:29 state Herbst
Attributes:
alias Jahrezeitautomatik:
devStateIcon .*:rc_BLANK
group dummy
icon fts_shutter_updown@#548dd4
room Erdgeschoss,Obergeschoss,System
setList state:Winter,Fruehling,Sommer,Herbst
sortby 3
webCmd state
Der Rollo im Raum daneben fährt (bis jetzt) normal. Wo liegt hier der Fehler? - Ausser zwischen meinen Ohren :D
Gruss
Andi
DOELSE ist hier wohl nicht gemeint ;)
Schrieb ich doch: zwischen den Ohren :D
Vielen Dank für die schnelle Antwort!
Wie würde die richtige Syntax für das folgende Beispiel aussehen:
DEF ([du_Beschattung] eq 'ein' and [9:00 - 16:30] and [HM_63DDCB:brightness:avg7] > 25000 and [HM_58F0BD:temperature] > 22)
(set Rollo_Eltern off-for-timer 19) ##1
DOELSEIF ([du_Beschattung] eq "ein" or ([9:00 - 16:30] and [HM_63DDCB:brightness:avg7] < 3000))
(set Rollo_Eltern on) ##2
DOELSEIF ([du_Rollo_Art] eq "Sommer" and ([{sunset("HORIZON=-3.0",0,"19:00","21:00")}] ))
(set Rollo_Eltern off-for-timer 19) ##3
DOELSEIF ([du_Rollo_Art] eq "Sommer" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##4
DOELSEIF ([du_Rollo_Art] eq "Herbst" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off-for-timer 19) ##5
DOELSEIF ([du_Rollo_Art] eq "Herbst" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##6
DOELSEIF ([du_Rollo_Art] eq "Winter" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off) ##7
DOELSEIF ([du_Rollo_Art] eq "Winter" and [{sunrise("HORIZON=3.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##8
DOELSEIF ([du_Rollo_Art] eq "Fruehling" and ([{sunset("HORIZON=-3.0",0,"17:00", "21:00")}]))
(set Rollo_Eltern off-for-timer 19) ##9
DOELSEIF ([du_Rollo_Art] eq "Fruehling" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8])
(set Rollo_Eltern on) ##10
Hatte hier mal die Idee für eine Beschattung die Sonnen.- und Temperaturabhängig ist. Nur mit dem Problem, dass der Rollo im Sommer um 9 Uhr zu und dann durch den Helligkeitswert wieder aufgefahren wird.
Mir geht es hier hauptsächlich um das Verständniss der richtige Reihenfolge (Wichtigkeit der Events) und derKlammersetzung. Ist diese gleich wie die Klammern in der Mathematik?
Für die Klammersetzung (beim "Programmieren") habe ich für mich noch nichts passendes im Web gefunden.
Gruss
Andi
Zitat von: Der Neuling am 27 Oktober 2019, 13:41:40
Klammersetzung. Ist diese gleich wie die Klammern in der Mathematik?
Ja
Und: die Bedingungen werden von Recht nach Links bewertet. Wenn kein anderes Attribut gesetzt ist, werden nur die Bedingungen geprüft, die das triggernde Device enthalten.
Wenn Du möchtest, dass etwas nicht triggert sondern nur geprüft wird, dann mit [?device:reading]
Ok. dann werde ich die erste Zeile entsprechend umstellen und nächsten Sommer wieder ausprobieren. :)
Vielen Dank nochmal an Dich bzw an alle die eine solch Engelsgeduld haben.
Nachtrag - so wie ich es mir jetzt vorstelle:
(([HM_63DDCB:brightness:avg7] > 25000 and [?HM_58F0BD:temperature:avg5] > 22) and [9:00 - 16:30] and [?du_Beschattung] eq 'ein')
(set Rollo_Eltern off-for-timer 19) ##1
DOELSEIF (([HM_63DDCB:brightness:avg7] < 3000 or [9:00 - 16:30]) and [?du_Beschattung] eq "ein")
Gruss
Andi