FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 10 Oktober 2012, 16:42:16

Titel: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Guest am 10 Oktober 2012, 16:42:16
Originally posted by: <email address deleted>

Hi Rudi, hi zusammen,

ich habe gestern ein komplette "Re-Installation" von der release v5.2 auf
die aktuelle cvs durchgeführt.
Sprich, ich habe nicht mit updatefhem aktualisiert, sondern ausschließlich
meine config/statefile/logfiles gesichert und dann fhem komplett entfernt
und die aktuelle cvs von null neu installiert.
FHEM läuft bei mir auf einem Server-PC mit Ubuntu 10.10 Server-Edition.
Ich nutze per USB ein CUL V2 und ein WS300PC. Und per LAN noch ein HM-LAN.
Devices habe ich diverse FHT, TF-Sensoren, HM Aktoren, eine WS300
Wetterstation etc.

*Nun zum Fehlerbild:*
Nach dem Update startet FHEM zwar zunächst normal, auch ohne
Config-Fehlermeldungen, aber der Prozess stirbt nach kurzer Zeit
ausschließlich mit einer Ausgabe auf der Kommandozeile von der aus ich fhem
gestartet hatte.
=>  Die folgende Fehlermeldung wird für die neueste fhem.pl  *($Id: fhem.pl
1942 2012-10-09 19:19:15Z)* ausgegeben.
*" fhem.pl: readingsUpdateReading: you must call readingsBeginUpdate first.
at fhem.pl line 2904 "
=>  *Bei verbosity 3 wird in dem Moment nichts im Logfile ausgegeben.  Es
erfolgt auch kein "server shutdown" Eintrag oder ähnliches.  Außerdem wird
auch kein statefile geschrieben.
*
Was habe ich zunächst alles ausprobiert um den Fehler einzugrenzen:*
=>  Ich habe eine ältere cvs von Anfang Oktober getestet, bei der die
fhem.pl vom 30.09. (1905) war.  Gleiches Problem.
=>  Ich habe gegoogled nach "*readingsUpdateReading" *heraus gefunden, dass
es dabei um notifies geht.  Daraufhin habe ich alle notifies deaktiviert in
meiner Config, aber leider trotzdem gleiches Verhalten.
=>  Ich habe die verbosity auf 4 gesetzt. -  Ergebnis:  Auch keine Einträge
im Logfile beim crash.

*Was habe ich dann rausgefunden:*
Ich habe die verbosity auf 5 gesetzt und daraufhin festgestellt, dass der
crash jedes Mal dann statt findet, wenn fhem die WS300PC ausliest.
Und zwar nachdem das parsing für alle 8 Sensoren (ich habe einen
"Vollausbau") durchgeführt wurde.
*Das Parsing beginnt mit:*
2012.10.10 10:55:49 5: exec at command WS300Device_timer
2012.10.10 10:55:49 5: Cmd: >get WS300Device data<
2012.10.10 10:55:49 5: WS300_Get WS300Device data
2012.10.10 10:55:49 5: WS300/RAW: 16 3200101010101010101005003b00f2fc
2012.10.10 10:55:49 5: WS300/RAW: 42
31fb00034c03e81f00e72f00d83100d83200cf3300413900ac3d00624400663f0ff4000000eb2f03f1fc
2012.10.10 10:55:49 5: Sensor 1 vorhanden
2012.10.10 10:55:49 5: WS300 arbeitsztf: T: 23.1  H: 47  Bat: Ok  LR: 0
2012.10.10 10:55:49 5: Triggering arbeitsztf (5 changes)
2012.10.10 10:55:49 5: arbeitsztf trigger: Checking FileLog_... usw usw.

*Es werden dann die Daten für alle 8 Sensoren geparsed....*
*Sensor 8 ist dann die KS300, beginnt mit *
2012.10.10 10:55:49 5: Sensor 8 vorhanden
2012.10.10 10:55:49 5: WS300 ks300: T: 10.2  H: 63  W: 0  R: 988.3  IR: no  
Bat: Ok  LR: 0
2012.10.10 10:55:49 5: Triggering ks300 (9 changes)
2012.10.10 10:55:49 5: ks300 trigger: Checking FileLog_...... usw.
und endet als letzte Zeilen mit
2012.10.10 10:55:50 5: ks300 trigger: Checking wohnztflog for notify
2012.10.10 10:55:50 5: ks300 trigger: Checking wohnzwindow1log for notify

*An dieser Stelle kommt dann die genannte Fehlermeldung auf der Konsole und
der fhem prozess stirbt.
Ich habe daraufhin die WS300PC aus meiner Config auskommentiert und seitdem
läuft fhem stabil.
*
Es mag natürlich sein, dass ich ein Einzelfall bin, aber sooo ungewöhnlich
ist mein Setup ja eigentlich nicht.  :-)
Würde mich natürlich sehr freuen, wenn es einen workaround gibt oder der
Fehler beseitigt werden könnte.

Vielen Dank im Voraus!!

