FHEM Absturz nach DOIF Änderung und checkall

Begonnen von Morgennebel, 20 September 2019, 17:08:19

Vorheriges Thema - Nächstes Thema

Morgennebel

Moin Moin,


ich hab ein tagesaktuelles FHEM und folgendes Problem: ändere ich ein DOIF mit DOIFReadings und drücke danach checkall, schmiert FHEM komplett ab.

Die einzige Fehlermeldung im Logfile ist:

Can't use string ("") as an ARRAY ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 2218.

Das fragliche DOIF ist dieses:


Internals:
   DEF        (([$SELF:MyWindowsStatus] eq "open") and [$SELF:MyDewStatus] >= 110)
    ## Fenster offen, Innenfeuchte groesser als Aussenfeuchte, STATUS = Gruen, offen
    ()
DOELSEIF (([$SELF:MyWindowsStatus] eq "open") and [$SELF:MyDewStatus] < 95)
    ## Fenster offen, Innenfeuchte kleiner als Aussenfeuchte, STATUS = Rot, offen
    ()
DOELSEIF (([$SELF:MyWindowsStatus] eq "closed") and [$SELF:MyDewStatus] >= 110)
    ## Fenster zu, Innenfeuchte groesser als Aussenfeuchte, STATUS = Rot, zu
    ()
DOELSEIF (([$SELF:MyWindowsStatus] eq "closed") and [$SELF:MyDewStatus] < 95)
    ## Fenster zu, Innenfeuchte groesser als Aussenfeuchte, STATUS = Gruen, zu
    ()
DOELSEIF (([$SELF:MyWindowsStatus] eq "closed") and [$SELF:MyDewStatus] >= 95 and [$SELF:MyDewStatus] < 110)
    ()
