FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: micomat am 18 Januar 2016, 19:38:36

Titel: Sonos - Odd number of elements in hash assignment
Beitrag von: micomat am 18 Januar 2016, 19:38:36
Hallo Gemeinde,

seit einem FHEM neustart nervt mich folgender Fehler im Log:
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 6.
Ich hab jetzt lange genug rumgelesen und gesucht, und es scheint das Sonos Modul zu sein... ?!
Wie kann ich das eingrenzen? Es wurde kein Update oder so gemacht, lediglich der PI wurde neu gestartet.

Gruß
Markus
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: dev0 am 18 Januar 2016, 21:17:01
Im Sonos Steuen Thread findest du 2 Lösungsansätze, ist ein Problem in IP.pm.
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: micomat am 18 Januar 2016, 21:31:37
ist also wohl kein Problem das ich selbst loesen werde. Ich sehe davon ab in irgendwelchen perl modulen rumzuwurschteln ohne genau zu wissen was ich da tue.

Danke dennoch
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: dev0 am 19 Januar 2016, 05:54:57
So kompliziert ist das nicht. Bei mir trat der Fehler laut Meldung in einer Zeile in dieser Sub auf:
Zitat
sub new
{
   my $class = shift;
   my %arg = (@_ == 1) ? (PeerHost => $_[0]) : @_;
   return $class->SUPER::new(%arg);
}

Jetzt einfach ein "no warnings" am Anfang der Funktion einfügen:
Zitat
sub new
{
   no warnings;
   my $class = shift;
   my %arg = (@_ == 1) ? (PeerHost => $_[0]) : @_;
   return $class->SUPER::new(%arg);
}

Wenn Du vorher ein Backup der Datei anlegst, dann kann eigentlich kaum was schief gehen. Als Editor kannst Du z.B. nano, joe oder vi bentzen...
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: micomat am 19 Januar 2016, 06:37:08
 8) danke, so kanns sogar ich  ;D

EDITH: sieht gut aus :D thx!
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: betateilchen am 22 Januar 2016, 19:34:36
Und warum behebt der Modulautor des Sonos Moduls das Problem nicht an der richtigen Stelle?

Irgendwo wird

Das sind jedenfalls die beiden häufigsten Fehler, die zu einer solchen Logausgabe führen.
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 22 Januar 2016, 21:00:11
Hallo betateilchen,

alle meine (und die des verwendeten UPnP-Moduls) Aufrufe zum Einrichten eines Sockets sind korrekt mit Pärchen befüllt (und zwar direkt, ohne Hashvariable).

Sonst würde es diesen Fehler ja auch immer geben.
Ich würde aber mal grob schätzen, dass von den rund 220 Nutzern des Moduls vielleicht 20 von diesem Fehler betroffen sind...

Ich wüsste jetzt nicht, was ich da machen könnte... sonst hätte ich das schon gemacht... Genauere Hinweise sind aber natürlich gerne Willkommen...

Grüße
Reinerlein
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 22 Januar 2016, 23:47:42
Bei mir kommt der Fehler nach dem Start von Fhem einige zig bis hundert male und dann ist Ruhe ...

Da ich eine andere Perl-Version verwende sieht die Fehlermeldung und die Codestelle etwas anders aus ... vielleicht hilft's das Problem einzukreisen

Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 352, <$client> line 6.

sub new
{
   my $class = shift;
   my %arg = (@_ == 1) ? (PeerHost => $_[0]) : @_;
   return $class->SUPER::new(%arg);
}


Edit: nee, war gelogen ;) die Codestelle sieht eigentlich identisch aus
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 22 Januar 2016, 23:54:40
Hallo Nobby1805,

vielleicht könntest du temporär mal dort eine Debugzeile einbauen, die das Array @_ ausgibt. Nach der Zeile mit dem "$class = shift;" und vor der Hashzuweisung...
Am Besten mit

use Data::Dumper;
Dumper(\@_);


Vielleicht kann man dort am Inhalt erkennen, was er eigentlich vorhat...

Grüße
Reinerlein
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Torben am 23 Januar 2016, 08:40:08
Hallo,