Ciao,
Jörn



*
*

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Dr. Boris Neubert am 10 Oktober 2012, 21:48:45
                                             

Hallo Jörn,

Am 10.10.2012 16:42, schrieb Lohi:
> =>  Die folgende Fehlermeldung wird für die neueste fhem.pl  *($Id:
> fhem.pl 1942 2012-10-09 19:19:15Z)* ausgegeben.
> /*" fhem.pl: readingsUpdateReading: you must call readingsBeginUpdate
> first. at fhem.pl line 2904 "*
> /Ich habe die verbosity auf 5 gesetzt und daraufhin festgestellt, dass
> der crash jedes Mal dann statt findet, wenn fhem die WS300PC ausliest.

das Problem hängt mit der von mir am 06.05.12 erledigten Umstellung von
WS300 auf das neue readingsUpdate-Verfahren zusammen. Allerdings wird
vor jedem Aufruf von readingsUpdate() auch readingsBeginUpdate()
aufgerufen. Sensor 8 läuft in in den Zweig ab Zeile 306 ein. Ich sehe
nicht, wo das Problem entsteht.

Kannst Du mal bitte in fhem.pl die Zeile 2905 (beginnt mit  die
"fhem.pl) durch diese Zeile ersetzen

    die "fhem.pl: readingsUpdate($name,$reading,$value): you must call
readingsBeginUpdate first.";

und dann Dein WS300 wieder aktivieren und dann die Fehlermeldung nochmal
hier posten? Danke.

Viele Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Guest am 11 Oktober 2012, 00:19:50
Originally posted by: <email address deleted>

Hi Boris,

klar, gerne.  Und vielen Dank für die schnelle Antwort!!
Damit kommen wir der Sache tatsächlich auf die Spur.
Es liegt offensichtlich an der Verarbeitung der vom WS300PC selbst
bereitgestellten Messwerte, also das "Unter-Device" Nr. 9  
Der Name ist bei mir " ws300tfp " und ich nutze es, weil damit der
Luftdruck gemessen wird.

*Output der Fehlermeldung ist:
*fhem.pl: readingsUpdateReading(ws300tfp,state,T: 22.5  H: 50  P: 1014.9  
Willi: 0): you must call readingsBeginUpdate first. at fhem.pl line 2904.

Ich habe aufgrund dieser Erkenntnis, das Device 9 auskommentiert in meiner
Config und nur die Devices 0 bis 8  (7 Temp/Feuchte-Fühler und 1 KS300)
aktiv gelassen. Dann läuft FHEM stabil.

Ciao,
Jörn


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Guest am 11 Oktober 2012, 00:21:44
Originally posted by: <email address deleted>

Hi Boris,

klar, gerne.  Und vielen Dank für die schnelle Antwort!!
Damit kommen wir der Sache tatsächlich auf die Spur.
Es liegt offensichtlich an der Verarbeitung der vom WS300PC selbst
bereitgestellten Messwerte, also das "Unter-Device" Nr. 9  
Der Name ist bei mir " ws300tfp " und ich nutze es, weil damit der
Luftdruck gemessen wird.

*Output der Fehlermeldung ist:
*fhem.pl: readingsUpdateReading(ws300tfp,state,T: 22.5  H: 50  P: 1014.9  
Willi: 0): you must call readingsBeginUpdate first. at fhem.pl line 2904.

Ich habe aufgrund dieser Erkenntnis, das Device 9 auskommentiert in meiner
Config und nur die Devices 0 bis 8  (8 Temp/Feuchte-Fühler und 1 KS300)
aktiv gelassen. Dann läuft FHEM stabil.

Ciao,
Jörn

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Dr. Boris Neubert am 11 Oktober 2012, 20:12:53
                                             

Am 11.10.2012 00:21, schrieb Lohi:
> Es liegt offensichtlich an der Verarbeitung der vom WS300PC selbst
> bereitgestellten Messwerte, also das "Unter-Device" Nr. 9
Danke Jörn. Nach angestrengtem In-den-Code-starren habe ich gesehen, daß
readingsBeginUpdate zwar in dem 9er-Zweig am Anfang stand, aber drei
Zeilen zu früh kam. Gefixt und eingecheckt und morgen per update verfügbar.

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: [SOLVED] Re: FHEM crash when reading WS300PC with "you must call readingsBeginUpdate first. at fhem.pl line 2904" message ($Id: fhem.pl 1942 2012-10-09 19:19:15Z)
Beitrag von: Guest am 11 Oktober 2012, 21:30:18
Originally posted by: <email address deleted>

Hey Boris,

hab es mir grad mal aus dem cvs geholt und das Device 9 wieder aktiviert in
meiner Config.
Läuft perfekt, alles stabil und die Daten werden angezeigt im Webinterface.
Bin begeistert!

Was für ein großartiger "Support", ganz ganz herzlichen Dank !!  *nen Bier
rüber reich*  ;-)

Ciao,
viele Grüße,
Jörn

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com