DOELSEIF (([$SELF:MyWindowsStatus] eq "open") and [$SELF:MyDewStatus] >= 95 and [$SELF:MyDewStatus] < 110)
    ()
   FUUID      5d7610e2-f33f-4ba1-8ae5-f51b537a02fe7685
   FVERSION   98_DOIF.pm:0.201630/2019-09-15
   MODEL      FHEM
   NAME       DI_FensterAdviceGrossesBad
   NOTIFYDEV  global,DI_FensterAdviceGrossesBad,HM_OG.BADEZM_FensterLinks,HM_OG.BADEZM_FensterRechts,HM_OG.BADEZMR_Wandthermostat_Weather,HM_AUSSEN.Scheune_Weather,HM_OG.BADEZMR_Wandthermostat_Climate
   NR         472
   NTFY_ORDER 50-DI_FensterAdviceGrossesBad
   STATE      cmd_5
   TYPE       DOIF
   VERSION    20163 2019-09-15 16:48:42
   DOIF_Readings:
     MyDewFallout ((::ReadingValDoIf($hash,'HM_OG.BADEZMR_Wandthermostat_Weather','dewpoint')+2 <= ::ReadingValDoIf($hash,'HM_OG.BADEZMR_Wandthermostat_Climate','measured-temp')) ? "ok" : "alarm")
     MyDewStatus (int((::ReadingValDoIf($hash,'HM_OG.BADEZMR_Wandthermostat_Weather','absHumidity')/::ReadingValDoIf($hash,'HM_AUSSEN.Scheune_Weather','absHumidity'))*100))
     MyWindowsStatus ((::InternalDoIf($hash,'HM_OG.BADEZM_FensterLinks','STATE') eq "open" or ::InternalDoIf($hash,'HM_OG.BADEZM_FensterRechts','STATE') eq "open") ? "open" : "closed")
   Helper:
     DBLOG:
       state:
         DBLOG:
           TIME       1568992179.3601
           VALUE      cmd_5
   READINGS:
     2019-09-20 15:46:24   MyDewFallout    ok
     2019-09-20 17:09:39   MyDewStatus     107
     2019-09-20 15:02:46   MyWindowsStatus closed
     2019-09-20 17:09:39   cmd             5
     2019-09-20 17:09:39   cmd_event       DI_FensterAdviceGrossesBad
     2019-09-20 17:09:39   cmd_nr          5
     2019-09-20 17:09:39   e_DI_FensterAdviceGrossesBad_MyDewStatus 107
     2019-09-20 17:04:33   mode            enabled
     2019-09-20 17:09:39   state           cmd_5
   Regex:
     DOIF_Readings:
       DI_FensterAdviceGrossesBad:
       HM_AUSSEN.Scheune_Weather:
         MyDewStatus:
           absHumidity ^HM_AUSSEN.Scheune_Weather$:^absHumidity:
       HM_OG.BADEZMR_Wandthermostat_Climate:
         MyDewFallout:
           measured-temp ^HM_OG.BADEZMR_Wandthermostat_Climate$:^measured-temp:
       HM_OG.BADEZMR_Wandthermostat_Weather:
         MyDewFallout:
           dewpoint   ^HM_OG.BADEZMR_Wandthermostat_Weather$:^dewpoint:
         MyDewStatus:
           absHumidity ^HM_OG.BADEZMR_Wandthermostat_Weather$:^absHumidity:
       HM_OG.BADEZM_FensterLinks:
         MyWindowsStatus:
           &STATE     ^HM_OG.BADEZM_FensterLinks$
       HM_OG.BADEZM_FensterRechts:
         MyWindowsStatus:
           &STATE     ^HM_OG.BADEZM_FensterRechts$
     accu:
     cond:
       DI_FensterAdviceGrossesBad:
         0:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
         1:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
         2:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
         3:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
         4:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
         5:
           MyDewStatus ^DI_FensterAdviceGrossesBad$:^MyDewStatus:
           MyWindowsStatus ^DI_FensterAdviceGrossesBad$:^MyWindowsStatus:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "open") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') >= 110
     1          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "open") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') < 95
     2          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "closed") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') >= 110
     3          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "closed") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') < 95
     4          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "closed") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') >= 95 and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') < 110
     5          (::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyWindowsStatus') eq "open") and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') >= 95 and ::ReadingValDoIf($hash,'DI_FensterAdviceGrossesBad','MyDewStatus') < 110
   do:
     0:
       0         
     1:
       0         
     2:
       0         
     3:
       0         
     4:
       0         
     5:
       0         
     6:
   helper:
     DOIF_Readings_events
     event      MyDewStatus: 107
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   DI_FensterAdviceGrossesBad
     timerevent MyDewStatus: 107
     triggerDev DI_FensterAdviceGrossesBad
     DOIF_eventas:
       cmd_nr: 5
       cmd: 5
       cmd_event: DI_FensterAdviceGrossesBad
       state: cmd_5
     timerevents:
       MyDewStatus: 107
       e_DI_FensterAdviceGrossesBad_MyDewStatus: 107
     timereventsState:
       MyDewStatus: 107
     triggerEvents:
       MyDewStatus: 107
       e_DI_FensterAdviceGrossesBad_MyDewStatus: 107
     triggerEventsState:
       MyDewStatus: 107
   internals:
   perlblock:
   readings:
     all         DI_FensterAdviceGrossesBad:MyWindowsStatus DI_FensterAdviceGrossesBad:MyDewStatus
   trigger:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings MyWindowsStatus:(([HM_OG.BADEZM_FensterLinks] eq "open" or [HM_OG.BADEZM_FensterRechts] eq "open") ? "open" : "closed"),
MyDewStatus:(int(([HM_OG.BADEZMR_Wandthermostat_Weather:absHumidity]/[HM_AUSSEN.Scheune_Weather:absHumidity])*100)),
MyDewFallout:(([HM_OG.BADEZMR_Wandthermostat_Weather:dewpoint]+2 <= [HM_OG.BADEZMR_Wandthermostat_Climate:measured-temp]) ? "ok" : "alarm")
   devStateIcon cmd_1:fts_window_roof_open_2@green cmd_2:fts_window_roof_open_2@red cmd_3:fts_window_roof@red cmd_4:fts_window_roof@green cmd_5:fts_window_root_open_2 cmd_6:fts_window_roof
   room       R_GrossesBad,SYS_Events


Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Ellert