ich hatte das Problem auch
Zitat von: Torben am 04 Januar 2016, 21:47:35
mein ursprüngliches Problem  habe ich durch eine neue Installation von Raspbian gelöst. Dabei habe ich anstatt jessie wieder wheezy genommen. Hier ist perl v5.14.2 im Einsatz und nun läuft es wieder.
Aus meiner Sicht lag es am Perl 5.20, das mit Raspbian Jessie ausgeliefert wird. Ich habe dann eine neue Wheezy-Installation mit Perl 5.14 genutzt, bei der ich ansonsten alles identisch installiert habe und dann gab es keine Fehlermeldungen mehr. Was aber der Kern des Problems ist, weiß ich auch nicht.

Gruß
Torben
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 23 Januar 2016, 10:38:36
Hallo Reinerlein,

Zitat von: Reinerlein am 22 Januar 2016, 23:54:40
vielleicht könntest du temporär mal dort eine Debugzeile einbauen, die das Array @_ ausgibt. Nach der Zeile mit dem "$class = shift;" und vor der Hashzuweisung...
Am Besten mit

use Data::Dumper;
Dumper(\@_);


Vielleicht kann man dort am Inhalt erkennen, was er eigentlich vorhat...
ich sehe nichts Zusätzliches  :-[ muss ich das Loglevel verändern ?
Allerdings kamen jetzt deutlich weniger Meldungen ... kann es ein Timing-Problem sein ? Ich hänge mal den gesamten Log des Startzeitraums an

Current: "./FHEM/00_SONOS.pm", gPath: ""
2016.01.23 10:11:00.322 1: SONOS0: ./FHEM/00_SONOS.pm is listening to Port 4711
2016.01.23 10:11:07.447 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2016.01.23 10:11:07.650 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2016.01.23 10:11:07.869 2: SONOS1: Discover Sonosplayer 'BRIDGE' (ZB100) Software Revision 6.0 with ID 'RINCON_000E58E3988A01400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:10.088 2: SONOS1: SonosPlayer 'BRIDGE' (ZB100) with ID 'RINCON_000E58E3988A01400_MR' is already defined (as 'Sonos_BRIDGE') and will only be updated
2016.01.23 10:11:10.090 2: SONOS1: SonosPlayer 'BRIDGE' is now updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:10.150 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58E3988A01400_sub0000000056
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:10.249 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58E3988A01400_sub0000000057
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:10.375 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (ZP90) Software Revision 6.0 with ID 'RINCON_000E58A376D201400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:11.603 2: SONOS1: SonosPlayer 'Wohnzimmer' (ZP90) with ID 'RINCON_000E58A376D201400_MR' is already defined (as 'Sonos_Wohnzimmer') and will only be updated
2016.01.23 10:11:11.808 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2016.01.23 10:11:11.842 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001645
2016.01.23 10:11:11.869 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001646
2016.01.23 10:11:11.900 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001647
2016.01.23 10:11:11.932 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001648
2016.01.23 10:11:11.966 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001649
2016.01.23 10:11:11.993 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001650
2016.01.23 10:11:12.013 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001651
2016.01.23 10:11:12.030 2: SONOS1: AudioIn-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001652
2016.01.23 10:11:12.135 2: SONOS1: Discover Sonosplayer 'Schlafzimmer' (S1) Software Revision 6.0 with ID 'RINCON_000E58C1DE0A01400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:11:13.385 2: SONOS1: SonosPlayer 'Schlafzimmer' (S1) with ID 'RINCON_000E58C1DE0A01400_MR' is already defined (as 'Sonos_Schlafzimmer') and will only be updated
2016.01.23 10:11:13.532 2: SONOS1: SonosPlayer 'Schlafzimmer' is now updated
2016.01.23 10:11:13.551 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001320
2016.01.23 10:11:13.564 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001321
2016.01.23 10:11:13.580 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001322
2016.01.23 10:11:13.593 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001323
2016.01.23 10:11:13.607 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001324
2016.01.23 10:11:13.619 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001325
2016.01.23 10:11:13.649 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001326
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:20.369 2: SONOS1: Discover Sonosplayer 'Schlafzimmer' (S1) Software Revision 6.0 with ID 'RINCON_000E58C1DE0A01400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:21.869 2: SONOS1: SonosPlayer 'Schlafzimmer' (S1) with ID 'RINCON_000E58C1DE0A01400_MR' is already defined (as 'Sonos_Schlafzimmer') and will only be updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.118 2: SONOS1: SonosPlayer 'Schlafzimmer' is now updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.146 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001327
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.167 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001328
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.189 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001329
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.221 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001330
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.242 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001331
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.267 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001332
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.296 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001333
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:22.772 2: SONOS1: Discover Sonosplayer 'Schlafzimmer' (S1) Software Revision 6.0 with ID 'RINCON_000E58C1DE0A01400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.182 2: SONOS1: SonosPlayer 'Schlafzimmer' (S1) with ID 'RINCON_000E58C1DE0A01400_MR' is already defined (as 'Sonos_Schlafzimmer') and will only be updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.451 2: SONOS1: SonosPlayer 'Schlafzimmer' is now updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.481 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001334
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.515 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001335
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.539 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001336
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.559 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001337
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.578 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001338
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.598 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001339
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:24.616 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58C1DE0A01400_sub0000001340
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:51.728 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (ZP90) Software Revision 6.0 with ID 'RINCON_000E58A376D201400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:53.275 2: SONOS1: SonosPlayer 'Wohnzimmer' (ZP90) with ID 'RINCON_000E58A376D201400_MR' is already defined (as 'Sonos_Wohnzimmer') and will only be updated
2016.01.23 10:16:53.510 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2016.01.23 10:16:53.549 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001653
2016.01.23 10:16:53.569 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001654
2016.01.23 10:16:53.614 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001655
2016.01.23 10:16:53.632 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001656
2016.01.23 10:16:53.655 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001657
2016.01.23 10:16:53.673 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001658
2016.01.23 10:16:53.695 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001659
2016.01.23 10:16:53.713 2: SONOS1: AudioIn-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001660
2016.01.23 10:16:54.088 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (ZP90) Software Revision 6.0 with ID 'RINCON_000E58A376D201400_MR'
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:55.682 2: SONOS1: SonosPlayer 'Wohnzimmer' (ZP90) with ID 'RINCON_000E58A376D201400_MR' is already defined (as 'Sonos_Wohnzimmer') and will only be updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:55.950 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:55.973 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001661
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.015 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001662
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.052 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001663
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.075 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001664
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.101 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001665
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.120 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001666
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.139 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001667
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
2016.01.23 10:16:56.158 2: SONOS1: AudioIn-Service-subscribing successful with SID=uuid:RINCON_000E58A376D201400_sub0000001668
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.
Odd number of elements in hash assignment at C:/Strawberry/perl/lib/IO/Socket/IP.pm line 358, <$client> line 6.


Gruß Nobby1805
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 23 Januar 2016, 11:38:01
Hi Nobby1805,

das ist komisch. Hast du auch einen Fhem Neustart gemacht?
Da wir ja nicht wissen, wo genau das Problem auftritt, reicht es nicht, nur das Modul neuzustarten...

Und kannst du nochmal die new-Sub posten, wie sie mit Debug Ausgabe jetzt aussieht?

Danke schonmal...

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 23 Januar 2016, 11:42:24
ja, ich habe Fhem komplett neu gestartet ... man sieht ja auch, dass sich die Zeilennummer in der Meldung verändert hat, jetzt 358 vorher 352

sub new
{
   my $class = shift;
   
   
use Data::Dumper;
Dumper(\@_);


   my %arg = (@_ == 1) ? (PeerHost => $_[0]) : @_;
   return $class->SUPER::new(%arg);
}
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 23 Januar 2016, 12:08:06
Hi Nobby1805,

ich bin aber auch ein Dödel...
Ein Print wäre doch auch super, oder? :)

