FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: sash.sc am 11 September 2016, 12:10:46

Titel: ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 11 September 2016, 12:10:46
Habe eine Lichsteuerung, recht sinple über DOIF und Lighscene reaslisiert.

Da es jetzt früher dunkel wird, verschieben sich die ganzen Schaltzeiten nach vorne. Irgendwann wird das Licht komplett ausgeschaltet. Leider zu früh, im Moment.

Hier erstmal das DOIF komplett.

Internals:
   DEF        ([lichtsens:Indikator:d] < [lichtanteil:state]) (set EG_wz_EckeLicht on) (set LS scene 01) (set LS scene 02) (set LS scene 01) (set LS scene 02) (set LS scene Off) DOELSE (set LS scene Off)
   NAME       LW1
   NR         211
   NTFY_ORDER 50-LW1
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-09-11 11:56:26   Device          lichtsens
     2016-09-11 06:53:50   cmd             2
     2016-09-11 06:53:50   cmd_event       lichtsens
     2016-09-11 06:53:50   cmd_nr          2
     2016-09-10 19:00:15   e_lichtanteil_state 27
     2016-09-11 11:56:26   e_lichtsens_Indikator 96
     2016-09-11 06:53:50   state           cmd_2
     2016-09-10 23:00:39   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','(-?\d+(\.\d+)?)','',AttrVal($hash->{NAME},'notexist',undef)) < ReadingValDoIf($hash,'lichtanteil','state','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set EG_wz_EckeLicht on
       1          set LS scene 01
       2          set LS scene 02
       3          set LS scene 01
       4          set LS scene 02
       5          set LS scene Off
     1:
       0          set LS scene Off
   Helper:
     event      Indikator: 96
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer -1
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 96
     triggerDev lichtsens
     timerevents:
       Indikator: 96
     timereventsState:
       Indikator: 96
     triggerEvents:
       Indikator: 96
     triggerEventsState:
       Indikator: 96
   Internals:
   Itimer:
   Readings:
     0           lichtsens:Indikator lichtanteil:state
     all         lichtsens:Indikator lichtanteil:state
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   checkReadingEvent 1
   devStateIcon cmd_1:rc_1:disable cmd_2:rc_2:disabledisabled:general_aus@red:initialize initialize:general_an@green:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disableinitialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen,10_WoZi,99_Licht,99_Steuerung
   wait       301,1,1,3600,3600,3600,3600


Wie man sieht wird der Lichtwechsel über das WAIT Attribut gestalltet.

Jetzt zu meinem Anliegen.

Ich möchte die Zeiten im WAIT dynamisch berechnen.
z.B.: Maximal Lichtwesel sollten 5 oder 6 sein.
Berechnung: Endzeit (alles aus) - Startzeit (Lichschwellwertschalter) / Anz.d. Lichtwechsel = Laufzeit für ein Lichtwechsel (WAIT) Attribut.

Wie kann man einfach, die Zeiten für das Wait berechnen und ins WAIT schreiben ?

Grüß0e und danke
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: igami am 11 September 2016, 14:34:52
Du kannst die Berechnung einfach in das Attribut schreiben http://fhem.de/commandref_DE.html#DOIF_wait
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 11 September 2016, 17:22:56
Das heisst, die Berechnung der Pausenintervalle im WAIT können dort direkt gemacht werden ?!?!

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: igami am 11 September 2016, 17:27:09
Zitat von: sash.sc am 11 September 2016, 17:22:56
Das heisst, die Berechnung der Pausenintervalle im WAIT können dort direkt gemacht werden ?!?!
Hast du dir den Abschnitt durchgelesen? Dann kannst du dir die Frage selbst beantworten. Im zweifelsfall einfach mal testen. Wenn es nicht klappt, mal einen Blick in die Logs werfen oder das error Reading vom DOIF angucken.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 28 Oktober 2016, 15:51:09
Hallo zusammen.

Nachdem der Lichtwechsel jetzt eine Zeit lang lief, musste ich feststellen, dass morgens immer noch eine der Lampen leuchtet.
Hier erstmal das DOIF


Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off) DOELSE (set LS scene Off)
   NAME       LW1
   NR         205
   NTFY_ORDER 50-LW1
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-10-28 15:46:11   Device          lichtsens
     2016-10-28 08:29:20   cmd             2
     2016-10-28 08:29:20   cmd_event       lichtsens
     2016-10-28 08:29:20   cmd_nr          2
     2016-10-26 07:12:10   e_lichtanteil_STATE 27
     2016-10-28 15:46:11   e_lichtsens_Indikator 64
     2016-10-26 19:26:07   mode            enable
     2016-10-28 08:29:20   state           cmd_2
     2016-10-27 22:47:05   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene 01
       3          set LS scene 02
       4          set LS scene 01
       5          set LS scene 02
       6          set LS scene Off
     1:
       0          set LS scene Off
   Helper:
     event      Indikator: 64
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 64
     triggerDev lichtsens
     timerevents:
       Indikator: 64
     timereventsState:
       Indikator: 64
     triggerEvents:
       Indikator: 64
     triggerEventsState:
       Indikator: 64
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen
   wait       360,3600,3600,3600,3600,3600,3600


Hatte es wenig abgeändert gegenüber am Anfang.
Habe auch mal ein Log zu dem DOIF angelegt.
Dort zeigt sich, dass die Befehle nach dem WAIT nicht mehr erreicht bzw. geschaltet werden.


