[GELÖST] Beispiel doif aus 44_rollo funktioniert nur "ein paar mal"

Begonnen von Thomas41587, 15 Oktober 2019, 13:14:52

Vorheriges Thema - Nächstes Thema

Thomas41587

Hallo zusammen,
ich habe das Modul 44_rollo für meinen elektrischen Rolladen im Einsatz. Aufgrund von externen Tastern für auf/ab nutze ich die im Wiki hinterlegten DOIF Beispiele, um dem Modul entsprechend mitzuteilen, wenn die Rollos extern bewegt werden.
Leider funktionieren die DOIFs immer nur ein paar mal. Danach - aus welchem Grund auch immer - macht das DOIF rein gar nichts mehr. Beheben kann ich das Problem mit einem "set <doif> initialize". Dann funktioniert es wieder "ein paar mal".
Im Eventlog sieht man auchs ehr schön, dass das DOIF eifnach "nichts" macht. Hier mal ein Auszug in dem man gut sieht dass eines der DOIFs geht und das andere nichts macht:
2019-10-15 12:40:11.571 S7_DWrite S7_DWrite_wohnzimmer_rollladen_links_auf on
2019-10-15 12:40:12.425 S7_DRead S7_DRead_wohnzimmer_rollladen_links_auf on
2019-10-15 12:40:22.588 S7_DWrite S7_DWrite_wohnzimmer_rollladen_links_auf off
2019-10-15 12:40:23.412 S7_DRead S7_DRead_wohnzimmer_rollladen_links_auf off
2019-10-15 12:40:24.612 S7_DWrite S7_DWrite_wohnzimmer_rollladen_links_ab on
2019-10-15 12:40:25.631 ROLLO rollo_wohnzimmer_rolladen_links drive-type: extern
2019-10-15 12:40:25.650 ROLLO rollo_wohnzimmer_rolladen_links command: closed
2019-10-15 12:40:25.650 ROLLO rollo_wohnzimmer_rolladen_links desired_pct: 100
2019-10-15 12:40:25.670 ROLLO rollo_wohnzimmer_rolladen_links last_drive: drive-down
2019-10-15 12:40:25.670 ROLLO rollo_wohnzimmer_rolladen_links drive-down
2019-10-15 12:40:25.687 ROLLO rollo_wohnzimmer_rolladen_links drive-type: na
2019-10-15 12:40:25.708 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_nr: 1
2019-10-15 12:40:25.708 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd: 1
2019-10-15 12:40:25.708 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_event: S7_DRead_wohnzimmer_rollladen_links_ab
2019-10-15 12:40:25.708 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_1
2019-10-15 12:40:25.711 S7_DRead S7_DRead_wohnzimmer_rollladen_links_ab on
2019-10-15 12:40:30.594 S7_DWrite S7_DWrite_wohnzimmer_rollladen_links_ab off
2019-10-15 12:40:31.228 ROLLO rollo_wohnzimmer_rolladen_links drive-type: extern
2019-10-15 12:40:31.246 ROLLO rollo_wohnzimmer_rolladen_links pct: 80.7692307692308
2019-10-15 12:40:31.261 ROLLO rollo_wohnzimmer_rolladen_links pct: 80.7692307692308
2019-10-15 12:40:31.272 ROLLO rollo_wohnzimmer_rolladen_links desired_pct: 80.7692307692308
2019-10-15 12:40:31.280 ROLLO rollo_wohnzimmer_rolladen_links command: stop
2019-10-15 12:40:31.288 ROLLO rollo_wohnzimmer_rolladen_links drive-type: na
2019-10-15 12:40:31.296 ROLLO rollo_wohnzimmer_rolladen_links pct-80
2019-10-15 12:40:31.304 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_nr: 2
2019-10-15 12:40:31.304 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd: 2
2019-10-15 12:40:31.304 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_event: S7_DRead_wohnzimmer_rollladen_links_ab
2019-10-15 12:40:31.304 DOIF doif_wohnzimmer_rolladen_links_manuell_ab cmd_2
2019-10-15 12:40:31.305 S7_DRead S7_DRead_wohnzimmer_rollladen_links_ab off


