Automatisierung geht immer nur einen Tag (cmd_1)

Begonnen von Mellowback, 30 Oktober 2022, 17:32:58

Vorheriges Thema - Nächstes Thema

Mellowback

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)

eisman

#1
hi

schau mal (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)

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
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

rischbiter123

Moin,
meine Glaskugel sagt mir, ich solle auf ein fehlendes Do always wetten.
LG
Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Mellowback

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

rabehd

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?
Auch funktionierende Lösungen kann man hinterfragen.

Mellowback

Müsste ja jetzt zumindest der erste Rolladen herunter fahren. Wenn dann die anderen nicht gehen, kann ich immer noch anpassen.

eisman

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
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Mellowback

Was soll ich sagen, es hat alles funktioniert. Bin gespannt was heute passiert oder auch nicht.
Im State steht wieder cmd_1

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Mellowback

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

Damian

Wie schon geschrieben, ohne do always wird es nur einmal ausgeführt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Mellowback

habe do always ergänzt, mal gucken was passiert.

Danke

rischbiter123

Moin,
war das nicht gleich die zweite Antwort?  ::)
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

rabehd

Auch funktionierende Lösungen kann man hinterfragen.