2016-10-28_08:29:20.342 LW1 cmd_2
2016-10-28_08:29:20.342 LW1 cmd_event: lichtsens
2016-10-28_08:29:20.342 LW1 cmd: 2
2016-10-28_08:29:20.342 LW1 cmd_nr: 2
2016-10-27_22:08:54.591 LW1 wait_timer: 27.10.2016 23:08:54 cmd_1_6 lichtsens
2016-10-27_22:08:54.565 LW1 cmd_1_5
2016-10-27_22:08:54.565 LW1 cmd_event: lichtsens
2016-10-27_22:08:54.565 LW1 cmd: 1.5
2016-10-27_22:08:54.565 LW1 cmd_seqnr: 5
2016-10-27_22:08:54.565 LW1 cmd_nr: 1
2016-10-27_22:08:54.535 LW1 wait_timer: no timer
2016-10-27_21:08:54.533 LW1 wait_timer: 27.10.2016 22:08:54 cmd_1_5 lichtsens
2016-10-27_21:08:54.511 LW1 cmd_1_4
2016-10-27_21:08:54.511 LW1 cmd_event: lichtsens
2016-10-27_21:08:54.511 LW1 cmd: 1.4
2016-10-27_21:08:54.511 LW1 cmd_seqnr: 4
2016-10-27_21:08:54.511 LW1 cmd_nr: 1
2016-10-27_21:08:54.478 LW1 wait_timer: no timer
2016-10-27_20:08:54.455 LW1 wait_timer: 27.10.2016 21:08:54 cmd_1_4 lichtsens
2016-10-27_20:08:54.438 LW1 cmd_1_3
2016-10-27_20:08:54.438 LW1 cmd_event: lichtsens
2016-10-27_20:08:54.438 LW1 cmd: 1.3
2016-10-27_20:08:54.438 LW1 cmd_seqnr: 3
2016-10-27_20:08:54.438 LW1 cmd_nr: 1
2016-10-27_20:08:54.413 LW1 wait_timer: no timer
2016-10-27_19:08:54.410 LW1 wait_timer: 27.10.2016 20:08:54 cmd_1_3 lichtsens
2016-10-27_19:08:54.392 LW1 cmd_1_2
2016-10-27_19:08:54.392 LW1 cmd_event: lichtsens
2016-10-27_19:08:54.392 LW1 cmd: 1.2
2016-10-27_19:08:54.392 LW1 cmd_seqnr: 2
2016-10-27_19:08:54.392 LW1 cmd_nr: 1
2016-10-27_19:08:54.363 LW1 wait_timer: no timer
2016-10-27_18:08:54.360 LW1 wait_timer: 27.10.2016 19:08:54 cmd_1_2 lichtsens
2016-10-27_18:08:54.343 LW1 cmd_1_1
2016-10-27_18:08:54.343 LW1 cmd_event: lichtsens
2016-10-27_18:08:54.343 LW1 cmd: 1.1
2016-10-27_18:08:54.343 LW1 cmd_seqnr: 1
2016-10-27_18:08:54.343 LW1 cmd_nr: 1
2016-10-27_18:08:54.312 LW1 wait_timer: no timer
2016-10-27_18:02:54.305 LW1 wait_timer: 27.10.2016 18:08:54 cmd_1_1 lichtsens



Ich kann im Moment nicht nachvollziehen, warum zum Schluß nicht ausgeschaltet wird.

Danke für eure Hilfe

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 28 Oktober 2016, 19:00:27
Zitat von: sash.sc am 28 Oktober 2016, 15:51:09

Hatte es wenig abgeändert gegenüber am Anfang.
Habe auch mal ein Log zu dem DOIF angelegt.
Dort zeigt sich, dass die Befehle nach dem WAIT nicht mehr erreicht bzw. geschaltet werden.

Ich kann im Moment nicht nachvollziehen, warum zum Schluß nicht ausgeschaltet wird.

Ich habe bei mir gerade 7 Befehle im Sekundentakt schalten lassen. Alle werden ausgeführt.

Teste es mal mit kurzen Abständen z. B. eine Sekunde.

Gruß

Damian

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 28 Oktober 2016, 21:02:05
Habe das gleiche doif mit sechs Minuten im wait getestet. Hat alle befehle bis zum LS off durchgeschaltet.

Warum geht das nicht mit 3600 im wait Attribut? Evtl. Tagübergreifend?

oder hast eine andere Vermutung?

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 28 Oktober 2016, 21:09:16
Zitat von: sash.sc am 28 Oktober 2016, 21:02:05
Habe das gleiche doif mit sechs Minuten im wait getestet. Hat alle befehle bis zum LS off durchgeschaltet.

Warum geht das nicht mit 3600 im wait Attribut? Evtl. Tagübergreifend?

oder hast eine andere Vermutung?

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Grundsätzlich wird ja die Kette unterbrochen, wenn ein anderer Zweig ausgeführt wird, hier z. B. DOELSE.

Eigentlich kann ich mir nicht vorstellen, dass über Mitternacht die Timer nicht mehr funktionieren, dann wäre es ein fhem.pl-Problem.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 28 Oktober 2016, 21:12:24
Werde es mit den 3600 Sekunden nochmal laufen lassen.

Und dann schauen wa ma.  ;)

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 04 November 2016, 19:40:46
Hallo zusammen.

Jetzt ist es wieder soweit. Das vorran gestellte DOIF wird nicht mehr aktualisiert. Das DOIF ist nach einem WAIT Befehl "stehen" geblieben.