List des (noch nicht "reparierten") DOIFs:
Internals:
   CFGFN     
   DEF        ([S7_DRead_wohnzimmer_rollladen_links_auf:"on"] and [?rollo_wohnzimmer_rolladen_links] ne "drive-up") (set rollo_wohnzimmer_rolladen_links extern open) DOELSEIF ([S7_DRead_wohnzimmer_rollladen_links_auf:"off"] and [?rollo_wohnzimmer_rolladen_links] eq "drive-up") (set rollo_wohnzimmer_rolladen_links extern stop)
   FUUID      5da32698-f33f-6829-8144-a042e56c89b99266
   MODEL      FHEM
   NAME       doif_wohnzimmer_rolladen_links_manuell_auf
   NR         13628
   NTFY_ORDER 50-doif_wohnzimmer_rolladen_links_manuell_auf
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   Helper:
     DBLOG:
       cmd:
         DBLogging:
           TIME       1571135352.22494
           VALUE      1
       cmd_event:
         DBLogging:
           TIME       1571135352.22494
           VALUE      S7_DRead_wohnzimmer_rollladen_links_auf
       cmd_nr:
         DBLogging:
           TIME       1571135352.22494
           VALUE      1
       mode:
         DBLogging:
           TIME       1571135320.19201
           VALUE      enabled
       state:
         DBLogging:
           TIME       1571136116.95644
           VALUE      checkall
   READINGS:
     2019-10-15 13:11:18   Device          S7_DRead_wohnzimmer_rollladen_links_auf
     2019-10-15 12:29:12   cmd             1
     2019-10-15 12:29:12   cmd_event       S7_DRead_wohnzimmer_rollladen_links_auf
     2019-10-15 12:29:12   cmd_nr          1
     2019-10-15 10:44:27   e_S7_DRead_wohnzimmer_rollladen_links_auf_STATE off
     2019-10-15 13:11:18   e_S7_DRead_wohnzimmer_rollladen_links_auf_events off
     2019-10-15 12:28:40   mode            enabled
     2019-10-15 12:29:12   state           cmd_1
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('S7_DRead_wohnzimmer_rollladen_links_auf',$hash,'on',1) and ::InternalDoIf($hash,'rollo_wohnzimmer_rolladen_links','STATE') ne "drive-up"
     1          ::EventDoIf('S7_DRead_wohnzimmer_rollladen_links_auf',$hash,'off',1) and ::InternalDoIf($hash,'rollo_wohnzimmer_rolladen_links','STATE') eq "drive-up"
   devices:
     0           S7_DRead_wohnzimmer_rollladen_links_auf
     1           S7_DRead_wohnzimmer_rollladen_links_auf
     all         S7_DRead_wohnzimmer_rollladen_links_auf
   do:
     0:
       0          set rollo_wohnzimmer_rolladen_links extern open
     1:
       0          set rollo_wohnzimmer_rolladen_links extern stop
     2:
   helper:
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   S7_DRead_wohnzimmer_rollladen_links_auf
     timerevent on
     triggerDev S7_DRead_wohnzimmer_rollladen_links_auf
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: S7_DRead_wohnzimmer_rollladen_links_auf
       state: cmd_1
     timerevents:
       on
     timereventsState:
       state: on
     triggerEvents:
       off
     triggerEventsState:
       state: off
   internals:
     0           rollo_wohnzimmer_rolladen_links:STATE
     1           rollo_wohnzimmer_rolladen_links:STATE
     all         rollo_wohnzimmer_rolladen_links:STATE
   itimer:
   readings:
   trigger:
     all         S7_DRead_wohnzimmer_rollladen_links_auf
   uiState:
   uiTable:
Attributes:
   group      Fenster/Türen
   room       Backend->Wohnzimmer