98_DOIF.pm:0.201630/2019-09-15 ist nicht aktuell, wie versprochen.

Damian

Das Problem ist mit der aktuellen Version behoben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wiesenfreund

#3
Erledigt, habe die vorherige Version in einem Backup gefunden.

Hallo, ich bin Anfänger und habe seit einem fhem-Update erhebliche Probleme mit set doif_XXX checkall. Ich verwende den Befehl bei einigen Modulen. Seit dem Update stürzt fhem komplett ab. Im Log habe ich folgenden Eintrag gefunden:
Can't use an undefined value as an ARRAY reference at ./FHEM/98_DOIF.pm line 2221.

Ich habe alle Geräte gelöscht, sie checkall verwenden. Eines hatte folgenden Inhalt:

defmod at_GWH_Schaltverzoergerung at +*00:15:00 set doif_GWH_FensterOben enable;;set doif_GWH_FensterOben checkall;;set doif_GWH_FensterUnten enable;;set doif_GWH_FensterUnten checkall;;define at1 at +00:03:00 set doif_GWH_FensterOben disable;;define at3 at +00:03:10 set doif_GWH_FensterUnten disable
attr at_GWH_Schaltverzoergerung DbLogExclude .*
attr at_GWH_Schaltverzoergerung comment DOIF Module zu Fenstersteuerung ueber disable deaktivieren und checkall aktivieren um Schaltzyklen hintereinander zu reduzieren.
attr at_GWH_Schaltverzoergerung event-on-change-reading .*
attr at_GWH_Schaltverzoergerung room GWH,Logik


Verwendet wird: 98_DOIF.pm 20202 2019-09-19 21:12:51Z Damian

Könnte mir bitte jemand mittteilen, wo ich die vorherige Version von 98_DOIF.pm herbekommen kann.

Danke....
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

Damian

#4
Das ist aber leider keine dauerhafte Lösung.

Teste bitte die angehängte Version.

Edit: neue Version wurde eingecheckt
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Morgennebel

Danke,


Ich bin mir sicher, heute ein Update gemacht zu haben. Nun noch eines.

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

hackepeter

Ich hänge mich hier mal dran. Seit dem letzten und vorletzten update habe ich auch Probleme mit einigen DOIF's. Ich habe 3FHEM Installationen. 2 davon auf raspis und eine auf nem debian / esxi. An den  Raspis sind nur Aktoren und Sensoren angeschlossen. Informationen werden via fhem2fhem mit dem (MAIN) debian fhem ausgetauscht. Auf diesem befinden sich auch alle Regeln.

Eine Regel, die nicht funktioniert ist z.B. das einschalten des Lichtes in der Garage sobald das Tor hoch fährt:

defmod Licht_Garage DOIF ([TasterLichtGarage] eq "Longpress: on") (IF ([rpi2rel4:state] eq "on") (set rpi2rel4 off) ELSE (set rpi2rel4 on))
attr Licht_Garage do always
attr Licht_Garage room Rules

Folgendes Ereignis kommt im Event Monitor des debian an:
2019-09-20 22:58:06 RPI_GPIO GaragentorState Longpress: on

Es sieht so aus als bekommt das DOIF das Event nicht mit.
Im log kommt es zu keinen Fehlern.
Der Aktor ( rpi2rel4) lässt sich vom debian schalten.
Doif VERSION
20202 2019-09-19 21:12:51

Damian