2016-11-04_17:58:10.087 LW1 wait_timer: 04.11.2016 18:58:10 cmd_1_3 lichtsens
2016-11-04_17:58:10.070 LW1 cmd_1_2
2016-11-04_17:58:10.070 LW1 cmd_event: lichtsens
2016-11-04_17:58:10.070 LW1 cmd: 1.2
2016-11-04_17:58:10.070 LW1 cmd_seqnr: 2
2016-11-04_17:58:10.070 LW1 cmd_nr: 1
2016-11-04_17:58:10.045 LW1 wait_timer: no timer
2016-11-04_16:58:10.043 LW1 wait_timer: 04.11.2016 17:58:10 cmd_1_2 lichtsens
2016-11-04_16:58:10.024 LW1 cmd_1_1
2016-11-04_16:58:10.024 LW1 cmd_event: lichtsens
2016-11-04_16:58:10.024 LW1 cmd: 1.1
2016-11-04_16:58:10.024 LW1 cmd_seqnr: 1
2016-11-04_16:58:10.024 LW1 cmd_nr: 1
2016-11-04_16:58:09.990 LW1 wait_timer: no timer
2016-11-04_16:56:09.983 LW1 wait_timer: 04.11.2016 16:58:09 cmd_1_1 lichtsens


Kann es sein, dass das DOIF nicht mehr fortgeführt wird, wenn einer der Aktoren (innerhalb der Lightscene) manuell betätigt wird ?
Dies habe ich geta, da der Aktor zwar angesteuert wurde, aber das Signal unter gegangen ist und der Aktor nicht geschaltet hat.
Daher habe ich den Aktor manuell geschaltet und die DOIF Timer wurden über WAIT nicht mehr aktualisiert.

Besteht die Möglichkeit, das DOIF wieder an der gleichen Stellen weiter laufen zu lassen ?
Wie die Pause Taste an einem Player ?

Gruß und Danke
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 04 November 2016, 20:49:27
Zitat von: sash.sc am 04 November 2016, 19:40:46
Hallo zusammen.

Jetzt ist es wieder soweit. Das vorran gestellte DOIF wird nicht mehr aktualisiert. Das DOIF ist nach einem WAIT Befehl "stehen" geblieben.


2016-11-04_17:58:10.087 LW1 wait_timer: 04.11.2016 18:58:10 cmd_1_3 lichtsens
2016-11-04_17:58:10.070 LW1 cmd_1_2
2016-11-04_17:58:10.070 LW1 cmd_event: lichtsens
2016-11-04_17:58:10.070 LW1 cmd: 1.2
2016-11-04_17:58:10.070 LW1 cmd_seqnr: 2
2016-11-04_17:58:10.070 LW1 cmd_nr: 1
2016-11-04_17:58:10.045 LW1 wait_timer: no timer
2016-11-04_16:58:10.043 LW1 wait_timer: 04.11.2016 17:58:10 cmd_1_2 lichtsens
2016-11-04_16:58:10.024 LW1 cmd_1_1
2016-11-04_16:58:10.024 LW1 cmd_event: lichtsens
2016-11-04_16:58:10.024 LW1 cmd: 1.1
2016-11-04_16:58:10.024 LW1 cmd_seqnr: 1
2016-11-04_16:58:10.024 LW1 cmd_nr: 1
2016-11-04_16:58:09.990 LW1 wait_timer: no timer
2016-11-04_16:56:09.983 LW1 wait_timer: 04.11.2016 16:58:09 cmd_1_1 lichtsens


Kann es sein, dass das DOIF nicht mehr fortgeführt wird, wenn einer der Aktoren (innerhalb der Lightscene) manuell betätigt wird ?
Dies habe ich geta, da der Aktor zwar angesteuert wurde, aber das Signal unter gegangen ist und der Aktor nicht geschaltet hat.
Daher habe ich den Aktor manuell geschaltet und die DOIF Timer wurden über WAIT nicht mehr aktualisiert.

Besteht die Möglichkeit, das DOIF wieder an der gleichen Stellen weiter laufen zu lassen ?
Wie die Pause Taste an einem Player ?

Gruß und Danke
Sascha

Poste mal List von diesem Zustand.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 04 November 2016, 21:01:46
Habe das doif wieder neu gestartet.  Sieht schlecht aus!
Oder das list von doif?

Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         203
   NTFY_ORDER 50-LW1
   STATE      cmd_1_1
   TYPE       DOIF
   Readings:
     2016-11-04 21:32:29   Device          lichtsens
     2016-11-04 20:54:21   cmd             1.1
     2016-11-04 20:54:21   cmd_event       lichtsens
     2016-11-04 20:54:21   cmd_nr          1
     2016-11-04 20:54:21   cmd_seqnr       1
     2016-10-31 18:21:46   e_lichtanteil_STATE 27
     2016-11-04 21:32:29   e_lichtsens_Indikator 0
     2016-11-04 20:54:21   state           cmd_1_1
     2016-11-04 20:54:21   wait_timer      04.11.2016 21:54:21 cmd_1_2 lichtsens
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene 01
       3          set LS scene 02
       4          set LS scene 01
       5          set LS scene 02
       6          set LS scene Off
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer 1
     sleeptimer 0
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen
   wait       120,3600,3600,3600,3600,3600,3600


Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 04 November 2016, 22:42:04
Zitat von: sash.sc am 04 November 2016, 21:01:46
Habe das doif wieder neu gestartet.  Sieht schlecht aus!
Oder das list von doif?


Ich brauche ein list des doifs von dem Zustand, wo die Kette unterbrochen wurde.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 05 November 2016, 10:28:47
Guten morgen Damian.

Habe das doif heute morgen mit verkürzten zeigen als WAIT  Attribut durchlaufen lassen. Da hat alles funktioniert! Habe auch manuell die Lampen durchgeschaltet.
Werde es heute Abend mit den Standart Zeiten laufen lassen.
Habe den Eindruck, dass die grossen Zeiten im wait hin und wieder Probleme machen. Bei kurzen Zeiten anscheinend nicht!

Werde mal morgen oder heute abend schreiben.