Und noch ein List von dem (aktuell noch) funktionierenden anderen DOIFs:
Internals:
   CFGFN     
   DEF        ([S7_DRead_wohnzimmer_rollladen_links_ab:"on"] and [?rollo_wohnzimmer_rolladen_links] ne "drive-down") (set rollo_wohnzimmer_rolladen_links extern closed) DOELSEIF ([S7_DRead_wohnzimmer_rollladen_links_ab:"off"] and [?rollo_wohnzimmer_rolladen_links] eq "drive-down") (set rollo_wohnzimmer_rolladen_links extern stop)
   FUUID      5da3273f-f33f-6829-f35c-4d0c55ff9df9e737
   MODEL      FHEM
   NAME       doif_wohnzimmer_rolladen_links_manuell_ab
   NR         13694
   NTFY_ORDER 50-doif_wohnzimmer_rolladen_links_manuell_ab
   STATE      cmd_2
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   Helper:
     DBLOG:
       cmd:
         DBLogging:
           TIME       1571137974.70432
           VALUE      2
       cmd_event:
         DBLogging:
           TIME       1571137974.70432
           VALUE      S7_DRead_wohnzimmer_rollladen_links_ab
       cmd_nr:
         DBLogging:
           TIME       1571137974.70432
           VALUE      2
       mode:
         DBLogging:
           TIME       1571135159.9309
           VALUE      enabled
       state:
         DBLogging:
           TIME       1571137974.70432
           VALUE      cmd_2
   READINGS:
     2019-10-15 13:12:54   Device          S7_DRead_wohnzimmer_rollladen_links_ab
     2019-10-15 13:12:54   cmd             2
     2019-10-15 13:12:54   cmd_event       S7_DRead_wohnzimmer_rollladen_links_ab
     2019-10-15 13:12:54   cmd_nr          2
     2019-10-15 13:12:54   e_S7_DRead_wohnzimmer_rollladen_links_ab_events off
     2019-10-15 12:25:59   mode            enabled
     2019-10-15 13:12:54   state           cmd_2
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('S7_DRead_wohnzimmer_rollladen_links_ab',$hash,'on',1) and ::InternalDoIf($hash,'rollo_wohnzimmer_rolladen_links','STATE') ne "drive-down"
     1          ::EventDoIf('S7_DRead_wohnzimmer_rollladen_links_ab',$hash,'off',1) and ::InternalDoIf($hash,'rollo_wohnzimmer_rolladen_links','STATE') eq "drive-down"
   devices:
     0           S7_DRead_wohnzimmer_rollladen_links_ab
     1           S7_DRead_wohnzimmer_rollladen_links_ab
     all         S7_DRead_wohnzimmer_rollladen_links_ab
   do:
     0:
       0          set rollo_wohnzimmer_rolladen_links extern closed
     1:
       0          set rollo_wohnzimmer_rolladen_links extern stop
     2:
   helper:
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   S7_DRead_wohnzimmer_rollladen_links_ab
     timerevent off
     triggerDev S7_DRead_wohnzimmer_rollladen_links_ab
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: S7_DRead_wohnzimmer_rollladen_links_ab
       state: cmd_2
     timerevents:
       off
     timereventsState:
       state: off
     triggerEvents:
       off
     triggerEventsState:
       state: off
   internals:
     0           rollo_wohnzimmer_rolladen_links:STATE
     1           rollo_wohnzimmer_rolladen_links:STATE
     all         rollo_wohnzimmer_rolladen_links:STATE
   itimer:
   readings:
   trigger:
     all         S7_DRead_wohnzimmer_rollladen_links_ab
   uiState:
   uiTable:
Attributes:
   group      Fenster/Türen
   room       Backend->Wohnzimmer

Ich weiß aktuell nicht weiter. Vor allem wieso es eine Zeit lang funktioniert und dann nicht mehr. Auch gehen mir die Ideen aus, was ich noch überprüfen kann/soll.
Daher wäre ich über Hilfe sehr dankbar :-)

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Wie Damian schreibt,
Do always fehlt.

Die doif laufen bei mir an 11 Rollos seit fast 3 Jahren problemlos.

Gesendet von meinem S60 mit Tapatalk


Thomas41587

Wieder mal was dazu gelernt. Vielen Dank für die sehr schnelle und gute Hilfe. Nach dem setzen von do always funktioniert es auch nach einigem hin und her schalten.