Zwei idente DOIFS - eines läuft, eines macht Probleme

Begonnen von mober, 26 Januar 2017, 10:46:17

Vorheriges Thema - Nächstes Thema

mober

Liebe FHEM-Freunde!

Ich beiß mir gerade die Zähne aus - und seh' womöglich deswegen den Fehler nicht.

Immer wenn sich einer meiner 1-wire Temperatursensoren aktualisiert landet folgender Stacktrace im Log (hier gleich drei Mal, um zu zeigen dass dazwischen nichts geloggt wird).


2017.01.26 10:34:12 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at (eval 8299) line 1, <DATA> line 2.
2017.01.26 10:34:12 1: stacktrace:
2017.01.26 10:34:12 1:     main::__ANON__                      called by (eval 8299) (1)
2017.01.26 10:34:12 1:     (eval)                              called by /usr/share/fhem/FHEM/98_DOIF.pm (1060)
2017.01.26 10:34:12 1:     main::DOIF_CheckCond                called by /usr/share/fhem/FHEM/98_DOIF.pm (1319)
2017.01.26 10:34:12 1:     main::DOIF_Trigger                  called by /usr/share/fhem/FHEM/98_DOIF.pm (1438)
2017.01.26 10:34:12 1:     main::DOIF_Notify                   called by /usr/bin/fhem.pl (3302)
2017.01.26 10:34:12 1:     main::CallFn                        called by /usr/bin/fhem.pl (3223)
2017.01.26 10:34:12 1:     main::DoTrigger                     called by /usr/bin/fhem.pl (4153)
2017.01.26 10:34:12 1:     main::readingsEndUpdate             called by /usr/share/fhem/FHEM/58_GPIO4.pm (141)
2017.01.26 10:34:12 1:     main::GPIO4_Get                     called by /usr/share/fhem/FHEM/58_GPIO4.pm (123)
2017.01.26 10:34:12 1:     main::GPIO4_DeviceUpdateLoop        called by /usr/bin/fhem.pl (2900)
2017.01.26 10:34:12 1:     main::HandleTimeout                 called by /usr/bin/fhem.pl (606)
2017.01.26 10:34:43 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at (eval 8672) line 1, <DATA> line 2.
2017.01.26 10:34:43 1: stacktrace:
2017.01.26 10:34:43 1:     main::__ANON__                      called by (eval 8672) (1)
2017.01.26 10:34:43 1:     (eval)                              called by /usr/share/fhem/FHEM/98_DOIF.pm (1060)
2017.01.26 10:34:43 1:     main::DOIF_CheckCond                called by /usr/share/fhem/FHEM/98_DOIF.pm (1319)
2017.01.26 10:34:43 1:     main::DOIF_Trigger                  called by /usr/share/fhem/FHEM/98_DOIF.pm (1438)
2017.01.26 10:34:43 1:     main::DOIF_Notify                   called by /usr/bin/fhem.pl (3302)
2017.01.26 10:34:43 1:     main::CallFn                        called by /usr/bin/fhem.pl (3223)
2017.01.26 10:34:43 1:     main::DoTrigger                     called by /usr/bin/fhem.pl (4153)
2017.01.26 10:34:43 1:     main::readingsEndUpdate             called by /usr/share/fhem/FHEM/58_GPIO4.pm (141)
2017.01.26 10:34:43 1:     main::GPIO4_Get                     called by /usr/share/fhem/FHEM/58_GPIO4.pm (123)
2017.01.26 10:34:43 1:     main::GPIO4_DeviceUpdateLoop        called by /usr/bin/fhem.pl (2900)
2017.01.26 10:34:43 1:     main::HandleTimeout                 called by /usr/bin/fhem.pl (606)
2017.01.26 10:35:14 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at (eval 8970) line 1, <DATA> line 2.
2017.01.26 10:35:14 1: stacktrace:
2017.01.26 10:35:14 1:     main::__ANON__                      called by (eval 8970) (1)
2017.01.26 10:35:14 1:     (eval)                              called by /usr/share/fhem/FHEM/98_DOIF.pm (1060)
2017.01.26 10:35:14 1:     main::DOIF_CheckCond                called by /usr/share/fhem/FHEM/98_DOIF.pm (1319)
2017.01.26 10:35:14 1:     main::DOIF_Trigger                  called by /usr/share/fhem/FHEM/98_DOIF.pm (1438)
2017.01.26 10:35:14 1:     main::DOIF_Notify                   called by /usr/bin/fhem.pl (3302)
2017.01.26 10:35:14 1:     main::CallFn                        called by /usr/bin/fhem.pl (3223)
2017.01.26 10:35:14 1:     main::DoTrigger                     called by /usr/bin/fhem.pl (4153)
2017.01.26 10:35:14 1:     main::readingsEndUpdate             called by /usr/share/fhem/FHEM/58_GPIO4.pm (141)
2017.01.26 10:35:14 1:     main::GPIO4_Get                     called by /usr/share/fhem/FHEM/58_GPIO4.pm (123)
2017.01.26 10:35:14 1:     main::GPIO4_DeviceUpdateLoop        called by /usr/bin/fhem.pl (2900)
2017.01.26 10:35:14 1:     main::HandleTimeout                 called by /usr/bin/fhem.pl (606)