Gruß Sascha

Von mobil gesendet daher kurze Antwort
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 05 November 2016, 20:28:00
Zitat von: sash.sc am 05 November 2016, 10:28:47
Guten morgen Damian.

Habe das doif heute morgen mit verkürzten zeigen als WAIT  Attribut durchlaufen lassen. Da hat alles funktioniert! Habe auch manuell die Lampen durchgeschaltet.
Werde es heute Abend mit den Standart Zeiten laufen lassen.
Habe den Eindruck, dass die grossen Zeiten im wait hin und wieder Probleme machen. Bei kurzen Zeiten anscheinend nicht!

Werde mal morgen oder heute abend schreiben.

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Ich gehe davon aus, dass der cmd_2 Zustand die Kette unterbricht (was normal wäre). Je länger die Wait-Zeiten, desto wahrscheinlicher, dass es passiert.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 05 November 2016, 20:49:16
Hatte es heute tagsüber mit den kurzen Zeiten laufen lassen, und es funktionierte.
Habe es dann mit den langen Zeiten (3600) tagsüber laufen lassen,  und es funktionierte.
Habe es dann mit den langen Zeiten jetzt am laufen, bis jetzt funktioniert es, wie gewohnt.

Wodurch wird den das DOIF auf CMD_2 gesetzt ? Eigentlich nur, wenn es doch wieder heller wird ? oder?

Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         203
   NTFY_ORDER 50-LW1
   STATE      cmd_1_5
   TYPE       DOIF
   Readings:
     2016-11-05 20:29:46   Device          lichtsens
     2016-11-05 20:44:31   cmd             1.5
     2016-11-05 20:44:31   cmd_event       lichtsens
     2016-11-05 20:44:31   cmd_nr          1
     2016-11-05 20:44:31   cmd_seqnr       5
     2016-11-05 16:11:15   e_lichtanteil_STATE 25
     2016-11-05 20:29:46   e_lichtsens_Indikator 0
     2016-11-05 20:44:31   state           cmd_1_5
     2016-11-05 20:44:31   wait_timer      05.11.2016 21:44:31 cmd_1_6 lichtsens
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene 01
       3          set LS scene 02
       4          set LS scene 01
       5          set LS scene 02
       6          set LS scene Off
     1:
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer 5
     sleeptimer 0
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen
   wait       120,3600,3600,3600,3600,3600,3600


Oder wird es auch unterbrochen, wenn der DUMMY lichtanteil geändert wird ?

Gruß und Danke
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 05 November 2016, 20:52:07
Zitat von: sash.sc am 05 November 2016, 20:49:16
Hatte es heute tagsüber mit den kurzen Zeiten laufen lassen, und es funktionierte.
Habe es dann mit den langen Zeiten (3600) tagsüber laufen lassen,  und es funktionierte.
Habe es dann mit den langen Zeiten jetzt am laufen, bis jetzt funktioniert es, wie gewohnt.

Wodurch wird den das DOIF auf CMD_2 gesetzt ? Eigentlich nur, wenn es doch wieder heller wird ? oder?

Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         203
   NTFY_ORDER 50-LW1
   STATE      cmd_1_5
   TYPE       DOIF
   Readings:
     2016-11-05 20:29:46   Device          lichtsens
     2016-11-05 20:44:31   cmd             1.5
     2016-11-05 20:44:31   cmd_event       lichtsens
     2016-11-05 20:44:31   cmd_nr          1
     2016-11-05 20:44:31   cmd_seqnr       5
     2016-11-05 16:11:15   e_lichtanteil_STATE 25
     2016-11-05 20:29:46   e_lichtsens_Indikator 0
     2016-11-05 20:44:31   state           cmd_1_5
     2016-11-05 20:44:31   wait_timer      05.11.2016 21:44:31 cmd_1_6 lichtsens
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene 01
       3          set LS scene 02
       4          set LS scene 01
       5          set LS scene 02
       6          set LS scene Off
     1:
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer 5
     sleeptimer 0
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen
   wait       120,3600,3600,3600,3600,3600,3600


Oder wird es auch unterbrochen, wenn der DUMMY lichtanteil geändert wird ?

Gruß und Danke
Sascha

Beim Gegenteil von [lichtsens:Indikator] < [lichtanteil] also [lichtsens:Indikator] >= [lichtanteil]
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 05 November 2016, 20:56:10
Das ist klar, dass dann auf CMD_2 gewechselt wird.

Im LOG zu dem DOIF sieht man zwischendurch, dass die Komandokette nicht weitergeführt wird und irgendwo in der Sequenz von 1-7 stecken bleibt.

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 05 November 2016, 21:02:31
Zitat von: sash.sc am 05 November 2016, 20:56:10
Das ist klar, dass dann auf CMD_2 gewechselt wird.

Im LOG zu dem DOIF sieht man zwischendurch, dass die Komandokette nicht weitergeführt wird und irgendwo in der Sequenz von 1-7 stecken bleibt.

Gruß
Sascha

Du kannst ja am Ende dranhängen ... DOELSE ({Log 2,"CMD_2 unterbricht die Ausführungskette aufgrund folgender Events: $EVENTS"})
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 07 November 2016, 06:06:19
Guten Morgen Damian.

