Hauptmenü

DOIF lässt sich nicht enabeln...

Begonnen von misux, 19 Februar 2022, 08:20:50

Vorheriges Thema - Nächstes Thema

misux

Hi!

Ich habe ein DOIF für meine Rolladen.. davon habe ich 4 Stück... habe gestern abend alle disabeld und wollte heute wieder alles enabeln und checkall durchführen... Hat bei allen bis auf einen geklappt.
Ein DOIF lässt sich auf teufel komm raus nicht enabeln... Was kann ich tun? Gibt es da einen Trick?

Internals:
   DEF        ([LichtSensor] < 13.0 and [?WZFensterRollo:pct:d] > 75)
(set WZFensterRollo pct 75)
DOELSEIF
([TVTime:state] eq "on" and [?LichtSensor] > 1.0 and [?WZFensterRollo:pct:d] > 1)
(set WZFensterRollo close)
DOELSEIF
([08:00-22:00] and [TVTime:state] eq "off" and [LichtSensor] > 13.0 and [?WZFensterRollo:pct:d] < 99)
(set WZFensterRollo open)
   FUUID      603a5d37-f33f-e7ed-e940-27a00edbda96aee6
   FVERSION   98_DOIF.pm:0.256630/2022-02-09
   MODEL      FHEM
   NAME       DOIFWZFensterRollo
   NOTIFYDEV  TVTime,global,LichtSensor
   NR         104
   NTFY_ORDER 50-DOIFWZFensterRollo
   STATE      disabled
   TYPE       DOIF
   VERSION    25663 2022-02-09 17:05:11
   READINGS:
     2022-02-19 08:17:41   Device          LichtSensor
     2022-02-18 17:43:01   cmd             1
     2022-02-18 17:43:01   cmd_event       LichtSensor
     2022-02-18 17:43:01   cmd_nr          1
     2022-02-19 08:17:41   e_LichtSensor_STATE 105.7
     2022-02-17 21:13:37   e_TVTime_state  off
     2022-02-19 08:17:22   mode            enabled
     2022-02-19 08:10:44   state           disabled
     2022-02-18 22:00:00   timer_01_c03    19.02.2022 08:00:00
     2022-02-18 22:00:00   timer_02_c03    19.02.2022 22:00:00
   Regex:
     accu:
     collect:
     cond:
       LichtSensor:
         0:
           &STATE     ^LichtSensor$
         1:
         2:
           &STATE     ^LichtSensor$
       TVTime:
         0:
         1:
           state      ^TVTime$:^state:
         2:
           state      ^TVTime$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'LichtSensor','STATE') < 13.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') > 75
     1          ::ReadingValDoIf($hash,'TVTime','state') eq "on" and ::InternalDoIf($hash,'LichtSensor','STATE') > 1.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') > 1
     2          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'TVTime','state') eq "off" and ::InternalDoIf($hash,'LichtSensor','STATE') > 13.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') < 99
   days:
   do:
     0:
       0          set WZFensterRollo pct 75
     1:
       0          set WZFensterRollo close
     2:
       0          set WZFensterRollo open
     3:
   helper:
     NOTIFYDEV  TVTime,global,LichtSensor
     event      LOWEST_ILLUMINATION: 80.4,HIGHEST_ILLUMINATION: 115.7,CURRENT_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION_STATUS: NORMAL,LOWEST_ILLUMINATION_STATUS: NORMAL,115.3,CURRENT_ILLUMINATION: 115.3,AVERAGE_ILLUMINATION: 105.7,devstate: ok,hmstate: 115.3
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   LichtSensor
     timerevent LOWEST_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION: 9.4,6.4,CURRENT_ILLUMINATION: 6.4,CURRENT_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION: 12.7,LOWEST_ILLUMINATION: 6.4,devstate: ok,hmstate: 6.4
     triggerDev LichtSensor
     timerevents:
       LOWEST_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION: 9.4
       6.4
       CURRENT_ILLUMINATION: 6.4
       CURRENT_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION: 12.7
       LOWEST_ILLUMINATION: 6.4
       devstate: ok
       hmstate: 6.4
     timereventsState:
       LOWEST_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION: 9.4
       state: 6.4
       CURRENT_ILLUMINATION: 6.4
       CURRENT_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION: 12.7
       LOWEST_ILLUMINATION: 6.4
       devstate: ok
       hmstate: 6.4
     triggerEvents:
       LOWEST_ILLUMINATION: 80.4
       HIGHEST_ILLUMINATION: 115.7
       CURRENT_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION_STATUS: NORMAL
       LOWEST_ILLUMINATION_STATUS: NORMAL
       115.3
       CURRENT_ILLUMINATION: 115.3
       AVERAGE_ILLUMINATION: 105.7
       devstate: ok
       hmstate: 115.3
     triggerEventsState:
       LOWEST_ILLUMINATION: 80.4
       HIGHEST_ILLUMINATION: 115.7
       CURRENT_ILLUMINATION_STATUS: NORMAL
       AVERAGE_ILLUMINATION_STATUS: NORMAL
       HIGHEST_ILLUMINATION_STATUS: NORMAL
       LOWEST_ILLUMINATION_STATUS: NORMAL
       state: 115.3
       CURRENT_ILLUMINATION: 115.3
       AVERAGE_ILLUMINATION: 105.7
       devstate: ok
       hmstate: 115.3
   internals:
     all         LichtSensor:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1645254000
     1          1645304400
   perlblock:
   readings:
     all         TVTime:state
   realtime:
     0          08:00:00
     1          22:00:00
   time:
     0          08:00:00
     1          22:00:00
   timeCond:
     0          2
     1          2
   timer:
     0          0
     1          0
   timers:
     2           0  1
   trigger:
   triggertime:
     1645304400:
       localtime  1645304400
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   group      DOIF Rolladen
   room       DOIF

Damian

Kann ich nicht nachvollziehen, mit

defmod di_disable DOIF ([LichtSensor] < 13.0 and [?WZFensterRollo:pct:d] > 75)\
(set WZFensterRollo pct 75)\
DOELSEIF\
([TVTime:state] eq "on" and [?LichtSensor] > 1.0 and [?WZFensterRollo:pct:d] > 1)\
(set WZFensterRollo close)\
DOELSEIF\
([08:00-22:00] and [TVTime:state] eq "off" and [LichtSensor] > 13.0 and [?WZFensterRollo:pct:d] < 99)\
(set WZFensterRollo open)


kann ich sowohl per set di_disable disable das Device deaktivieren, als auch per set di_disable enable aktivieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

misux

Hmm... komisch... Habe das doif jetzt gelöscht und komplett neu erstellt.. jetzt kann ich zwar en und disabeln aber nach einem checkall bleibt er status auf initialized

Ist doch nicht normal so, oder? alles anderen doifs klappen ohne probleme und sind genauso aufgebaut...

Damian

Zitat von: misux am 19 Februar 2022, 10:41:59
Hmm... komisch... Habe das doif jetzt gelöscht und komplett neu erstellt.. jetzt kann ich zwar en und disabeln aber nach einem checkall bleibt er status auf initialized

Ist doch nicht normal so, oder? alles anderen doifs klappen ohne probleme und sind genauso aufgebaut...

Wenn keine Bedingung zutrifft, dann ändert sich der Status nicht - das ist normal.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF