Sonos Player disappeared

Begonnen von aherby, 22 Dezember 2015, 18:20:38

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Angepasste Dateien liegen im Github. Kannst du das bitte mal ausprobieren, ob jetzt renew wie gewünscht funktioniert? (beide Dateien solltest du austauschen, ControlPoint und SONOS)

Nobby1805

#241
 :-[ :-[ Dumme Frage: wie kriege ich die Files denn aus dem Github herunter geladen?  :-[ :-[

Ich habe bisher deine Änderungen nur nachgebaut weil ich auch noch weitere eigene Änderungen eingebaut habe

Edit: ich habe es gefunden
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)


Nobby1805

Soweit ich das beurteilen kann funktionieren bei mir deine Änderungen wunderbar  :D Danke soweit :)
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

mumpitzstuff

Wenn du mir deine Version zur Verfügung stellen würdest, könnte ich mir die Änderungen ansehen und gegebenenfalls übernehmen, falls du das möchtest.

Nobby1805

Danke, aber das ist nicht notwendig
Vielleicht ist das Problem ja auch mit deinen Änderungen weg, trat ohnehin nur sehr sporadisch alle paar Monate mal auf
Ich werde jetzt gleich beide Module von dir übernehmen und dann abwarten
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Nobby1805

Nachdem ich dein 00_SONOS vollständig übernommen habe kommt leider ein Fehler
Zitat2020.06.09 18:55:08.920 1: SONOS0: Can't bind Port 4711: Setsockopt failed: Inappropriate I/O control operation at ./FHEM/00_SONOS.pm line 9913.

Zeile 9913 ist unter Berücksichtigung meiner Ergänzungen    eval {
      socket($sock, AF_INET, SOCK_STREAM, getprotobyname('tcp')) or die "Could not create socket: $!";
      setsockopt($sock, SOL_SOCKET, SO_LINGER, pack("ii", 1, 0)) or die "Setsockopt failed: $!";
      setsockopt($sock, SOL_SOCKET, SO_REUSEADDR, 1) or die "Setsockopt failed: $!";
      #setsockopt($sock, SOL_SOCKET, SO_REUSEPORT, 1) if (defined(&SO_REUSEPORT)) or die "Setsockopt failed: $!";
      bind($sock, sockaddr_in($SONOS_ListenPort, INADDR_ANY)) or die "Bind failed: $!";
      listen($sock, 10);
    };
die auskommentierte Zeile ... nach dem auskommentieren klappt der Start wieder
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

mumpitzstuff

Die Zeile ist tatsächlich unglücklich. Kannst du bitte versuchen sie durch diese zu ersetzen?

setsockopt($sock, SOL_SOCKET, SO_REUSEPORT, 1) if (defined(&SO_REUSEPORT));

Ist aber schon komisch das dein System kein reuseport kennt...

PS: Ich habe jetzt die ControlPoint noch mal zurückgebaut und croak wieder durch carp ersetzt, damit sich deren Verhalten nicht ändert (da ja hier auch andere Module darauf zugreifen). Stattdessen habe ich an den entsprechenden Stellen das eval entfernt (das funktioniert nämlich nicht) und dafür "$SIG{__WARN__} = sub { $@ = shift; };" eingefügt. Damit sollten dann die Warnungen der ControlPoint im SONOS Modul abgefangen werden.

Ich habe mal mein kleines Testscript zum rumprobieren angehangen, falls du Lust hast.

mumpitzstuff

Die neue Version ist im Github. Wäre schön wenn sie jemand prüfen könnte.

Nobby1805

Zitaterror detected: test at test.pl line 8.
   main::test() called at test.pl line 17
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Nobby1805

Zitat von: mumpitzstuff am 09 Juni 2020, 23:08:40
Ist aber schon komisch das dein System kein reuseport kennt...
Beim suchen nach "strawberry" perl "reuseport" in Google habe ich folgenden Eintrag gefunden, die Seite existiert nicht mehr ... nur der Hinweis in der Vorschau:

21.07.2010 - I am using a Windows Vista 32 bit environment , with Strawberry Perl. ... It seems that ReusePort only works on BSD-based operating systems ...
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Nobby1805

Bisher klappt alles mit den beiden neuen Versionen ...

jetzt werde ich gleich mal einen Player ausschalten
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Nobby1805

Sieht gut aus ... Player ist ohne Problem jetzt auf disappeared gegangen
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

mumpitzstuff

Das ist doch schon mal gut. Danke. Das es das unter Windows nicht gibt muss ich mir ansehen, wäre aber ein super Weg die Behandlung der nichtexiszenz zu überprüfen.

det.

Hallo mumpitzstuff,
die heutige Version läuft unter Ubuntu LTS bezüglich disappeared und appeared so gut wie die vorherige (von gestern). Allerdings gibt es mit der heutigen Version  "Anlaufschwierigkeiten", d.h. das Umschalten von Sendern über die FHEM Web Oberfläche dauert gefühlt deutlich länger und ebenso eine Lautstärkeanpassung reagiert äußerst verzögert und überhaupt nach Einschalten des Players erst nach einer kleinen Ewigkeit. Keine Ahnung, wie ich das besser beschreiben soll. Ich war mit der gestrigen Version glücklicher....
LG
det.