Ich befürchte, meine Testabteilung ist zu klein für das umfangreiche Update auf NOTIFYDEV-Filter.  >:(

Ich habe noch einige intensive Tests vorgenommen (Selbsttrigger, DOIF_Readings, event_Readings, disable-Attribute), die weitere Korrekturen erforderten - eine neue Version wurde eben eingecheckt.


Alle, die seit dem 13.09.2019 Update gemacht haben, sollten morgen ein neues Update machen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

Zitat von: Damian am 20 September 2019, 19:26:08

Teste bitte die angehängte Version.


Die von Dir zurückgezogene V 0.3 hat bei mit 12 Stunden ohne Probleme die Nacht überstanden. Ich teste jetzt weiter mit der heute im Repository abzurufenden Version eingescheckten 20210.

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Zitat von: hackepeter am 20 September 2019, 23:15:47
Ich hänge mich hier mal dran. Seit dem letzten und vorletzten update habe ich auch Probleme mit einigen DOIF's. Ich habe 3FHEM Installationen. 2 davon auf raspis und eine auf nem debian / esxi. An den  Raspis sind nur Aktoren und Sensoren angeschlossen. Informationen werden via fhem2fhem mit dem (MAIN) debian fhem ausgetauscht. Auf diesem befinden sich auch alle Regeln.

Eine Regel, die nicht funktioniert ist z.B. das einschalten des Lichtes in der Garage sobald das Tor hoch fährt:

defmod Licht_Garage DOIF ([TasterLichtGarage] eq "Longpress: on") (IF ([rpi2rel4:state] eq "on") (set rpi2rel4 off) ELSE (set rpi2rel4 on))
attr Licht_Garage do always
attr Licht_Garage room Rules

Folgendes Ereignis kommt im Event Monitor des debian an:
2019-09-20 22:58:06 RPI_GPIO GaragentorState Longpress: on

Es sieht so aus als bekommt das DOIF das Event nicht mit.
Im log kommt es zu keinen Fehlern.
Der Aktor ( rpi2rel4) lässt sich vom debian schalten.
Doif VERSION
20202 2019-09-19 21:12:51

Ich kann bei mir kein Problem erkennen

DEF        ([TasterLichtGarage] eq "Longpress: on") (set bla on)
   MODEL      FHEM
   NAME       Licht_Garage
   NOTIFYDEV  global,TasterLichtGarage
   NR         732
   NTFY_ORDER 50-Licht_Garage
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-09-21 10:41:14   Device          TasterLichtGarage
     2019-09-21 10:41:14   cmd             1
     2019-09-21 10:41:14   cmd_event       TasterLichtGarage
     2019-09-21 10:41:14   cmd_nr          1
     2019-09-21 10:41:14   e_TasterLichtGarage_STATE Longpress: on
     2019-09-21 10:38:25   mode            enabled
     2019-09-21 10:41:14   state           cmd_1
...


mit

Internals:
   CFGFN     
   NAME       TasterLichtGarage
   NR         729
   STATE      Longpress: on
   TYPE       dummy
   READINGS:
     2019-09-21 10:41:14   state           Longpress: on



getestet mit der heutigen Version.

Ich hoffe, dass dir bewusst ist, dass du einen Status abfragst und kein Event.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hackepeter

Vielen Dank für die Arbeit.
Ich habe es jetzt noch einmal geprüft. Das doif hing auf Initialize. Ich habe es einmal auf enabled gesetzt - dann lief es.  Ich habe aber noch ein anderes doif gefunden, welches nach dem update nicht mehr funktioniert aber davor über 2 Jahre funktioniert hat:


Internals:
   DEF        ([GaragentorState] eq "Longpress: on") (set rpi2rel3 Offen) (set rpi2rel2 on) (set rpi2rel4 on) (set rpi2rel2 off, set rpi2rel4 off) DOELSE (set rpi2rel3 Zu) (set rpi2rel4 off) (set rpi2rel2 off)
   FUUID      5c4a019d-f33f-cd6f-c6a0-bc015d493e15f5c2
   MODEL      FHEM
   NAME       Garagentor_State
   NOTIFYDEV  global,GaragentorState
   NR         158
   NTFY_ORDER 50-Garagentor_State
   STATE      cmd_2
   TYPE       DOIF
   VERSION    20210 2019-09-20 21:37:33
   READINGS:
     2019-09-21 19:50:56   Device          GaragentorState
     2019-09-21 19:51:01   cmd             2.3
     2019-09-21 19:51:01   cmd_event       GaragentorState
     2019-09-21 19:51:01   cmd_nr          2
     2019-09-21 19:51:01   cmd_seqnr       3
     2019-09-21 19:50:56   e_GaragentorState_STATE Longpress: off
     2019-09-21 19:50:28   mode            enabled
     2019-09-21 19:51:01   state           cmd_2
     2019-09-21 19:51:01   wait_timer      no timer
   Regex:
     accu:
     cond:
       GaragentorState:
         0:
           &STATE     ^GaragentorState$
   attr:
     cmdState:
     wait:
       0:
         0
         0
         0
         200
         200
       1:
         0
         0
         5
         200
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'GaragentorState','STATE') eq "Longpress: on"
   do:
     0:
       0          set rpi2rel3 Offen
       1          set rpi2rel2 on
       2          set rpi2rel4 on
       3          set rpi2rel2 off, set rpi2rel4 off
     1:
       0          set rpi2rel3 Zu
       1          set rpi2rel4 off
       2          set rpi2rel2 off
   helper:
     event      Longpress: off
     globalinit 1
     last_timer 0
     sleepdevice GaragentorState
     sleepsubtimer -1
     sleeptimer -1
     timerdev   GaragentorState
     timerevent Longpress: off
     triggerDev GaragentorState
     DOIF_eventa:
       cmd_nr: 2
       cmd_seqnr: 3
       cmd_event: GaragentorState
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd_seqnr: 3
       cmd_event: GaragentorState
       state: cmd_2
     timerevents:
       Longpress: off
     timereventsState:
       Longpress: off
     triggerEvents:
       Longpress: off
     triggerEventsState:
       Longpress: off
   internals:
     all         GaragentorState:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Rules
   wait       0,0,0,200,200:0,0,5,200


