Sonos steuern

Begonnen von Will, 05 Januar 2013, 15:51:12

Vorheriges Thema - Nächstes Thema

det.

Sorry Reinerlein,

bisher ging es (mit den Versionen bis heute)- jetzt nach dem Update kommt:ERROR:

Cannot load module SONOS
2013.09.15 20:14:18 0: Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /usr/bin/lib /usr/bin/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 . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/00_SONOS.pm line 168, <$fh> line 63.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 168, <$fh> line 63.
LG
det.

FHEM-Freak

Danke Reinerlein,

Update hat super geklappt.
Danach noch "define Sonos SONOS localhost:4711 30" und es läuft.

Was mir aufgefallen ist das es beim drücken von PLAY und STOP zu langen zeitverzögerungen kommt bis der Play3 das macht was man will, dauert bis zu einer Minute.
Werd ich mir aber noch genauer anschauen.

Sieht im log so aus.
SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->Play() auszuführen.
SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->Play() um eine weitere Sekunde.


Zum abstürzen hab ich es nicht gebracht.
Speichern von fhem.cfg mit Save fhem.cfg funktioniert auch wieder.
Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I

m.zielinski

Bei mir kam es auch zu langen verzögerungen bei Steuerbefehlen - nach kurzer Zeit so 15-20 Sekunden.

Ausserdem schien mir der Webserver dadurch auch deutlich langsamer zu reagieren bei z.b. Licht an/aus so dass ich Sonos erstmal wieder deaktiviert habe.

Bei einem restart ("shutdown restart") hat sich auch komplett fhem weggehängt, als es versuchte den UPNP-Prozess zu stoppen. Nach 2 Minuten habe ich dann manuell den Raspberry-Pi rebooted.


Reinerlein

Hallo zusammen,

OK, das sieht viel aus :-)
@Der-Lolo: Ich bin mir nicht sicher, ob ich jemals den Test des Moduls ausgeführt habe. Ich habe es nur installiert und dann verwendet. Meldet denn Perl noch dieses Modul als fehlend?

@Det: Hmm. die Sache mit den Pfaden für die Libraries hat mich hier auch schon zur Verzweiflung gebracht. Dadurch dass ein Teil des Moduls "ausserhalb" von Fhem ausgeführt wird, kann ich nicht direkt auf die Konfigurationen von Fhem zurückgreifen. Da ich auch eigentlich nur die Pfadangabe benötige, habe ich das auf anderem Wege ermittelt. Das scheint nicht immer sauber zu gehen.
Kannst du mir mal die Ausgabe der Konsole zusenden, wenn du folgendes im Fhem-Modulverzeichnis ausführst?
perl 00_SONOS.pm 4712 4
Damit kann man diesen UPnP-Lauscher auch selber starten. Mich würde interessieren, ob der auch die Module vermisst...

@FHEM-Freak: Das mit der langen Zeitverzögerung ist nicht normal. Wenn man nicht gerade mehrere Befehle auf einmal absetzt, sollte die Anweisung direkt ausgeführt werden. Die Log-Ausgabe von dir deutet darauf hin, dass noch ein alter Befehl auf Beendigung wartet. Was hast du denn direkt davor ausgeführt? Es kann natürlich sein, dass es immer noch den einen oder anderen Befehl gibt, der keine saubere Rück-/Beendigungsmeldung liefert, und deshalb immer als nicht abgeschlossen gilt.
Auch hier würde ich gerne die Konsolenausgabe des UPnP-Prozesses sehen (das was auf Stdout rauskommt, nicht das, was im Fhem-Log landet). Da wird mitgeschrieben, welche Anweisungen gerade ausgeführt werden sollen, und ob dabei irgendwo ein Fehler aufgetreten ist.

@m.zielinski: Eigentlich sollte Fhem nicht mehr blockiert werden. Aus Sicht von Fhem ist das ganze ein normales Tcp-Device (wie z.B. der HMLAN-Adapter auch). Es wird auf eingehende Nachrichten reagiert, und ansonsten darf der UPnP-Prozess sich blockieren, wie er möchte, Fhem sollte davon unbeeindruckt bleiben.
Kannst du mir bitte auch die Konsolenausgabe zukommen lassen?