Die eine Zeile muss natürlich

print Dumper(\@_);
heißen...

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: rapster am 23 Januar 2016, 12:13:01
Wenn ihr schon am debuggen seit,
evtl. ist der Hinweis von Andre welcher auf die http.pm statt ip.pm zeigt hilfreich: http://forum.fhem.de/index.php/topic,10033.msg259741.html#msg259741

Das war ja soweit ich wusste die etwas sauberere Lösung das Problem anzugehen statt es mit "no warnings" einfach zu ignorieren.
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 23 Januar 2016, 13:08:39
Hi Claudiu,

da war aber das Problem, dass dann irgendwas mit SSL nicht mehr ging...

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: rapster am 23 Januar 2016, 13:49:07
Hi Reiner,

bei mir hab ich zumindest dadurch noch keine Probleme feststellen können.

Allerdings scheint das ja eher die Stelle zu sein wo etwas schief läuft statt in der IP.pm?
Und ob das sonst bei längerer Laufzeit besonders gut ist dass dieser Hash immer länger wird?

Gruß
  Claudiu
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 23 Januar 2016, 14:41:29
Hi Reiner,

jetzt kommt  gaaaanz viel ... ich hänge es mal als Datei an

Gruß Norbert
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 24 Januar 2016, 14:53:59
Hi,

