FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Morgennebel am 20 September 2019, 17:08:19

Titel: FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Morgennebel am 20 September 2019, 17:08:19
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
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Ellert am 20 September 2019, 17:16:46
98_DOIF.pm:0.201630/2019-09-15 ist nicht aktuell, wie versprochen.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 20 September 2019, 17:29:50
Das Problem ist mit der aktuellen Version behoben.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Wiesenfreund am 20 September 2019, 18:31:01
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....
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 20 September 2019, 19:26:08
Das ist aber leider keine dauerhafte Lösung.

Teste bitte die angehängte Version.

Edit: neue Version wurde eingecheckt
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Morgennebel am 20 September 2019, 22:31:17
Danke,


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

Danke, -MN
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag 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
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 20 September 2019, 23:54:54
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.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: cwagner am 21 September 2019, 09:10:17
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
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 21 September 2019, 10:46:36
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.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag 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

Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 21 September 2019, 20:47:59
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.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 21 September 2019, 21:16:38
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 (https://ibb.co/RvMhskX)
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 21 September 2019, 21:21:52
Zitat von: hackepeter am 21 September 2019, 21:16:38
Das ist kein device. Es kommt von dem Modul fhem2fhem

https://ibb.co/RvMhskX (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"]
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 21 September 2019, 21:42:40
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
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 21 September 2019, 22:35:08
Dann teste mal mit: trigger TasterLichtGarage Longpress: on

Bei mir kommt dann:

Internals:
   CFGFN     
   DEF        ([TasterLichtGarage:"Longpress:.on"]) (set bla on)DOELSE
   MODEL      FHEM
   NAME       Licht_Garage
   NOTIFYDEV  global,TasterLichtGarage
   NR         732
   NTFY_ORDER 50-Licht_Garage
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-09-21 22:33:02   Device          TasterLichtGarage
     2019-09-21 22:33:02   cmd             1
     2019-09-21 22:33:02   cmd_event       TasterLichtGarage
     2019-09-21 22:33:02   cmd_nr          1
     2019-09-21 22:33:02   e_TasterLichtGarage_events Longpress: on
     2019-09-21 22:31:33   mode            enabled
     2019-09-21 22:33:02   state           cmd_1
...


Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 21 September 2019, 22:51:24
Zitat von: Damian am 21 September 2019, 22:35:08
Dann teste mal mit: trigger TasterLichtGarage Longpress: on

Bei mir kommt dann:

Internals:
   CFGFN     
   DEF        ([TasterLichtGarage:"Longpress:.on"]) (set bla on)DOELSE
   MODEL      FHEM
   NAME       Licht_Garage
   NOTIFYDEV  global,TasterLichtGarage
   NR         732
   NTFY_ORDER 50-Licht_Garage
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-09-21 22:33:02   Device          TasterLichtGarage
     2019-09-21 22:33:02   cmd             1
     2019-09-21 22:33:02   cmd_event       TasterLichtGarage
     2019-09-21 22:33:02   cmd_nr          1
     2019-09-21 22:33:02   e_TasterLichtGarage_events Longpress: on
     2019-09-21 22:31:33   mode            enabled
     2019-09-21 22:33:02   state           cmd_1
...


Das geht leider nicht, da es dieses device nicht gibt:

Please define TasterLichtGarage first

Wie gesagt, ich nutze Fhem2Fhem.
Fhem2Fhem greift nur die Events von den entfernten hosts ab und reicht diese dann an die lokale FHEM Instanz zur Weiterverarbeitung weiter.
Vor ein paar Jahren, als es doif noch nicht gab, hatte ich diese Regeln mit notify gelöst. Später hab ich fast alle notify's durch doif's ersetzt.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 21 September 2019, 23:32:55
Zitat von: hackepeter am 21 September 2019, 22:51:24
Das geht leider nicht, da es dieses device nicht gibt:

Please define TasterLichtGarage first

Wie gesagt, ich nutze Fhem2Fhem.
Fhem2Fhem greift nur die Events von den entfernten hosts ab und reicht diese dann an die lokale FHEM Instanz zur Weiterverarbeitung weiter.
Vor ein paar Jahren, als es doif noch nicht gab, hatte ich diese Regeln mit notify gelöst. Später hab ich fast alle notify's durch doif's ersetzt.

Was vorher ging, muss auch jetzt gehen. DOIF kennt nur Events, Readings und Status des eigenen Systems. Dein angegebenes Device heißt doch GaragentorState, dann musst du natürlich mit deinem testen, also 

trigger GaragentorState Longpress: on
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: PatrickR am 22 September 2019, 03:18:37
Guten Abend,

ich habe leider auch ein ähnliches Problem: https://forum.fhem.de/index.php/topic,103904.0.html
Allerdings mit "echten" Devices ohne FHEM2FHEM etc.

Patrick
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Wiesenfreund am 22 September 2019, 07:24:28
Zitat von: Damian am 20 September 2019, 19:26:08
Das ist aber leider keine dauerhafte Lösung.

Teste bitte die angehängte Version.

Edit: neue Version wurde eingecheckt
[/quote

Ich habe gestern das aktuelle Update mit "doif" übernommen und ausprobiert. Bei mir funktioniert es.

Von mir aktuell verwendetes Modul: 98_DOIF.pm 20210 2019-09-20 21:37:33Z Damian

Vielen Dank für die Mühen.



Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 22 September 2019, 09:56:16
Zitat von: PatrickR am 22 September 2019, 03:18:37
Guten Abend,

ich habe leider auch ein ähnliches Problem: https://forum.fhem.de/index.php/topic,103904.0.html
Allerdings mit "echten" Devices ohne FHEM2FHEM etc.

Patrick

Wenn es manchmal geht und manchmal nicht, dann wird ggf. intern etwas nicht zurückgesetzt.

Wichtig für mich ist eine Konfiguration zum Nachstellen, die reproduzierbar ist.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 22 September 2019, 10:01:30
Golgendes konnte ich heute Morgen bei meinem Garagentor-Taster auch reproduzieren, mit dem Unterschied dass ein checkall nicht geholfen hat - aber ein initialize schon.

Aus dem Thread https://forum.fhem.de/index.php/topic,103904.0.html
Zitat
- Ein neu definiertes DOIF funktioniert nicht.
- Nach dem senden von checkall funktioniert das DOIF dauerhaft.
- Ändert man die Definition des DOIF funktioniert es wieder nicht mehr.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 22 September 2019, 11:16:45
Ich konnte das Problem nachstellen.

Wenn nach der Definition sofort ein Event erzeugt wird, dann kommt nur das modify-Event von global beim DOIF an aber nicht das eigentliche. Erst wenn andere Events dazwischen kommen, kommen auch die eigentlichen Events an.

Ich befürchte, da muss ich in der Entwicklungsabteilung nachfragen, denn z. Zt. kann ich keine Lösung präsentieren.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: PatrickR am 22 September 2019, 11:26:14
Zitat von: Damian am 22 September 2019, 09:56:16
Wichtig! für mich ist eine Konfiguration zum Nachstellen, die reproduzierbar ist.
Die Raw definition aus meinem Thread sollte Dir helfen. Direkt nach der Definition ist es bei mir immer kaputt.



Von unterwegs gesendet.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 22 September 2019, 11:34:59
Zitat von: Damian am 22 September 2019, 11:16:45
Ich konnte das Problem nachstellen.

Wenn nach der Definition sofort ein Event erzeugt wird, dann kommt nur das modify-Event von global beim DOIF an aber nicht das eigentliche. Erst wenn andere Events dazwischen kommen, kommen auch die eigentlichen Events an.

Ich befürchte, da muss ich in der Entwicklungsabteilung nachfragen, denn z. Zt. kann ich keine Lösung präsentieren.

Sehr gut! Ich werde vorerst entweder auf notify ausweichen oder zur alten doif Version zurück wechseln.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 22 September 2019, 11:46:14
Ich habe das Problem im Development-Board geschildert: https://forum.fhem.de/index.php/topic,103917.0.htm
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: PatrickR am 22 September 2019, 15:21:40
Danke schonmal!


Von unterwegs gesendet.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 22 September 2019, 20:42:15
Neue Version im Anhang.  Bitte testen.

Nach erfolgreichen Tests habe ich die neue Version bereits eingecheckt. Ich hoffe, dass der Update-Spuk langsam ein Ende nimmt.  >:(

Leider musste ich etwas an fhem.pl vorbei arbeiten, dafür werden im DOIF auch NOTIFDEV-Filter gesetzt, die im notify nicht gesetzt werden.  ;)

Edit: Version eingecheckt
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 22 September 2019, 22:59:25
Zitat von: Damian am 22 September 2019, 20:42:15
Neue Version im Anhang.  Bitte testen.

Nach erfolgreichen Tests habe ich die neue Version bereits eingecheckt. Ich hoffe, dass der Update-Spuk langsam ein Ende nimmt.  >:(

Leider musste ich etwas an fhem.pl vorbei arbeiten, dafür werden im DOIF auch NOTIFDEV-Filter gesetzt, die im notify nicht gesetzt werden.  ;)

Die Version im Anhang funktionierte bei mir noch nicht immer :( Hier nochmal ein Video vom verhalten:
https://youtu.be/EfgveSk8ZTI
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 22 September 2019, 23:05:48
Zitat von: hackepeter am 22 September 2019, 22:59:25
Die Version im Anhang funktionierte bei mir noch nicht immer :( Hier nochmal ein Video vom verhalten:
https://youtu.be/EfgveSk8ZTI

Ich bin der Meinung, dass diese Definition nie richtig funktionieren konnte (wenn dann eher zufällig), da du einen Status abfragst, den es offenbar nicht gibt. Stell das bitte auf Eventabfrage um: [GaragentorState:"Longpress: on"]

Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 22 September 2019, 23:27:26
Zitat von: Damian am 22 September 2019, 23:05:48
Ich bin der Meinung, dass diese Definition nie richtig funktionieren konnte (wenn dann eher zufällig), da du einen Status abfragst, den es offenbar nicht gibt. Stell das bitte auf Eventabfrage um: [GaragentorState:"Longpress: on"]

Sorry, es war der falsche Link...

https://youtu.be/guNdmmsnUM8

Ich probiere es aber trotzdem morgen früh nochmal...
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 23 September 2019, 11:54:59
Moin,
ich muss mich hier vermutlich auch mal ranhängen:
Mein DOIF (["^OWX_1D_18DC84000003$:^A_rate"] && ([{sunrise()}-{sunset("3600")}])) triggert nicht mehr auf die FHEM2FHEM-Events:
Zitat2019-09-23 11:51:37.206 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334074334592

Ist seit ein paar Tagen so, hab mich aber erstmal nur gewundert, nicht gesucht. Heute hatte ich Zeit, und auch ein minimal-DOIF, was nur auf ["^OWX_1D_18DC84000003$:^A_rate"]  triggern soll, tut nichts.

komplettes DOIF ist unten anbei, ich habe jetzt gerade ein update gemacht:
Zitat98_DOIF.pm            20229 2019-09-22 18:55:46Z Damian

Bin ich von dem Problem betroffen oder muss ich woanders suchen? Das DOIF hat jahrelang einwandfrei funktioniert.

Danke und Grüße,
Stephan

Internals:
   DEF        (["^OWX_1D_18DC84000003$:^A_rate"] && ([{sunrise()}-{sunset("3600")}]))
({
my ($a1,$b1) = split(" ", "$EVENT");
fhem("setreading $SELF rate $b1");

my $power = [$SELF:power];
my $power_sec = [$SELF:power:sec];
my $work = [$SELF:work];
my $deltawork = (( $power * $power_sec ) / 3600 / 1000 );
my $totalwork = $deltawork + $work;
fhem("setreading $SELF lastdeltawork $deltawork");
fhem("setreading $SELF work $totalwork");
})
DOELSEIF([23:59])
(
setreading $SELF solarerwartung_heute [wetter_prop:fc0_prg_ges],
setreading $SELF solarerwartung_morgen [wetter_prop:fc1_prg_ges],
setreading $SELF solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges],
setreading $SELF workDay [$SELF:work],
setreading $SELF work 0
)
DOELSE
(
setreading $SELF rate 0
)
   FUUID      5c844715-f33f-4040-d4c8-602d2be86c1a37b3
   MODEL      FHEM
   NAME       DF_WMZ_Solar
   NOTIFYDEV  global,OWX_1D_18DC84000003,RE_TEMP_Vorlauf_Solar,RE_TEMP_Ruecklauf_Solar,DF_WMZ_Solar
   NR         476
   NTFY_ORDER 50-DF_WMZ_Solar
   STATE      0 W
   TYPE       DOIF
   VERSION    20229 2019-09-22 18:55:46
   DOIF_Readings:
     RL         (::ReadingValDoIf($hash,'RE_TEMP_Ruecklauf_Solar','temperature'))
     VL         (::ReadingValDoIf($hash,'RE_TEMP_Vorlauf_Solar','temperature'))
     deltaT     (::ReadingValDoIf($hash,'DF_WMZ_Solar','VL')-::ReadingValDoIf($hash,'DF_WMZ_Solar','RL'))
     lastdeltawork (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*1.05*::ReadingSecDoIf('DF_WMZ_Solar','work'))
     literpromin (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*60)
     literprosec (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate'))
     p1         (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*3600*1.05*::ReadingValDoIf($hash,'DF_WMZ_Solar','deltaT'))
     power      (::ReadingValDoIf($hash,'DF_WMZ_Solar','p1','','d0'))
   READINGS:
     2019-09-21 09:13:57   Device          OWX_1D_18DC84000003
     2019-09-23 11:53:59   RL              35.31
     2019-09-23 11:54:02   VL              38.56
     2019-09-23 06:39:29   cmd             3
     2019-09-23 06:39:29   cmd_event       timer_1
     2019-09-23 06:39:29   cmd_nr          3
     2019-09-23 11:54:02   deltaT          3.25
     2019-09-21 09:13:57   lastdeltawork   0
     2019-09-21 21:00:11   literpromin     0
     2019-09-21 21:00:11   literprosec     0
     2019-09-21 21:00:11   p1              0
     2019-09-21 21:00:27   power           0
     2019-09-23 06:39:29   rate            0
     2019-09-22 23:59:00   solarerwartung_heute 33
     2019-09-22 23:59:00   solarerwartung_morgen 19
     2019-09-22 23:59:00   solarerwartung_uebermorgen 25
     2019-09-23 06:39:29   state           cmd_3
     2019-09-23 11:49:31   timer_01_c01    24.09.2019 06:41:01
     2019-09-23 11:49:31   timer_02_c01    23.09.2019 20:55:42
     2019-09-23 11:49:31   timer_03_c02    23.09.2019 23:59:00
     2019-09-22 23:59:00   work            0
     2019-09-22 23:59:00   workDay         0
   Regex:
     DOIF_Readings:
       DF_WMZ_Solar:
         deltaT:
           RL         ^DF_WMZ_Solar$:^RL:
           VL         ^DF_WMZ_Solar$:^VL:
         lastdeltawork:
           rate       ^DF_WMZ_Solar$:^rate:
           work       ^DF_WMZ_Solar$:^work:
         literpromin:
           rate       ^DF_WMZ_Solar$:^rate:
         literprosec:
           rate       ^DF_WMZ_Solar$:^rate:
         p1:
           deltaT     ^DF_WMZ_Solar$:^deltaT:
           rate       ^DF_WMZ_Solar$:^rate:
         power:
           p1         ^DF_WMZ_Solar$:^p1:
       RE_TEMP_Ruecklauf_Solar:
         RL:
           temperature ^RE_TEMP_Ruecklauf_Solar$:^temperature:
       RE_TEMP_Vorlauf_Solar:
         VL:
           temperature ^RE_TEMP_Vorlauf_Solar$:^temperature:
     accu:
     cond:
       :
         0:
           "^OWX_1D_18DC84000003$:^A_rate" ^OWX_1D_18DC84000003$:^A_rate
   condition:
     0          ::EventDoIf('^OWX_1D_18DC84000003$',$hash,'^A_rate',0) && (::DOIF_time($hash,0,1,$wday,$hms))
     1          ::DOIF_time_once($hash,2,$wday)
   days:
   do:
     0:
       0          { my ($a1,$b1) = split(" ", "$EVENT"); fhem("setreading DF_WMZ_Solar rate $b1");  my $power = [DF_WMZ_Solar:power]; my $power_sec = [DF_WMZ_Solar:power:sec]; my $work = [DF_WMZ_Solar:work]; my $deltawork = (( $power * $power_sec ) / 3600 / 1000 ); my $totalwork = $deltawork + $work; fhem("setreading DF_WMZ_Solar lastdeltawork $deltawork"); fhem("setreading DF_WMZ_Solar work $totalwork"); }
     1:
       0           setreading DF_WMZ_Solar solarerwartung_heute [wetter_prop:fc0_prg_ges], setreading DF_WMZ_Solar solarerwartung_morgen [wetter_prop:fc1_prg_ges], setreading DF_WMZ_Solar solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges], setreading DF_WMZ_Solar workDay [DF_WMZ_Solar:work], setreading DF_WMZ_Solar work 0
     2:
       0           setreading DF_WMZ_Solar rate 0
   helper:
     event      deltaT: 3.44,VL: 38.56,deltaT: 3.25
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev DF_WMZ_Solar
     DOIF_Readings_events:
       deltaT: 3.25
     DOIF_Readings_eventsState:
       deltaT: 3.25
     triggerEvents:
       deltaT: 3.44
       VL: 38.56
       deltaT: 3.25
     triggerEventsState:
       deltaT: 3.44
       VL: 38.56
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1569300061
     1          1569264942
     2          1569275940
   perlblock:
   realtime:
     0          06:41:01
     1          20:55:42
     2          23:59:00
   time:
     0          {sunrise()}
     1          {sunset("3600")}
     2          23:59:00
   timeCond:
     0          0
     1          0
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0  1
     1           2
   triggertime:
     1569264942:
       localtime  1569264942
       hash:
     1569275940:
       localtime  1569275940
       hash:
     1569300061:
       localtime  1569300061
       hash:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings VL:([RE_TEMP_Vorlauf_Solar:temperature]),
RL:([RE_TEMP_Ruecklauf_Solar:temperature]),
deltaT:([$SELF:VL]-[$SELF:RL]),
p1:([$SELF:rate]*3600*1.05*[$SELF:deltaT]),
power:([$SELF:p1:d0]),
lastdeltawork:([$SELF:rate]*1.05*[$SELF:work:sec]),
literprosec:([$SELF:rate]),
literpromin:([$SELF:rate]*60)
   DbLogInclude power,literpromin
   do         always
   room       Counter,FHEM2FHEM,Solar,_doif
   selftrigger all
   stateFormat power W
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 23 September 2019, 13:05:44
Dann teste mal das DOIF erst mal mit einem Trigger:

trigger OWX_1D_18DC84000003 A_rate: 0.1

Wenn das funktioniert, dann haben wir ein grundsätzliches Problem.

Edit: Ich habe kein fhem2fhem laufen, daher kann ich nur mit einem Dummy namens OWX_1D_18DC84000003 testen

trigger OWX_1D_18DC84000003 A_rate: 0.1

funktioniert bei mir wie gewünscht:

Internals:
   CFGFN     
   DEF        (["^OWX_1D_18DC84000003$:^A_rate"]) (set bla on)
   MODEL      FHEM
   NAME       di_fhem2fhem
   NOTIFYDEV  global,OWX_1D_18DC84000003
   NR         1485
   NTFY_ORDER 50-di_fhem2fhem
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-09-23 13:10:40   Device          OWX_1D_18DC84000003
     2019-09-23 13:10:40   cmd             1
     2019-09-23 13:10:40   cmd_event       OWX_1D_18DC84000003
     2019-09-23 13:10:40   cmd_nr          1
     2019-09-23 13:10:37   mode            enabled
     2019-09-23 13:10:40   state           cmd_1
   Reg ...

Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 23 September 2019, 16:42:01
Hi,
ich schmeiss mal mit Infos:

Raspi namens hzfhem, hat ein FIRMATA-Device, über welches ein one-Wire-Zählerbaustein angeschlossen ist:
Internals:
   ASYNC      0
   DEF        DS2423 18DC84000003
   ERRCOUNT   0
   FUUID      5c84483f-f33f-0aaa-2585-a81d237b121ac4e7
   INTERVAL   10
   IODev      OWIO_13
   NAME       OWX_1D_18DC84000003
   NOTIFYDEV  global
   NR         22
   NTFY_ORDER 50-OWX_1D_18DC84000003
   OW_FAMILY  1D
   OW_ID      18DC84000003
   PRESENT    1
   ROM_ID     1D.18DC84000003.73
   STATE      A: 986227.00  cts A_r:  0.20  cts/s B: 680447866.00  cts B_r: 24.30  cts/s
   TYPE       OWCOUNT
   DATA:
     memory     
   READINGS:
     2019-09-23 16:26:57   A               986227
     2019-09-23 16:26:57   A_rate          0.133656717947117
     2019-09-23 16:26:57   B               680447866
     2019-09-23 16:26:57   B_rate          24.2189391933888
     2019-09-23 16:26:57   memory         
     2019-09-23 16:26:57   state           A: 986227.00  cts A_r:  0.20  cts/s B: 680447866.00  cts B_r: 24.30  cts/s
   owg_midnight:
     0
     0
   owg_str:
     
     
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     
     
   owg_val:
     986227
     680447866
Attributes:
   APeriod    second
   BPeriod    second
   IODev      OWIO_13
   comment    A=Solar Zähler;B=HZG Haus Zähler
   event-aggregator A_rate:10:linear:mean:60,B_rate:10:linear:mean:60
   event-on-change-reading A_rate,B_rate
   interval   10
   model      DS2423
   room       Firmata


Aktualisierung (durch pollen von FHEM) alle 10 Sekunden.

New-Fhem (weil es der Nachfolger von Main-Fhem ist;) erhält folgende Events per FHEM2FHEM:

2019-09-23 16:29:17.200 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334906953266
2019-09-23 16:29:27.197 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334873573312
2019-09-23 16:29:37.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334576898752
2019-09-23 16:29:47.265 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334198358463
2019-09-23 16:29:57.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133335681344216
2019-09-23 16:30:07.277 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336753098428
2019-09-23 16:30:17.197 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133337033115783
2019-09-23 16:30:28.203 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133337809402779
2019-09-23 16:30:37.274 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133338078744586
2019-09-23 16:30:47.195 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133337991547122
2019-09-23 16:30:57.193 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133335702941549
2019-09-23 16:31:07.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334698678674
2019-09-23 16:31:17.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333999741996
2019-09-23 16:31:27.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332569598988
2019-09-23 16:31:37.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332587613646
2019-09-23 16:31:47.193 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332588209718
2019-09-23 16:31:57.378 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332625561136
2019-09-23 16:32:07.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332623044387
2019-09-23 16:32:17.229 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333266920673
2019-09-23 16:32:27.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332766426641
2019-09-23 16:32:37.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332764770899
2019-09-23 16:32:47.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332757220712
2019-09-23 16:32:57.186 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332674305579
2019-09-23 16:33:07.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331986744543
2019-09-23 16:33:17.604 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332573436819
2019-09-23 16:33:27.272 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332417408669
2019-09-23 16:33:37.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333242078645
2019-09-23 16:33:47.245 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332418269672
2019-09-23 16:33:57.290 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332419329281
2019-09-23 16:34:07.218 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333304684448
2019-09-23 16:34:09.354 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.1
2019-09-23 16:34:17.214 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332446815105
2019-09-23 16:34:27.197 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.141666819982979
2019-09-23 16:34:37.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.141666796108391
2019-09-23 16:34:47.243 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333360354143
2019-09-23 16:34:57.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.14166677547872
2019-09-23 16:35:07.196 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.141666810777455
2019-09-23 16:35:17.363 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333007964648
2019-09-23 16:35:27.205 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333264922857
2019-09-23 16:35:37.240 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332722122445
2019-09-23 16:35:47.930 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332879873504
2019-09-23 16:35:57.197 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333239623415
2019-09-23 16:36:07.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332851196159
2019-09-23 16:36:17.351 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333498905635
2019-09-23 16:36:27.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333200277047
2019-09-23 16:36:37.562 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333831166206
2019-09-23 16:36:47.206 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333784541344
2019-09-23 16:36:57.250 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333462545698
2019-09-23 16:37:07.204 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333770104126
2019-09-23 16:37:17.217 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331663510811
2019-09-23 16:37:27.221 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331514889333
2019-09-23 16:37:37.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331232077329
2019-09-23 16:37:47.223 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331634308046
2019-09-23 16:37:57.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331654376513
2019-09-23 16:38:07.527 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331719350328
2019-09-23 16:38:17.203 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333493276561
2019-09-23 16:38:27.236 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333810239867
2019-09-23 16:38:37.205 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333434664182
2019-09-23 16:38:47.200 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133329962612454
2019-09-23 16:38:57.239 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133328596983189
2019-09-23 16:39:07.524 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133328943512263
2019-09-23 16:39:17.203 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133329864494052
2019-09-23 16:39:27.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333000479359


Wie man sehen kann, schön alle 10 Sekunden.

das doif DF_WMZ_Solar berechnet die DOIF_Readings zuverlässig, wenn sich einer der Lieferanten-Werte ändert - so wie es sein soll.
Das Reading "rate" hingegen hat um 14:50 das letzte mal ein update erhalten. (Korrektur: es gab ein weiteres update um 16:28; jetzt ist es bereits 16:33 ohne dass sich der Zeitstempel verändert hätte)

Internals:
   DEF        (["^OWX_1D_18DC84000003$:^A_rate"] && ([{sunrise()}-{sunset("3600")}]))
({
my ($a1,$b1) = split(" ", "$EVENT");
fhem("setreading $SELF rate $b1");

my $power = [$SELF:power];
my $power_sec = [$SELF:power:sec];
my $work = [$SELF:work];
my $deltawork = (( $power * $power_sec ) / 3600 / 1000 );
my $totalwork = $deltawork + $work;
fhem("setreading $SELF lastdeltawork $deltawork");
fhem("setreading $SELF work $totalwork");
})
DOELSEIF([23:59])
(
setreading $SELF solarerwartung_heute [wetter_prop:fc0_prg_ges],
setreading $SELF solarerwartung_morgen [wetter_prop:fc1_prg_ges],
setreading $SELF solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges],
setreading $SELF workDay [$SELF:work],
setreading $SELF work 0
)
DOELSE
(
setreading $SELF rate 0
)
   FUUID      5c844715-f33f-4040-d4c8-602d2be86c1a37b3
   MODEL      FHEM
   NAME       DF_WMZ_Solar
   NOTIFYDEV  global,OWX_1D_18DC84000003,RE_TEMP_Vorlauf_Solar,RE_TEMP_Ruecklauf_Solar,DF_WMZ_Solar
   NR         476
   NTFY_ORDER 50-DF_WMZ_Solar
   STATE      882 W
   TYPE       DOIF
   VERSION    20229 2019-09-22 18:55:46
   DOIF_Readings:
     RL         (::ReadingValDoIf($hash,'RE_TEMP_Ruecklauf_Solar','temperature'))
     VL         (::ReadingValDoIf($hash,'RE_TEMP_Vorlauf_Solar','temperature'))
     deltaT     (::ReadingValDoIf($hash,'DF_WMZ_Solar','VL')-::ReadingValDoIf($hash,'DF_WMZ_Solar','RL'))
     lastdeltawork (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*1.05*::ReadingSecDoIf('DF_WMZ_Solar','work'))
     literpromin (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*60)
     literprosec (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate'))
     p1         (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*3600*1.05*::ReadingValDoIf($hash,'DF_WMZ_Solar','deltaT'))
     power      (::ReadingValDoIf($hash,'DF_WMZ_Solar','p1','','d0'))
   Helper:
     DBLOG:
       literpromin:
         logdb:
           TIME       1569248897.29532
           VALUE      7.99998529334802
       power:
         logdb:
           TIME       1569248897.29532
           VALUE      1008
   READINGS:
     2019-09-23 16:28:17   Device          OWX_1D_18DC84000003
     2019-09-23 16:29:49   RL              37.81
     2019-09-23 16:30:21   VL              39.50
     2019-09-23 16:28:17   cmd             1
     2019-09-23 16:28:17   cmd_event       OWX_1D_18DC84000003
     2019-09-23 16:28:17   cmd_nr          1
     2019-09-23 16:30:21   deltaT          1.69
     2019-09-23 16:28:17   lastdeltawork   0
     2019-09-23 16:28:17   literpromin     7.99998529334802
     2019-09-23 16:28:17   literprosec     0.133333088222467
     2019-09-23 16:29:52   p1              881.998378591619
     2019-09-23 16:29:52   power           882
     2019-09-23 16:28:17   rate            0.133333088222467
     2019-09-22 23:59:00   solarerwartung_heute 33
     2019-09-22 23:59:00   solarerwartung_morgen 19
     2019-09-22 23:59:00   solarerwartung_uebermorgen 25
     2019-09-23 16:28:17   state           cmd_1
     2019-09-23 11:49:31   timer_01_c01    24.09.2019 06:41:01
     2019-09-23 11:49:31   timer_02_c01    23.09.2019 20:55:42
     2019-09-23 11:49:31   timer_03_c02    23.09.2019 23:59:00
     2019-09-23 16:28:17   work            0.0420019444444445
     2019-09-22 23:59:00   workDay         0
   Regex:
     DOIF_Readings:
       DF_WMZ_Solar:
         deltaT:
           RL         ^DF_WMZ_Solar$:^RL:
           VL         ^DF_WMZ_Solar$:^VL:
         lastdeltawork:
           rate       ^DF_WMZ_Solar$:^rate:
           work       ^DF_WMZ_Solar$:^work:
         literpromin:
           rate       ^DF_WMZ_Solar$:^rate:
         literprosec:
           rate       ^DF_WMZ_Solar$:^rate:
         p1:
           deltaT     ^DF_WMZ_Solar$:^deltaT:
           rate       ^DF_WMZ_Solar$:^rate:
         power:
           p1         ^DF_WMZ_Solar$:^p1:
       RE_TEMP_Ruecklauf_Solar:
         RL:
           temperature ^RE_TEMP_Ruecklauf_Solar$:^temperature:
       RE_TEMP_Vorlauf_Solar:
         VL:
           temperature ^RE_TEMP_Vorlauf_Solar$:^temperature:
     accu:
     cond:
       :
         0:
           "^OWX_1D_18DC84000003$:^A_rate" ^OWX_1D_18DC84000003$:^A_rate
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('^OWX_1D_18DC84000003$',$hash,'^A_rate',0) && (::DOIF_time($hash,0,1,$wday,$hms))
     1          ::DOIF_time_once($hash,2,$wday)
   days:
   do:
     0:
       0          { my ($a1,$b1) = split(" ", "$EVENT"); fhem("setreading DF_WMZ_Solar rate $b1");  my $power = [DF_WMZ_Solar:power]; my $power_sec = [DF_WMZ_Solar:power:sec]; my $work = [DF_WMZ_Solar:work]; my $deltawork = (( $power * $power_sec ) / 3600 / 1000 ); my $totalwork = $deltawork + $work; fhem("setreading DF_WMZ_Solar lastdeltawork $deltawork"); fhem("setreading DF_WMZ_Solar work $totalwork"); }
     1:
       0           setreading DF_WMZ_Solar solarerwartung_heute [wetter_prop:fc0_prg_ges], setreading DF_WMZ_Solar solarerwartung_morgen [wetter_prop:fc1_prg_ges], setreading DF_WMZ_Solar solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges], setreading DF_WMZ_Solar workDay [DF_WMZ_Solar:work], setreading DF_WMZ_Solar work 0
     2:
       0           setreading DF_WMZ_Solar rate 0
   helper:
     event      VL: 39.50
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   OWX_1D_18DC84000003
     timerevent A_rate: 0.133333088222467
     triggerDev DF_WMZ_Solar
     DOIF_Readings_events:
       deltaT: 1.69
     DOIF_Readings_eventsState:
       deltaT: 1.69
     timerevents:
       A_rate: 0.133333088222467
     timereventsState:
       A_rate: 0.133333088222467
     triggerEvents:
       VL: 39.50
       deltaT: 1.69
     triggerEventsState:
       VL: 39.50
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1569300061
     1          1569264942
     2          1569275940
   perlblock:
   readings:
   realtime:
     0          06:41:01
     1          20:55:42
     2          23:59:00
   time:
     0          {sunrise()}
     1          {sunset("3600")}
     2          23:59:00
   timeCond:
     0          0
     1          0
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0  1
     1           2
   trigger:
   triggertime:
     1569264942:
       localtime  1569264942
       hash:
     1569275940:
       localtime  1569275940
       hash:
     1569300061:
       localtime  1569300061
       hash:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings VL:([RE_TEMP_Vorlauf_Solar:temperature]),
RL:([RE_TEMP_Ruecklauf_Solar:temperature]),
deltaT:([$SELF:VL]-[$SELF:RL]),
p1:([$SELF:rate]*3600*1.05*[$SELF:deltaT]),
power:([$SELF:p1:d0]),
lastdeltawork:([$SELF:rate]*1.05*[$SELF:work:sec]),
literprosec:([$SELF:rate]),
literpromin:([$SELF:rate]*60)
   DbLogInclude power,literpromin
   do         always
   room       Counter,FHEM2FHEM,Solar,_doif
   selftrigger all
   stateFormat power W


Jetzt hab ich mal ein trigger OWX_1D_18DC84000003 A_rate: 0.1 ausgeführt, auf hzfhem, weil es auf New-Fhem die Fehlermeldung
ZitatPlease define OWX_1D_18DC84000003 first
wirft.

Das ganze kommt im Event-Monitor auch einwandfrei an:
Zitat2019-09-23 16:34:09.354 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.1
Leider aber nicht im DOIF:
Zitatrate   0.133333088222467   2019-09-23 16:28:17

Als nächstes werde ich in NewFHEM ein dummy namens OWX_1D_18DC84000003 erstellen. Dieses sollte dann ja automatisch alle Werte über FHEM2FHEM erhalten. Dann kann ich auch lokal auf NewFHEM ein "trigger .." ausführen. Melde mich.

Danke dir und Grüße,
Stephan
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 23 September 2019, 16:45:16
So, das ging schnell:
define  OWX_1D_18DC84000003 dummy
und die aktualisierungen im DF_WMZ_Solar brummen wieder wie gewünscht.

Was mir dabei aufgefallen ist:
Ich hab noch so ein DOIF. Das macht im Prinzip genau das gleiche, nur nicht beschränkt auf den Tageszeitraum:
Internals:
   DEF        (["^OWX_1D_18DC84000003$:^B_rate"])({
my ($a1,$b1) = split(" ", "$EVENT");
$b1 = $b1/52;
fhem("setreading $SELF rate $b1");

my $power = [$SELF:power:d];
my $lastdeltawork_sec = [$SELF:lastdeltawork:sec];
fhem("setreading $SELF _lastdeltawork_sec $lastdeltawork_sec");
my $work = [$SELF:work:d];
my $deltawork = (( $power * $lastdeltawork_sec ) / 3600 / 1000 );
my $totalwork = $deltawork + $work;
fhem("setreading $SELF lastdeltawork $deltawork");
fhem("setreading $SELF work $totalwork");
})
DOELSEIF([23:59])
(
setreading $SELF workDay [$SELF:work],
setreading $SELF work 0
)
   FUUID      5c844715-f33f-4040-7cd6-92841e952dc0661d
   MODEL      FHEM
   NAME       DF_WMZ_HZG_main
   NOTIFYDEV  global,OWX_1D_18DC84000003,RE_TEMP_VorlaufHK,RE_TEMP_RuecklaufHK,DF_WMZ_HZG_main
   NR         477
   NTFY_ORDER 50-DF_WMZ_HZG_main
   STATE      956 W
   TYPE       DOIF
   VERSION    20229 2019-09-22 18:55:46
   CHANGED:
     power: 956
   CHANGEDWITHSTATE:
     power: 956
   DOIF_Readings:
     RL         (::ReadingValDoIf($hash,'RE_TEMP_RuecklaufHK','temperature'))
     VL         (::ReadingValDoIf($hash,'RE_TEMP_VorlaufHK','temperature'))
     deltaT     (::ReadingValDoIf($hash,'DF_WMZ_HZG_main','VL')-::ReadingValDoIf($hash,'DF_WMZ_HZG_main','RL'))
     literpromin (::ReadingValDoIf($hash,'DF_WMZ_HZG_main','rate')*60)
     literprosec (::ReadingValDoIf($hash,'DF_WMZ_HZG_main','rate'))
     p1         (::ReadingValDoIf($hash,'DF_WMZ_HZG_main','rate')*3600*1.16*::ReadingValDoIf($hash,'DF_WMZ_HZG_main','deltaT'))
     power      (::ReadingValDoIf($hash,'DF_WMZ_HZG_main','p1','','d0'))
   Helper:
     DBLOG:
       lastdeltawork:
         logdb:
           TIME       1569249787.40592
           VALUE      0.00266388888888889
       literpromin:
         logdb:
           TIME       1569249787.34286
           VALUE      27.4711678186731
   READINGS:
     2019-09-23 16:43:07   Device          OWX_1D_18DC84000003
     2019-09-23 16:31:22   RL              25.00
     2019-09-23 16:35:26   VL              25.50
     2019-09-23 16:43:07   _lastdeltawork_sec 10
     2019-09-23 16:43:07   cmd             1
     2019-09-23 16:43:07   cmd_event       OWX_1D_18DC84000003
     2019-09-23 16:43:07   cmd_nr          1
     2019-09-23 16:35:26   deltaT          0.5
     2019-09-23 16:43:07   lastdeltawork   0.00266388888888889
     2019-09-23 16:43:07   literpromin     27.4711678186731
     2019-09-23 16:43:07   literprosec     0.457852796977885
     2019-09-23 16:43:07   p1              955.996640089824
     2019-09-23 16:43:07   power           956
     2019-09-23 16:43:07   rate            0.457852796977885
     2019-09-23 16:43:07   state           cmd_1
     2019-09-23 11:49:31   timer_01_c02    23.09.2019 23:59:00
     2019-09-23 16:43:07   work            30.2372997222223
     2019-09-22 23:59:00   workDay         41.0245616666663
   Regex:
     DOIF_Readings:
       DF_WMZ_HZG_main:
         deltaT:
           RL         ^DF_WMZ_HZG_main$:^RL:
           VL         ^DF_WMZ_HZG_main$:^VL:
         literpromin:
           rate       ^DF_WMZ_HZG_main$:^rate:
         literprosec:
           rate       ^DF_WMZ_HZG_main$:^rate:
         p1:
           deltaT     ^DF_WMZ_HZG_main$:^deltaT:
           rate       ^DF_WMZ_HZG_main$:^rate:
         power:
           p1         ^DF_WMZ_HZG_main$:^p1:
       RE_TEMP_RuecklaufHK:
         RL:
           temperature ^RE_TEMP_RuecklaufHK$:^temperature:
       RE_TEMP_VorlaufHK:
         VL:
           temperature ^RE_TEMP_VorlaufHK$:^temperature:
     accu:
     cond:
       :
         0:
           "^OWX_1D_18DC84000003$:^B_rate" ^OWX_1D_18DC84000003$:^B_rate
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('^OWX_1D_18DC84000003$',$hash,'^B_rate',0)
     1          ::DOIF_time_once($hash,0,$wday)
   days:
   do:
     0:
       0          { my ($a1,$b1) = split(" ", "$EVENT"); $b1 = $b1/52; fhem("setreading DF_WMZ_HZG_main rate $b1");  my $power = [DF_WMZ_HZG_main:power:d]; my $lastdeltawork_sec = [DF_WMZ_HZG_main:lastdeltawork:sec]; fhem("setreading DF_WMZ_HZG_main _lastdeltawork_sec $lastdeltawork_sec"); my $work = [DF_WMZ_HZG_main:work:d]; my $deltawork = (( $power * $lastdeltawork_sec ) / 3600 / 1000 ); my $totalwork = $deltawork + $work; fhem("setreading DF_WMZ_HZG_main lastdeltawork $deltawork"); fhem("setreading DF_WMZ_HZG_main work $totalwork"); }
     1:
       0           setreading DF_WMZ_HZG_main workDay [DF_WMZ_HZG_main:work], setreading DF_WMZ_HZG_main work 0
     2:
   helper:
     event      p1: 955.996640089824,literpromin: 27.4711678186731,literprosec: 0.457852796977885
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev   OWX_1D_18DC84000003
     timerevent B_rate: 23.80834544285
     triggerDev DF_WMZ_HZG_main
     timerevents:
       B_rate: 23.80834544285
     timereventsState:
       B_rate: 23.80834544285
     triggerEvents:
       p1: 955.996640089824
       literpromin: 27.4711678186731
       literprosec: 0.457852796977885
     triggerEventsState:
       p1: 955.996640089824
       literpromin: 27.4711678186731
       literprosec: 0.457852796977885
   internals:
   intervalfunc:
   localtime:
     0          1569275940
   perlblock:
   readings:
   realtime:
     0          23:59:00
   time:
     0          23:59:00
   timeCond:
     0          1
   timer:
     0          0
   timers:
     1           0
   trigger:
   triggertime:
     1569275940:
       localtime  1569275940
       hash:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings VL:([RE_TEMP_VorlaufHK:temperature]),
RL:([RE_TEMP_RuecklaufHK:temperature]),
deltaT:([$SELF:VL]-[$SELF:RL]),
p1:([$SELF:rate]*3600*1.16*[$SELF:deltaT]),
power:([$SELF:p1:d0]),
literprosec:([$SELF:rate]),
literpromin:([$SELF:rate]*60)
   DbLogInclude literpromin,power,lastdeltawork,workDay
   do         always
   event-on-change-reading power:10,.*
   room       Counter,FHEM2FHEM,Heizung,_doif
   selftrigger all
   stateFormat power W


Das wiederum funktioniert einwandfrei...
Leider nicht! Habe die Datenbank gewälzt, gleiches Problem.
Kann von mir aus erstmal so bleiben (mit dem Dummy) aber imho ist das nicht die gewünsche Verhaltensweise?

Edit: Die Event-Monitor-Liste sieht jetzt anders aus:

2019-09-23 16:35:57.197 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333239623415
2019-09-23 16:36:07.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133332851196159
2019-09-23 16:36:17.351 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333498905635
2019-09-23 16:36:27.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333200277047
2019-09-23 16:36:37.562 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333831166206
2019-09-23 16:36:47.206 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333784541344
2019-09-23 16:36:57.250 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333462545698
2019-09-23 16:37:07.204 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333770104126
2019-09-23 16:37:17.217 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331663510811
2019-09-23 16:37:27.221 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331514889333
2019-09-23 16:37:37.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331232077329
2019-09-23 16:37:47.223 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331634308046
2019-09-23 16:37:57.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331654376513
2019-09-23 16:38:07.527 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133331719350328
2019-09-23 16:38:17.203 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333493276561
2019-09-23 16:38:27.236 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333810239867
2019-09-23 16:38:37.205 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133333434664182
2019-09-23 16:38:47.200 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133329962612454
2019-09-23 16:38:57.239 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133328596983189
2019-09-23 16:39:07.524 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133328943512263
2019-09-23 16:39:17.203 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133329864494052
2019-09-23 16:39:27.202 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.13333000479359
2019-09-23 16:39:37.199 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133330690491819
2019-09-23 16:39:47.201 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133334836629386
2019-09-23 16:39:57.646 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336613913656
2019-09-23 16:40:07.198 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336294561514
2019-09-23 16:40:17.201 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336332314559
2019-09-23 16:40:27.200 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336358933193
2019-09-23 16:40:37.200 OWCOUNT OWX_1D_18DC84000003 A_rate: 0.133336294439143
2019-09-23 16:40:47.354 dummy OWX_1D_18DC84000003 A_rate: 0.133336236551109
2019-09-23 16:40:57.284 dummy OWX_1D_18DC84000003 A_rate: 0.133336459298852
2019-09-23 16:41:07.256 dummy OWX_1D_18DC84000003 A_rate: 0.133336182386221
2019-09-23 16:41:17.422 dummy OWX_1D_18DC84000003 A_rate: 0.133336114695782
2019-09-23 16:41:27.624 dummy OWX_1D_18DC84000003 A_rate: 0.133335881742548
2019-09-23 16:41:37.276 dummy OWX_1D_18DC84000003 A_rate: 0.133335829496031
2019-09-23 16:41:47.257 dummy OWX_1D_18DC84000003 A_rate: 0.133334432287637
2019-09-23 16:41:57.255 dummy OWX_1D_18DC84000003 A_rate: 0.133334046802573
2019-09-23 16:42:07.274 dummy OWX_1D_18DC84000003 A_rate: 0.133334024021245
2019-09-23 16:42:17.295 dummy OWX_1D_18DC84000003 A_rate: 0.133333510092142
2019-09-23 16:42:27.683 dummy OWX_1D_18DC84000003 A_rate: 0.133333453998614
2019-09-23 16:42:37.412 dummy OWX_1D_18DC84000003 A_rate: 0.13333323538257
2019-09-23 16:42:47.313 dummy OWX_1D_18DC84000003 A_rate: 0.133330778258477
2019-09-23 16:42:57.616 dummy OWX_1D_18DC84000003 A_rate: 0.13332964440543
2019-09-23 16:43:07.340 dummy OWX_1D_18DC84000003 A_rate: 0.133330259240789
2019-09-23 16:43:17.569 dummy OWX_1D_18DC84000003 A_rate: 0.133330645168244
2019-09-23 16:43:27.294 dummy OWX_1D_18DC84000003 A_rate: 0.13333012751529
2019-09-23 16:43:37.292 dummy OWX_1D_18DC84000003 A_rate: 0.133330146724995
2019-09-23 16:43:47.279 dummy OWX_1D_18DC84000003 A_rate: 0.133333571909748
2019-09-23 16:43:57.275 dummy OWX_1D_18DC84000003 A_rate: 0.133334882567266
2019-09-23 16:44:07.275 dummy OWX_1D_18DC84000003 A_rate: 0.133334630054895
2019-09-23 16:44:17.379 dummy OWX_1D_18DC84000003 A_rate: 0.133334079007102
2019-09-23 16:44:27.408 dummy OWX_1D_18DC84000003 A_rate: 0.133334313444433
2019-09-23 16:44:37.271 dummy OWX_1D_18DC84000003 A_rate: 0.133334832295695
2019-09-23 16:44:47.769 dummy OWX_1D_18DC84000003 A_rate: 0.133334081539366
2019-09-23 16:44:57.293 dummy OWX_1D_18DC84000003 A_rate: 0.133333638173481
2019-09-23 16:45:07.270 dummy OWX_1D_18DC84000003 A_rate: 0.133333874262957
2019-09-23 16:45:17.402 dummy OWX_1D_18DC84000003 A_rate: 0.13333657890949
2019-09-23 16:45:27.276 dummy OWX_1D_18DC84000003 A_rate: 0.133337489025421
2019-09-23 16:45:37.257 dummy OWX_1D_18DC84000003 A_rate: 0.133337281054982



Grüße,
Stephan
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 23 September 2019, 16:55:41
Vorhin kamen mal ein paar Werte durch:


2019-09-23 14:51:17
DF_WMZ_HZG_main
DOIF
literpromin
28.0288311213623
2019-09-23 14:51:17
DF_WMZ_Solar
DOIF
literpromin
8.00019400078092
2019-09-23 14:42:17
DF_WMZ_HZG_main
DOIF
literpromin
27.8461548305526
2019-09-23 14:42:17
DF_WMZ_Solar
DOIF
literpromin
8.00001300580158
2019-09-23 14:41:07
DF_WMZ_HZG_main
DOIF
literpromin
27.8365259158843
2019-09-23 14:41:07
DF_WMZ_Solar
DOIF
literpromin
8.0002407113076
2019-09-23 14:40:57
DF_WMZ_HZG_main
DOIF
literpromin
27.778840664693
2019-09-23 14:40:57
DF_WMZ_Solar
DOIF
literpromin
8.00007609003144
2019-09-23 14:40:56
KNX10.I05_Zaehler_Holzvergaser
KNX
literpromin
0.00
l/min
2019-09-23 14:40:47
DF_WMZ_HZG_main
DOIF
literpromin
27.7980708400324
2019-09-23 14:40:47
DF_WMZ_Solar
DOIF
literpromin
8.00007700388382
2019-09-23 14:40:38
DF_WMZ_HZG_main
DOIF
literpromin
27.8269159655512
2019-09-23 14:40:37
DF_WMZ_Solar
DOIF
literpromin
8.00005915564686
2019-09-23 14:40:37
KNX10.I05_Zaehler_Holzvergaser
KNX
literpromin
0.00
l/min
2019-09-23 14:40:27
DF_WMZ_HZG_main
DOIF
literpromin
27.8365290316149
2019-09-23 14:40:27
DF_WMZ_Solar
DOIF
literpromin
8.0000605146744
2019-09-23 14:40:17
DF_WMZ_HZG_main
DOIF
literpromin
27.8750001001051
2019-09-23 14:40:17
DF_WMZ_Solar
DOIF
literpromin
8.00006296228704


Ich weiss aber nicht, was ich da gemacht haben könnte, damit es mal funktioniert hat...
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 23 September 2019, 17:09:33
Was ich jetzt verstanden habe ist, dass Events vom NOTIFYDEV-Filter geschluckt werden, wenn kein passendes Device existiert. Das sind aber Dinge außerhalb von DOIF. Dann dürfte auch ein notify damit nicht klar kommen, weil es ja auch den NOTFYDEV-Filter nutzt.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 23 September 2019, 18:01:40
Hm. Das verstehe ich wiederum nicht. Dann dürfte es ja nie funktioniert haben - oder?
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 23 September 2019, 18:06:10
Zitat von: abc2006 am 23 September 2019, 18:01:40
Hm. Das verstehe ich wiederum nicht. Dann dürfte es ja nie funktioniert haben - oder?

Ich habe gerade die Antwort im Development-Board erhalten. NOTFYDEV-Filter wird im notify nicht gesetzt, wenn es das Device nicht gibt. Da muss ich mir noch was überlegen.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 24 September 2019, 13:44:36
Ich weiss nicht, obs auch noch dazugehört, aber gerade stelle ich fest, dass ein DOIF-Reading nicht aktualisiert wird. Selbes Device wie oben.
Ich kann mal probieren, ob resetten, initialize, set cmd, DEF oder shutdown restart irgendwas dran ändern ...

p1           1794.23229204803     2019-09-24 13:40:36
power     0                                  2019-09-23 20:56:01


DOIF_Readings:
[...]
p1:([$SELF:rate]*3600*1.05*[$SELF:deltaT]),
power:([$SELF:p1:d0]),
[...]


Edit: Ändern und speichern der DOIF_Readings (durch klicken auf "attr") aktualisiert "power" einmalig. Danach veraltet es wieder.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 24 September 2019, 15:04:18
Die angehängte Version sollte jetzt auch mit FHEM2FHEM klarkommen.

Edit: neue Version eingecheckt
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 24 September 2019, 15:40:05
Hi,
danke für das mega schnelle update!
ja, funktioniert jetzt auch ohne den Dummy.
Leider werden die DOIF-Readings aber noch nicht aktualisiert.
Ich poste auch gerne noch mal ein list.
Die Readings p1 und power sollen alle 10 Sekunden (wenn ein Event kommt) aktualisiert werden und müssten somit den gleichen Timestamp bekommen wie "rate". Oder zumindest fast gleich. Und rot werden. Oder lieg ich falsch?

grüße,
Stephan

Internals:
   DEF        (["^OWX_1D_18DC84000003$:^A_rate"] && ([{sunrise()}-{sunset("3600")}]))
({
my ($a1,$b1) = split(" ", "$EVENT");
fhem("setreading $SELF rate $b1");

my $power = [$SELF:power];
my $power_sec = [$SELF:power:sec];
my $work = [$SELF:work];
my $deltawork = (( $power * $power_sec ) / 3600 / 1000 );
my $totalwork = $deltawork + $work;
fhem("setreading $SELF lastdeltawork $deltawork");
fhem("setreading $SELF work $totalwork");
})
DOELSEIF([23:59])
(
setreading $SELF solarerwartung_heute [wetter_prop:fc0_prg_ges],
setreading $SELF solarerwartung_morgen [wetter_prop:fc1_prg_ges],
setreading $SELF solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges],
setreading $SELF workDay [$SELF:work],
setreading $SELF work 0
)
DOELSE
(
setreading $SELF rate 0
)
   FUUID      5c844715-f33f-4040-d4c8-602d2be86c1a37b3
   MODEL      FHEM
   NAME       DF_WMZ_Solar
   NR         476
   NTFY_ORDER 50-DF_WMZ_Solar
   STATE      786 W
   TYPE       DOIF
   CHANGED:
     RL: 37.63
   CHANGEDWITHSTATE:
     RL: 37.63
   DOIF_Readings:
     RL         (::ReadingValDoIf($hash,'RE_TEMP_Ruecklauf_Solar','temperature'))
     VL         (::ReadingValDoIf($hash,'RE_TEMP_Vorlauf_Solar','temperature'))
     deltaT     (::ReadingValDoIf($hash,'DF_WMZ_Solar','VL')-::ReadingValDoIf($hash,'DF_WMZ_Solar','RL'))
     lastdeltawork (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*1.05*::ReadingSecDoIf('DF_WMZ_Solar','work'))
     literpromin (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*60)
     literprosec (::ReadingValDoIf($hash,'DF_WMZ_Solar','rate'))
     p1         int(::ReadingValDoIf($hash,'DF_WMZ_Solar','rate')*3600*1.05*::ReadingValDoIf($hash,'DF_WMZ_Solar','deltaT'))
     power      (::ReadingValDoIf($hash,'DF_WMZ_Solar','p1','','d0'))
   READINGS:
     2019-09-24 15:39:26   Device          OWX_1D_18DC84000003
     2019-09-24 15:39:27   RL              37.63
     2019-09-24 15:38:31   VL              41.19
     2019-09-24 15:39:26   cmd             1
     2019-09-24 15:39:26   cmd_event       OWX_1D_18DC84000003
     2019-09-24 15:39:26   cmd_nr          1
     2019-09-24 15:30:56   deltaT          1.56
     2019-09-24 15:39:26   lastdeltawork   0.108511666666667
     2019-09-24 13:40:36   literpromin     7.99996563245958
     2019-09-24 13:40:36   literprosec     0.133332760540993
     2019-09-24 15:30:56   p1              786
     2019-09-24 15:31:09   power           786
     2019-09-24 15:39:26   rate            0.0166663856517311
     2019-09-23 23:59:00   solarerwartung_heute 25
     2019-09-23 23:59:00   solarerwartung_morgen 31
     2019-09-23 23:59:00   solarerwartung_uebermorgen 23
     2019-09-24 15:39:26   state           cmd_1
     2019-09-24 15:31:22   timer_01_c01    25.09.2019 06:42:34
     2019-09-24 15:31:22   timer_02_c01    24.09.2019 20:53:28
     2019-09-24 15:31:22   timer_03_c02    24.09.2019 23:59:00
     2019-09-24 15:39:26   work            2.910165
     2019-09-23 23:59:00   workDay         0.361130833333333
   Regex:
     DOIF_Readings:
       DF_WMZ_Solar:
         deltaT:
           RL         ^DF_WMZ_Solar$:^RL:
           VL         ^DF_WMZ_Solar$:^VL:
         lastdeltawork:
           rate       ^DF_WMZ_Solar$:^rate:
           work       ^DF_WMZ_Solar$:^work:
         literpromin:
           rate       ^DF_WMZ_Solar$:^rate:
         literprosec:
           rate       ^DF_WMZ_Solar$:^rate:
         p1:
           deltaT     ^DF_WMZ_Solar$:^deltaT:
           rate       ^DF_WMZ_Solar$:^rate:
         power:
           p1         ^DF_WMZ_Solar$:^p1:
       RE_TEMP_Ruecklauf_Solar:
         RL:
           temperature ^RE_TEMP_Ruecklauf_Solar$:^temperature:
       RE_TEMP_Vorlauf_Solar:
         VL:
           temperature ^RE_TEMP_Vorlauf_Solar$:^temperature:
     accu:
     cond:
       :
         0:
           "^OWX_1D_18DC84000003$:^A_rate" ^OWX_1D_18DC84000003$:^A_rate
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('^OWX_1D_18DC84000003$',$hash,'^A_rate',0) && (::DOIF_time($hash,0,1,$wday,$hms))
     1          ::DOIF_time_once($hash,2,$wday)
   days:
   do:
     0:
       0          { my ($a1,$b1) = split(" ", "$EVENT"); fhem("setreading DF_WMZ_Solar rate $b1");  my $power = [DF_WMZ_Solar:power]; my $power_sec = [DF_WMZ_Solar:power:sec]; my $work = [DF_WMZ_Solar:work]; my $deltawork = (( $power * $power_sec ) / 3600 / 1000 ); my $totalwork = $deltawork + $work; fhem("setreading DF_WMZ_Solar lastdeltawork $deltawork"); fhem("setreading DF_WMZ_Solar work $totalwork"); }
     1:
       0           setreading DF_WMZ_Solar solarerwartung_heute [wetter_prop:fc0_prg_ges], setreading DF_WMZ_Solar solarerwartung_morgen [wetter_prop:fc1_prg_ges], setreading DF_WMZ_Solar solarerwartung_uebermorgen [wetter_prop:fc2_prg_ges], setreading DF_WMZ_Solar workDay [DF_WMZ_Solar:work], setreading DF_WMZ_Solar work 0
     2:
       0           setreading DF_WMZ_Solar rate 0
   helper:
     DEVFILTER  ^global$|^OWX_1D_18DC84000003$|^RE_TEMP_Vorlauf_Solar$|^RE_TEMP_Ruecklauf_Solar$|^DF_WMZ_Solar$
     NOTIFYDEV  global|OWX_1D_18DC84000003|RE_TEMP_Vorlauf_Solar|RE_TEMP_Ruecklauf_Solar|DF_WMZ_Solar
     event      temperature: 41.19
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   OWX_1D_18DC84000003
     timerevent A_rate: 0.0166663856517311
     triggerDev RE_TEMP_Vorlauf_Solar
     timerevents:
       A_rate: 0.0166663856517311
     timereventsState:
       A_rate: 0.0166663856517311
     triggerEvents:
       temperature: 41.19
     triggerEventsState:
       temperature: 41.19
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1569386554
     1          1569351208
     2          1569362340
   perlblock:
   readings:
   realtime:
     0          06:42:34
     1          20:53:28
     2          23:59:00
   time:
     0          {sunrise()}
     1          {sunset("3600")}
     2          23:59:00
   timeCond:
     0          0
     1          0
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0  1
     1           2
   trigger:
   triggertime:
     1569351208:
       localtime  1569351208
       hash:
     1569362340:
       localtime  1569362340
       hash:
     1569386554:
       localtime  1569386554
       hash:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings VL:([RE_TEMP_Vorlauf_Solar:temperature]),
RL:([RE_TEMP_Ruecklauf_Solar:temperature]),
deltaT:([$SELF:VL]-[$SELF:RL]),
p1:int([$SELF:rate]*3600*1.05*[$SELF:deltaT]),
power:([$SELF:p1:d0]),
lastdeltawork:([$SELF:rate]*1.05*[$SELF:work:sec]),
literprosec:([$SELF:rate]),
literpromin:([$SELF:rate]*60)
   DbLogInclude power,literpromin
   do         always
   room       Counter,FHEM2FHEM,Solar,_doif
   selftrigger all
   stateFormat p1 W
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 24 September 2019, 16:21:02
Es war noch ein Tippfehler in der letzten Version. Lade noch mal neu.

Edit: DOIF_Readings selbst produzieren keine Events, daher werden sie nie rot. Man muss schon den Browser aktualisieren.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 24 September 2019, 23:38:38
Hast du schon eingecheckt? Bin unterwegs und kann es manuell schlecht testen.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 25 September 2019, 00:00:46
Bei mir siehts gut aus. Auch ein anderes Problem, was ich gerade formuliert habe, scheint behoben.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 25 September 2019, 00:01:24
Neue Version eingecheckt.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 26 September 2019, 12:10:15

Zitat von: Damian am 25 September 2019, 00:01:24
Neue Version eingecheckt.

Bei mir scheint wieder alles zu laufen! Gute Arbeit! Wo soll ich den Kasten Rhönbier hinschicken? 🍻
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 26 September 2019, 13:21:21
Zitat von: hackepeter am 26 September 2019, 12:10:15
Bei mir scheint wieder alles zu laufen! Gute Arbeit! Wo soll ich den Kasten Rhönbier hinschicken? 🍻

Für eine stabile Version, stehe ich mit meinem Namen - das reicht schon :)
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 27 September 2019, 00:19:41
Moin Damian,
ich hätte da leider noch einen. Weiss nicht, ob das an dem Update liegt - aber da ich gestern (vorgestern) die aktuelle version per update geholt habe, vermute ich, dass es in die Richtung geht:

Hier ist ein list des DF auf meinem raspi "hzfhem":

Internals:
   DEF        (["^PID_HZFHEM$"])
({
Log3(undef, 4, "DF_F2F_PID Event: $EVENT");
my ($reading,$value) = split(/ /,"$EVENT");
chop $reading;
if($reading eq "actuation"){
fhem("setreading $SELF _event $EVENT");
fhem("setreading $SELF _events $EVENTS");
fhem("setreading $SELF _device $DEVICE");
fhem("setreading $SELF _value $value");
fhem("setreading $SELF _reading $reading");
Log3(undef, 0, "DF_F2F_PID Reading: $reading");
my $order;
if($value >=0 && $value <=270){
$order = "set Mischer_HZG position $value";
Log3(undef, 0, "DF_F2F_PID Order fhem(): $order");
fhem($order);
}elsif($value == 0){
##&& ReadingsNum("Mischer_HZG","state",1) == 0 && ReadingsNum("Mischer_HZG","state",1) ne "reset"){
## das reicht eigentlich, wegen event-on-change-reading sollte hier keine Wiederholung auftreten
$order = "set Relais2_FUBO_kalt on-for-timer 20";
Log3(undef, 0, "DF_F2F_PID Order autoreset: $order");
fhem($order);
}elsif($value != int($value)){
Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value");
}
}
})
   FUUID      5c844841-f33f-0aaa-2408-991d2c0374888f87
   MODEL      FHEM
   NAME       DF_F2F_PID
   NR         42
   NTFY_ORDER 50-DF_F2F_PID
   STATE      cmd_1
   TYPE       DOIF
   VERSION    20241 2019-09-24 22:00:09
   READINGS:
     2019-09-27 00:14:08   Device          PID_HZFHEM
     2019-09-27 00:14:08   _device         PID_HZFHEM
     2019-09-27 00:14:08   _event          actuation: 13
     2019-09-27 00:14:08   _events         actuation: 13
     2019-09-27 00:14:08   _reading        actuation
     2019-09-27 00:14:08   _value          13
     2019-09-27 00:14:08   cmd             1
     2019-09-27 00:14:08   cmd_event       PID_HZFHEM
     2019-09-27 00:14:08   cmd_nr          1
     2019-09-27 00:14:45   error           { Log3(undef, 4, "DF_F2F_PID Event: actuation: 6"); my ($reading,$value) = split(/ /,"actuation: 6"); chop $reading; if($reading eq "actuation"){ fhem("setreading DF_F2F_PID _event actuation: 6"); fhem("setreading DF_F2F_PID _events actuation: 6"); fhem("setreading DF_F2F_PID _device PID_HZFHEM"); fhem("setreading DF_F2F_PID _value $value"); fhem("setreading DF_F2F_PID _reading $reading"); Log3(undef, 0, "DF_F2F_PID Reading: $reading"); my $order; if($value >=0 && $value <=270){ $order = "set Mischer_HZG position $value"; Log3(undef, 0, "DF_F2F_PID Order fhem(): $order"); fhem($order); }elsif($value == 0){ $order = "set Relais2_FUBO_kalt on-for-timer 20"; Log3(undef, 0, "DF_F2F_PID Order autoreset: $order"); fhem($order); }elsif($value != int($value)){ Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value"); } } }: Device is locked, try again later. Your command is discarded.
     2019-09-27 00:12:28   mode            enabled
     2019-09-27 00:14:08   state           cmd_1
   Regex:
     accu:
     cond:
       :
         0:
           "^PID_HZFHEM$" ^PID_HZFHEM$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('^PID_HZFHEM$',$hash,'',0)
   do:
     0:
       0          { Log3(undef, 4, "DF_F2F_PID Event: $EVENT"); my ($reading,$value) = split(/ /,"$EVENT"); chop $reading; if($reading eq "actuation"){ fhem("setreading DF_F2F_PID _event $EVENT"); fhem("setreading DF_F2F_PID _events $EVENTS"); fhem("setreading DF_F2F_PID _device $DEVICE"); fhem("setreading DF_F2F_PID _value $value"); fhem("setreading DF_F2F_PID _reading $reading"); Log3(undef, 0, "DF_F2F_PID Reading: $reading"); my $order; if($value >=0 && $value <=270){ $order = "set Mischer_HZG position $value"; Log3(undef, 0, "DF_F2F_PID Order fhem(): $order"); fhem($order); }elsif($value == 0){ $order = "set Relais2_FUBO_kalt on-for-timer 20"; Log3(undef, 0, "DF_F2F_PID Order autoreset: $order"); fhem($order); }elsif($value != int($value)){ Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value"); } } }
     1:
   helper:
     DEVFILTER  ^global$|^PID_HZFHEM$
     NOTIFYDEV  global|PID_HZFHEM
     event      delta: 0.940000000000001
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   PID_HZFHEM
     timerevent delta: 0.940000000000001
     triggerDev PID_HZFHEM
     DOIF_eventa:
       cmd_nr: 1
       cmd: 1
       cmd_event: PID_HZFHEM
       cmd_1
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: PID_HZFHEM
       state: cmd_1
     timerevents:
       delta: 0.940000000000001
     timereventsState:
       delta: 0.940000000000001
     triggerEvents:
       delta: 0.940000000000001
     triggerEventsState:
       delta: 0.940000000000001
   internals:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       FHEM2FHEM,STELLMOTOR,_doif


Das schreibt mir das Log voll mit :

Zitat27 00:09:30.572 DOIF DF_F2F_PID error: { Log3(undef, 4, "DF_F2F_PID Event: actuation: 6"); my ($reading,$value) = split(/ /,"actuation: 6"); chop $reading;  if($reading eq "actuation"){  fhem("setreading DF_F2F_PID _event actuation: 6");  fhem("setreading DF_F2F_PID _events actuation: 6");  fhem("setreading DF_F2F_PID _device PID_HZFHEM");  fhem("setreading DF_F2F_PID _value $value");  fhem("setreading DF_F2F_PID _reading $reading");  Log3(undef, 0, "DF_F2F_PID Reading: $reading");  my $order;  if($value >=0 && $value <=270){  $order = "set Mischer_HZG position $value";  Log3(undef, 0, "DF_F2F_PID Order fhem(): $order");  fhem($order);  }elsif($value == 0){      $order = "set Relais2_FUBO_kalt on-for-timer 20";  Log3(undef, 0, "DF_F2F_PID Order autoreset: $order");  fhem($order);  }elsif($value != int($value)){  Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value");  }  } }: Device is locked, try again later. Your command is discarded.
2019-09-27 00:09:30.582 DOIF DF_F2F_PID error: { Log3(undef, 4, "DF_F2F_PID Event: actuation: 11"); my ($reading,$value) = split(/ /,"actuation: 11"); chop $reading;  if($reading eq "actuation"){  fhem("setreading DF_F2F_PID _event actuation: 11");  fhem("setreading DF_F2F_PID _events actuation: 11");  fhem("setreading DF_F2F_PID _device PID_HZFHEM");  fhem("setreading DF_F2F_PID _value $value");  fhem("setreading DF_F2F_PID _reading $reading");  Log3(undef, 0, "DF_F2F_PID Reading: $reading");  my $order;  if($value >=0 && $value <=270){  $order = "set Mischer_HZG position $value";  Log3(undef, 0, "DF_F2F_PID Order fhem(): $order");  fhem($order);  }elsif($value == 0){      $order = "set Relais2_FUBO_kalt on-for-timer 20";  Log3(undef, 0, "DF_F2F_PID Order autoreset: $order");  fhem($order);  }elsif($value != int($value)){  Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value");  }  } }: Device is locked, try again later. Your command is discarded.
2019-09-27 00:09:30.595 DOIF DF_F2F_PID error: { Log3(undef, 4, "DF_F2F_PID Event: actuation: 6"); my ($reading,$value) = split(/ /,"actuation: 6"); chop $reading;  if($reading eq "actuation"){  fhem("setreading DF_F2F_PID _event actuation: 6");  fhem("setreading DF_F2F_PID _events actuation: 6");  fhem("setreading DF_F2F_PID _device PID_HZFHEM");  fhem("setreading DF_F2F_PID _value $value");  fhem("setreading DF_F2F_PID _reading $reading");  Log3(undef, 0, "DF_F2F_PID Reading: $reading");  my $order;  if($value >=0 && $value <=270){  $order = "set Mischer_HZG position $value";  Log3(undef, 0, "DF_F2F_PID Order fhem(): $order");  fhem($order);  }elsif($value == 0){      $order = "set Relais2_FUBO_kalt on-for-timer 20";  Log3(undef, 0, "DF_F2F_PID Order autoreset: $order");  fhem($order);  }elsif($value != int($value)){  Log3(undef, 0, "DF_F2F_PID Fehler. Value: $value");  }  } }: Device is locked, try again later. Your command is discarded.
2019-09-27 00:09:30.


Für mich sieht es so aus, als würde das DOIF zu oft triggern.
Eigentlich soll es auf Events vom PID_HZFHEM reagieren, der auf dem Newfhem-System läuft. Weil dann zu viele Kommandos kommen, blockt STELLMOTOR das dann ab.

Könntest du da bitte mal drüberschauen und deine Meinung äussern?
Ich versuch das dann solange mal umzubauen, damit meine Heizung wieder läuft :)

lg,
Stephan
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 27 September 2019, 00:38:07
Mit downgrade auf version 60d38d5b29c4f51e6a4f3048fdcfbf37e5dc2eb2 ist zumindest das Log erstmal wieder schmaler. Jetzt versuch ich meine Heizung wieder zur mitarbeit zu überreden ;) -  mit der alten Version läufts sofort wieder wie vorher.
Ich warte dann jetzt mal auf dich und teste gerne neue Versionen.

Danke für deine Hilfe,
Stephan
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 27 September 2019, 07:49:06
Naja, das Modul soll lt. Definition auf alle Events von PID_HZFHEM reagieren, das tut es offensichtlich auch. Du könntest  $device mitloggen, wenn da etwas ungleich PID_HZFHEM kommt, dann wäre was faul.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Per am 27 September 2019, 13:06:05
Zitat von: abc2006 am 27 September 2019, 00:19:41Hier ist ein list des DF auf meinem raspi "hzfhem":
Das sieht aber prädestiniert für den Perl-Mode aus ;)
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Ellert am 27 September 2019, 15:22:36
Möglicherweise handelt es sich um diesen Sachverhalt https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche#Besonderheit_des_Error-Reading
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: abc2006 am 28 September 2019, 13:16:12
Zitat von: Per am 27 September 2019, 13:06:05
Das sieht aber prädestiniert für den Perl-Mode aus ;)

Ja, jetzt wo du es sagst :) Ich glaube aber, das Doif selbst ist noch aus Zeiten vor dem Perl-Modus... und solange es funktioniert, hatte ich nie das Bedürfnis, das zu ändern :) der Raspi langweilt sich eh :P

Zitat von: Ellert am 27 September 2019, 15:22:36
Möglicherweise handelt es sich um diesen Sachverhalt https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche#Besonderheit_des_Error-Reading

Danke für den Tipp,
tatsächlich habe ich gestern herausgefunden, dass es sich um eine Art FHEM2FHEM-Schleife handelte. Da die beiden Regexe unterschiedlich waren, ist mir nicht aufgefallen, dass beide auf das gleiche Event triggern. Ein Rätsel ist mir aber noch, warum es dann erst nach dem DOIF-Update Fehler produziert hat...

Danke euch, mittlerweile läuft alles (was ich im Blick habe) wieder stabil :)
Stephan
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 27 Februar 2022, 12:56:29
Zitat von: Damian am 24 September 2019, 15:04:18
Die angehängte Version sollte jetzt auch mit FHEM2FHEM klarkommen.

Edit: neue Version eingecheckt

Hallo Damian, ich habe heute seit einiger Zeit  (ca. 1-2mon) wieder ein Update gemacht und wieder das gleiche Problem wie damals, das doif nicht mehr auf FHEM2FHEM Triggert. Hast du eine Idee?
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: Damian am 27 Februar 2022, 16:18:07
Zitat von: hackepeter am 27 Februar 2022, 12:56:29
Hallo Damian, ich habe heute seit einiger Zeit  (ca. 1-2mon) wieder ein Update gemacht und wieder das gleiche Problem wie damals, das doif nicht mehr auf FHEM2FHEM Triggert. Hast du eine Idee?

Schau mal hier: https://forum.fhem.de/index.php/topic,103401.msg1209234.html#msg1209234

Ich hoffe, du kannst die fehlenden Devices bei dir anlegen.
Titel: Antw:FHEM Absturz nach DOIF Änderung und checkall
Beitrag von: hackepeter am 28 Februar 2022, 07:50:28
Danke, nach anlegen der Dummys funktioniert es.