Damit ich nicht nochmal so blöd dastehe, hab ich das Verhalten mal als Video festgehalten:

https://youtu.be/EfgveSk8ZTI


Damian

Zitat von: hackepeter am 21 September 2019, 20:29:29
Vielen Dank für die Arbeit.
Ich habe es jetzt noch einmal geprüft. Das doif hing auf Initialize. Ich habe es einmal auf enabled gesetzt - dann lief es.  Ich habe aber noch ein anderes doif gefunden, welches nach dem update nicht mehr funktioniert aber davor über 2 Jahre funktioniert hat:


Internals:
   DEF        ([GaragentorState] eq "Longpress: on") (set rpi2rel3 Offen) (set rpi2rel2 on) (set rpi2rel4 on) (set rpi2rel2 off, set rpi2rel4 off) DOELSE (set rpi2rel3 Zu) (set rpi2rel4 off) (set rpi2rel2 off)
   FUUID      5c4a019d-f33f-cd6f-c6a0-bc015d493e15f5c2
   MODEL      FHEM
   NAME       Garagentor_State
   NOTIFYDEV  global,GaragentorState
   NR         158
   NTFY_ORDER 50-Garagentor_State
   STATE      cmd_2
   TYPE       DOIF
   VERSION    20210 2019-09-20 21:37:33
   READINGS:
     2019-09-21 19:50:56   Device          GaragentorState
     2019-09-21 19:51:01   cmd             2.3
     2019-09-21 19:51:01   cmd_event       GaragentorState
     2019-09-21 19:51:01   cmd_nr          2
     2019-09-21 19:51:01   cmd_seqnr       3
     2019-09-21 19:50:56   e_GaragentorState_STATE Longpress: off
     2019-09-21 19:50:28   mode            enabled
     2019-09-21 19:51:01   state           cmd_2
     2019-09-21 19:51:01   wait_timer      no timer
   Regex:
     accu:
     cond:
       GaragentorState:
         0:
           &STATE     ^GaragentorState$
   attr:
     cmdState:
     wait:
       0:
         0
         0
         0
         200
         200
       1:
         0
         0
         5
         200
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'GaragentorState','STATE') eq "Longpress: on"
   do:
     0:
       0          set rpi2rel3 Offen
       1          set rpi2rel2 on
       2          set rpi2rel4 on
       3          set rpi2rel2 off, set rpi2rel4 off
     1:
       0          set rpi2rel3 Zu
       1          set rpi2rel4 off
       2          set rpi2rel2 off
   helper:
     event      Longpress: off
     globalinit 1
     last_timer 0
     sleepdevice GaragentorState
     sleepsubtimer -1
     sleeptimer -1
     timerdev   GaragentorState
     timerevent Longpress: off
     triggerDev GaragentorState
     DOIF_eventa:
       cmd_nr: 2
       cmd_seqnr: 3
       cmd_event: GaragentorState
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd_seqnr: 3
       cmd_event: GaragentorState
       state: cmd_2
     timerevents:
       Longpress: off
     timereventsState:
       Longpress: off
     triggerEvents:
       Longpress: off
     triggerEventsState:
       Longpress: off
   internals:
     all         GaragentorState:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Rules
   wait       0,0,0,200,200:0,0,5,200