ich habe mal ein bisschen rumgespielt (da merkt man schon, dass ich jahrelang nicht mehr mit perl programmiert habe) und gebe jetzt zusätzlich den Aufrufstack aus ...

wobei m.E. in IP das Problem nur "gemeldet" wird ... erzeugt wird es woanders

Gruß Norbert

PS zur "Reihenfolge" im Log ... zuerst der Dump, dann der Call-Stack und dann ggf. die Fehlermeldung
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 24 Januar 2016, 15:36:29
Ich habe mal versucht zu finden, wo SendTE eingetragen wird .. aber leider erfolglos :(
Weiß jemand, wofür SendTE steht ?
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 24 Januar 2016, 17:35:45
Ich gebe ja gerne zu, dass ich nicht völlig verstehe was dort gemacht wird  ::) aber derartige Fehlersuche war immerhin viele Jahre mein Job  ;)

Ich glaube, ich habe das Problem gefunden, es liegt im Modul FHEM/lib/UPnP/ControlPoint.pm

# We've found examples of where devices claim to do transfer
# encoding, but wind up sending chunks without chunk size headers.
# This code temporarily disables the TE header in the request.
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, SendTE => 0);
my $ua = LWP::UserAgent->new(timeout => 20);


m.E. werden hier ZWEI Werte gepushed

pop(@LWP::Protocol::http::EXTRA_SOCK_OPTS);


und hier wird nur einer wieder entfernt

Wenn ich das Pop zweimal ausführe dann sieht der Log nach einem Restart gut aus  :D

PS das ganze passiert zweimal in dem Modul
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 24 Januar 2016, 20:57:27
Hi Norbert,

mensch, da ist man mal wegen Besuch verhindert, dann löst du das Ding einfach mal so :)
Was mich dabei trotzdem etwas wundert, ist der Umstand, dass es bei manchen Perl-Versionen geht, und manchmal nicht...

Ich würde jetzt kurz eine Anpassung schreiben, die den Inhalt des Arrays @LWP::Protocol::http::EXTRA_SOCK_OPTS untersucht, sich merkt, ob "SendTE" schon enthalten ist (und wie es gesetzt ist), es hinzufügt, oder überschreibt, und dann am Ende entsprechend wieder korrekt zurücksetzt.
Das erscheint mir am sichersten. Ich bin mir nämlich auch nicht sicher, was genau mit der Verbindung passiert, wenn es zweimal enthalten ist (einmal mit 0 und einmal mit 1)...

Es wird aber nicht mehr Heute fertig werden ;)

Grüße und Danke für die tolle Unterstützung,
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: DanielGab am 29 Januar 2016, 20:15:29
gibt´s hier schon was neues? Ich weiß einfach nicht, was ich noch machen kann...die Performance ist echt nicht so toll unter jessie, wenn perl am rackern und rödeln ist  :o
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 29 Januar 2016, 21:03:42
Hallo DanielGab,

ich habe da was eingebaut, baue aber gerade noch an anderen Features (die ich vorher begonnen hatte), sodass ich das gerade nicht veröffentlichen kann...

Ansonsten ist weiter oben doch ein kleiner Workaround...

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: dev0 am 30 Januar 2016, 15:51:53
Wobei das weiter oben kein Fix ist, sondern nur die Warnungen nicht ins Log geschreiben werden. Performanceprobleme würde ich aber wohl auch an anderer Stelle suchen.
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Nobby1805 am 30 Januar 2016, 17:33:50
Zitat von: dev0 am 30 Januar 2016, 15:51:53
Wobei das weiter oben kein Fix ist, sondern nur die Warnungen nicht ins Log geschreiben werden. Performanceprobleme würde ich aber wohl auch an anderer Stelle suchen.
Nö, das http://forum.fhem.de/index.php/topic,47758.msg397586.html#msg397586 ist schon ein Workaround ;) man könnte dazu auch ein unsauberer Fix sagen  ;D
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: dev0 am 30 Januar 2016, 21:07:11
Stimmt, ich hatte an meinen Beitrag viel weiter oben gedacht...
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 31 Januar 2016, 15:17:39
Hallo zusammen,

