Sonos nun offiziell im SVN

Begonnen von Reinerlein, 17 Dezember 2014, 15:39:23

Vorheriges Thema - Nächstes Thema

rapster

Hallo Reinerlein,

warum nicht einfach in die Commandref/Wiki einen Hinweis wie:

- Klickste hier www.meinserver.de/dowload.zip und entpackste enthaltene Dateien in ..FHEM/lib 
- Oder nur die Libs über den Thirdparty Update-Mechanismus verteilen?

fertig?

Und den rest einfach so lassen wie es gerade ist, also der fhem Update die sonosplayer.pm und sonos.pm verteilen?

Ich denke die libs wirst du warscheinlich sowieso "nie" anfassen, bzw. etwas daran aktualisieren solang alles funktioniert?

Gruß Claudiu

Reinerlein

Hallo zusammen,

Rudi und ich haben einen Weg gefunden...
Es hat sich herausgestellt, dass von der MP3-Lib nicht alles benötigt wird, und Rudi hauptsächlich ein Problem mit den enthaltenen Binärdateien hatte.

Ich habe nun korrekterweise die überflüssigen beiden Ordner entfernt, die beiden notwendigen Ordner hat Rudi nun im Update eingetragen.
Wenn mein Test jetzt kein Blödsinn war, sollte so alles aus dem normalen Update heraus funktionieren.

Grüße
Reinerlein

Loredo

Hi Reinerlein,


ich kann bestätigen, funzt jetzt auf einem jungfräulichen System  :D
Weiß nicht, ob das jetzt "neu" ist, aber bei mir werden jetzt auf allen Consolen (egal ob Remote/SSH oder direkt am Gerät) die Events des UPnP Daemons ausgegeben. Das nervt leider ziemlich, kann man das nicht per Default ausschalten und nur bei Bedarf aktivieren (optimaler Weise mit Logging in eine Datei)?


Ansonsten dauert es bei mir immer einige Minuten nach dem Start, bis dann das Sonos-Player Gerät erkannt wird. Auch habe ich FHEM schon einmal zum Absturz gebracht. Letzteres werde ich aber erstmal noch beobachten, ich kann jetzt nicht genau erinnern, was ich in dem Moment gemacht habe. Kann mich nur an eine hohe CPU Last des UPnP Daemons erinnern.




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

tupol

Hallo Reinerlein,

hört sich sehr interessant an. Ist das ein generelles UPNP Modul das ich auch für andere UPNP Geräte nutzen kann?
Wäre es möglich das Fehlen eines Moduls abzufangen (eval "use Net::Telnet;1" or $missingModul .= "Net::Telnet ";) und als Fehler auszugeben?

Gruß
tupol

Reinerlein

Hi tupol,

diese Fehlermeldung kann eigentlich gar nicht kommen. Das Verfahren mit Telnet ist ein altes, welches nur noch drin ist, damit man es einfach wieder aktivieren könnte (was ich eigentlich aber nicht mehr vorhabe).
Der Aufruf dazu ist aber ausmarkiert (ab Zeile 6194) und wird demnach auch nicht aufgerufen...

Kannst du mal ein Log mitschicken, wo diese Fehlermeldung auftaucht?

Das UPnP-Modul ist im Prinzip ein allgemeines (http://perlupnp.sourceforge.net/), welches von mir aber angepast wurde, da es zumindest in Zusammenarbeit mit Sonos ein paar Mankos hatte.
Ich denke aber, dass es für die meisten Anwendungen passen sollte, sofern diese Anwendungen nicht auch so Divenhaft wie Sonos sind :-)

Danke schon mal...

Grüße
Reinerlein

Reinerlein

Hi Julian,

bei mir kommt das nicht ins normale Fhem-Log. Ich habe aber auch die STDOUT und STDERR Ausgabe direkt im Startskript auf eine Datei umgelenkt, damit ich dort immer mittels "tail -f" im laufenden Betrieb gucken kann, was im Subprozess so passiert..