Allgemein gilt, dass das Modul am Anfang etwas Last verursacht, da viele Informationen geliefert und an Fhem übertragen werden müssen. Wenn sich die ganzen Komponenten dann aber fertig gemeldet haben, sollte dort Ruhe einkehren. Bei mir ist das so nach ca. 20-50 Sekunden nach dem Fhem-Start (auf dem Pi, auf meinem Windows-System, welches mehr Leistung hat, ist das natürlich schneller).
Des Weiteren läuft Fhem bei mir als Root, da ich diverse Dinge (auch ausserhalb von Sonos) z.B. per Ping anspreche. Ich muss mal schauen, ob ich das als nicht-root mal getestet bekomme, und vielleicht einen Teil der Probleme nachgestellt bekomme.

Sorry für diese Probleme, aber man kann halt Testen wie man will, es ist immer die eigene Umgebung, die dann funktioniert. Bei anderen findet man dann ganz andere Rahmenbedingungen vor...

Grüße Reiner

FHEM-Freak

Zitat von: Reinerlein schrieb am So, 15 September 2013 23:16Auch hier würde ich gerne die Konsolenausgabe des UPnP-Prozesses sehen (das was auf Stdout rauskommt, nicht das, was im Fhem-Log landet). Da wird mitgeschrieben, welche Anweisungen gerade ausgeführt werden sollen, und ob dabei irgendwo ein Fehler aufgetreten ist.
Da musst mir bitte etwas weiterhelfen, habe bezüglich Stdout nichts gefunden.
Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I

Reinerlein

Hallo Fhem-Freak,

ich weiss jetzt nicht, wie du dein Fhem startest. Bei mir steht im Startskript hinter dem eigentlichen Perl-Aufruf ein "> /var/log/fhem" damit wird die normale Ausgabe (unter Textorientierten Systemen stdout, also Standard-Out, genannt) in eine Datei umgeleitet, damit man da  später noch rankommt.

Hier mal der Schnipsel aus meinem Startskript:/etc/fhem/fhem/fhem.pl /etc/fhem/config/fhem.cfg > /var/log/fhem 2> /var/log/fhem &

Du könntest Fhem aber auch zum Testen ohne dein Startskript, also direkt auf der Konsole starten.
Dazu in das Verzeichnis wechseln, in dem die fhem.pl-Datei liegt, sicherstellen, das Fhem nicht gerade läuft, und folgendes eingeben:perl fhem.pl fhem.cfgDann ist das, was du auf der Konsole durchrauschen siehst, die Standardausgabe, und das was ich sehen möchte :-)
Es sollte dort mit folgender Zeile losgehen, kann aber etwas dauern, weil Fhem erst bei der "define Sonos"-Zeile ankommen, und den Prozess erst starten muss:00_SONOS.pm is listening to Port 4711

Kommst du damit weiter?

Grüße Reiner

FHEM-Freak

Hallo Reiner,

Danke für die Info.
Bei mir starten Fhem auch mit dem Startscript automatisch beim hochfahren.

Bei abstürzen verwende ich Putty und den von dir genannten Aufruf.
perl fhem.pl fhem.cfg

Habe auch schon gesehen das dort Infos ausgegeben werden, nur wusste ich nicht das du die Angezeigten protokolle meinst.
Ich werde sie Posten wenn ich zuhause bin.

Gruss Kurt
Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I

det.

Hallo Reiner,

sorry, etwas wenig Zeit - hab die Zeile eingetippt - Ergebnispi@rpi3 /usr/share/fhem/FHEM $ perl 00_SONOS.pm 4712 4
2013.09.17 11:56:55 1: SONOS0: 00_SONOS.pm is listening to Port 4712
LG
det.

Reinerlein

Hi Detlev,

das bedeutet, dass die UPnP-Library im Prinzip gefunden wird. Nur der Teil Fhem-Modul hat damit noch ein Problem...
Das war bislang immer der problemfreie Teil, da ich dort direkt auf die Fhem-Konfiguration selbst zurückgreife.

