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?
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.
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.