Sonos Fehler in ControlPoint.pm

Begonnen von MikeRoxx, 30 September 2015, 23:54:53

Vorheriges Thema - Nächstes Thema

MikeRoxx

Hallo zusammen,

ich habe da ein kleines Problem mit meiner SONOS installation. FHEM ist frisch auf einem Banana Pro installiert. Update ist auch schon durch samt Neustart.
Allerdings bekomme ich alle 20 Sekunde folgenden Eintrag im logfile:
2015.09.30 23:18:55 3: SONOS0: Connection accepted from localhost:56906
Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 425, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.


Da meine Kenntnisse nicht so in die Tiefe gehen, kann mir jemand hier etwas zu sagen


Habe jetzt mal einen Blick rein geworfen, verstehe aber das UPNP Geraffel nicht  :-\
Zeile 425:
my $device = $self->_getDeviceFromHeaders($headers,
  $eventType =~ /alive/ ?
  1 : 0);

if ($device) {
if ($eventType =~ /alive/) {
$self->_deviceAdded($device);
}
elsif ($eventType =~ /byebye/) {
$self->_deviceRemoved($device);
$self->{_devices}->{$device->UDN()} = undef;
}
}
}


Zeile 307:
my $device = $self->{_devices}->{$udn};
if (!defined($device) && $create) {
$device = $self->_createDevice($location);
if ($device) {
$self->{_devices}->{$udn} = $device;
}
}


Zeile 216 / 220
sub _parseUSNHeader {
my $usn = shift;

my ($udn, $deviceType, $serviceType);

if ($usn =~ /^uuid:schemas(.*?):device(.*?):(.*?):(.+)$/) {
$udn = 'uuid:' . $4;
$deviceType = 'urn:schemas' . $1 . ':device' . $2 . ':' . $3;
}
elsif ($usn =~ /^uuid:(.+?)::/) {
$udn = 'uuid:' . $1;
if ($usn =~ /urn:(.+)$/) {
my $urn = $1;
if ($usn =~ /:service:/) {
$serviceType = 'urn:' . $urn;
}
elsif ($usn =~ /:device:/) {
$deviceType = 'urn:' . $urn;
}
}
}
else {
$udn = $usn;
}

return ($udn, $deviceType, $serviceType);
}




Gruss
Mike
Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

Reinerlein

Hallo Mike,

für mich sieht das ein bißchen so aus, als würde sich ein UPnP-Device melden, was nichts mit Sonos zu tun hat. Da gibt es auch diverse andere Fehler, die diese Ursache haben...

Was du versuchen könntest, ist, den Loglevel höher zu drehen, um vielleicht eine IP-Adresse des Problemgeräts herauszufinden.
Diese kannst du dann im Attribut "ignoredIPs" angeben, damit wird dieses Device dann ignoriert...

Grüße
Reiner

MikeRoxx

#2
Hallo Rainer,

Ich habe noch den miniDLNA auf der Banane am laufen... das sollte eigenlich keine Probleme machen, habe diesen auch mal gestoppt.
Allerdings sehe ich auch keine IP-Adressen oder sonstiges was da stören könnte (verbose=5)
Ich habe 2 Sonos Play 1 eingebunden. Die IP 192.168.178.31:51353 gehört zu meinem Laptop

Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 425, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.
2015.10.01 21:42:46 3: SONOS0: Connection accepted from localhost:39940
Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 425, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.
2015.10.01 21:43:16 3: SONOS0: Connection accepted from localhost:39948
2015.10.01 21:43:25 4: Closing inactive connection FHEMWEB:192.168.178.31:51355
2015.10.01 21:43:25 4: Closing inactive connection FHEMWEB:192.168.178.31:51354
2015.10.01 21:43:25 4: Closing inactive connection FHEMWEB:192.168.178.31:51353
Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 425, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.
2015.10.01 21:43:46 3: SONOS0: Connection accepted from localhost:39966
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 425, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.
2015.10.01 21:44:16 3: SONOS0: Connection accepted from localhost:39984
2015.10.01 21:44:27 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Giulia".
Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

Reinerlein

Hallo Mike,

dann setz doch mal die Adresse von deinem Laptop auf die Ignored-Liste... Vielleicht reicht das ja schon...

Grüße
Reiner

MikeRoxx

Hallo Rainer,

das Laptop ist aus.... und die Meldung immer noch im logfile.

Gruß
Mike
Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

Reinerlein

Hi Mike,

bau doch mal bitte folgende Debug-Ausgabe in die ControlPoint.pm in Zeile 404 (nach dem return-statement zum ignore) ein:

print 'SSDP-Event from: '.inet_ntoa($peerdata[1]);

Jetzt sollten wir zumindest in der Nähe der Fehlermeldung eine dazu passende IP-Adresse sehen...

Grüße
Reiner

MikeRoxx

#6
Hallo Rainer...

jetzt wird es interessant...
Die 192.168.178.45 ist ein Samsung 55HU7590 TV und die 192.168.78.41 ist SonosZS also mein Play1...
Ich lasse das jetzt mal bis heute Abend laufen und dann schaue ich noch eimal in das Logfile. Den Samsung brauche ich eh nicht, den setzte ich direkt mal in die ignoreIP Liste.

SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 426, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.
SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.1SSDP-Event from: 192.168.178.12015.10.02 15:09:07 3: SONOS0: Connection accepted from localhost:50718
SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.41SSDP-Event from: 192.168.178.1SSDP-Event from: 192.168.178.31SSDP-Event from: 192.168.178.1SSDP-Event from: 192.168.178.31SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45SSDP-Event from: 192.168.178.45Use of uninitialized value $eventType in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 426, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 216, <$client> line 5.
Use of uninitialized value $usn in pattern match (m//) at FHEM/lib/UPnP/ControlPoint.pm line 220, <$client> line 5.
Use of uninitialized value $udn in hash element at FHEM/lib/UPnP/ControlPoint.pm line 307, <$client> line 5.



Im Moment sieht es so aus als ob der Verursacher der Samsung TV war... allerdings bekomme ich jetzt im Logfile dieses hier:


2015.10.02 15:38:57 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Giulia".
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
2015.10.02 15:38:57 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Giulia".
2015.10.02 15:38:58 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_Giulia".
2015.10.02 15:38:58 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Giulia".
2015.10.02 15:38:58 3: SONOS1: Event: Received GroupRendering-Event for Zone "Sonos_Giulia".
2015.10.02 15:38:58 3: SONOS1: Event: End of GroupRendering-Event for Zone "Sonos_Giulia".
2015.10.02 15:39:00 3: SONOS1: Event: Received ContentDirectory-Event for Zone "Sonos_Giulia".
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
2015.10.02 15:39:00 3: SONOS1: Event: End of ContentDirectory-Event for Zone "Sonos_Giulia".
2015.10.02 15:39:00 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Giulia".
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
Odd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 5.
Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

Reinerlein

Hallo Mike,

das sieht doch gut aus. Diese Odd Number of Elements-Geschichte ist ein Perl-interner Fehler, den du ignorieren kannst, bzw. im Sonos steuern-Thread nach einem Workaround suchen kannst. Dort gab es was dazu...

Grüße
Reiner

MikeRoxx

Hallo Rainer,

vielen Dank für deine Hilfe.

Verbose 0

Solange alles funktioniert....

Gruß
Mike
Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20