DOIF wird nach Neustart nicht ausgeführt.

Begonnen von Thoffi1978, 11 November 2015, 07:45:50

Vorheriges Thema - Nächstes Thema

Thoffi1978

Hallo,
ich habe bis jetzt alles mit "at`s" gesteuert. Das lief alles problemlos.

Jetzt bin ich auf DOIF umgezogen und habe festgestellt, das nach einem Neustart des RasPi´s die Jalousien am nächsten morgen nicht geschaltet werden.
([06:45|1235] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)

Könnt Ihr mir sagen warum nicht geschaltet wird?
Im Anhang ein Screenshot vom heutigen Tag, wo KEINE Jalousie sich bewegte.

Lieben gruß
Hoffi

kumue

das Attribut do always ist gesetzt ?

attr Bad_hoch1 do always

Brockmann

Zitat von: kumue am 11 November 2015, 07:53:35
das Attribut do always ist gesetzt ?
Ich denke nicht, sonst wäre heute nacht um 3:45 Uhr das Rollo hochgegangen.

Das do always muss gesetzt werden. Allerdings muss es dann auch einen DOELSE-Zweig geben, notfalls leer: DOELSE ()
Sonst kann das do always dazu führen, dass die letzte Aktion wiederholt wird, selbst wenn die Bedingung in dem Moment nicht erfüllt ist.

Hinweis: Anstelle eines Screenshots sollte man bei Problemen die Ausgabe von list <Name des DOIFs> posten. Dann erübrigen sich Rückfragen dieser Art.

Mit einem Neustart hat das übrigens alles nichts zu tun. Das DOIF passt einfach noch nicht.

kumue

ZitatIch denke nicht, sonst wäre heute nacht um 3:45 Uhr das Rollo hochgegangen.

wieso 03:45 ?

Thoffi1978

Vielen Dank für die Antworten.
Um 3.45Uhr wären die Jalousien dann wohl hoch gegangen, weil ein neuer Status abgefragt wird (Ferien).

Hier die List:
Internals:
   DEF        ([06:45|1235] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
   NAME       Bad_hoch1
   NR         202
   NTFY_ORDER 50-Bad_hoch1
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-11-11 03:45:00   Device          SH_Ferientag
     2015-11-09 06:45:00   cmd_event       timer_1
     2015-11-09 06:45:00   cmd_nr          1
     2015-11-11 03:45:00   e_SH_Ferientag_STATE 0
     2015-11-09 06:45:00   state           cmd_1
     2015-11-11 06:45:00   timer_1_c1      12.11.2015 06:45:00|1235
     2015-11-11 07:30:00   timer_2_c2      12.11.2015 07:30:00|4
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"1235") and InternalDoIf('SH_Ferientag','STATE','') eq "0" and (Value("Jalousie_Automatik") eq "Auto")
     1          DOIF_time_once($hash,$hash->{timer}{1},$wday,"4") and InternalDoIf('SH_Ferientag','STATE','') eq "0" and (Value("Jalousie_Automatik") eq "Auto")
   Days:
     0          1235
     1          4
   Devices:
     0           SH_Ferientag
     1           SH_Ferientag
     all         SH_Ferientag
   Do:
     0:
       0          set Jalo_Bad 100
     1:
       0          set Jalo_Bad 100
     2:
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
     0           SH_Ferientag:STATE
     1           SH_Ferientag:STATE
     all         SH_Ferientag:STATE
   Itimer:
   Readings:
   Realtime:
     0          06:45:00
     1          07:30:00
   State:
   Time:
     0          06:45:00
     1          07:30:00
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:
   eventMap   off:Runter on:Hoch
   group      Jalousien_seite
   room       Bad,Jalousien
   set        Rollo_Gruppe
   userattr   room_map set set_map structexclude /code]

kumue

ZitatUm 3.45Uhr wären die Jalousien dann wohl hoch gegangen, weil ein neuer Status abgefragt wird (Ferien).

Finde ich nicht. Wenn Bedingung1 UND Bedingung2 UND Bedingung3 zutrifft, wird der Befehl ausgeführt...

Aber das bekommen wir ja einfach raus ... :)
Kannst ja morgen berichten, ob 3:45 Uhr oder 7:30 Uhr das Rollo hoch ging...

Gruß
Kai

CoolTux

Vielleicht lieber mal so machen


([06:45|1235] and [?SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [?SH_Ferientag] eq "0" and (Value("Jalousie_Automatik") eq "Auto")) (set Jalo_Bad 100)


Irgendwie ist das eh alles bisschen durcheinander finde ich

Probiere mal so

([06:45|1235] and [?SH_Ferientag] eq "0" and [?Jalousie_Automatik] eq "Auto") (set Jalo_Bad 100)
DOELSEIF
([07:30|4] and [?SH_Ferientag] eq "0" and [?Jalousie_Automatik] eq "Auto") (set Jalo_Bad 100)


Kann mich aber auch irre


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net