Nun konnte ich es auf einen Sensor eingrenzen, und weiter auf ein mit ihm verknüpftes DOIF. Wo ich jetzt anstehe: Exakt die selbe Verknüpfung aus Sensor und DOIF gibt's in meiner Config ein zweites mal, einmal für's Obergeschoß und einmal für's Erdgeschoß. Obergeschoß läuft ohne Probleme, Erdgeschoß liefert ständig diesen Fehler.
Außerdem habe ich das Problem, dass FHEM zufällig nach 20 Minuten bis 24 Stunden sich neu startet und ich auch mit verbose 5 und stacktrace nicht sehen kann, woran es liegt. Jetzt hoffe ich auf einen Zusammenhang mit dem DOIF.

Also hier das Probleme verursachende Erdgeschoß:

Internals:
   DEF        10-0008032d9bad
   NAME       1w_ds1820_Ruecklauf_EG
   NR         246
   NTFY_ORDER 50-1w_ds1820_Ruecklauf_EG
   STATE      27.9°C
   TYPE       GPIO4
   Readings:
     2017-01-26 10:22:18   failures        0
     2017-01-26 10:40:55   state           T: 28.187
     2017-01-26 10:40:49   temperature     27.937
   Fhem:
     interfaces temperature
Attributes:
   alias      Umlaufpumpe Rücklauf
   event-min-interval temperature.*:300
   event-on-change-reading temperature:0.5,failures,state
   group      Heizung und Temperatur EG
   icon       sani_heating_temp
   model      DS1820
   pollingInterval 30
   room       Heizung
   sortby     z80
   stateFormat {sprintf("%.1f°C", ReadingsVal($name,"temperature",0))}
   timestamp-on-change-reading .*