Hier das List vom DOIF. Es ist wieder geschen, dass es nicht weiter geschaltet hat.

Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         203
   NTFY_ORDER 50-LW1
   STATE      cmd_1_3
   TYPE       DOIF
   Readings:
     2016-11-07 05:57:46   Device          lichtsens
     2016-11-06 18:27:18   cmd             1.3
     2016-11-06 18:27:18   cmd_event       lichtsens
     2016-11-06 18:27:18   cmd_nr          1
     2016-11-06 18:27:18   cmd_seqnr       3
     2016-11-05 16:11:15   e_lichtanteil_STATE 25
     2016-11-07 05:57:46   e_lichtsens_Indikator 0
     2016-11-06 18:27:18   state           cmd_1_3
     2016-11-06 18:54:54   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene 01
       3          set LS scene 02
       4          set LS scene 01
       5          set LS scene 02
       6          set LS scene Off
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   room       10_Draussen
   wait       120,3600,3600,3600,3600,3600,3600


DOIF LOG


2016-11-06_18:27:18.224 LW1 wait_timer: 06.11.2016 19:27:18 cmd_1_4 lichtsens
2016-11-06_18:27:18.203 LW1 cmd_1_3
2016-11-06_18:27:18.203 LW1 cmd_event: lichtsens
2016-11-06_18:27:18.203 LW1 cmd: 1.3
2016-11-06_18:27:18.203 LW1 cmd_seqnr: 3
2016-11-06_18:27:18.203 LW1 cmd_nr: 1
2016-11-06_18:27:18.167 LW1 wait_timer: no timer
2016-11-06_17:27:18.144 LW1 wait_timer: 06.11.2016 18:27:18 cmd_1_3 lichtsens
2016-11-06_17:27:18.122 LW1 cmd_1_2
2016-11-06_17:27:18.122 LW1 cmd_event: lichtsens
2016-11-06_17:27:18.122 LW1 cmd: 1.2
2016-11-06_17:27:18.122 LW1 cmd_seqnr: 2
2016-11-06_17:27:18.122 LW1 cmd_nr: 1
2016-11-06_17:27:18.080 LW1 wait_timer: no timer
2016-11-06_16:27:18.075 LW1 wait_timer: 06.11.2016 17:27:18 cmd_1_2 lichtsens
2016-11-06_16:27:18.047 LW1 cmd_1_1
2016-11-06_16:27:18.047 LW1 cmd_event: lichtsens
2016-11-06_16:27:18.047 LW1 cmd: 1.1
2016-11-06_16:27:18.047 LW1 cmd_seqnr: 1
2016-11-06_16:27:18.047 LW1 cmd_nr: 1
2016-11-06_16:27:18.005 LW1 wait_timer: no timer
2016-11-06_16:25:18.001 LW1 wait_timer: 06.11.2016 16:27:17 cmd_1_1 lichtsens


Ohne das die beteiligten Aktoren manuell geschaltet wurden !!

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 07 November 2016, 07:23:33
Zitat von: sash.sc am 07 November 2016, 06:06:19
Guten Morgen Damian.

Hier das List vom DOIF. Es ist wieder geschen, dass es nicht weiter geschaltet hat.



Es stellt sich die Frage: Was ist um 18:54:54 Uhr passiert ?


2016-11-06 18:54:54   wait_timer      no timer
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 07 November 2016, 08:27:35
Fhem restart.
Zu den Zeitpunkt wurde versucht ein Mini cul mit WLAN Schnittstelle zu initialisieren.

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 07 November 2016, 11:12:56
Zitat von: sash.sc am 07 November 2016, 08:27:35
Fhem restart.
Zu den Zeitpunkt wurde versucht ein Mini cul mit WLAN Schnittstelle zu initialisieren.

Von mobil gesendet daher kurze Antwort

na dann

fhem restart -> timer weg ;)
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 07 November 2016, 11:45:20
Hab gedacht, dass bei einem Neustart alle Zustände gespeichert werden und nach einem Neustart wieder hergestellt werden!?

Sieht wohl nicht so aus!

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 07 November 2016, 13:11:48
Zitat von: sash.sc am 07 November 2016, 11:45:20
Hab gedacht, dass bei einem Neustart alle Zustände gespeichert werden und nach einem Neustart wieder hergestellt werden!?

Sieht wohl nicht so aus!

Von mobil gesendet daher kurze Antwort

Readings ja, laufende Wait-Timer werden nicht neuaufgesetzt, da durch den Stillstand schon einige möglicherweise abgelaufen wären, und dann gäbe es ein Zustands-Chaos.
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 07 November 2016, 20:37:30
Zitat von: Damian am 07 November 2016, 13:11:48
Readings ja, laufende Wait-Timer werden nicht neuaufgesetzt, da durch den Stillstand schon einige möglicherweise abgelaufen wären, und dann gäbe es ein Zustands-Chaos.

Gibt es denn eine Möglichkeit, bei einem Shutdown, die Timer zu speichern und nach dem Neustart wieder zu schreiben ????

Oder im Shutdown eine Funktion einfügen, dass der Shutdown automatisch ausgeführt wird, wenn keine Timer aktiv sind ???  ;D

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 07 November 2016, 20:42:34
DEF