Hmm, hast du irgendwas besonderes an deiner Fhem-Installation?
Wie sieht denn deine normale Fhem-Startzeile aus? Du verwendest ja vermutlich ein Startskript, kannst du mal die Zeile posten, die Fhem startet?

Grüße, Reiner

det.

Hallo Reiner,

hab z.Z. real Life Sachen um die Ohren ( angenehme ), so dass ich nicht richtig zum Testen komme. Am Start script habe ich nichts gemacht, das ist das übliche aus dem Busware RPI image. Sonst habe ich nichts Spezielles auf dem RPI, wenn ich Zeit habe probiere ich es noch auf einem 2ten - am Wochenende. Auf beiden war bisher das SONOS Modul vor dem letzten update und ging prima.
LG
det.

FHEM-Freak

Hallo Reiner

Hoffe das ist der gewünschte Log
2013.09.17 20:41:34 1: SONOS0: FHEM/00_SONOS.pm is li                                          stening to Port 4711
2013.09.17 20:41:37 1: SONOS0: Connection accepted from localhost:57346
2013.09.17 20:41:38 3: SONOS0: Received: 'SetData:Sonos:RINCON_000E58E3266201400                                          _MR,RINCON_000E58F0A13A01400_MR'
2013.09.17 20:41:38 3: SONOS0: Received: 'StartThread'
2013.09.17 20:41:39 3: SONOS1: I am the new UPnP-Thread. Nice to meet you...
2013.09.17 20:41:41 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und                                           pruefe dann alle 30 Sekunden...
2013.09.17 20:41:42 1: SONOS3: Restorethread gestartet. Warte auf Arbeit...
2013.09.17 20:41:42 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
2013.09.17 20:41:49 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
2013.09.17 20:41:49 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2013.09.17 20:41:49 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003006" and Timeout="86400s"
2013.09.17 20:41:49 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003007" and Timeout="86400s"
2013.09.17 20:41:49 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003008" and Timeout="86400s"
2013.09.17 20:41:49 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003009" and Timeout="86400s"
2013.09.17 20:41:50 3: SONOS1: Discover: End of discover-event
2013.09.17 20:41:50 2: SONOS1: Discover SonosPlayer 'Sonos-BRIDGE' (ZB100) Softw                                          are Revision 4.1 with ID 'RINCON_000E58E3266201400_MR'
2013.09.17 20:41:50 2: SONOS1: SonosPlayer 'Sonos_BRIDGE' (ZB100) Software Revis                                          ion 4.1 with ID 'RINCON_000E58E3266201400_MR' is already defined and will only b                                          e updated
2013.09.17 20:41:50 2: SONOS1: SonosPlayer 'Sonos_BRIDGE' is now updated
2013.09.17 20:41:50 1: SONOS1: Service-subscribing not possible due to missing T                                          ransportService
2013.09.17 20:41:50 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58E3266201400_sub0000000022" and Timeout="86400s"
2013.09.17 20:41:50 3: SONOS1: Discover: End of discover-event
2013.09.17 20:41:50 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:41:51 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
2013.09.17 20:41:51 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Sonos_BRIDGE".
2013.09.17 20:41:52 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Sonos_BRIDGE".
2013.09.17 20:41:52 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
2013.09.17 20:41:52 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
2013.09.17 20:41:52 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
2013.09.17 20:41:53 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
2013.09.17 20:41:53 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:41:54 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".
Thread 2 terminated abnormally: icmp ping requires root privilege at FHEM/00_SON                                          OS.pm line 2625 thread 2
Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 7.
Subroutine DebianMail redefined at ./FHEM/99_myUtils.pm line 13.
Subroutine SetTempList_Heizung_Aus redefined at ./FHEM/99_myUtils.pm line 37.
Subroutine SetTempList_Heizung_Ein redefined at ./FHEM/99_myUtils.pm line 50.
2013.09.17 20:45:46 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
2013.09.17 20:45:51 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
2013.09.17 20:45:51 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2013.09.17 20:45:51 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003013" and Timeout="86400s"
2013.09.17 20:45:51 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003014" and Timeout="86400s"
2013.09.17 20:45:51 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003015" and Timeout="86400s"
2013.09.17 20:45:51 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003016" and Timeout="86400s"
2013.09.17 20:45:51 3: SONOS1: Discover: End of discover-event
2013.09.17 20:45:51 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:45:51 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
2013.09.17 20:45:52 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
2013.09.17 20:45:52 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
2013.09.17 20:45:52 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
2013.09.17 20:45:58 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
2013.09.17 20:45:58 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2013.09.17 20:45:58 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003017" and Timeout="86400s"
2013.09.17 20:45:58 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003018" and Timeout="86400s"
2013.09.17 20:45:58 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003019" and Timeout="86400s"
2013.09.17 20:45:59 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003020" and Timeout="86400s"
2013.09.17 20:45:59 3: SONOS1: Discover: End of discover-event
2013.09.17 20:45:59 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
2013.09.17 20:45:59 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
2013.09.17 20:45:59 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
2013.09.17 20:45:59 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".