Fhem lenkt beim Start selber den STDOUT und STDERR in das Logfile um (in fhem.pl in der Prozedur "redirectStdinStdErr" in Zeile 1166).
Vielleicht klappt das in meinem Fall wegen der eigenen Umlenkung dann nicht mehr...

Grüße
Reiner

tupol

Zitat von: Reinerlein am 20 Dezember 2014, 16:05:58
diese Fehlermeldung kann eigentlich gar nicht kommen. Das Verfahren mit Telnet ist ein altes, welches nur noch drin ist, damit man es einfach wieder aktivieren könnte (was ich eigentlich aber nicht mehr vorhabe).
Der Aufruf dazu ist aber ausmarkiert (ab Zeile 6194) und wird demnach auch nicht aufgerufen...

Das war nur ein Beispiel, wie man das erkennen und dem Nutzer zeigen kann. Leider weiß ich nämlich nicht was, sondern nur das etwas fehlt. :-)

Gibt es eigentlich ein Modul das alle UPnP-Geräte erkennt und auch UPnP-AV kann? Vielleicht könnte man Deins (unter neuem Namen) dazu ausbauen (ich habe z.B. kein Sonos aber eine Soundbridge)

Reinerlein

Hi tupol,

hmm... komisch ist das schon, weil Perl ja ziemlich klar sagt, wenn ihm etwas fehlt, und er sagt dann auch genau was er jetzt gerne gefunden hätte, und wo... Ich verstehe die Frage jetzt nicht ganz...

Zu dem allgemeinen UPnP-AV: Das hat schon mal jemand versucht. das ging dort nicht weiter. Vermutlich liegt das an den vielen Unwägbarkeiten, und dem doch sehr geringen "Standard", den man da UPnP nennt. Vieles funktioniert nicht bei allen, und es ist auch eher eine grundlegende Verbindungsdefinition. Man kann die Teilnehmer über Standards finden und ansprechen (auch über den Standard steuern). Gleich Funktionieren tun die deshalb noch lange nicht. Das bezieht sich alles nur auf Protokollvereinheitlichung...

Das Sonos-Modul geht sehr speziell auf die Sonderwünsche des Sonos-Systems ein, du müsstest eher ein neues Modul von "unten" her anfangen... Das Sonos-Modul so in die Richtung "weiter zu entwickeln" wird wohl eher nicht gehen...

Grüße
Reinerlein

tupol

Also "klar" sieht anders aus  ;)
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 296.
Compilation failed in require at ./FHEM/00_SONOS.pm line 296.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at FHEM/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/Common.pm line 85.
2014.12.20 13:04:49 0: Can't locate SOAP/Lite.pm in @INC (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at FHEM/lib/UPnP/Common.pm line 85.

BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 296.
Compilation failed in require at ./FHEM/00_SONOS.pm line 296.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at FHEM/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/Common.pm line 85.
Can't locate SOAP/Lite.pm in @INC (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at FHEM/lib/UPnP/Common.pm line 85.
2014.12.20 13:04:49 1: reload: Error:Modul 00_SONOS deactivated:


Reinerlein

Hi tupol,

Das ist die Aufrufkette rückwärts...
Die wichtige Zeile steht doch deutlich da:

2014.12.20 13:04:49 0: Can't locate SOAP/Lite.pm in @INC (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at FHEM/lib/UPnP/Common.pm line 85.


Wenn du diese Reihenfolge nicht lesbar findest, dann solltest die Logausgabe wieder richtig drehen...

Grüße
Reiner

tupol

Hallo Reinerlein,

es geht mir nicht um die Reihenfolge sondern, um die kryptischen Beschreibungen von Perl, die nur Insidern verständlich sind. Das ganze ist für einen newbee auch nicht in korrekter Reihenfolge lesbar. Nachdem Du darauf hingewiesen hast, ist es zwar klar. Es würde Deinen Betreuungsaufwand aber sicherlich reduzieren, wenn die Fehlermeldung "Perl module SOAP::Lite is missing" lauten würde.