([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
DOELSE  ({Log 2,"CMD_2 unterbricht die Ausführungskette aufgrund folgender Events: $EVENTS"})


Kann man das DOIF auch eleganter hin bekommen ? Ich meine  set LS scene 01 und 02 mit einer Anzahl wiederholen anstatt das ganze mit vielen WAIT Timern ?

Repeatsame ??

Gruß und Danke
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 15 November 2016, 19:26:05
So, muss mich nochmal zu Worte melden.

Habe das etwas einfach gestrickte, aber mittlerweile für mich, zu langes DOIF, ein wenig eingekürzt, um die Übersicht zu behalten.
Habe es eine Zeit lang durchlaufen lassen.

Erst mal das alte DOIF.


([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
DOELSE  ({Log 2,"CMD_2 unterbricht die Ausführungskette aufgrund folgender Events: $EVENTS"})

wait       120,3600,3600,3600,3600,3600,3600


neues DOIF


LW1 DOIF ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02)\
DOELSE (set LS scene Off)

LW1 wait 60,3600,3600
LW1 repeatsame 4:1


Ich denke, dass dies ein bischen übersichtlicher ist.

Gruß
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 15 November 2016, 22:16:06
Zitat von: sash.sc am 15 November 2016, 19:26:05
So, muss mich nochmal zu Worte melden.

Habe das etwas einfach gestrickte, aber mittlerweile für mich, zu langes DOIF, ein wenig eingekürzt, um die Übersicht zu behalten.
Habe es eine Zeit lang durchlaufen lassen.

Erst mal das alte DOIF.


([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene 01)  (set LS scene 02)(set LS scene 01)  (set LS scene 02) (set LS scene Off)
DOELSE  ({Log 2,"CMD_2 unterbricht die Ausführungskette aufgrund folgender Events: $EVENTS"})

wait       120,3600,3600,3600,3600,3600,3600


neues DOIF


LW1 DOIF ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02)\
DOELSE (set LS scene Off)

LW1 wait 60,3600,3600
LW1 repeatsame 4:1


Ich denke, dass dies ein bischen übersichtlicher ist.

Gruß
Sascha

Tja, in der Kürze liegt die Würze ;)
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 25 November 2016, 17:24:16
Zitat von: Damian am 15 November 2016, 22:16:06
Tja, in der Kürze liegt die Würze ;)

Oder auch nicht..... ;-)

habe jetzt nach einigen Updates, dass das DOIF nicht mehr von alleine startet !!!! :o ::)




Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         144
   NTFY_ORDER 50-LW1
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-11-25 17:07:52   Device          lichtsens
     2016-11-25 00:58:11   cmd             1.3
     2016-11-24 22:58:11   cmd_count       4
     2016-11-25 00:58:11   cmd_event       lichtsens
     2016-11-25 00:58:11   cmd_nr          1
     2016-11-25 00:58:11   cmd_seqnr       3
     2016-11-25 17:07:52   e_lichtsens_Indikator 0
     2016-11-24 16:48:56   last_cmd        initialize
     2016-11-25 00:58:11   state           cmd_1
     2016-11-25 17:07:53   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene Off
     1:
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer -1
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   repeatsame 4
   room       10_Draussen
   wait       1,3600,3600



Auszug aus dem LOG des DOIF

Wenn ich es manuell startet (set initialize) dann läuft es auch wieder. Wenn die Repeats abgearbeitet sind, bleibt es stehen und nix geht mehr.

