Hallo zusammen,
ich habe folgende Automatisierung welche nur geht wenn ich "state" auf "cmd_2" setze.
Danach springt er wieder auf "cmd1" und die Automatisierung funktioniert nicht mehr am nächsten Tag.
Was ist das Problem ?
([{twilight("TC_TWILIGHT","ss_weather","16:00","22:00")}]) (sleep 2500; set WZ_Fenster pct 0; sleep 300; set Bad_Fenster_rechts pct 0; sleep 2; set Bad_Fenster_links pct 0; set WZ_TerrasseFenster pct 0; sleep 30; set Arbeitszimmer_Fenster pct 0; sleep 40; set Kueche_Fenster pct 0; sleep 2; set SZ_Fenster pct 0)
hi
schau mal (https://forum.fhem.de/index.php?topic=93400.0 (https://forum.fhem.de/index.php?topic=93400.0)) bei wait und nicht sleep....
oder und hier (https://fhem.de/commandref_DE.html#DOIF_wait (https://fhem.de/commandref_DE.html#DOIF_wait))
gruss
Beispiel:
defmod do.RO0301.Zeit DOIF ( [[RA_0300:rollo-time-up]-[RA_0300:rollo-time-down]] and [?RA_0300:rollo-mode] eq "auto") ({sub_Rollo(3,"[RA_0300:rollo-pct-up]")})\
DOELSEIF ([[RA_0300:rollo-time-down]-[RA_0300:rollo-time-up]] and [?RA_0300:rollo-mode] eq "auto") ({sub_Rollo(3,"[RA_0300:rollo-pct-down]")})\
DOELSEIF ([[RA_0300:rollo-time-up]-[RA_0300:rollo-time-down]] and [?RA_0300:rollo-mode] eq "beschattung") (set RA_0300 beschattung on,{sub_Beschattung(3)})\
DOELSEIF ([[RA_0300:rollo-time-down]-[RA_0300:rollo-time-up]] and [?RA_0300:rollo-mode] eq "beschattung") (set RA_0300 beschattung off,{sub_Rollo(3,"[RA_0300:rollo-pct-down]")})\
DOELSEIF ([{twilight("Astro","CustomTwilightMorning","[RA_0300:rollo-time-up]","10:00")}] and [?RA_0300:rollo-mode] eq "sonne") ({sub_Rollo(3,"[RA_0300:rollo-pct-up]")})\
DOELSEIF ([{twilight("Astro","CustomTwilightEvening","16:00","[RA_0300:rollo-time-down]")}] and [?RA_0300:rollo-mode] eq "sonne") ({sub_Rollo(3,"[RA_0300:rollo-pct-down]")})
attr do.RO0301.Zeit alias Schlafzimmerrollo
attr do.RO0301.Zeit cmdState auf|zu|auf|zu|auf|zu|auf|zu
attr do.RO0301.Zeit devStateStyle style="text-align:right;;"
attr do.RO0301.Zeit do always
attr do.RO0301.Zeit group doif
attr do.RO0301.Zeit room Schlafzimmer,rollladen
attr do.RO0301.Zeit sortby RO_0301
Moin,
meine Glaskugel sagt mir, ich solle auf ein fehlendes Do always wetten.
LG
Andreas
habe jetzt mal das erste sleep entfernt und durch wait ersetzt.
Mich wundert das es ja letztes Jahr noch funktioniert hat und jetzt auf einmal nicht mehr.
Bzw. wenn ich auf cmd2 setze oder initalzed das ganze wieder funktioniert (allerdings nur einmal).
Dake euch vorab
Zitat von: Mellowback am 31 Oktober 2022, 10:02:53
habe jetzt mal das erste sleep entfernt und durch wait ersetzt.
Warum nicht die anderen auch?
Müsste ja jetzt zumindest der erste Rolladen herunter fahren. Wenn dann die anderen nicht gehen, kann ich immer noch anpassen.
hi,
ich habe auch einige doif, die monatelang gingen und nun nicht,
konnte bisher keine Fehler finden und habe die dann durch notify ersetzt
"Müsste ja jetzt zumindest der erste Rolladen herunter fahren" ja und nein wenn ein Fehler drin ist geht es nicht....
steht aber dann auch im device
mfg
Was soll ich sagen, es hat alles funktioniert. Bin gespannt was heute passiert oder auch nicht.
Im State steht wieder cmd_1
Zitat von: Mellowback am 01 November 2022, 07:18:58
Was soll ich sagen, es hat alles funktioniert. Bin gespannt was heute passiert oder auch nicht.
Im State steht wieder cmd_1
Ein Timer ohne ein DOELSE-Fall braucht immer das Attribut do always, sonst wird es nur einmal ausgeführt, das steht auch so in der Commandref zu DOIF. Für eine sinnvolle Analyse ist ein list deines DOIFs Voraussetzung - das habe ich noch nicht gesehen.
hier das list zur Automatisierung:
Internals:
DEF ([{twilight("TC_TWILIGHT","ss_weather","16:00","22:00")}]) (set WZ_Fenster pct 0; sleep 300; set Bad_Fenster_rechts pct 0; sleep 2; set Bad_Fenster_links pct 0; set WZ_TerrasseFenster pct 0; sleep 30; set Arbeitszimmer_Fenster pct 0; sleep 40; set Kueche_Fenster pct 0; sleep 2; set SZ_Fenster pct 0)
FUUID 5c601b93-f33f-2b59-1da3-eb9e234697c0255c
MODEL FHEM
NAME KU_DOIF_ROLLADEN_DOWN
NOTIFYDEV global
NR 371
NTFY_ORDER 50-KU_DOIF_ROLLADEN_DOWN
STATE cmd_1
TYPE DOIF
VERSION 26444 2022-09-25 16:29:19
eventCount 4
READINGS:
2022-10-31 16:24:23 cmd 1
2022-10-31 16:24:23 cmd_event timer_1
2022-10-31 16:24:23 cmd_nr 1
2022-10-31 09:48:01 mode enabled
2022-10-31 16:24:23 state cmd_1
2022-11-01 16:24:24 timer_01_c01 02.11.2022 16:22:32
Regex:
accu:
collect:
attr:
cmdState:
wait:
0:
1500
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday)
days:
do:
0:
0 set WZ_Fenster pct 0; sleep 300; set Bad_Fenster_rechts pct 0; sleep 2; set Bad_Fenster_links pct 0; set WZ_TerrasseFenster pct 0; sleep 30; set Arbeitszimmer_Fenster pct 0; sleep 40; set Kueche_Fenster pct 0; sleep 2; set SZ_Fenster pct 0
1:
helper:
NOTIFYDEV global
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
state: cmd_1
timerevents:
timer_1
timereventsState:
timer_1
triggerEvents:
timer_1
triggerEventsState:
timer_1
interval:
intervalfunc:
localtime:
0 1667402552
realtime:
0 16:22:32
time:
0 {twilight("TC_TWILIGHT","ss_weather","16:00","22:00")}
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1667402552:
localtime 1667402552
hash:
uiState:
uiTable:
Attributes:
room Automatisierung
wait 1500
Wie schon geschrieben, ohne do always wird es nur einmal ausgeführt.
habe do always ergänzt, mal gucken was passiert.
Danke
Moin,
war das nicht gleich die zweite Antwort? ::)
Man liest eben nur was man lesen will.