Ich hätte da mal eine Frage zu dem DOIF.
Ich würde gerne meine Rollläden mit Twilight weather herunterfahren. In der Zeit von 16:00 bis spätestens 21:00 Uhr.
Soweit funktioniert das auch. Jedoch hab ich im Log gesehen das der Befehl für das runterfahren der Rollläden immer wieder im Abstand von 5 min gesendet wird. Da wahrscheinlich Astro immer alle 5 min neu berechnet und sich die Werte ändern.
Wie kann ich dies verhinder bzw sodass nur einmal gesendet wird sobald der Wert <35 erreicht ?
([?Rollladen_Auto] eq "an" and ([Astro:twilight_weather] <35 and [16:00-21:00|0123456789])) (set Kanal_0 down)
Internals:
CONDITION 0
DEF 50.xxxx 8.xxxx 0 0
FUUID 5deae53a-f33f-133d-0a0d-5ac7f062882e819e
INDOOR_HORIZON 0
LATITUDE 50.xxxx
LONGITUDE 8.xxxx
NAME Astro
NR 31
STATE 12
SUNPOS_OFFSET 300
SWIP 0
TYPE Twilight
VERSUCHE 0
WEATHER 0
WEATHER_HORIZON 0
READINGS:
2019-12-10 18:21:22 aktEvent ss_astro
2019-12-10 19:39:18 azimuth 269.41
2019-12-10 19:39:18 compasspoint west-southwest
2019-12-10 17:04:18 condition 0
2019-12-10 19:39:18 elevation -30.37
2019-12-10 18:21:22 horizon -18
2019-12-10 18:21:22 light 0
2019-12-10 18:21:22 nextEvent sr_astro
2019-12-10 18:21:22 nextEventTime 06:12:23
2019-12-10 17:04:18 sr 08:17:38
2019-12-10 17:04:18 sr_astro 06:12:23
2019-12-10 17:04:18 sr_civil 07:33:01
2019-12-10 17:04:18 sr_indoor 08:17:38
2019-12-10 17:04:18 sr_naut 06:51:42
2019-12-10 17:04:18 sr_weather 08:17:38
2019-12-10 17:04:18 ss 16:16:08
2019-12-10 17:04:18 ss_astro 18:21:22
2019-12-10 17:04:18 ss_civil 17:00:45
2019-12-10 17:04:18 ss_indoor 16:16:08
2019-12-10 17:04:18 ss_naut 17:42:03
2019-12-10 17:04:18 ss_weather 16:16:08
2019-12-10 18:21:22 state 12
2019-12-10 19:39:18 twilight 0
2019-12-10 19:39:18 twilight_weather 0
TIMER:
Astro_Midnight:
HASH Astro
MODIFIER Midnight
NAME Astro_Midnight
Astro_sr:
DEG 0
HASH Astro
LIGHT 4
MODIFIER sr
NAME Astro_sr
NAMENEXT sr_indoor
STATE 4
SWIP 0
TIME 1575962258.03
Astro_sr_astro:
DEG -18
HASH Astro
LIGHT 1
MODIFIER sr_astro
NAME Astro_sr_astro
NAMENEXT sr_naut
STATE 1
SWIP 0
TIME 1575954743
Astro_sr_civil:
DEG -6
HASH Astro
LIGHT 3
MODIFIER sr_civil
NAME Astro_sr_civil
NAMENEXT sr
STATE 3
SWIP 0
TIME 1575959581.02
Astro_sr_indoor:
DEG 0
HASH Astro
LIGHT 5
MODIFIER sr_indoor
NAME Astro_sr_indoor
NAMENEXT sr_weather
STATE 5
SWIP 0
TIME 1575962258.04
Astro_sr_naut:
DEG -12
HASH Astro
LIGHT 2
MODIFIER sr_naut
NAME Astro_sr_naut
NAMENEXT sr_civil
STATE 2
SWIP 0
TIME 1575957102.01
Astro_sr_weather:
DEG 0
HASH Astro
LIGHT 6
MODIFIER sr_weather
NAME Astro_sr_weather
NAMENEXT ss_weather
STATE 6
SWIP 0
TIME 1575962258.05
Astro_ss:
DEG 0
HASH Astro
LIGHT 3
MODIFIER ss
NAME Astro_ss
NAMENEXT ss_civil
STATE 9
SWIP 0
TIME 1575990968.97
Astro_ss_astro:
DEG -18
HASH Astro
LIGHT 0
MODIFIER ss_astro
NAME Astro_ss_astro
NAMENEXT sr_astro
STATE 12
SWIP 0
TIME 1575998482
Astro_ss_civil:
DEG -6
HASH Astro
LIGHT 2
MODIFIER ss_civil
NAME Astro_ss_civil
NAMENEXT ss_naut
STATE 10
SWIP 0
TIME 1575993645.98
Astro_ss_indoor:
DEG 0
HASH Astro
LIGHT 4
MODIFIER ss_indoor
NAME Astro_ss_indoor
NAMENEXT ss
STATE 8
SWIP 0
TIME 1575990968.96
Astro_ss_naut:
DEG -12
HASH Astro
LIGHT 1
MODIFIER ss_naut
NAME Astro_ss_naut
NAMENEXT ss_astro
STATE 11
SWIP 0
TIME 1575996123.99
Astro_ss_weather:
DEG 0
HASH Astro
LIGHT 5
MODIFIER ss_weather
NAME Astro_ss_weather
NAMENEXT ss_indoor
STATE 7
SWIP 0
TIME 1575990968.95
Astro_sunpos:
HASH Astro
MODIFIER sunpos
NAME Astro_sunpos
TW:
sr:
DEG 0
LIGHT 4
NAME sr
NAMENEXT sr_indoor
STATE 4
SWIP 0
TIME 1575962258.03
sr_astro:
DEG -18
LIGHT 1
NAME sr_astro
NAMENEXT sr_naut
STATE 1
SWIP 0
TIME 1575954743
sr_civil:
DEG -6
LIGHT 3
NAME sr_civil
NAMENEXT sr
STATE 3
SWIP 0
TIME 1575959581.02
sr_indoor:
DEG 0
LIGHT 5
NAME sr_indoor
NAMENEXT sr_weather
STATE 5
SWIP 0
TIME 1575962258.04
sr_naut:
DEG -12
LIGHT 2
NAME sr_naut
NAMENEXT sr_civil
STATE 2
SWIP 0
TIME 1575957102.01
sr_weather:
DEG 0
LIGHT 6
NAME sr_weather
NAMENEXT ss_weather
STATE 6
SWIP 0
TIME 1575962258.05
ss:
DEG 0
LIGHT 3
NAME ss
NAMENEXT ss_civil
STATE 9
SWIP 0
TIME 1575990968.97
ss_astro:
DEG -18
LIGHT 0
NAME ss_astro
NAMENEXT sr_astro
STATE 12
SWIP 0
TIME 1575998482
ss_civil:
DEG -6
LIGHT 2
NAME ss_civil
NAMENEXT ss_naut
STATE 10
SWIP 0
TIME 1575993645.98
ss_indoor:
DEG 0
LIGHT 4
NAME ss_indoor
NAMENEXT ss
STATE 8
SWIP 0
TIME 1575990968.96
ss_naut:
DEG -12
LIGHT 1
NAME ss_naut
NAMENEXT ss_astro
STATE 11
SWIP 0
TIME 1575996123.99
ss_weather:
DEG 0
LIGHT 5
NAME ss_weather
NAMENEXT ss_indoor
STATE 7
SWIP 0
TIME 1575990968.95
Attributes:
alias Astro
event-on-change-reading 1
room Rollladen_Settings
useExtWeather MyWeather:cloudCover
verbose 2
Internals:
DEF ([?Rollladen_Auto] eq "an" and ([Astro:twilight_weather] <35 and [16:00-21:00|0123456789])) (set Kanal_0 down)
FUUID 5d527cf6-f33f-133d-60e3-28816c7e19af434f
MODEL FHEM
NAME ROLLADEN_runter
NOTIFYDEV Astro,global
NR 23
NTFY_ORDER 50-ROLLADEN_runter
STATE cmd_1
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2019-12-10 19:39:18 Device Astro
2019-12-10 19:39:18 cmd 1
2019-12-10 19:39:18 cmd_event Astro
2019-12-10 19:39:18 cmd_nr 1
2019-12-10 19:39:18 e_Astro_twilight_weather 0
2019-12-10 19:38:38 mode enabled
2019-12-10 19:39:18 state cmd_1
2019-12-10 19:38:38 timer_01_c01 11.12.2019 16:00:00|0123456789
2019-12-10 19:38:38 timer_02_c01 10.12.2019 21:00:00|0123456789
Regex:
accu:
cond:
Astro:
0:
twilight_weather ^Astro$:^twilight_weather:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Rollladen_Auto','STATE') eq "an" and (::ReadingValDoIf($hash,'Astro','twilight_weather') <35 and ::DOIF_time($hash,0,1,$wday,$hms,"0123456789"))
days:
0 0123456789
1 0123456789
do:
0:
0 set Kanal_0 down
1:
helper:
DEVFILTER ^global$|^Astro$
NOTIFYDEV global|Astro
event azimuth: 269.41,elevation: -30.37,twilight: 0,twilight_weather: 0,compasspoint: west-southwest
globalinit 1
last_timer 2
sleeptimer -1
timerdev Astro
timerevent azimuth: 269.41,elevation: -30.37,twilight: 0,twilight_weather: 0,compasspoint: west-southwest
triggerDev Astro
timerevents:
azimuth: 269.41
elevation: -30.37
twilight: 0
twilight_weather: 0
compasspoint: west-southwest
timereventsState:
azimuth: 269.41
elevation: -30.37
twilight: 0
twilight_weather: 0
compasspoint: west-southwest
triggerEvents:
azimuth: 269.41
elevation: -30.37
twilight: 0
twilight_weather: 0
compasspoint: west-southwest
triggerEventsState:
azimuth: 269.41
elevation: -30.37
twilight: 0
twilight_weather: 0
compasspoint: west-southwest
internals:
all Rollladen_Auto:STATE
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1576076400
1 1576008000
readings:
all Astro:twilight_weather
realtime:
0 16:00:00
1 21:00:00
time:
0 16:00:00
1 21:00:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
trigger:
triggertime:
1576008000:
localtime 1576008000
hash:
1576076400:
localtime 1576076400
hash:
uiState:
uiTable:
Attributes:
alias ROLLADEN_runter
do always
room Rollladen_Settings
bitte ein list von beidem.
Dir fehlt vermutlich ein DOELSEIF.
Gesendet von meinem S60 mit Tapatalk
Und/Oder do always gesetzt
Das do always ist gesetzt. Und nachdem ich change on event reading gesetzt habe ändern sich die Werte überhaupt nicht mehr.
Zumindest im Astro sollte sich doch der Azimuth usw immer noch alle 5 min ändern oder?
bitte ein list von beidem.
Gesendet von meinem Doogee S60 mit Tapatalk
Zitatevent-on-change-reading 1
Das wird nix. Somit wird erst ein Event generiert, wenn ein Reading mit 1 im ReadingsName sich ändert.
Sorry, nicht gesehen dass du oben editiert hast.
Ja, der Klassiker, setze das event-on-change-reading auf .* und mach ein DOELSEIF dazu auf z. B. 00.00 Uhr ohne Ausführungsteil.
Gesendet von meinem Doogee S60 mit Tapatalk
Dankeschön. Hab alles mal angepasst , bis jetzt sendet es nicht mehr. Mal sehen ob morgen früh die Rollläden auch aufgehen :-)
Vielen Dank für die Hilfe !!
Wenn du magst poste ein list vom Hoch doif. [emoji6]
Btw, warum hast die getrennt?
Hoch und runter in eines ohne do always wäre imho einfacher.
Gesendet von meinem Doogee S60 mit Tapatalk
Ich habe sie getrennt da ich es nicht besser weiß wie das alles in einem zunprogrammieren geht.
Sozusagen ein blutiger Anfänger
nternals:
DEF ([?Rollladen_Auto] eq "an" and ([?Astro:twilight] >50 and [6:00-8:30|8]or [8:00|7])) (set Kanal_0 up) DOELSEIF ([0:00])
FUUID 5d527db1-f33f-133d-b832-2bcbc9f551976ac4
MODEL FHEM
NAME ROLLADEN_hoch
NOTIFYDEV global
NR 24
NTFY_ORDER 50-ROLLADEN_hoch
STATE initialized
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2019-12-10 21:22:37 cmd 0
2019-12-10 21:22:37 mode enabled
2019-12-10 21:22:37 state initialized
2019-12-10 21:22:37 timer_01_c01 11.12.2019 06:00:00|8
2019-12-10 21:22:37 timer_02_c01 11.12.2019 08:30:00|8
2019-12-10 21:22:37 timer_03_c01 11.12.2019 08:00:00|7
2019-12-10 21:22:37 timer_04_c02 11.12.2019 00:00:00
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Rollladen_Auto','STATE') eq "an" and (::ReadingValDoIf($hash,'Astro','twilight') >50 and ::DOIF_time($hash,0,1,$wday,$hms,"8")or ::DOIF_time_once($hash,2,$wday,"7"))
1 ::DOIF_time_once($hash,3,$wday)
days:
0 8
1 8
2 7
do:
0:
0 set Kanal_0 up
1:
0
2:
helper:
DEVFILTER ^global$
NOTIFYDEV global
globalinit 1
last_timer 4
sleeptimer -1
internals:
all Rollladen_Auto:STATE
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1576040400
1 1576049400
2 1576047600
3 1576018800
realtime:
0 06:00:00
1 08:30:00
2 08:00:00
3 00:00:00
time:
0 6:00
1 8:30
2 8:00
3 0:00
timeCond:
0 0
1 0
2 0
3 1
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 2
1 3
triggertime:
1576018800:
localtime 1576018800
hash:
1576040400:
localtime 1576040400
hash:
1576047600:
localtime 1576047600
hash:
1576049400:
localtime 1576049400
hash:
uiState:
uiTable:
Attributes:
alias ROLLADEN_hoch
do always
loglevel 5
Einfach bei einem davon als DOELSEIF den anderen rein. Bedingung und Ausführungsteil.
Do always nicht setzen
Fertig. [emoji6]
Gesendet von meinem Doogee S60 mit Tapatalk