Hallo Zusammen,
ich habe mir eine Heizungsregelung aufgebaut. PID20 leider habe ich in der LOG-Datei seit kurzem diese Fehlermeldung:
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Folgende weitere Info´s:
-Ist-Vorlauf wird über Onewire übergeben.
-Soll-Vorlauf wird über Außentemperatur(Onewire) und einen Notify berechnet und übergeben.
-Thresholdmodul starte die Regelung
Problem die LOG-Datei ist durch die vielen Einträge sehr unübersichtlich.
Könnte mir ggf. jemand mitteilen wo der Fehler liegt und wie ich ihn ggf. abstellen kann.
Danke
ZitatUse of uninitialized value $d in hash element at fhem.pl line 3281.
Du (oder ein Modul) rufst ReadingsVal(undefined, ....) auf.
ZitatUse of uninitialized value $d in hash element at fhem.pl line 3301.
das gleiche mit ReadingsTimestamp.
Falls das Problem auch nach einem FHEM-Neustart auftritt, dann wird $defs{undefined} irgendwo programmatisch angelegt, normal ist das aber nicht.
Vermutlich hast Du einen Fehler in Deiner PID20 Definiton, speziell bei der Angabe der Daten zum Sensor.
Hier die entsprechende Auszüge wie die einzelnen Module aufgerufen werden.
Hardware für Onewire ist ein AVR-NET-IO
Zitatdefine VL_Mischer1 ECMDDevice ONEWIRE 285a2d5005000006
attr VL_Mischer1 IODev NETIO_644_2
attr VL_Mischer1 room HZ-Haupthaus,HZ-Steuerung
attr VL_Mischer1 stateFormat { sprintf("%s°C", ReadingsVal("VL_Mischer1","T:",0)) }
und weiter über diesen Befehl
Zitatdefine 1Wire_Temp1 at +*00:00:30 get VL_Mischer1 T:
attr 1Wire_Temp1 room Sensoren
attr 1Wire_Temp1 verbose 2
define Log_VL_Mischer1 FileLog ./log/Temp_Haupt-%Y-%W.log VL_Mischer1:.*(temperature).*
attr Log_VL_Mischer1 room Heizung
Der PID20 ist wie folgt aufgebaut:
Zitatdefine PID_Mischer1H PID20 VL_Mischer1:temperature Mischer1H
attr PID_Mischer1H pidActorInterval 15
attr PID_Mischer1H pidActorLimitLower 1
attr PID_Mischer1H pidActorLimitUpper 100
attr PID_Mischer1H pidActorTreshold 2
attr PID_Mischer1H pidActorValueDecPlaces 0
attr PID_Mischer1H pidCalcInterval 15
attr PID_Mischer1H pidFactor_D 0
attr PID_Mischer1H pidFactor_I 2
attr PID_Mischer1H pidFactor_P 4
attr PID_Mischer1H room HZ-Haupthaus
Der PID wird Außentemperatur abhängt geschaltet.
Zitatdefine Mischer1_An THRESHOLD Aussentemperatur:temperature:1 PID_Mischer1H|set PID_Mischer1H stop|set PID_Mischer1H start
attr Mischer1_An number_format %.1f
attr Mischer1_An room HZ-Haupthaus
attr Mischer1_An state_cmd1_gt stop
attr Mischer1_An state_cmd2_lt start
attr Mischer1_An state_format _m _dv _sc
Der Threshold besitzt noch eine Wochentimer.
Die Vorlauftemperatur wird wie folgt berechnet und an die PID übergeben
Zitatdefine n_Vorlauf notify n_Vorlauf {\
my $TempAussen=(ReadingsVal("Aussentemperatur","temperature","nA"));;\
my $Steilheit=0.6;;\
my $TempVorlauf=((($TempAussen - 18) * (0 - 1) * $Steilheit ) +23);;\
fhem("set Vorlauf_Soll $TempVorlauf");;\
fhem("set PID_Mischer1H desired $TempVorlauf");;\
fhem("set PID_Mischer2M desired $TempVorlauf");;\
}
attr n_Vorlauf room Heizung
#
define n_Vorlauf_Soll at +*00:10 {if ((ReadingsVal("Aussentemperatur","temperature","nA"))> 15){fhem("set PID_Mischer1H desired 25");; fhem("set PID_Mischer2M desired 25")} else {fhem("trigger n_Vorlauf")}}
attr n_Vorlauf_Soll room HZ-Haupthaus,HZ-Mieter,HZ-Steuerung,Heizung
attr n_Vorlauf_Soll verbose 3
Zu Rudolf König:
Ja, direkt nach einem Neustart erscheinen die Fehlermeldungen im LOG.
Hi martinbaumert,
kannst du bitte die Ausgabe zu folgenden Befehlen schicken:
list PID_Mischer1H
list VL_Mischer1
list Mischer1H
Weiterhin bitte verbose-Level für 2 Minuten auf 5 stellen und Log-Auszug senden.
Tritt der Fehler nur beim Hochfahren von FHEM auf oder permanent (alle 15 Sekunden) ?
Wenn sensor und dessen reading nicht definiert sind, sollte dies beim Hochfahren von FHEM auch zu Fehlern in
der Log-Datei führen. Bitte dahingehend die Logdatei checken.
John
Hallo John
hier das List zu PID
ZitatInternals:
DEF VL_Mischer1:temperature Mischer1H
NAME PID_Mischer1H
NR 554
NTFY_ORDER 50-PID_Mischer1H
STATE processing
TYPE PID20
Readings:
2014-09-20 11:19:39 actuation 1
2014-09-20 11:19:39 actuationCalc 1.01999999999999
2014-09-20 11:19:39 delta -1.6
2014-09-20 11:19:39 desired 25
2014-09-20 11:19:39 measured 26.6
2014-09-20 11:19:39 p_d 0
2014-09-20 11:19:39 p_i 7.42
2014-09-20 11:19:39 p_p -6.40000000000001
2014-09-20 11:19:39 state processing
2014-09-09 22:29:46 vorlauf_soll 20
Helper:
actor Mischer1H
actorCommand
actorErrorAction freeze
actorErrorPos 0
actorInterval 15
actorKeepAlive 1800
actorLimitLower 1
actorLimitUpper 100
actorThreshold 2
actorTimestamp 2014-09-20 11:19:39
actorValueDecPlaces 0
adjust
calcInterval 30
deltaGradient 0.00662179737382508
deltaOld -1.6
deltaOldTS 2014-09-20 11:19:33
deltaTreshold 0
desiredName desired
disable 0
factor_D 0
factor_I 2
factor_P 4
isWindUP
measuredName measured
reading temperature
regexp ^([\+,\-]?\d+\.?\d*$)
reverseAction 0
sensor VL_Mischer1
sensorTimeout 3600
stopped 0
updateInterval 600
Attributes:
pidActorInterval 15
pidActorLimitLower 1
pidActorLimitUpper 100
pidActorTreshold 2
pidActorValueDecPlaces 0
pidCalcInterval 30
pidFactor_D 0
pidFactor_I 2
pidFactor_P 4
room HZ-Haupthaus
List zu VL_Mischer1
ZitatInternals:
DEF ONEWIRE 285a2d5005000006
IODev NETIO_644_2
NAME VL_Mischer1
NR 367
STATE 26.4
°C
TYPE ECMDDevice
Readings:
2014-09-20 11:21:33 T: 26.4
2014-09-20 11:21:33 state T: 26.4
2014-09-20 11:21:33 temperature 26.4
Fhem:
classname ONEWIRE
Cache:
Specials:
%NAME VL_Mischer1
%TYPE ECMDDevice
%devID 285a2d5005000006
Params:
devID 285a2d5005000006
Attributes:
IODev NETIO_644_2
room HZ-Haupthaus,HZ-Steuerung
stateFormat { sprintf("%s°C", ReadingsVal("VL_Mischer1","T:",0)) }
zu Mischer1H
ZitatInternals:
DEF FhemDev
NAME Mischer1H
NOTIFYDEV global
NR 547
NTFY_ORDER 50-Mischer1H
STATE 2
TYPE STELLMOTOR
Readings:
2014-09-10 22:24:08 DoResetAtStop 1410380648.16063
2014-09-19 23:23:34 OutType FhemDev
2014-09-19 20:24:18 command_queue 0
2014-09-20 11:19:09 lastStart 1411204749.15094
2014-09-20 11:19:16 locked 0
2014-09-20 11:19:39 position 1
2014-09-20 11:19:39 queue_lastdiff -0.935302933057149
2014-09-20 11:19:16 state 2
2014-09-20 11:19:16 stopTime 0
Attributes:
STMcalibrateDirection L
STMdebugToLog3 0
STMfhemDevRL Mischer1_Auf
STMfhemDevSTART Mischer1_Zu
STMinvertOut 0
STMlastDiffMax 1
STMmapOffCmd off
STMmapOnCmd on
STMmaxDriveSeconds 240
STMmaxTics 100
STMpollInterval 0.1
STMresetOtherDeviceAtCalibrate 0
STMrlType einzel
STMtimeTolerance 0.01
room HZ-Haupthaus
Bei LOG habe ich jetzt nur die 15 Sekunden kopiert danach kommt die Wiederholung.
Zitat2014.09.20 11:33:37 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:33:37 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 25.4
>
2014.09.20 11:33:37 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:33:37 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 25.4
>
2014.09.20 11:33:37 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:33:37 5: PID20 PID_Mischer1H: Notify.232 check event:<25.4
>
2014.09.20 11:33:37 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 11:33:37 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 25.4
>
2014.09.20 11:33:37 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 25.4
>
2014.09.20 11:33:40 3: PID20 PID_Mischer1H: Set.342 set PID_Mischer1H desired 25
2014.09.20 11:33:40 3: PID20 PID_Mischer2M: Set.342 set PID_Mischer2M desired 25
2014.09.20 11:34:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:34:03 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 25.4
>
2014.09.20 11:34:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:34:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 25.4
>
2014.09.20 11:34:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 11:34:03 5: PID20 PID_Mischer1H: Notify.232 check event:<25.4
>
2014.09.20 11:34:03 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 11:34:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 25.4
>
2014.09.20 11:34:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 25.4
>
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Kannst du bitte noch alle Attribute pidDebug* auf 1 setzen und noch eine Runde Log-Datei aufnehmen. (verbose 5)
Weiterhin bitte noch eine Auszug des Eventlogs zu VL_Mischer1.
John
Hier der Auszug aus der LOG-Datei
Zitat2014.09.20 12:53:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 24.7
>
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.247 Diff: delta[0.30] - deltaOld[0.30]= Diff[0.00]
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.258 tsDiff: tsDiff = 30.1697289943695
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.267 deltaGradient: (Diff[]/tsDiff[30.17]=deltaGradient per sec []
2014.09.20 12:53:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.7
>
2014.09.20 12:53:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.232 check event:<24.7
>
2014.09.20 12:53:33 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.7
>
2014.09.20 12:53:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 24.7
>
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.494 --------------------------
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.495 S1 sensorStr:24.7
sensorTS:2014-09-20 12:53:33
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.506 S2 timeOfDay:1411210414.58862 timeDiff:1.58786702156067 sensorTimeout:3600 --> sensorIsAlive:1
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.522 25.0
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.572 P1 delta:0.30 isWindup:
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.576 P2 pPortion:1.20 iPortion:24.42 dPortion:0.00 actuationCalc:25.62
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.614 A1 act:26 actDone:25 actThreshold:2 actDiff:1
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.638 A2 rsTS: rsUp: rsDown: noTrouble:1
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.644 A3 actTS:2014-09-20 12:52:03 actTimeDiff:91.60 actInterval:15-->actByTime:1
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.663 A4 (actByTh: && actByTime:1)||actKeepAlive:||rsLimit:=actnReq:
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.693 U1 actReq: updateAlive: --> updateReq:
2014.09.20 12:53:34 2: PID20 PID_Mischer1H: Calc.719 C1 stateStr:processing calcReq:1
2014.09.20 12:53:34 3: PID20 PID_Mischer1H: Set.342 set PID_Mischer1H desired 25
2014.09.20 12:53:34 3: PID20 PID_Mischer2M: Set.342 set PID_Mischer2M desired 25
2014.09.20 12:53:58 3: owo meinWetter: started: SendData
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc00 temp OC3 20.3
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc01 humidity OC3 83
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc02 wind_dir OC3 235
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc03 rain_today RegenmengeTag 0.294999999999959
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc04 wind_speed WindSpeed_mps 3.11
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc05 rain_1h RegenmengeLast1Hours 0
2014.09.20 12:53:59 3: owo meinWetter: reading: owoSrc06 rain_24h RegenmengeLast24Hours 13.865
2014.09.20 12:53:59 3: owo meinWetter: sending: name=59590G10d&lat=51.6422&long=8.4998&alt=&temp=20.3&humidity=83&wind_dir=235&rain_today=0.294999999999959&wind_speed=3.11&rain_1h=0&rain_24h=13.865&APPID=
2014.09.20 12:53:59 3: owo meinWetter: htmlResponse: 200 OK
2014.09.20 12:54:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 24.8
>
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.247 Diff: delta[0.20] - deltaOld[0.30]= Diff[-0.10]
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.258 tsDiff: tsDiff = 30.1697919368744
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.267 deltaGradient: (Diff[-0.10]/tsDiff[30.17]=deltaGradient per sec [-0.003315]
2014.09.20 12:54:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:54:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.232 check event:<24.8
>
2014.09.20 12:54:03 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:54:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 24.8
>
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.494 --------------------------
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.495 S1 sensorStr:24.8
sensorTS:2014-09-20 12:54:03
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.506 S2 timeOfDay:1411210444.62571 timeDiff:1.62541890144348 sensorTimeout:3600 --> sensorIsAlive:1
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.522 25.0
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.572 P1 delta:0.20 isWindup:
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.576 P2 pPortion:0.80 iPortion:24.62 dPortion:-0.00 actuationCalc:25.42
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.614 A1 act:25 actDone:25 actThreshold:2 actDiff:0
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.638 A2 rsTS: rsUp: rsDown: noTrouble:1
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.644 A3 actTS:2014-09-20 12:52:03 actTimeDiff:121.64 actInterval:15-->actByTime:1
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.663 A4 (actByTh: && actByTime:1)||actKeepAlive:||rsLimit:=actnReq:
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.693 U1 actReq: updateAlive: --> updateReq:
2014.09.20 12:54:04 2: PID20 PID_Mischer1H: Calc.719 C1 stateStr:processing calcReq:1
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
2014.09.20 12:54:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 24.8
>
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.247 Diff: delta[0.20] - deltaOld[0.20]= Diff[0.00]
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.258 tsDiff: tsDiff = 30.1715009212494
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.267 deltaGradient: (Diff[]/tsDiff[30.17]=deltaGradient per sec []
2014.09.20 12:54:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:54:33 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.232 check event:<24.8
>
2014.09.20 12:54:33 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:54:33 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 24.8
>
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.494 --------------------------
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.495 S1 sensorStr:24.8
sensorTS:2014-09-20 12:54:33
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.506 S2 timeOfDay:1411210474.77727 timeDiff:1.77676200866699 sensorTimeout:3600 --> sensorIsAlive:1
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.522 25.0
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.572 P1 delta:0.20 isWindup:
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.576 P2 pPortion:0.80 iPortion:24.82 dPortion:0.00 actuationCalc:25.62
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.614 A1 act:26 actDone:25 actThreshold:2 actDiff:1
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.638 A2 rsTS: rsUp: rsDown: noTrouble:1
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.644 A3 actTS:2014-09-20 12:52:03 actTimeDiff:151.82 actInterval:15-->actByTime:1
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.663 A4 (actByTh: && actByTime:1)||actKeepAlive:||rsLimit:=actnReq:
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.693 U1 actReq: updateAlive: --> updateReq:
2014.09.20 12:54:34 2: PID20 PID_Mischer1H: Calc.719 C1 stateStr:processing calcReq:1
2014.09.20 12:55:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.232 check event:<temperature: 24.8
>
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.247 Diff: delta[0.20] - deltaOld[0.20]= Diff[0.00]
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.258 tsDiff: tsDiff = 30.1691429615021
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.267 deltaGradient: (Diff[]/tsDiff[30.17]=deltaGradient per sec []
2014.09.20 12:55:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:55:03 4: PID20 PID_Mischer1H: Notify.225 check 1 readings for temperature
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.232 check event:<24.8
>
2014.09.20 12:55:03 4: PID20 PID_Mischer1H: Notify.225 check 2 readings for temperature
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T:: 24.8
>
2014.09.20 12:55:03 5: PID20 PID_Mischer1H: Notify.232 check event:<T: 24.8
>
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.494 --------------------------
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.495 S1 sensorStr:24.8
sensorTS:2014-09-20 12:55:03
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.506 S2 timeOfDay:1411210504.84265 timeDiff:1.8423490524292 sensorTimeout:3600 --> sensorIsAlive:1
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.522 25.0
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.572 P1 delta:0.20 isWindup:
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.576 P2 pPortion:0.80 iPortion:25.02 dPortion:0.00 actuationCalc:25.82
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.614 A1 act:26 actDone:25 actThreshold:2 actDiff:1
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.638 A2 rsTS: rsUp: rsDown: noTrouble:1
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.644 A3 actTS:2014-09-20 12:52:03 actTimeDiff:181.86 actInterval:15-->actByTime:1
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.663 A4 (actByTh: && actByTime:1)||actKeepAlive:||rsLimit:=actnReq:
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.693 U1 actReq: updateAlive: --> updateReq:
2014.09.20 12:55:04 2: PID20 PID_Mischer1H: Calc.719 C1 stateStr:processing calcReq:1
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Use of uninitialized value $d in hash element at fhem.pl line 3281.
Use of uninitialized value $d in hash element at fhem.pl line 3301.
Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
Use of uninitialized value $dev in hash element at fhem.pl line 3194.
Hallo John,
leider bin ich noch nicht so ganz lange Dabei und weiß nicht genau wie ein "Eventlog" zu VL_Mischer1 angelegt wird. Ich bitte um Unterstützung.
Danke
Martin
Hallo Martin,
kein Problem.
In der Web-Oberfläche von FHEM findest du den Menü-Punkt "Event Monitor", den musst du anklicken und einfach warten,
solange, bis die Events zum entsprechenden Device auftauchen.
John
Hallo John,
ich glaube das benötigen wir jetzt nicht mehr. Ich war mir eigentlich sicher, dass die Sache schon einmal ohne Probleme lief. Ich habe jetzt noch etwas Neues, was ggf. zur Problemlösung beitragen könnte.
Zeitlicher Ablauf.
- Mein Fehler, wenn man nicht immer auf dem Laufenden, mit dem Ende von FHEM auf der Fritzbox ist. :(
- Ursprünglich, da ich generell Update, hatte ich bereits OS 6.20 auf meiner Box. Problem FHEM starte nicht mehr. Auch zuvor ist mir dieses Problem aufgefallen, dass ich es immer wieder von Hand starten
musste. Poblemlösung aufgeschoben da Zeitmangel. >:( Jetzt musste ich mir Zeit nehmen.
- Da jedoch der Winter naht und bei uns die Heizungsregelung über die Anlage läuft. Wieder zurück auf 6.04 mit Grundinstallation von FHEM, update etc. und aufspielen der benötigen Module und
Startdateien. Glücklicherweise sichere ich von Zeit zu Zeit alles.
- In dieser Konfiguration treten diese Fehlermeldungen auf.
- Gestern Abend habe ich überlegt und es getan. FRITZ!OS 06.10-28634 BETA aufgespielt. Musste jedoch wieder von Hand FHEM starten. :'( - Jedoch keine Fehlermeldungen mehr in der LOG-Datein :) ???
Ich würde jetzt gerne diesen Stand behalten, wenn man es Einrichten kann, das FHEM wieder automatisch starte.
Martin
Hallo John,
ich bekomme bei meinem System (raspberry mit aktuellem rasbian und aktualisiertem fhem) dieselben Fehlermeldungen:
Zitat2014.10.15 10:26:29 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3328.
2014.10.15 10:26:29 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3348.
2014.10.15 10:26:29 1: PERL WARNING: Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
2014.10.15 10:26:29 1: PERL WARNING: Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
2014.10.15 10:26:29 1: PERL WARNING: Use of uninitialized value $dev in hash element at fhem.pl line 3241.
Hier der Auszug aus dem Logfile:
Zitat2014.10.15 10:24:29 4: HTTP FHEMWEB:127.0.0.1:34870 GET /fhem&detail=DG.BZ.MAX.HT.pid&detail=DG.BZ.MAX.HT.pid&dev.setDG.BZ.MAX.HT.pid=DG.BZ.MAX.HT.pid&cmd.setDG.BZ.MAX.HT.pid=set&arg.setDG.BZ.MAX.HT.pid=stop
2014.10.15 10:24:29 5: Cmd: >set DG.BZ.MAX.HT.pid stop<
2014.10.15 10:24:29 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3328.
2014.10.15 10:24:29 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3348.
2014.10.15 10:24:29 1: PERL WARNING: Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
2014.10.15 10:24:29 1: PERL WARNING: Use of uninitialized value $sensor in concatenation (.) or string at ./FHEM/98_PID20.pm line 496.
2014.10.15 10:24:29 1: PERL WARNING: Use of uninitialized value $dev in hash element at fhem.pl line 3241.
2014.10.15 10:24:29 5: Triggering DG.BZ.MAX.HT.pid (1 changes)
2014.10.15 10:24:29 5: Notify loop for DG.BZ.MAX.HT.pid stop
2014.10.15 10:24:29 4: eventTypes: PID20 DG.BZ.MAX.HT.pid stop -> stop
Das Problem scheint zu entstehen, wenn man einen PID20 Regler stopped. Danach gibt es zyklisch im 1 Minuten Takt diese Fehlermeldung. Auch ein anschließendes start behebt das Problem nicht. Nur ein Neustart von FHEM bringt abhilfe. Bei Bedarf kann ich gerne Logs und Infos nachliefern.
Gruß,
Gero
Ich habe mir den Code jetzt mal etwas angesehen. Meiner Meinung ist in der Funktion PID20_Set der Aufruf PID20_Calc($hash) falsch. Die Funktion erwartet den Namen als Parameter und holt sich den hash selbständig.
Mein korrigierter Code sieht wie folgt aus:
Zitatwhen ("stop")
{
return "Set stop needs a <value> parameter"
if ( @a != 2 );
$hash->{helper}{stopped} =1;
# PID20_Calc($hash);
PID20_Calc($name);
}
Bei mir scheint es nach der Änderung zu funktionieren. (Aber vielleicht liege ich auch falsch.)
Gruß,
Gero
Hallo Gero,
du liegst richtig, das ist ein BUG und deine Lösung ist der korrekte FIX.
John