Damit ich nicht nochmal so blöd dastehe, hab ich das Verhalten mal als Video festgehalten:

https://youtu.be/EfgveSk8ZTI

Dann filme mal das GaragentorState-Device während Longpress: on kommt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hackepeter

ZitatDann filme mal das GaragentorState-Device während Longpress: on kommt.

Das ist kein device. Es kommt von dem Modul fhem2fhem

https://ibb.co/RvMhskX

Damian

Zitat von: hackepeter am 21 September 2019, 21:16:38
Das ist kein device. Es kommt von dem Modul fhem2fhem

https://ibb.co/RvMhskX
Du fragst den Status des Devices GaragentorState nach "Longpress: on" ab, wenn das Devices keinen richtigen Status hat (hier: connected), dann kannst du den auch nicht abfragen, sondern lediglich die produzierten Events. z. B.

[GaragentorState:"Longpress: on"]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hackepeter

Mit der Änderung tut das doif auch nicht:

Internals:
   DEF        ([GaragentorState:"Longpress: on"]) (set rpi2rel3 Offen) (set rpi2rel2 on) (set rpi2rel4 on) (set rpi2rel2 off, set rpi2rel4 off) DOELSE (set rpi2rel3 Zu) (set rpi2rel4 off) (set rpi2rel2 off)
   FUUID      5c4a019d-f33f-cd6f-c6a0-bc015d493e15f5c2
   MODEL      FHEM
   NAME       Garagentor_State
   NOTIFYDEV  global,GaragentorState
   NR         158
   NTFY_ORDER 50-Garagentor_State
   STATE      cmd_2
   TYPE       DOIF
   VERSION    20210 2019-09-20 21:37:33
   READINGS:
     2019-09-21 21:33:47   cmd             2.3
     2019-09-21 21:33:47   cmd_event       Garagentor_State
     2019-09-21 21:33:47   cmd_nr          2
     2019-09-21 21:33:47   cmd_seqnr       3
     2019-09-21 21:33:45   mode            enabled
     2019-09-21 21:33:47   state           cmd_2
     2019-09-21 21:33:47   wait_timer      no timer
   Regex:
     accu:
     cond:
       GaragentorState:
         0:
           &STATE     ^GaragentorState$
   attr:
     cmdState:
     wait:
       0:
         0
         0
         0
         200
         200
       1:
         0
         0
         5
         200
     waitdel:
   condition:
     0          ::EventDoIf('GaragentorState',$hash,'Longpress: on',1)
   do:
     0:
       0          set rpi2rel3 Offen
       1          set rpi2rel2 on
       2          set rpi2rel4 on
       3          set rpi2rel2 off, set rpi2rel4 off
     1:
       0          set rpi2rel3 Zu
       1          set rpi2rel4 off
       2          set rpi2rel2 off
   helper:
     event     
     globalinit 1
     last_timer 0
     sleepdevice Garagentor_State
     sleepsubtimer -1
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     triggerEvents
     triggerEventsState
     DOIF_eventa:
       cmd_nr: 2
       cmd_seqnr: 3
       cmd_event: Garagentor_State
       cmd_2
   trigger:
     all         GaragentorState
   uiState:
   uiTable:
Attributes:
   do         always
   room       Rules
   wait       0,0,0,200,200:0,0,5,200