Gruß
tupol

Reinerlein

Hi tupol,

also, ich baue keine Fehlermeldung für Perl Fehlermeldungen :)

Als Newbee würde man sowas doch erstmal bei Google eintüten, oder?
Dort ist unter den ersten 10 Ergebnissen von "Can't locate SOAP/Lite.pm in @INC" mindestens fünfmal eine saubere und ordentliche Beschreibung, was das Problem ist, und vor allem, was man dagegen tun kann...

Des Weiteren steht in meinen Installationshinweisen (commandref) deutlich, dass dieses Modul benötigt wird (unter anderem), und im Wiki steht passend dazu eine wirklich genaue Installationsanweisung. Da muss man sich nur eine passende raussuchen...

Ich denke, dass sowas schon häufiger hier im Forum angesprochen wurde: Ein bißchen Eigeninitiative muss man mitbringen. Wir helfen hier alle wirklich gerne, und manchmal sieht man das Problem ja auch einfach nicht, aber diese Grundlagen muss man auch als Newbee draufbekommen können...

Grüße
Reinerlein

Spartacus

Hallo zusammen,
ich finde es supertoll, dass das SONOS-Modul nun direkt von fhem unerstützt wird. Ich traue mich aber nicht, es einzubinden. Damals hatte ich es parallel auf meinem produktiven rpi und hatte immer wieder Abstürze. Vor ca. 3 Monaten habe ich den rpi neu aufgesetzt und kein Sonos mehr an Bord. Seit dem habe ich keine Abstürze mehr. Wie sind die Erfahrungen mit dem neuen Modul? Schafft ein rpi diese zusätzliche Last? Habe derzeit quasi kaum Prozessorlast und damals mit Sonos lag ich bei mehr als 20% teilweise bei 70% Auslastung.

Wie sieht das bei Euch aus? Ich habe 11 Sonos Devices im Einsatz
2 x Bridge
2 x Play 1 als Stereopaar
3 x Play 1 als Single-Player
2 x Play 3, Singlebetrieb, teilweise als Stereopaar
1 x ConnectAmp
1 x SUB
Das Problem mit dem Absturz trat sehr häufig auf, wenn man einen Player vom Strom trennte und an anderer Stelle wieder ins Netz nahm, oder wenn man Sterepaare bildetet und wieder auflöste.

BTW:
Schön fände ich es, wenn das Sonos-Modul das Bilden und Trennen von Stereopaaren unterstützen würde. Das nutze ich öfter für die beiden Play 3. Auch das Einbinden eines SUB in eine andere Konfiguration wäre eine tolle Sache. So könnte man verschiedene Konfigurationen mit einem System fahren und per fhem einfach auf Knopfdruck zusammenstellen....

Danke und Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

der-Lolo

Hallo Spartacus,
ich habe mit dem Sonos Modul auch so meine schwierigkeiten gehabt - aktuell bin ich aber ziemlich zufrieden, ich habe auch einen play3 der immer wieder mal schwierigkeiten machte - seitdem ich dieses aber mit einem kleinem workarround in den griff bekommen habe läuft eigentlich alles sehr stabil.

Ich kann nur nichts über Prozesslast sagen - da ich produktiv auf dem Cubietruck bin.

Spartacus

Hallo der-Lolo,
der Cubi soll ja abgehen, wie "Schmits-Katze"... Hatte auch mal vor mir so ne Büchse zuzulegen, aber wieder auf die lange Bank geschoben...

Eigentlich wollte ich dem Sonos-Modul einen eigenen rpi spendieren, aber wenn das jetzt stabil läuft, werde ich es wohl doch wieder auf meinen enocean-pi schrauben...mal gucken...so nen pi kostet ja auch mit Allem ca. 50 Euros. 

Welchen Workaround nutzt Du bei Deinem Play 3 und wie viele Sonos-Devices hast Du per fhem am Start?

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R