FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: WhyTea am 19 September 2018, 12:21:07

Titel: [gelöst]Fhem bendet sich beim checkall
Beitrag von: WhyTea am 19 September 2018, 12:21:07
Hallo
Ich habe das Problem das mein Wecker nicht mehr funktioniert. Bei dem Versuch eine Lösung zu finden beendet sich Fhem immer wieder mit folgendem, Logeintrag:
Can't use an undefined value as an ARRAY reference at /var/fhem/FHEM/98_DOIF.pm line 2081.

Genau nachdem ich ein checkall bei diesem DOIF ausführe.
define OG1_SZ_di_Wecker DOIF ([?$SELF:W_Aktiv, "off"] eq "on"\
and ([[$SELF:W_Montag]|1]\
or [[$SELF:W_Dienstag]|2]\
or [[$SELF:W_Mittwoch]|3]\
or [[$SELF:W_Donnerstag]|4]\
or [[$SELF:W_Freitag]|5]\
or [[$SELF:W_Samstag]|6]\
or [[$SELF:W_Sonntag]|0]))\
(set OG1_SZ_Radio on;;\
set TabletOG volume 9)\
DOELSEIF (["$SELF:W_Reset: on"])\
( set $SELF W_Montag 06:30;;\
set $SELF W_Dienstag 06:30;;\
set $SELF W_Mittwoch 06:30;;\
set $SELF W_Donnerstag 06:30;;\
set $SELF W_Freitag 06:30;;\
set $SELF W_Samstag 10:00;;\
set $SELF W_Sonntag 10:00)
attr OG1_SZ_di_Wecker do always
attr OG1_SZ_di_Wecker notexist "09:00"
attr OG1_SZ_di_Wecker readingList W_Aktiv W_Reset W_Montag W_Dienstag W_Mittwoch W_Donnerstag W_Freitag W_Samstag W_Sonntag
attr OG1_SZ_di_Wecker room OG1_Schlafzimmer
attr OG1_SZ_di_Wecker selftrigger wait
attr OG1_SZ_di_Wecker setList W_Aktiv:on,off W_Reset:on W_Montag:time W_Dienstag:time W_Mittwoch:time W_Donnerstag:time W_Freitag:time W_Samstag:time W_Sonntag:time
attr OG1_SZ_di_Wecker wait 1:1


Ich hänge jetzt schon seit Tagen an diesem Problem und hoffe auf Hilfe.

Gruß
Daniel