Internals:
   DEF        (
[gpio_Umlaufpumpe_EG:valvepositionsMean] < 0.3
and [gpio_Umlaufpumpe_EG:temperatureDiffsMean] < 0
and [1w_ds1820_Ruecklauf_EG:temperature] > [gpio_Umlaufpumpe_EG:RuecklaufMin]
and [1w_ds1820_Ruecklauf_EG:temperature] < [gpio_Umlaufpumpe_EG:RuecklaufMax]
and [gpio_Umlaufpumpe_EG:demand] eq "on"
)
(
setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( [gpio_Umlaufpumpe_EG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_EG:temperatureDiffsMean] / 60 )}
)
DOELSEIF
(
(
  [gpio_Umlaufpumpe_EG:valvepositionsMean] >= 0.7
  or [doif_MAX_HK_EG_K_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_EG_B_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_EG_W_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_EG_S_desiredTemperature] =~ "exhausted|recovering"
)
and [gpio_Umlaufpumpe_EG:temperatureDiffsMean] > 0
and [1w_ds1820_Ruecklauf_EG:temperature] > [gpio_Umlaufpumpe_EG:RuecklaufMin]
and [1w_ds1820_Ruecklauf_EG:temperature] < [gpio_Umlaufpumpe_EG:RuecklaufMax]
and [gpio_Umlaufpumpe_EG:demand] eq "on"
)
(
setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( [gpio_Umlaufpumpe_EG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_EG:temperatureDiffsMean] / 60 )}
)
DOELSEIF
(
[gpio_Umlaufpumpe_EG:valvepositionsMean] < 0.5
and [1w_ds1820_Ruecklauf_EG:temperature] < [gpio_Umlaufpumpe_EG:RuecklaufMin]
and [gpio_Umlaufpumpe_EG:demand] eq "on"
and [gpio_Umlaufpumpe_EG:desiredTemperaturesMean:sec] > 5
)
(
setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_EG::") - ReadingsNum("gpio_Umlaufpumpe_EG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
)
DOELSEIF
(
[gpio_Umlaufpumpe_EG:valvepositionsMean] > 0.5
and [1w_ds1820_Ruecklauf_EG:temperature] > [gpio_Umlaufpumpe_EG:RuecklaufMax]
and [gpio_Umlaufpumpe_EG:demand] eq "on"
and [gpio_Umlaufpumpe_EG:desiredTemperaturesMean:sec] > 5
)
(
setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_EG::") - ReadingsNum("gpio_Umlaufpumpe_EG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
)
DOELSE
(
)
   NAME       doif_gpio_Umlaufpumpe_EG_RuecklaufMinCorr
   NR         252
   NTFY_ORDER 50-doif_gpio_Umlaufpumpe_EG_RuecklaufMinCorr
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2017-01-26 10:41:25   Device          1w_ds1820_Ruecklauf_EG
     2017-01-26 10:41:26   cmd             5
     2017-01-26 10:41:26   cmd_event       1w_ds1820_Ruecklauf_EG
     2017-01-26 10:41:26   cmd_nr          5
     2017-01-26 10:41:25   e_1w_ds1820_Ruecklauf_EG_temperature 29.25
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_RuecklaufMax 28.1893333333336
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_RuecklaufMin 25.6266666666669
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_demand on
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_desiredTemperaturesMean 18
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_temperatureDiffsMean -1.43333333333333
     2017-01-26 10:41:22   e_gpio_Umlaufpumpe_EG_valvepositionsMean 0.19
     2017-01-26 10:41:26   state           cmd_5
     2017-01-26 10:41:22   wait_timer      no timer
   Condition:
     0            ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','valvepositionsMean') < 0.3  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','temperatureDiffsMean') < 0  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMin')  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','demand') eq "on"
     1            (   ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','valvepositionsMean') >= 0.7   or InternalDoIf($hash,'doif_MAX_HK_EG_K_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_EG_B_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_EG_W_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_EG_S_desiredTemperature','STATE') =~ "exhausted|recovering"  )  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','temperatureDiffsMean') > 0  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMin')  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','demand') eq "on"
     2            ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','valvepositionsMean') < 0.5  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMin')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','demand') eq "on"  and ReadingSecDoIf('gpio_Umlaufpumpe_EG','desiredTemperaturesMean') > 5
     3            ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','valvepositionsMean') > 0.5  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_EG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_EG','demand') eq "on"  and ReadingSecDoIf('gpio_Umlaufpumpe_EG','desiredTemperaturesMean') > 5
   Devices:
     0           gpio_Umlaufpumpe_EG 1w_ds1820_Ruecklauf_EG
     1           gpio_Umlaufpumpe_EG doif_MAX_HK_EG_K_desiredTemperature doif_MAX_HK_EG_B_desiredTemperature doif_MAX_HK_EG_W_desiredTemperature doif_MAX_HK_EG_S_desiredTemperature 1w_ds1820_Ruecklauf_EG
     2           gpio_Umlaufpumpe_EG 1w_ds1820_Ruecklauf_EG
     3           gpio_Umlaufpumpe_EG 1w_ds1820_Ruecklauf_EG
     all         gpio_Umlaufpumpe_EG 1w_ds1820_Ruecklauf_EG doif_MAX_HK_EG_K_desiredTemperature doif_MAX_HK_EG_B_desiredTemperature doif_MAX_HK_EG_W_desiredTemperature doif_MAX_HK_EG_S_desiredTemperature
   Do:
     0:
       0            setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( [gpio_Umlaufpumpe_EG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_EG:temperatureDiffsMean] / 60 )}
     1:
       0            setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( [gpio_Umlaufpumpe_EG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_EG:temperatureDiffsMean] / 60 )}
     2:
       0            setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_EG::") - ReadingsNum("gpio_Umlaufpumpe_EG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
     3:
       0            setreading gpio_Umlaufpumpe_EG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_EG::") - ReadingsNum("gpio_Umlaufpumpe_EG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
     4:
       0
   Helper:
     event      T: 29.437
     globalinit 1
     last_timer 0
     sleepdevice 1w_ds1820_Ruecklauf_EG
     sleepsubtimer 0
     sleeptimer -1
     timerdev   1w_ds1820_Ruecklauf_EG
     timerevent T: 29.437
     triggerDev 1w_ds1820_Ruecklauf_EG
     timerevents:
       T: 29.437
     timereventsState:
       state: T: 29.437
     triggerEvents:
       T: 29.437
     triggerEventsState:
       state: T: 29.437
   Internals:
     1           doif_MAX_HK_EG_K_desiredTemperature:STATE doif_MAX_HK_EG_B_desiredTemperature:STATE doif_MAX_HK_EG_W_desiredTemperature:STATE doif_MAX_HK_EG_S_desiredTemperature:STATE
     all         doif_MAX_HK_EG_K_desiredTemperature:STATE doif_MAX_HK_EG_B_desiredTemperature:STATE doif_MAX_HK_EG_W_desiredTemperature:STATE doif_MAX_HK_EG_S_desiredTemperature:STATE
   Itimer:
   Readings:
     0           gpio_Umlaufpumpe_EG:valvepositionsMean gpio_Umlaufpumpe_EG:temperatureDiffsMean 1w_ds1820_Ruecklauf_EG:temperature gpio_Umlaufpumpe_EG:RuecklaufMin gpio_Umlaufpumpe_EG:RuecklaufMax gpio_Umlaufpumpe_EG:demand
     1           gpio_Umlaufpumpe_EG:valvepositionsMean gpio_Umlaufpumpe_EG:temperatureDiffsMean 1w_ds1820_Ruecklauf_EG:temperature gpio_Umlaufpumpe_EG:RuecklaufMin gpio_Umlaufpumpe_EG:RuecklaufMax gpio_Umlaufpumpe_EG:demand
     2           gpio_Umlaufpumpe_EG:valvepositionsMean 1w_ds1820_Ruecklauf_EG:temperature gpio_Umlaufpumpe_EG:RuecklaufMin gpio_Umlaufpumpe_EG:demand gpio_Umlaufpumpe_EG:desiredTemperaturesMean
     3           gpio_Umlaufpumpe_EG:valvepositionsMean 1w_ds1820_Ruecklauf_EG:temperature gpio_Umlaufpumpe_EG:RuecklaufMax gpio_Umlaufpumpe_EG:demand gpio_Umlaufpumpe_EG:desiredTemperaturesMean
     all         gpio_Umlaufpumpe_EG:valvepositionsMean gpio_Umlaufpumpe_EG:temperatureDiffsMean 1w_ds1820_Ruecklauf_EG:temperature gpio_Umlaufpumpe_EG:RuecklaufMin gpio_Umlaufpumpe_EG:RuecklaufMax gpio_Umlaufpumpe_EG:demand gpio_Umlaufpumpe_EG:desiredTemperaturesMean
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Trigger:
Attributes:
   do         always
   repeatcmd  60:60:3600:3600:0
   wait       60:60:3600:3600:0


