Ich weiß leider nicht warum mein DOIF für Beschattung nicht mehr richtig funktioniert, es geht hier um die Warte Zeit "wait" die ich mit 900:900 angegegeben habe, denn der Rollladen fährt munter hoch und runter bei kleinster Änderung. Das hat er eigentlich nie gemacht.
Gibt es ein zusätzliches Attribut welches ich setzen muss, bin da grad etwas überfordert, da länger nichts geändert, aktuelles Modul habe ich.
Hier mal das list vom DOIF Beschattung
Internals:
CFGFN ./FHEM/Schlafzimmer.cfg
DEF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] >= 23 and [myTwilight:azimuth] >= 72 and [myTwilight:elevation] <= 50 and [06:45-10:00]) (set SZ_Rollladen 25) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] >= 23 and [myTwilight:azimuth] > 72 and [myTwilight:elevation] <= 60 and [10:01-13:00])(set SZ_Rollladen 25) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] < 23 and [13:01-16:00]) (set SZ_Rollladen 75) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] > 22 and [Temperatur_Terrasse:temperature] < 27 and [myTwilight:azimuth] >= 150 and [myTwilight:elevation] <= 70 and [13:01-16:00])(set SZ_Rollladen 50) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] < 23 and [14:00-17:00]) (set SZ_Rollladen 75) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [myTwilight:azimuth] >= 230 and [[du_RolloZeitSZ_offen_B]]) (set SZ_Rollladen 75) DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] <= 31 and [[du_RolloZeitSZ_hoch_B]-{sunset_abs()}]) (set SZ_Rollladen 75)
FUUID 5c4319de-f33f-a6c6-8da1-b27847f2e6852f68
MODEL FHEM
NAME di_RollladenSZ_B
NOTIFYDEV global,myTwilight,du_RolloZeitSZ_hoch_B,Temperatur_Terrasse,du_RolloZeitSZ_offen_B
NR 3375
NTFY_ORDER 50-di_RollladenSZ_B
STATE cmd_3
TYPE DOIF
VERSION 22030 2020-05-25 14:10:16
READINGS:
2020-06-10 13:13:52 Device Temperatur_Terrasse
2020-06-10 13:13:52 cmd 3
2020-06-10 13:13:52 cmd_event Temperatur_Terrasse
2020-06-10 13:13:52 cmd_nr 3
2020-06-10 13:13:52 e_Temperatur_Terrasse_temperature 22.5
2020-06-10 13:12:46 e_myTwilight_azimuth 175.6
2020-06-10 13:12:46 e_myTwilight_elevation 60.67
2020-06-10 13:13:52 state cmd_3
2020-06-10 10:00:00 timer_01_c01 11.06.2020 06:45:00
2020-06-10 10:00:00 timer_02_c01 11.06.2020 10:00:00
2020-06-10 13:00:00 timer_03_c02 11.06.2020 10:01:00
2020-06-10 13:00:00 timer_04_c02 11.06.2020 13:00:00
2020-06-09 16:00:00 timer_05_c03 10.06.2020 13:01:00
2020-06-09 16:00:00 timer_06_c03 10.06.2020 16:00:00
2020-06-09 16:00:00 timer_07_c04 10.06.2020 13:01:00
2020-06-09 16:00:00 timer_08_c04 10.06.2020 16:00:00
2020-06-09 17:00:00 timer_09_c05 10.06.2020 14:00:00
2020-06-09 17:00:00 timer_10_c05 10.06.2020 17:00:00
2020-06-09 16:15:00 timer_11_c06 10.06.2020 16:15:00
2020-06-09 22:31:32 timer_12_c07 10.06.2020 16:15:00
2020-06-09 22:31:32 timer_13_c07 10.06.2020 22:32:28
Regex:
accu:
cond:
Temperatur_Terrasse:
0:
temperature ^Temperatur_Terrasse$:^temperature:
1:
temperature ^Temperatur_Terrasse$:^temperature:
2:
temperature ^Temperatur_Terrasse$:^temperature:
3:
temperature ^Temperatur_Terrasse$:^temperature:
4:
temperature ^Temperatur_Terrasse$:^temperature:
5:
6:
temperature ^Temperatur_Terrasse$:^temperature:
myTwilight:
0:
azimuth ^myTwilight$:^azimuth:
elevation ^myTwilight$:^elevation:
1:
azimuth ^myTwilight$:^azimuth:
elevation ^myTwilight$:^elevation:
2:
3:
azimuth ^myTwilight$:^azimuth:
elevation ^myTwilight$:^elevation:
4:
5:
azimuth ^myTwilight$:^azimuth:
6:
itimer:
du_RolloZeitSZ_hoch_B:
itimer:
&STATE ^du_RolloZeitSZ_hoch_B$
du_RolloZeitSZ_offen_B:
itimer:
&STATE ^du_RolloZeitSZ_offen_B$
attr:
cmdState:
wait:
0:
900
1:
900
waitdel:
condition:
0 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') >= 23 and ::ReadingValDoIf($hash,'myTwilight','azimuth') >= 72 and ::ReadingValDoIf($hash,'myTwilight','elevation') <= 50 and ::DOIF_time($hash,0,1,$wday,$hms)
1 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') >= 23 and ::ReadingValDoIf($hash,'myTwilight','azimuth') > 72 and ::ReadingValDoIf($hash,'myTwilight','elevation') <= 60 and ::DOIF_time($hash,2,3,$wday,$hms)
2 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') < 23 and ::DOIF_time($hash,4,5,$wday,$hms)
3 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') > 22 and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') < 27 and ::ReadingValDoIf($hash,'myTwilight','azimuth') >= 150 and ::ReadingValDoIf($hash,'myTwilight','elevation') <= 70 and ::DOIF_time($hash,6,7,$wday,$hms)
4 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') < 23 and ::DOIF_time($hash,8,9,$wday,$hms)
5 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'myTwilight','azimuth') >= 230 and ::DOIF_time_once($hash,10,$wday)
6 ::InternalDoIf($hash,'du_RolloSZmodus','STATE') eq "Beschattung" and ::ReadingValDoIf($hash,'Temperatur_Terrasse','temperature') <= 31 and ::DOIF_time($hash,11,12,$wday,$hms)
days:
do:
0:
0 set SZ_Rollladen 25
1:
0 set SZ_Rollladen 25
2:
0 set SZ_Rollladen 75
3:
0 set SZ_Rollladen 50
4:
0 set SZ_Rollladen 75
5:
0 set SZ_Rollladen 75
6:
0 set SZ_Rollladen 75
7:
helper:
DEVFILTER ^global$|^myTwilight$|^Temperatur_Terrasse$|^du_RolloZeitSZ_offen_B$|^du_RolloZeitSZ_hoch_B$
NOTIFYDEV global|myTwilight|Temperatur_Terrasse|du_RolloZeitSZ_offen_B|du_RolloZeitSZ_hoch_B
event batVoltage: 2.40,battery: ok,commState: CMDs_done,humidity: 46,luminosity: 137,pressure-nn: 1042.6,pressure: 1015.0,rssi_at_HMUSB: -57,T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6,temperature: 22.5
globalinit 1
last_timer 13
sleeptimer -1
timerdev Temperatur_Terrasse
timerevent batVoltage: 2.40,battery: ok,commState: CMDs_done,humidity: 46,luminosity: 137,pressure-nn: 1042.6,pressure: 1015.0,rssi_at_HMUSB: -57,T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6,temperature: 22.5
triggerDev Temperatur_Terrasse
DOIF_eventa:
cmd_nr: 3
cmd: 3
cmd_event: Temperatur_Terrasse
cmd_3
DOIF_eventas:
cmd_nr: 3
cmd: 3
cmd_event: Temperatur_Terrasse
state: cmd_3
timerevents:
batVoltage: 2.40
battery: ok
commState: CMDs_done
humidity: 46
luminosity: 137
pressure-nn: 1042.6
pressure: 1015.0
rssi_at_HMUSB: -57
T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6
temperature: 22.5
timereventsState:
batVoltage: 2.40
battery: ok
commState: CMDs_done
humidity: 46
luminosity: 137
pressure-nn: 1042.6
pressure: 1015.0
rssi_at_HMUSB: -57
state: T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6
temperature: 22.5
triggerEvents:
batVoltage: 2.40
battery: ok
commState: CMDs_done
humidity: 46
luminosity: 137
pressure-nn: 1042.6
pressure: 1015.0
rssi_at_HMUSB: -57
T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6
temperature: 22.5
triggerEventsState:
batVoltage: 2.40
battery: ok
commState: CMDs_done
humidity: 46
luminosity: 137
pressure-nn: 1042.6
pressure: 1015.0
rssi_at_HMUSB: -57
state: T: 22.5 H: 46 L: 137 P: 1015.0 P-NN: 1042.6
temperature: 22.5
internals:
all du_RolloSZmodus:STATE
interval:
0 -1
1 0
11 -1
12 11
2 -1
3 2
4 -1
5 4
6 -1
7 6
8 -1
9 8
intervalfunc:
intervaltimer:
localtime:
0 1591850700
1 1591862400
10 1591798500
11 1591798500
12 1591821148
2 1591862460
3 1591873200
4 1591786860
5 1591797600
6 1591786860
7 1591797600
8 1591790400
9 1591801200
perlblock:
readings:
all Temperatur_Terrasse:temperature myTwilight:azimuth myTwilight:elevation
realtime:
0 06:45:00
1 10:00:00
10 16:15:00
11 16:15:00
12 22:32:28
2 10:01:00
3 13:00:00
4 13:01:00
5 16:00:00
6 13:01:00
7 16:00:00
8 14:00:00
9 17:00:00
time:
0 06:45:00
1 10:00:00
10 [du_RolloZeitSZ_offen_B]
11 [du_RolloZeitSZ_hoch_B]
12 {sunset_abs()}
2 10:01:00
3 13:00:00
4 13:01:00
5 16:00:00
6 13:01:00
7 16:00:00
8 14:00:00
9 17:00:00
timeCond:
0 0
1 0
10 5
11 6
12 6
2 1
3 1
4 2
5 2
6 3
7 3
8 4
9 4
timer:
0 0
1 0
10 0
11 0
12 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
timers:
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
5 10
6 11 12
trigger:
triggertime:
1591790400:
localtime 1591790400
hash:
1591797600:
localtime 1591797600
hash:
1591798500:
localtime 1591798500
hash:
1591801200:
localtime 1591801200
hash:
1591821148:
localtime 1591821148
hash:
1591850700:
localtime 1591850700
hash:
1591862400:
localtime 1591862400
hash:
1591862460:
localtime 1591862460
hash:
1591873200:
localtime 1591873200
hash:
uiState:
uiTable:
Attributes:
alias di_RollladenSZ_B
group Rollläden
wait 900:900
eigentlich ist es, wenn ich mir das DOIF so anschaue viel zu kompliziert aufgebaut eine einfachere Variante würde denke ich auch reichen, muss mal etwas überlegen. :-\
schau dir das Attribut cmdpause an.
Das besagt dass nach einer Befehlsausführung mindestens so lange nichts passiert.
hab ich mal eingesetzt, mal schauen wie es die Tage aussieht
Ich zähle 7 Schaltmöglichkeiten.
Mit wait 900:900 deckst Du die ersten beiden ab. Das hat so niemals funktioniert!
Wait ist auch nicht dass was er will.
Mit Wait wird ja auch die erste Ausführung verzögert.
Daher denke ich dass das mal auf zwei Zweige zum Testen eingerichtet war.
Zitat von: Otto123 am 11 Juni 2020, 09:10:08
Ich zähle 7 Schaltmöglichkeiten.
Mit wait 900:900 deckst Du die ersten beiden ab. Das hat so niemals funktioniert!
Otto du hast vollkommen Recht ;)
ich habe mir meine DOIF mal aus der Sicherung vom letzten Jahr raus gesucht, da hatte ich das echt anders (egal jetzt) aber damit war ich nicht zufrieden und hatte dann mal angefangen mir ein neues zu bauen und das ist das aktuelle und damit kann das natürlich nicht funktionieren :-\
Deshalb werde ich es etwas einfacher gestalten mit weniger Zeiten.
Zitat von: Frank_Huber am 11 Juni 2020, 10:52:03
Wait ist auch nicht dass was er will.
Mit Wait wird ja auch die erste Ausführung verzögert.
Daher denke ich dass das mal auf zwei Zweige zum Testen eingerichtet war.
ja, auch du hast Recht so war das mal gedacht, aber wie oben schon geschrieben...
Ich habe aber trotzdem mal "cmdpause" eingegeben und nun ist heute aber nicht das Wetter zum "Beschatten"
Ich werde erstmal weiter an dem DOIF arbeiten damit es dann mal irgendwann funktioniert...
Mein Ansatz ist es abhängig von der Temperatur und der Zeit zu machen und denke damit kann ich es vereinfachen, es braucht nicht unendlich viele Zeiten.
Ich hatte auch mal AutoshuttersControl im Einsatz, aber das ist zu kompliziert aufgebaut, aktuell habe ich damit ein Rollladen in Betrieb, aber so ganz habe ich das noch nicht im Griff.
Also vielen Dank euch erst einmal, ich arbeite weiter dran ;)
Also ich habe das bei meiner Beschattung so (wait 900:900) , allerdings nur zwei Ausführungsteile. Das läuft aus meiner Sicht so wie ich es mir vorstelle :)
Bin nicht sicher was passiert wenn Du 900:900:900:900:900:900:900 einträgst
Ich mache Beschattung nach Temperatur und Sonnenwinkel.
In Abhängigkeit der Anwesenheit ganz zu oder 70%
defmod DOIF_ROLLO_BESCHATTUNG_WEST DOIF ([Anwesenheit] eq "ja" and [Aussen_Temp:temperature] > 23 and [Astro:SunAz] > 220 and [Astro:SunAz] < 290) \
(set Rollo west pct 70) (set TelegramBot msg Beschattung West - alle Rollos 70%!)\
\
DOELSEIF ([Anwesenheit] eq "nein" and [Aussen_Temp:temperature] > 23 and [Astro:SunAz] > 220 and [Astro:SunAz] < 285) \
(set Rollo west closed) (set TelegramBot msg Beschattung West - alle Rollos zu!)\
\
DOELSEIF ([$SELF:cmd_nr] =~ "1|2" and \
(([Astro:SunAz] > 220 and [Astro:SunAz] < 280 and [Aussen_Temp:temperature] < 21)\
or [Astro:SunAlt] <= 8 or [Astro:SunAz] >= 280))\
(set Rollo west open) (set TelegramBot msg Beschattung West - alle Rollos offen!)
attr DOIF_ROLLO_BESCHATTUNG_WEST cmdpause 900
attr DOIF_ROLLO_BESCHATTUNG_WEST repeatsame 1:1:1:1:1