hierzu auch den Beitrag http://forum.fhem.de/index.php/topic,48483.msg401316.html#msg401316 (http://forum.fhem.de/index.php/topic,48483.msg401316.html#msg401316) beachten...

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Xguide am 07 April 2016, 14:45:11
Hallo zusammen,

ich habe das gleiche Verhalten wie eingangs von Markus berichtet.
Haufenweise Einträge ala:

Odd number of elements in hash assignment at /usr/share/perl5/IO/Socket/IP.pm line 352, <$client> line 4.

Ich habe den Workaround versucht der hier im Thread beschrieden ist:

--> Modul FHEM/lib/UPnP/ControlPoint.pm editiert und pop ein zweites Mal ausgeführt.

sub _createDevice {
my $self = shift;
my $location = shift;
my $device;

# We've found examples of where devices claim to do transfer
# encoding, but wind up sending chunks without chunk size headers.
# This code temporarily disables the TE header in the request.
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, SendTE => 0);
my $ua = LWP::UserAgent->new(timeout => 20);
my $response = $ua->get($location);

my $base;
if ($response->is_success && $response->content ne '') {
($device, $base) = $self->parseDeviceDescription($response->content,
  {Location => $location},
  {ControlPoint => $self});
}
else {
carp("Loading device description failed with error: " .
$response->code . " " . $response->message);
}
pop(@LWP::Protocol::http::EXTRA_SOCK_OPTS);

############################################################################
###Workaround, call pop another time
###https://forum.fhem.de/index.php/topic,47758.msg397586.html#msg397586
############################################################################
        pop(@LWP::Protocol::http::EXTRA_SOCK_OPTS);


if ($device) {
$device->base($base ? $base : $location);
if ($response->is_success && $response->content ne '') {
$device->descriptionDocument($response->content);
}
}

return $device;
}