Und hier das selbe funktionierend für's Obergeschoß:

Internals:
   CHANGED
   DEF        10-0008032d80fd
   NAME       1w_ds1820_Ruecklauf_OG
   NR         56
   NTFY_ORDER 50-1w_ds1820_Ruecklauf_OG
   STATE      51.8°C
   TYPE       GPIO4
   Readings:
     2017-01-26 10:22:08   failures        0
     2017-01-26 10:41:16   state           T: 51.875
     2017-01-26 10:40:14   temperature     51.812
   Fhem:
     interfaces temperature
Attributes:
   alias      Umlaufpumpe Rücklauf
   event-min-interval temperature.*:300
   event-on-change-reading temperature:0.5,failures,state
   group      Heizung und Temperatur OG
   icon       sani_heating_temp
   model      DS1820
   pollingInterval 30
   room       Heizung
   sortby     z80
   stateFormat {sprintf("%.1f°C", ReadingsVal($name,"temperature",0))}
   timestamp-on-change-reading .*



Internals:
   DEF        (
[gpio_Umlaufpumpe_OG:valvepositionsMean] < 0.3
and [gpio_Umlaufpumpe_OG:temperatureDiffsMean] < 0
and [1w_ds1820_Ruecklauf_OG:temperature] > [gpio_Umlaufpumpe_OG:RuecklaufMin]
and [1w_ds1820_Ruecklauf_OG:temperature] < [gpio_Umlaufpumpe_OG:RuecklaufMax]
and [gpio_Umlaufpumpe_OG:demand] eq "on"
)
(
setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( [gpio_Umlaufpumpe_OG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_OG:temperatureDiffsMean] / 60 )}
)
DOELSEIF
(
(
  [gpio_Umlaufpumpe_OG:valvepositionsMean] >= 0.7
  or [doif_MAX_HK_OG_K_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_OG_B_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_OG_W_desiredTemperature] =~ "exhausted|recovering"
  or [doif_MAX_HK_OG_S_desiredTemperature] =~ "exhausted|recovering"
)
and [gpio_Umlaufpumpe_OG:temperatureDiffsMean] > 0
and [1w_ds1820_Ruecklauf_OG:temperature] > [gpio_Umlaufpumpe_OG:RuecklaufMin]
and [1w_ds1820_Ruecklauf_OG:temperature] < [gpio_Umlaufpumpe_OG:RuecklaufMax]
and [gpio_Umlaufpumpe_OG:demand] eq "on"
)
(
setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( [gpio_Umlaufpumpe_OG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_OG:temperatureDiffsMean] / 60 )}
)
DOELSEIF
(
[gpio_Umlaufpumpe_OG:valvepositionsMean] < 0.5
and [1w_ds1820_Ruecklauf_OG:temperature] < [gpio_Umlaufpumpe_OG:RuecklaufMin]
and [gpio_Umlaufpumpe_OG:demand] eq "on"
and [gpio_Umlaufpumpe_OG:desiredTemperaturesMean:sec] > 5
)
(
setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_OG::") - ReadingsNum("gpio_Umlaufpumpe_OG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
)
DOELSEIF
(
[gpio_Umlaufpumpe_OG:valvepositionsMean] > 0.5
and [1w_ds1820_Ruecklauf_OG:temperature] > [gpio_Umlaufpumpe_OG:RuecklaufMax]
and [gpio_Umlaufpumpe_OG:demand] eq "on"
and [gpio_Umlaufpumpe_OG:desiredTemperaturesMean:sec] > 5
)
(
setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_OG::") - ReadingsNum("gpio_Umlaufpumpe_OG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
)
DOELSE
(
)
   NAME       doif_gpio_Umlaufpumpe_OG_RuecklaufMinCorr
   NR         250
   NTFY_ORDER 50-doif_gpio_Umlaufpumpe_OG_RuecklaufMinCorr
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2017-01-26 10:42:18   Device          1w_ds1820_Ruecklauf_OG
     2017-01-26 10:42:18   cmd             5
     2017-01-26 10:42:18   cmd_event       1w_ds1820_Ruecklauf_OG
     2017-01-26 10:42:18   cmd_nr          5
     2017-01-26 10:42:18   e_1w_ds1820_Ruecklauf_OG_temperature 51.812
     2017-01-26 10:26:30   e_doif_MAX_HK_OG_B_desiredTemperature_STATE initialized
     2017-01-26 10:26:30   e_doif_MAX_HK_OG_K_desiredTemperature_STATE initialized
     2017-01-26 10:26:31   e_doif_MAX_HK_OG_S_desiredTemperature_STATE initialized
     2017-01-26 10:26:31   e_doif_MAX_HK_OG_W_desiredTemperature_STATE initialized
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_RuecklaufMax 55.3905000000011
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_RuecklaufMin 50.355000000001
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_demand on
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_desiredTemperaturesMean 18.875
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_temperatureDiffsMean -0.275
     2017-01-26 10:39:33   e_gpio_Umlaufpumpe_OG_valvepositionsMean 0.335625
     2017-01-26 10:42:18   state           cmd_5
     2017-01-26 10:30:26   wait_timer      no timer
   Condition:
     0            ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','valvepositionsMean') < 0.3  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','temperatureDiffsMean') < 0  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMin')  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','demand') eq "on"
     1            (   ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','valvepositionsMean') >= 0.7   or InternalDoIf($hash,'doif_MAX_HK_OG_K_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_OG_B_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_OG_W_desiredTemperature','STATE') =~ "exhausted|recovering"   or InternalDoIf($hash,'doif_MAX_HK_OG_S_desiredTemperature','STATE') =~ "exhausted|recovering"  )  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','temperatureDiffsMean') > 0  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMin')  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','demand') eq "on"
     2            ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','valvepositionsMean') < 0.5  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') < ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMin')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','demand') eq "on"  and ReadingSecDoIf('gpio_Umlaufpumpe_OG','desiredTemperaturesMean') > 5
     3            ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','valvepositionsMean') > 0.5  and ReadingValDoIf($hash,'1w_ds1820_Ruecklauf_OG','temperature') > ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','RuecklaufMax')  and ReadingValDoIf($hash,'gpio_Umlaufpumpe_OG','demand') eq "on"  and ReadingSecDoIf('gpio_Umlaufpumpe_OG','desiredTemperaturesMean') > 5
   Devices:
     0           gpio_Umlaufpumpe_OG 1w_ds1820_Ruecklauf_OG
     1           gpio_Umlaufpumpe_OG doif_MAX_HK_OG_K_desiredTemperature doif_MAX_HK_OG_B_desiredTemperature doif_MAX_HK_OG_W_desiredTemperature doif_MAX_HK_OG_S_desiredTemperature 1w_ds1820_Ruecklauf_OG
     2           gpio_Umlaufpumpe_OG 1w_ds1820_Ruecklauf_OG
     3           gpio_Umlaufpumpe_OG 1w_ds1820_Ruecklauf_OG
     all         gpio_Umlaufpumpe_OG 1w_ds1820_Ruecklauf_OG doif_MAX_HK_OG_K_desiredTemperature doif_MAX_HK_OG_B_desiredTemperature doif_MAX_HK_OG_W_desiredTemperature doif_MAX_HK_OG_S_desiredTemperature
   Do:
     0:
       0            setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( [gpio_Umlaufpumpe_OG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_OG:temperatureDiffsMean] / 60 )}
     1:
       0            setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( [gpio_Umlaufpumpe_OG:RuecklaufMinCorr,0] + [gpio_Umlaufpumpe_OG:temperatureDiffsMean] / 60 )}
     2:
       0            setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_OG::") - ReadingsNum("gpio_Umlaufpumpe_OG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
     3:
       0            setreading gpio_Umlaufpumpe_OG RuecklaufMinCorr {( myAverage("3600","FileLog_Heizung","4:1w_ds1820_Ruecklauf_OG::") - ReadingsNum("gpio_Umlaufpumpe_OG","desiredTemperaturesMean",21) * 1.5 ) / 2;;}
     4:
       0
   Helper:
     event      T: 51.75
     globalinit 1
     last_timer 0
     sleepdevice 1w_ds1820_Ruecklauf_OG
     sleepsubtimer 0
     sleeptimer -1
     timerdev   1w_ds1820_Ruecklauf_OG
     timerevent T: 51.75
     triggerDev 1w_ds1820_Ruecklauf_OG
     timerevents:
       T: 51.75
     timereventsState:
       state: T: 51.75
     triggerEvents:
       T: 51.75
     triggerEventsState:
       state: T: 51.75
   Internals:
     1           doif_MAX_HK_OG_K_desiredTemperature:STATE doif_MAX_HK_OG_B_desiredTemperature:STATE doif_MAX_HK_OG_W_desiredTemperature:STATE doif_MAX_HK_OG_S_desiredTemperature:STATE
     all         doif_MAX_HK_OG_K_desiredTemperature:STATE doif_MAX_HK_OG_B_desiredTemperature:STATE doif_MAX_HK_OG_W_desiredTemperature:STATE doif_MAX_HK_OG_S_desiredTemperature:STATE
   Itimer:
   Readings:
     0           gpio_Umlaufpumpe_OG:valvepositionsMean gpio_Umlaufpumpe_OG:temperatureDiffsMean 1w_ds1820_Ruecklauf_OG:temperature gpio_Umlaufpumpe_OG:RuecklaufMin gpio_Umlaufpumpe_OG:RuecklaufMax gpio_Umlaufpumpe_OG:demand
     1           gpio_Umlaufpumpe_OG:valvepositionsMean gpio_Umlaufpumpe_OG:temperatureDiffsMean 1w_ds1820_Ruecklauf_OG:temperature gpio_Umlaufpumpe_OG:RuecklaufMin gpio_Umlaufpumpe_OG:RuecklaufMax gpio_Umlaufpumpe_OG:demand
     2           gpio_Umlaufpumpe_OG:valvepositionsMean 1w_ds1820_Ruecklauf_OG:temperature gpio_Umlaufpumpe_OG:RuecklaufMin gpio_Umlaufpumpe_OG:demand gpio_Umlaufpumpe_OG:desiredTemperaturesMean
     3           gpio_Umlaufpumpe_OG:valvepositionsMean 1w_ds1820_Ruecklauf_OG:temperature gpio_Umlaufpumpe_OG:RuecklaufMax gpio_Umlaufpumpe_OG:demand gpio_Umlaufpumpe_OG:desiredTemperaturesMean
     all         gpio_Umlaufpumpe_OG:valvepositionsMean gpio_Umlaufpumpe_OG:temperatureDiffsMean 1w_ds1820_Ruecklauf_OG:temperature gpio_Umlaufpumpe_OG:RuecklaufMin gpio_Umlaufpumpe_OG:RuecklaufMax gpio_Umlaufpumpe_OG:demand gpio_Umlaufpumpe_OG:desiredTemperaturesMean
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Trigger:
Attributes:
   do         always
   repeatcmd  60:60:3600:3600:0
   wait       60:60:3600:3600:0


Vielleicht hat der eine oder andere noch einen Tipp für mich?

Damian

Was ich dazu sagen kann ist, dass die Warning-Meldung bei der Auswertung einer der DOIF-Bedingung erzeugt wird - vermutlich aufgrund eines nicht existenten Readings.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mober

Danke für deinen Kommentar. Nun konnte ich's lösen.

Hab' mich zu sehr auf den ds1820 versteigt - der Fehler kam ja immer wenn dieser aktualisiert wurde. Es lag aber daran, dass einer der Räume im EG anders heißt als im OG und somit eines der doif...desiredTemperature =~ "exhausted|recovering" falsch war.