Bin bis Freitag beruflich unterwegs also keine Eile.

Gruss Kurt
Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I

Reinerlein

Hallo zusammen,

@Detlev: ich werde demnächst mal ein paar zusätzliche Log-Ausgaben bzgl. der Library-Pfade, die verwendet werden, machen. Dann sehen wir vielleicht auch mehr, woran es dort mangelt.

@Kurt: Dein Problem scheint erstmal einfach zu lösen zu sein :-) In dem Wust gibt es eine Meldung, dass für das Ausführen von "ping" mittels "icmp" root Rechte erforderlich sind. Da gibt es jetzt zwei Möglichkeiten:
1. Fhem unter dem Benutzer root laufen lassen (geht durch umbenennen/löschen des Benutzers "fhem")
2. Dem Modul sagen, dass er eine andere Methode als "icmp" verwenden soll. Das geht durch Setzen des Attributs "pingType" am Sonos-Device. Mögliche Werte sind dort "tcp", "icmp", "syn" und "udp". Die verschiedenen Verfahren haben alle ihre Vor- und Nachteile, sodass man dort keine eindeutige Empfehlung aussprechen kann, ausser, dass bei mir "icmp" sehr stabil läuft, und mit "syn" ein Player immer noch als Lebend erkannt wird, wenn er schon längst weg ist. "tcp" ist, glaube ich, für die Sonos-Geräte eigentlich keine gute Wahl, da das etwas Last auf dem Ziel (also dem Player) verursacht.
Probier das einfach mal aus.
Ansonsten sieht es dort doch eigentlich ganz gut aus...

Grüße Reiner

det.

Hallo Reiner,
auf einem 2ten RPI das identische Fehlerbild. Mach Dir aber bitte keinen Stress, das Modul ist nur nice to have
LG
det.

der-Lolo

Hallo Reinerlein,
Ich habe nun das Sonos Modul installiert und Sonos definiert...
Sieht soweit ganz gut aus, es hat problemlos meinen Play3, das Dock und den zp90 erkannt...

Mein Play3 läuft im Bad über eine Philips living Whites die auf Tastendruck 20min anschaltet...

Ich würde nun gerne sobald der Play3 sich meldet schauen ob im Wohnzimmer der Zp90 eine Wiedergabe hat,
Falls ja soll der play3 sich mit dem Wohnzimmer gruppieren - falls nicht soll er Star FM abspielen...

Wie kann ich so etwas realisieren?

FHEM-Freak

Zitat von: Reinerlein schrieb am Di, 17 September 2013 22:411. Fhem unter dem Benutzer root laufen lassen (geht durch umbenennen/löschen des Benutzers "fhem")
Ansonsten sieht es dort doch eigentlich ganz gut aus...
Hallo Reiner,

Komplettes Fhem System neu auf den Pi installiert mit root Rechte.
Sonos läuft perfekt.
Keine verzögerungen und keine abstürze mehr.
Danke für deine Hilfe.

Gruß Kurt
Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I