Hat leider nicht funktioniert, bzw. keine Veränderung gebracht.  :(

Ich habe jetzt die quick and dirty Variante gewählt und habe in IP.pm das "no warnings eingefügt"  :o

Auch ich bin inzwischen von Wheezy auf Jessie gewechselt und habe somit perl:5.020002.

2016.04.07 14:11:40 0: Featurelevel: 5.7
2016.04.07 14:11:40 0: Server started with 499 defined entities (fhem.pl:11191/2016-04-05 perl:5.020002 os:linux user:fhem pid:15555)


Ferner bekomme ich folgenden Fehler beim Neustart, vielleicht hat es ja was miteinander zu tun.


Smartmatch is experimental at /opt/fhem/FHEM/00_SONOS.pm line 4377.
Current: "/opt/fhem/FHEM/00_SONOS.pm", gPath: ""


Zeile 4377ff

if ($pingType ~~ @SONOS_PINGTYPELIST) {
SONOS_Log $udn, 5, "PingType: $pingType";
} else {
SONOS_Log $udn, 1, "Wrong pingType given for '$udn': '$pingType'. Choose one of '".join(', ', @SONOS_PINGTYPELIST)."'";
$pingType = $SONOS_DEFAULTPINGTYPE;
}


Jemand einen Ansatz wie ich es lösen kann ohne auf Wheezy zurück zu gehen? Diesbezüglich habe ich nur den Thread von rapster und reinerlein von 2014 gefunden, dem kann ich aber keinen Lösungsansatz entnehmen und lese es so, als ob die damaligen Probleme gelöst wurden....

Danke für Eure Hilfe,

Marcel
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Xguide am 07 April 2016, 15:57:43
Hallo zusammen,

manchmal ist es doch besser erstmal den Kopf anzustrengen.

Der Punkt "Smartmatch is experimental at /opt/fhem/FHEM/00_SONOS.pm line 4377." ist mir inzwischen klar. Welcome Jessie.
Ich habe nun via cpan das modul experimental geladen und die 00_SONOS.pm mit folgendem use erweitert:

######ms modified 2016.04.07######
#requires sudo cpan experimental
#################################
use experimental 'smartmatch';


Für mehr Informationen http://blogs.perl.org/users/mike_b/2013/06/a-little-nicer-way-to-use-smartmatch-on-perl-518.html (http://blogs.perl.org/users/mike_b/2013/06/a-little-nicer-way-to-use-smartmatch-on-perl-518.html).

Bleibt bei mir noch der Fehler/Warnung "Odd number of elements...." und "Current: "/opt/fhem/FHEM/00_SONOS.pm", gPath: """

Für gPath habe ich die 00_SONOS.pm nun wie folgt abgeändert, weil es wohl nur ne debugging Ausgabe war.

########################################################
# Verrenkungen um in allen Situationen das benötigte
# Modul sauber geladen zu bekommen..
########################################################
my $gPath = '';
BEGIN {
$gPath = substr($0, 0, rindex($0, '/'));
}
if (lc(substr($0, -7)) eq 'fhem.pl') {
$gPath = $attr{global}{modpath}.'/FHEM';
}
use lib ($gPath.'/lib', $gPath.'/FHEM/lib', './FHEM/lib', './lib', './FHEM', './');
###print 'Current: "'.$0.'", gPath: "'.$gPath."\"\n";
use UPnP::ControlPoint;
require 'DevIo.pm' if (lc(substr($0, -7)) eq 'fhem.pl');


Bleibt also nur noch der Fehler/Warnung "Odd number of elements...."

Für Ratschläge bin ich dankbar....

Gruß Marcel
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Reinerlein am 07 April 2016, 17:22:19
Hallo Marcel,

das sollten alles Punkte sein, die bereits behoben sind. Welche Version des Moduls verwendest du?
Aktuell ist:

# $Id: 00_SONOS.pm 11082 2016-03-19 12:16:40Z rleins $
# $Id: 21_SONOSPLAYER.pm 11082 2016-03-19 12:16:40Z rleins $
# $Id: Common.pm 10759 2016-02-07 20:00:12Z rleins $
# $Id: ControlPoint.pm 10759 2016-02-07 20:00:12Z rleins $


Und die Ausgabe von gPath ist in einem von beiden Fällen gefüllt (es wird diesselbe Datei als Fhem-Modul und als eigenständiger Prozess verwendet)...
Und ja, es ist nur eine Info :)

Grüße
Reiner
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Xguide am 07 April 2016, 18:20:03
Hallo Reiner,

danke für deine schnelle Antwort.
Jetzt bin ich auch verwirrt, ich habe augenscheinlich ne alte Version. Dabei habe ich fhem gestern noch auf den neuesten Stand gebracht. Irgendwie scheinen die Sonos Module nicht mitgeladen zu werden.
Ich hatte mir auch zwischenzeitlich mal die Dateien aus deinem Dev gezogen.
Habe es jetzt mal mit "update all" versucht, was mich zumindest schon mal bei der 00_Sonos.pm auf die richtige Spur bring.
$Id: 00_SONOS.pm 11082 2016-03-19 12:16:40Z rleins $
Kann ich irgendwie sicherstellen, dass die Abhängigkeiten auch aktualisiert werden?

Danke und Grüße,

Marcel
Titel: Antw:Sonos - Odd number of elements in hash assignment
Beitrag von: Xguide am 08 April 2016, 08:34:35
Hallo Reiner,

der Post von gestern hat sich erledigt. Ich war leider nur auf dem Sprung und konnte nicht mehr antworten.
Alle Module sind jetzt auf dem von Dir genannten Stand.
Versionsliste:

# $Id: Common.pm 10759 2016-02-07 20:00:12Z rleins $
# $Id: ControlPoint.pm 10759 2016-02-07 20:00:12Z rleins $
# $Id: 00_SONOS.pm 11082 2016-03-19 12:16:40Z rleins $
# $Id: 21_SONOSPLAYER.pm 11082 2016-03-19 12:16:40Z rleins $


So langsam bekomme ich die Meldungen in den Griff :-)

Danke noch einmal und ein schönes Wochenende,

Marcel