Hier das List von dem Device:
Internals:
   CFGFN      /var/fhem/FHEM/wecker.cfg
   DEF        ([?$SELF:W_Aktiv, "off"] eq "on"
and ([[$SELF:W_Montag]|1]
or [[$SELF:W_Dienstag]|2]
or [[$SELF:W_Mittwoch]|3]
or [[$SELF:W_Donnerstag]|4]
or [[$SELF:W_Freitag]|5]
or [[$SELF:W_Samstag]|6]
or [[$SELF:W_Sonntag]|0]))
(set OG1_SZ_Radio on;
set TabletOG volume 9)
DOELSEIF (["$SELF:W_Reset: on"])
( set $SELF W_Montag 06:30;
set $SELF W_Dienstag 06:30;
set $SELF W_Mittwoch 06:30;
set $SELF W_Donnerstag 06:30;
set $SELF W_Freitag 06:30;
set $SELF W_Samstag 10:00;
set $SELF W_Sonntag 10:00)
   MODEL      FHEM
   NAME       OG1_SZ_di_Wecker
   NR         1392
   NTFY_ORDER 50-OG1_SZ_di_Wecker
   STATE      initialized
   TYPE       DOIF
   Helper:
     DBLOG:
       W_Aktiv:
         mylogdb:
           TIME       1537352341.71476
           VALUE      on
   READINGS:
     2018-09-19 12:19:01   W_Aktiv         on
     2018-09-19 11:25:39   W_Dienstag      06:30
     2018-09-19 11:25:39   W_Donnerstag    06:30
     2018-09-19 11:25:39   W_Freitag       06:30
     2018-09-19 11:25:39   W_Mittwoch      06:30
     2018-09-19 11:25:39   W_Montag        06:30
     2018-09-19 11:25:39   W_Samstag       10:00
     2018-09-19 11:25:39   W_Sonntag       10:00
     2018-09-19 11:43:30   cmd             0
     2018-09-19 11:43:30   mode            enabled
     2018-09-19 11:43:30   state           initialized
     2018-09-19 12:08:19   timer_01_c01    20.09.2018 06:30:00|1
     2018-09-19 12:08:19   timer_02_c01    20.09.2018 06:30:00|2
     2018-09-19 12:08:19   timer_03_c01    20.09.2018 06:30:00|3
     2018-09-19 12:08:19   timer_04_c01    20.09.2018 06:30:00|4
     2018-09-19 12:08:19   timer_05_c01    20.09.2018 06:30:00|5
     2018-09-19 12:08:19   timer_06_c01    20.09.2018 10:00:00|6
     2018-09-19 12:08:19   timer_07_c01    20.09.2018 10:00:00
   Regex:
     cond:
       :
         1:
           "OG1_SZ_di_Wecker:W_Reset: on" OG1_SZ_di_Wecker:W_Reset: on
   attr:
     wait:
       0:
         1
       1:
         1
   condition:
     0          ReadingValDoIf($hash,'OG1_SZ_di_Wecker','W_Aktiv',' "off"') eq "on" and (DOIF_time_once($hash,0,$wday,"1") or DOIF_time_once($hash,1,$wday,"2") or DOIF_time_once($hash,2,$wday,"3") or DOIF_time_once($hash,3,$wday,"4") or DOIF_time_once($hash,4,$wday,"5") or DOIF_time_once($hash,5,$wday,"6") or DOIF_time_once($hash,6,$wday,"0"))
     1          EventDoIf('OG1_SZ_di_Wecker',$hash,'W_Reset: on',0)
   days:
     0          1
     1          2
     2          3
     3          4
     4          5
     5          6
   devices:
   do:
     0:
       0          set OG1_SZ_Radio on; set TabletOG volume 9
     1:
       0           set OG1_SZ_di_Wecker W_Montag 06:30; set OG1_SZ_di_Wecker W_Dienstag 06:30; set OG1_SZ_di_Wecker W_Mittwoch 06:30; set OG1_SZ_di_Wecker W_Donnerstag 06:30; set OG1_SZ_di_Wecker W_Freitag 06:30; set OG1_SZ_di_Wecker W_Samstag 10:00; set OG1_SZ_di_Wecker W_Sonntag 10:00
     2:
   helper:
     globalinit 1
     last_timer 7
     sleeptimer -1
   intervalfunc:
   itimer:
     all         OG1_SZ_di_Wecker
   localtime:
     0          1537417800
     1          1537417800
     2          1537417800
     3          1537417800
     4          1537417800
     5          1537430400
     6          1537430400
   perlblock:
   realtime:
     0          06:30:00
     1          06:30:00
     2          06:30:00
     3          06:30:00
     4          06:30:00
     5          10:00:00
     6          10:00:00
   time:
     0          [OG1_SZ_di_Wecker:W_Montag]
     1          [OG1_SZ_di_Wecker:W_Dienstag]
     2          [OG1_SZ_di_Wecker:W_Mittwoch]
     3          [OG1_SZ_di_Wecker:W_Donnerstag]
     4          [OG1_SZ_di_Wecker:W_Freitag]
     5          [OG1_SZ_di_Wecker:W_Samstag]
     6          [OG1_SZ_di_Wecker:W_Sonntag]
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   timers:
     0           0  1  2  3  4  5  6
   triggertime:
     1537417800:
       localtime  1537417800
       hash:
     1537430400:
       localtime  1537430400
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   notexist   "09:00"
   readingList W_Aktiv W_Reset W_Montag W_Dienstag W_Mittwoch W_Donnerstag W_Freitag W_Samstag W_Sonntag
   room       OG1_Schlafzimmer
   selftrigger wait
   setList    W_Aktiv:on,off W_Reset:on W_Montag:time W_Dienstag:time W_Mittwoch:time W_Donnerstag:time W_Freitag:time W_Samstag:time W_Sonntag:time
   wait       1:1
Titel: Antw:Fhem bendet sich beim checkall
Beitrag von: Damian am 19 September 2018, 13:19:24
Den Fehler werde ich ausbauen. Es liegt daran, dass beim set ... checkall keine Events vorliegen.

Unabhängig davon macht set ... checkall hier wenig Sinn, weil die Triggerangaben [?$SELF:W_Aktiv, "off"] oder ["$SELF:W_Reset: on"] dann nicht wahr sind und  die jeweiligen Zweige nicht ausgeführt werden können.
Titel: Antw:Fhem bendet sich beim checkall
Beitrag von: WhyTea am 19 September 2018, 15:12:40
Ok dann danke!

Da ich jetzt weis das das nichts mit meinem Problem zu tun hat kann ich weiter auf Fehlersuche gehen.
Titel: Antw:[gelöst]Fhem bendet sich beim checkall
Beitrag von: Damian am 19 September 2018, 21:19:05
Ich konnte den Fehler bei mir zwar nicht nachstellen, habe aber die potentielle Fehlerquelle abgefangen - korrigierte Version eingecheckt.