Sonos Modul bringt FHEM zum Absturz

Begonnen von Pietz, 25 März 2016, 21:37:57

Vorheriges Thema - Nächstes Thema

Pietz

Moin zusammen!

Nachdem seit einigen Tagen bereits die Sonos Steuerung nicht mehr funktionierte (mglw. nach einem Sonos FW update) habe ich nun ein beherztes update des FHEM nachgezogen - in der Hoffnung, dass ein update des FHEM incl. SONOS.pm die Probleme beseitigte. Leider hat sich die Situation hierdurch verschlimmert:

Use of uninitialized value $devicename in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8039, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.

Die letzte Zeile wiederholt sich solange, bis das System träge wird und eine out of memory exception auftritt:
"Out of memory!
panic: leave_scope inconsistency at ./FHEM/00_SONOS.pm line 8056, <> line 21."

Werfe ich 00_SONOS.pm aus dem Folder FHEM raus, so lässt sich FHEM ganz normal starten.

Hat jemand eine Idee hierzu?

Viele Grüße,

Pietz

Reinerlein

Hallo Pietz,

die genannten Fehlermeldungen sind Folgefehler von vorhergehenden Fehlern. An diesen Stellen werden die verfügbaren Player durchsucht, um einen bestimmten herauszufinden. Leider ist genau dieser Suchwert undefiniert, was sinnvollerweise nicht sein darf (und deswegen auch nicht weiter abgefangen wird).

Jetzt müssen wir versuchen herauszufinden, warum diese Werte beim Aufruf nichts enthalten. Das sieht mir grob gesehen nach einer fehlerhaften Kommunikation zwischen Fhem und Sonos-Subprozess aus.
Kannst du den Loglevel mal höher drehen? im ersten Schritt vielleicht mal auf 4.

Grüße
Reinerlein

Pietz

Moin Reinerlein,

ich hab das mal auf 5 hochgedreht, da ich bereits auf 4 laufe.
Folgender Output:

2016.03.27 17:25:42 5: Cmd: >include /opt/fhem/configurations/100_sonos.cfg<
2016.03.27 17:25:42 1: Including /opt/fhem/configurations/100_sonos.cfg
2016.03.27 17:25:42 5: Cmd: >define Sonos_Kueche SONOSPLAYER RINCON_5CAAFD2390E401400_MR<
2016.03.27 17:25:42 5: Loading ./FHEM/21_SONOSPLAYER.pm
Warning, threads::shared has already been loaded.  To
enable shared variables, 'use threads' must be called
before threads::shared or any module that uses it.
Current: "fhem.pl", gPath: "./FHEM"
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche alias Küche<
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio><
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/><
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/><
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche generateVolumeSlider 1<
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche getAlarms 1<
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche group Kueche<
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche icon icoSONOSPLAYER_icon-S1.png<
2016.03.27 17:25:48 5: Cmd: >attr Sonos_Kueche minVolume 0<
Use of uninitialized value $devicename in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8039, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
...
...
...

Viele Grüße,

Pietz

Reinerlein

Hallo Pietz,

du musst unbedingt den Verbose-Level am zentralen Sonos-Device hochsetzen. Du hast jetzt nur einen Player hochgesetzt...

Grüße
Reinerlein

Pietz

Moin Reinerlein,

das war mir leider nicht bewusst.
Ein beherztes "attr SONOS verbose 4" in der config hat hier hoffentlich den richtigen Effekt.
2 Zeilen mehr bekomme ich zu sehen:

2016.03.27 21:41:56 5: Cmd: >include /opt/fhem/configurations/100_sonos.cfg<
2016.03.27 21:41:56 1: Including /opt/fhem/configurations/100_sonos.cfg
2016.03.27 21:41:56 5: Cmd: >attr SONOS verbose 4<
2016.03.27 21:41:56 5: Cmd: >define Sonos_Kueche SONOSPLAYER RINCON_5CAAFD2390E401400_MR<
2016.03.27 21:41:56 5: Loading ./FHEM/21_SONOSPLAYER.pm
Warning, threads::shared has already been loaded.  To
enable shared variables, 'use threads' must be called
before threads::shared or any module that uses it.
Current: "fhem.pl", gPath: "./FHEM"
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche alias Küche<
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom
Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio><
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/><
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="
Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/><
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche generateVolumeSlider 1<
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche getAlarms 1<
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche group Kueche<
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche icon icoSONOSPLAYER_icon-S1.png<
2016.03.27 21:42:02 5: Cmd: >attr Sonos_Kueche minVolume 0<
Use of uninitialized value $devicename in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8039, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
...
...
...
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Deep recursion on subroutine "main::SONOS_Log" at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Deep recursion on subroutine "main::SONOS_getSonosPlayerByUDN" at ./FHEM/00_SONOS.pm line 8311, <> line 21.

Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 8061, <> line 21.
...
...
...

Viele Grüße,

Pietz

Reinerlein

Hi Pietz,

ok, das sagt noch nicht soviel... Setz verbose mal auf 5, das sollten im Idealfall mehrere hundert Zeilen Log werden...

Grüße
Reiner

Reinerlein

Hi Pietz,

ist das ein Original-Auszug?

Beende mal Fhem, lösche alles aus der config raus, was mit Sonos zu tun hat, und starte Fhem wieder.
Nun gib in der Eingabezeile folgendes ein:

define Sonos SONOS
und drück "Enter".

Die Reihenfolge in der Config-Datei ist falsch rum. Das Sonos-Device muss als erstes definiert werden!
Allgemein gilt der Hinweis: Die Config-Datei nur dann manuell editieren, wenn man genau weiß, was man tut...

Grüße
Reinerlein

Pietz

Moin Reinerlein,

Ja, das ist ein Originalauszug. Nur die IP-Adresse habe ich maskiert.
Ich habe die definition des SONOS Gerätes jetzt an den Anfang der Datei verschoben und neu gestartet. Nu löpt es wieder.

Merkwürdig: die Datei habe ich erst wieder anfassen müssen, nachdem ich das update durchgeführt habe. Vorher lief der Kram (in welcher Reihenfolge das auch immer war)...

Auf jeden Fall richte ich Dir hiermit meinen und den Dank meiner Familie aus, da wir jetzt wieder eine funktionierende HaustürKlingel haben :)

Viele Grüße,

Pietz