2016-11-25_17:22:54.870 LW1 wait_timer: no timer
2016-11-25_17:22:53.867 LW1 wait_timer: 25.11.2016 17:22:54 cmd_1_1 lichtsens
2016-11-25_17:07:53.692 LW1 wait_timer: no timer
2016-11-25_17:07:52.620 LW1 wait_timer: 25.11.2016 17:07:53 cmd_1_1 lichtsens
2016-11-25_17:04:29.357 LW1 wait_timer: no timer
2016-11-25_00:58:11.227 LW1 cmd_1
2016-11-25_00:58:11.227 LW1 cmd_event: lichtsens
2016-11-25_00:58:11.227 LW1 cmd: 1.3
2016-11-25_00:58:11.227 LW1 cmd_seqnr: 3
2016-11-25_00:58:11.227 LW1 cmd_nr: 1
2016-11-25_00:58:11.193 LW1 wait_timer: no timer
2016-11-24_23:58:11.191 LW1 wait_timer: 25.11.2016 00:58:11 cmd_1_3 lichtsens
2016-11-24_23:58:11.155 LW1 cmd_1_2
2016-11-24_23:58:11.155 LW1 cmd_event: lichtsens
2016-11-24_23:58:11.155 LW1 cmd: 1.2
2016-11-24_23:58:11.155 LW1 cmd_seqnr: 2
2016-11-24_23:58:11.155 LW1 cmd_nr: 1
2016-11-24_23:58:11.109 LW1 wait_timer: no timer
2016-11-24_22:58:11.107 LW1 wait_timer: 24.11.2016 23:58:11 cmd_1_2 lichtsens
2016-11-24_22:58:11.085 LW1 cmd_1_1
2016-11-24_22:58:11.085 LW1 cmd_event: lichtsens
2016-11-24_22:58:11.085 LW1 cmd: 1.1
2016-11-24_22:58:11.085 LW1 cmd_seqnr: 1
2016-11-24_22:58:11.085 LW1 cmd_nr: 1
2016-11-24_22:58:11.053 LW1 cmd_count: 4
2016-11-24_22:57:43.167 LW1 cmd_1
2016-11-24_22:57:43.167 LW1 cmd_event: lichtsens
2016-11-24_22:57:43.167 LW1 cmd: 1.3
2016-11-24_22:57:43.167 LW1 cmd_seqnr: 3
2016-11-24_22:57:43.167 LW1 cmd_nr: 1
2016-11-24_22:57:43.087 LW1 wait_timer: no timer
2016-11-24_21:57:40.988 LW1 wait_timer: 24.11.2016 22:57:40 cmd_1_3 lichtsens
2016-11-24_21:57:40.966 LW1 cmd_1_2
2016-11-24_21:57:40.966 LW1 cmd_event: lichtsens
2016-11-24_21:57:40.966 LW1 cmd: 1.2
2016-11-24_21:57:40.966 LW1 cmd_seqnr: 2
2016-11-24_21:57:40.966 LW1 cmd_nr: 1
2016-11-24_21:57:40.931 LW1 wait_timer: no timer
2016-11-24_20:57:40.927 LW1 wait_timer: 24.11.2016 21:57:40 cmd_1_2 lichtsens
2016-11-24_20:57:40.905 LW1 cmd_1_1
2016-11-24_20:57:40.905 LW1 cmd_event: lichtsens
2016-11-24_20:57:40.905 LW1 cmd: 1.1
2016-11-24_20:57:40.905 LW1 cmd_seqnr: 1
2016-11-24_20:57:40.905 LW1 cmd_nr: 1
2016-11-24_20:57:40.868 LW1 cmd_count: 3
2016-11-24_20:57:02.860 LW1 cmd_1
2016-11-24_20:57:02.860 LW1 cmd_event: lichtsens
2016-11-24_20:57:02.860 LW1 cmd: 1.3
2016-11-24_20:57:02.860 LW1 cmd_seqnr: 3
2016-11-24_20:57:02.860 LW1 cmd_nr: 1
2016-11-24_20:57:02.825 LW1 wait_timer: no timer
2016-11-24_19:57:02.823 LW1 wait_timer: 24.11.2016 20:57:02 cmd_1_3 lichtsens
2016-11-24_19:57:02.792 LW1 cmd_1_2
2016-11-24_19:57:02.792 LW1 cmd_event: lichtsens
2016-11-24_19:57:02.792 LW1 cmd: 1.2
2016-11-24_19:57:02.792 LW1 cmd_seqnr: 2
2016-11-24_19:57:02.792 LW1 cmd_nr: 1
2016-11-24_19:57:02.743 LW1 wait_timer: no timer
2016-11-24_18:57:02.738 LW1 wait_timer: 24.11.2016 19:57:02 cmd_1_2 lichtsens
2016-11-24_18:57:02.695 LW1 cmd_1_1
2016-11-24_18:57:02.695 LW1 cmd_event: lichtsens
2016-11-24_18:57:02.695 LW1 cmd: 1.1
2016-11-24_18:57:02.695 LW1 cmd_seqnr: 1
2016-11-24_18:57:02.695 LW1 cmd_nr: 1
2016-11-24_18:57:02.641 LW1 cmd_count: 2
2016-11-24_18:51:55.023 LW1 cmd_1
2016-11-24_18:51:55.023 LW1 cmd_event: lichtsens
2016-11-24_18:51:55.023 LW1 cmd: 1.3
2016-11-24_18:51:55.023 LW1 cmd_seqnr: 3
2016-11-24_18:51:55.023 LW1 cmd_nr: 1
2016-11-24_18:51:54.973 LW1 wait_timer: no timer
2016-11-24_17:51:54.969 LW1 wait_timer: 24.11.2016 18:51:54 cmd_1_3 lichtsens
2016-11-24_17:51:54.948 LW1 cmd_1_2
2016-11-24_17:51:54.948 LW1 cmd_event: lichtsens
2016-11-24_17:51:54.948 LW1 cmd: 1.2
2016-11-24_17:51:54.948 LW1 cmd_seqnr: 2
2016-11-24_17:51:54.948 LW1 cmd_nr: 1
2016-11-24_17:51:54.912 LW1 wait_timer: no timer
2016-11-24_16:51:54.909 LW1 wait_timer: 24.11.2016 17:51:54 cmd_1_2 lichtsens
2016-11-24_16:51:54.876 LW1 cmd_1_1
2016-11-24_16:51:54.876 LW1 cmd_event: lichtsens
2016-11-24_16:51:54.876 LW1 cmd: 1.1
2016-11-24_16:51:54.876 LW1 cmd_seqnr: 1
2016-11-24_16:51:54.876 LW1 cmd_nr: 1
2016-11-24_16:51:54.831 LW1 cmd_count: 1
2016-11-24_16:48:57.178 LW1 initialize
2016-11-24_16:48:56.187 LW1 mode: disabled
2016-11-24_16:48:56.187 LW1 disabled
2016-11-24_16:48:56.187 LW1 last_cmd: initialize
2016-11-24_16:48:55.924 LW1 initialize
2016-11-24_16:48:49.344 LW1 initialized


Gruß und danke
Sascha
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 25 November 2016, 18:14:30
Zitat von: sash.sc am 25 November 2016, 17:24:16
Oder auch nicht..... ;-)

habe jetzt nach einigen Updates, dass das DOIF nicht mehr von alleine startet !!!! :o ::)




Internals:
   DEF        ([lichtsens:Indikator] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene Off)
   NAME       LW1
   NR         144
   NTFY_ORDER 50-LW1
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-11-25 17:07:52   Device          lichtsens
     2016-11-25 00:58:11   cmd             1.3
     2016-11-24 22:58:11   cmd_count       4
     2016-11-25 00:58:11   cmd_event       lichtsens
     2016-11-25 00:58:11   cmd_nr          1
     2016-11-25 00:58:11   cmd_seqnr       3
     2016-11-25 17:07:52   e_lichtsens_Indikator 0
     2016-11-24 16:48:56   last_cmd        initialize
     2016-11-25 00:58:11   state           cmd_1
     2016-11-25 17:07:53   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','',AttrVal($hash->{NAME},'notexist',undef)) < InternalDoIf($hash,'lichtanteil','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
       2          set LS scene Off
     1:
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtsens
     sleepsubtimer -1
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   repeatsame 4
   room       10_Draussen
   wait       1,3600,3600





Ist klar, wenn sich das Modul im cmd_1-Zustand befindet, dann wird es nichts machen. Es hätte zwischendurch in den cmd_2-Zustand wechseln müssen, als die Bedingung nicht wahr war. Das hat das Modul nicht mitbekommen. (das System war nicht aktiv oder sonstiges)


Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 25 November 2016, 18:53:11
Das Modul ist immer aktiv. Nach einer Änderung muss ich es ja manuell starten. Gestern habe ich nix geändert. Nun ja. Werde es gleich mal starten und schauen was sich die nächsten tage ergibt. Ist aber komisch, dass nur dieses doif Probleme macht. Habe noch andere doif für die Rollos am laufen und die machen nicht solche faxen.

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: Damian am 25 November 2016, 18:57:48
Zitat von: sash.sc am 25 November 2016, 18:53:11
Das Modul ist immer aktiv. Nach einer Änderung muss ich es ja manuell starten. Gestern habe ich nix geändert. Nun ja. Werde es gleich mal starten und schauen was sich die nächsten tage ergibt. Ist aber komisch, dass nur dieses doif Probleme macht. Habe noch andere doif für die Rollos am laufen und die machen nicht solche faxen.

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Wenn es immer aktiv ist, dann sollte doch auch [lichtsens:Indikator] >= [lichtanteil] mitbekommen, dass ist ja die Bedingung für cmd_2
Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 25 November 2016, 19:11:05
Richtig. Deswegen habe ich mich gewundert, dass es heute nicht geschaltet hat. Ich hatte auch kein Neustart von fhem durchgeführt, während die Timer liefen.

Von mobil gesendet daher kurze Antwort

Titel: Antw:ein weiteres DOIF Problem !! Lichsteuerung im Aussenbereich
Beitrag von: sash.sc am 08 Dezember 2016, 23:33:18
Muss mich nochmal zu Wort melden.

Habe ja versucht das DOIF ein wenig zu verkürzen.



([lichtsens:Indikator:d] < [lichtanteil]) (set LS scene 01) (set LS scene 02) (set LS scene Off)


Ich möchte jetzt den letzten Teil (set LS scene Off) erst schalten, wenn die ganze Sequenz  4x abgelaufen ist.

Ich habe das mir so gedacht.



([lichtsens:Indikator:d] < [lichtanteil]) (set LS scene 01) (set LS scene 02)
DOELSEIF ([LW1:cmd_count] = 3 and [LW1:cmd_seqnr]= 2) (set LS scene Off)

wait 1,3600:3600
repeatsame 4:1


Klappt aber nicht. Bekomme da eine Fehlermeldung

error

perl error in condition: ReadingValDoIf($hash,'LW1','cmd_count') = 3 and ReadingValDoIf($hash,'LW1','cmd_seqnr')= 2: Can't modify non-lvalue subroutine call in scalar assignment at (eval 132269) line 1, near "3 and"



List des DOIF

Internals:
   DEF        ([lichtsens:Indikator:d] < [lichtanteil]) (set LS scene 01) (set LS scene 02)
DOELSEIF ([LW1:cmd_count] = 3 and [LW1:cmd_seqnr]= 2) (set LS scene Off)
   NAME       LW1
   NR         144
   NTFY_ORDER 50-LW1
   STATE      cmd_1_1
   TYPE       DOIF
   Readings:
     2016-12-08 23:31:59   Device          lichtsens
     2016-12-08 23:23:05   cmd             1.1
     2016-12-08 23:23:52   cmd_count       3
     2016-12-08 23:23:05   cmd_event       lichtanteil
     2016-12-08 23:23:05   cmd_nr          1
     2016-12-08 23:23:05   cmd_seqnr       1
     2016-12-08 23:23:52   e_LW1_cmd_count 3
     2016-12-08 23:23:52   e_LW1_cmd_seqnr 1
     2016-12-08 23:23:04   e_lichtanteil_STATE 21
     2016-12-08 23:31:59   e_lichtsens_Indikator 0
     2016-12-08 23:23:52   error           perl error in condition: ReadingValDoIf($hash,'LW1','cmd_count') = 3 and ReadingValDoIf($hash,'LW1','cmd_seqnr')= 2: Can't modify non-lvalue subroutine call in scalar assignment at (eval 132269) line 1, near "3 and"

     2016-12-08 23:23:05   state           cmd_1_1
     2016-12-08 23:23:05   wait_timer      09.12.2016 00:23:05 cmd_1_2 lichtanteil
   Condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','(-?\d+(\.\d+)?)') < InternalDoIf($hash,'lichtanteil','STATE')
     1          ReadingValDoIf($hash,'LW1','cmd_count') = 3 and ReadingValDoIf($hash,'LW1','cmd_seqnr')= 2
   Devices:
     0           lichtsens lichtanteil
     1           LW1
     all         lichtsens lichtanteil LW1
   Do:
     0:
       0          set LS scene 01
       1          set LS scene 02
     1:
       0          set LS scene Off
   Helper:
     event      Indikator: 0
     globalinit 1
     last_timer 0
     sleepdevice lichtanteil
     sleepsubtimer 1
     sleeptimer 0
     timerdev   lichtsens
     timerevent Indikator: 0
     triggerDev lichtsens
     timerevents:
       Indikator: 0
     timereventsState:
       Indikator: 0
     triggerEvents:
       Indikator: 0
     triggerEventsState:
       Indikator: 0
   Internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   Itimer:
   Readings:
     0           lichtsens:Indikator
     1           LW1:cmd_count LW1:cmd_seqnr
     all         lichtsens:Indikator LW1:cmd_count LW1:cmd_seqnr
   Regexp:
     0:
     1:
     All:
   State:
   Trigger:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   loglevel   2
   repeatsame 3
   room       10_Draussen
   wait       1,3600:3600


Also mit anderen Worten, comando 1 und 2 soll 4x bzw 3x abgearbeitet werden, dann die Prüfung auf die Anzahl der ausgeführten commandos. Wenn erreicht dann ausschalten.

Jemand eine Idee ???

Gruß
Sascha