Sonos steuern

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

Vorheriges Thema - Nächstes Thema

der-Lolo

Hallo Reinerlein,
beschreibst Du noch kurz wie man ein update macht?

Reinerlein

Hi der-Lolo,

das hatte ich heute Mittag noch in einem Nachtrag hingeschrieben... Nicht nur die E-Mail Benachrichtigung lesen :-)

Grüße
Reinerlein

der-Lolo

#1157
Ok, Danke Dir...
ich habe das Update gemacht - und einen shutdown erstarrt abgesetzt...
Dabei kommt das hier im Log raus.

Zitat2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.
2014.11.15 17:04:11 1: SONOS0: Nothing could be read from TCP-Channel even though the Read-Function was called.

gefühlt 100 mal pro Sekunde, ohne aufzuhören.
Hast Du eine Idee was ich tun kann?


beim gerade nochmal neustarten habe ich die Konsole beobachtet...

Zitatroot@cubie:/opt/fhem# perl fhem.pl fhem.cfg
root@cubie:/opt/fhem# Current: "fhem.pl", gPath: "./FHEM"
Current: "FHEM/00_SONOS.pm", gPath: ""
2014.11.15 17:08:09 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
2014.11.15 17:08:15 1: SONOS0: Connection accepted from localhost:47033
2014.11.15 17:08:18 3: SONOS1: UPnP-Thread gestartet.
Odd number of elements in hash assignment at FHEM/lib/UPnP/ControlPoint.pm line 30, <$client> line 7.
2014.11.15 17:08:18 1: SONOS2: Restore-Thread gestartet. Warte auf Arbeit...
2014.11.15 17:08:18 2: SONOS1: Discover Sonosplayer 'DOCK' (WD100) Software Revision 5.1 with ID 'RINCON_000E5861BC7A01400_MR'
2014.11.15 17:08:20 2: SONOS1: SonosPlayer 'DOCK' (WD100) Software Revision 5.1 with ID 'RINCON_000E5861BC7A01400_MR' is already defined and will only be updated
2014.11.15 17:08:20 2: SONOS1: SonosPlayer 'DOCK' is now updated
2014.11.15 17:08:20 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E5861BC7A01400_sub0000001461" and Timeout="86400s"
2014.11.15 17:08:20 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E5861BC7A01400_sub0000001462" and Timeout="86400s"
2014.11.15 17:08:20 2: SONOS1: DeviceProperties-Service-subscribing successful with SID="uuid:RINCON_000E5861BC7A01400_sub0000001463" and Timeout="86400s"
2014.11.15 17:08:20 2: SONOS1: AudioIn-Service-subscribing successful with SID="uuid:RINCON_000E5861BC7A01400_sub0000001464" and Timeout="86400s"
2014.11.15 17:08:20 3: SONOS1: Discover: End of discover-event for "DOCK".
2014.11.15 17:08:20 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (ZP90) Software Revision 5.1 with ID 'RINCON_000E5828236001400_MR'
2014.11.15 17:08:22 2: SONOS1: SonosPlayer 'Wohnzimmer' (ZP90) Software Revision 5.1 with ID 'RINCON_000E5828236001400_MR' is already defined and will only be updated
2014.11.15 17:08:22 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
2014.11.15 17:08:22 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005688" and Timeout="86400s"
2014.11.15 17:08:22 2: SONOS1: Rendering-Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005689" and Timeout="86400s"
2014.11.15 17:08:22 2: SONOS1: Alarm-Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005690" and Timeout="86400s"
2014.11.15 17:08:22 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005691" and Timeout="86400s"
2014.11.15 17:08:23 2: SONOS1: DeviceProperties-Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005692" and Timeout="86400s"
2014.11.15 17:08:23 2: SONOS1: AudioIn-Service-subscribing successful with SID="uuid:RINCON_000E5828236001400_sub0000005693" and Timeout="86400s"
2014.11.15 17:08:23 3: SONOS1: Discover: End of discover-event for "Wohnzimmer".
2014.11.15 17:08:23 3: SONOS1: Event: Received Transport-Event for Zone "sonos_DOCK".
2014.11.15 17:08:23 3: SONOS1: Event: End of Transport-Event for Zone "sonos_DOCK".
2014.11.15 17:08:23 3: SONOS1: Event: Received Transport-Event for Zone "sonos_Wohnzimmer".
2014.11.15 17:08:23 3: SONOS1: Event: End of Transport-Event for Zone "sonos_Wohnzimmer".
2014.11.15 17:08:23 3: SONOS1: Event: Received AudioIn-Event for Zone "sonos_DOCK".
2014.11.15 17:08:23 3: SONOS1: Event: End of AudioIn-Event for Zone "sonos_DOCK".
Wide character in send at FHEM/00_SONOS.pm line 5108, <$client> line 7.
Perl exited with active threads:
   2 running and unjoined
   0 finished and unjoined
   0 running and detached

Das Log wird immernoch voll geschrieben.

Reinerlein

hi der-Lolo,

hmm... das ist nicht beabsichtigt... ich hatte Code teilweise übernommen, der Fhem am Absturz hindern sollte, wenn der SubProzess nicht mehr mitspielt.
Das ging in die Hose, da der Schutz nicht funktioniert, und an anderer Stelle sorgt wohl ein Bug für abstürzende SubProzesse...

Ich werde da nachher nochmal dran rumbasteln und dann nochmal aktualisieren. Sorry

Derweil kann jeder, der das schon gemacht haben sollte, und jetzt ein nicht funktionierendes System hat, auf das offizielle Release zurückupdaten:

update all http://fhem.lmsoft.de/sonos/controls_sonos.txt


Bis nachher...
Reinerlein

Reinerlein

Hallo zusammen,

ich habe noch etwas an der Fhem-Absturz-Verhinderung getan (dieses Endlosschleifenproblem). Ich trenne jetzt bei diesem Fehler die Verbindung ab, sodass Fhem diese wieder neu aufbaut. Die Idee ist dann, dass der SubProzess seine Threads beendet, und dann bei Verbindung wieder neustartet.
Mal schauen...

Das eigentliche Problem von der-Lolo löst es aber nicht. Da stand was von "wide-character in send". Wie kommt das zustande? Und warum sollte das ein Problem sein? Kann Perl seine eigene Zeichenkodierung nicht übertragen?
Hat da jemand eine Idee?

Danke schon mal...

Grüße
Reinerlein

schalkan56

Hallo Reinerlein,

habe heute versucht dein Modul einzubinden :

Sprich:
    LWP::Simple
    LWP::UserAgent
    SOAP::Lite
    HTTP::Request

Dann : update all http://fhem.lmsoft.de/sonos/controls_sonos.txt

Ein :define Sonos SONOS localhost:4711 30 ergibt folgenden log-Eintrag:
2014.11.15 23:02:52 1: reload: Error:Modul 00_SONOS deactivated:
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/lib/UPnP/Common.pm line 85.
Compilation failed in require at FHEM/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at ./FHEM/00_SONOS.pm line 267.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 267.


Stimmt da generell was bei meiner Instalation nicht?

Reinerlein

Hi schalkan56,

da scheint das SOAP::Lite Modul nicht richtig installiert worden zu sein (zumindest findet er es nicht).

Ich weiß jetzt nicht, was für ein System du hast, aber im Wiki sind zur Installation der Module einige Hinweise:
Manuelle Installation:
http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Manuelle_Installation_SOAP::Lite

Und vereinfachte Installation bei Debian-basierten Systemen:
http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Hinweis_f.C3.BCr_Debian-Systeme

Grüße
Reinerlein

schalkan56

Ja wunderbar, hat geklappt....Den Speaker hat er erkannt...allerdings kann ich nichts schalten.
Kann das am Umlaut Ü für Küche liegen?

Reinerlein

Hi schalkan56,

das Modul macht für die Ermittlung des Devicenamens aus den Umlauten des Zonennamen die Schreibweise mit 'e', also bei 'ü' ein 'ue'.
Sollte bei dir ein doppelter Unterstrich anstatt eines 'ue' stehen, dann kannst du versuchen das Attribut 'characterDecoding' am Sonos-Device einzustellen, dort kann man direkt ein Characterklasse für das Dekodieren einstellen. Bei mir funktioniert das standardmäßig verwendete "ISO8859-15". Bei manch anderem wohl nicht...
Üblich wäre sowas wie "UTF-8" oder "CP-1252".

Aber egal wie, das ist nur der Name in Fhem, den du auch selber umbenennen kannst. Das hat keine Auswirkung auf die Funktionalität selbst (ausser natürlich noch die Titelanzeige).
Wenn also die Steuerung nicht klappt, solltest du nach Absetzen eines Play-Befehls mal zuerst im Fhem-Log schauen. Wenn es dort keine ausreichenden Informationen gibt, dann bitte mal die Konsolenausgabe untersuchen. Im Wiki gibt es noch ein/zwei Hinweise zur Fehlersuche...
Diese Auszüge kannst du hier einstellen, um damit dem Problem näher auf die Spur zu kommen...

Grüße
Reinerlein

schalkan56

Hi Reinerlein,

habe es hinbekommen....Ansteuerung funktioniert. Allerdings bekomme ich keine Sprachausgabe mittels Speak hin...Samba ist
konfiguriert ist unter win auch erreichbar......
targetSpeakDir /mnt/SonosSpeak
targetSpeakURL \\192.168.178.24\SonosSpeak

Beim SPeak-Befehl wird allerdings can't create Mp3 ausgewiesen....Habe ich was übersehen?

Reinerlein

Hi schalkan56,

hat der User / die Gruppe, unter dem Fhem läuft, auch Schreibrechte in dem Ordner "/mnt/SonosSpeak"?
Auch wenn Fhem als root läuft, darf er nicht überall hinschreiben.

Am einfachsten ist ein

chmod 777 /mnt/SonosSpeak

Damit darf alles und jeder in diesen Ordner reinschreiben (und auch lesen und hineinwechseln). Musst du notfalls verkleinern, wenn es dir zuviele Rechte sind... Hauptsache Fhem darf :-)

Grüße
Reinerlein

Reinerlein

Hallo zusammen,

ich habe noch eine Korrektur bei der Zeichenkodierung gemacht. Irgendwie war es eine doofe Annahme, dort "ISO8859–15" als Standard zu definieren.

Ich habe das nun auf "CP-1252" umgestellt, und denke, dass ich damit die echte Zeichenkodierung der Sonos-Player getroffen habe. Zumindest sieht es bei mir jetzt deutlich besser aus.
Damit ist diese Fehlermeldung mit dem "wide character" Geschichte. Die hatte ich nämlich vorhin auch, und trat immer bei einem Umlaut in irgendeinem Titel auf (das passiert gar nicht so oft, wie man meinen könnte :-)
Ich denke, wer Umlaute in Playernamen hat, hatte dann auch massive Probleme beim Erkennen der Player...

Vielleicht sollten alle die, die Probleme mit Umlauten oder fehlerhaften Playernamen (mit doppelten Unterstrichen anstatt 'ue' o.ä.) das mal probieren.

Auf Developer-Version aktualisieren:

update all http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt


Und falls Probleme auftreten, wieder zurück:

update all http://fhem.lmsoft.de/sonos/controls_sonos.txt


Grüße
Reinerlein

MartinMuc

#1167
Hallo Reinerlein,
Ich bekomme jetzt folgenden Fehler


2014.11.16 19:45:01 2: SONOS1: Discover-Event: Wrong deviceType "urn:schemas-upnp-org:device:ZonePlayer:1" received!
2014.11.16 19:45:01 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2014.11.16 19:45:01 2: SONOS1: Error during UPnP-Handling: Can't use string ("
    ") as an ARRAY ref while "strict refs" in use at FHEM/lib/UPnP/Common.pm line 190, <$client> line 4.

2014.11.16 19:45:01 4: SONOS1: ControlPoint is successfully stopped!
2014.11.16 19:45:01 3: SONOS1: UPnP-Thread wurde beendet.


Dann hab ich mal versucht das Problem zu suchen und das return in Zeile 3034 aus kommentiert dann kommt das. Jetzt fehlt mir allerdings das KnowHow was er an meinem Sonos da nicht korrekt auslesen kann.  Habe eine Bridge (Bridge) einen Play1 (Wohnzimmer) und einen Play3 (Schlafzimmer). In Klammern immer die Namen aus dem Sonos Setup

2014.11.16 20:44:01 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
2014.11.16 20:44:07 1: SONOS0: Connection accepted from localhost:37706
2014.11.16 20:44:08 5: SONOS0: Received: 'SetValues:SONOS:NAME=Sonos|INTERVAL=30'
2014.11.16 20:44:08 5: SONOS0: Received: 'StartThread'
2014.11.16 20:44:09 3: SONOS1: UPnP-Thread gestartet.
Odd number of elements in hash assignment at FHEM/lib/UPnP/ControlPoint.pm line 28, <$client> line 4.
2014.11.16 20:44:09 4: SONOS2: SONOS_Client_Data_Retreive(SONOS, def, INTERVAL, 0) -> 30
2014.11.16 20:44:09 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2014.11.16 20:44:09 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, characterDecoding, CP-1252) -> DEFAULT
2014.11.16 20:44:09 2: SONOS1: Discover-Event: Wrong deviceType 2"urn:schemas-upnp-org:device:ZonePlayer:1" received!
Use of uninitialized value $descriptionDocument in concatenation (.) or string at FHEM/00_SONOS.pm line 3036, <$client> line 4.
2014.11.16 20:44:09 4: SONOS1: Discover-Event: Description-Document:
Use of uninitialized value $descriptionDocument in pattern match (m//) at FHEM/00_SONOS.pm line 3050, <$client> line 4.
Use of uninitialized value $descriptionDocument in pattern match (m//) at FHEM/00_SONOS.pm line 3057, <$client> line 4.
Use of uninitialized value $descriptionDocument in pattern match (m//) at FHEM/00_SONOS.pm line 3060, <$client> line 4.
Use of uninitialized value $descriptionDocument in pattern match (m//) at FHEM/00_SONOS.pm line 3063, <$client> line 4.
Use of uninitialized value $descriptionDocument in pattern match (m//) at FHEM/00_SONOS.pm line 3066, <$client> line 4.
2014.11.16 20:44:09 4: SONOS1: RoomName: '', SaveRoomName: '', ModelNumber: '', DisplayVersion: '', SerialNum: '', IconURI: '', IconOrigPath: 'http://192.168.0.23:1400', IconPath: ''
2014.11.16 20:44:09 2: SONOS1: Discover Sonosplayer '' () Software Revision  with ID 'RINCON_000E58C306EE01400_MR'
2014.11.16 20:44:09 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2014.11.16 20:44:10 4: SONOS1: SubDevice found: uuid:RINCON_000E58C306EE01400_MS
2014.11.16 20:44:10 4: SONOS1: SubDevice found: uuid:RINCON_000E58C306EE01400_MR
2014.11.16 20:44:11 4: SONOS1: ControlProxies wurden gesichert
2014.11.16 20:44:11 2: SONOS1: Error during UPnP-Handling: Can't use an undefined value as an ARRAY reference at FHEM/lib/UPnP/Common.pm line 616, <$client> line 4.

2014.11.16 20:44:11 4: SONOS1: ControlPoint is successfully stopped!
2014.11.16 20:44:11 3: SONOS1: UPnP-Thread wurde beendet.



Cubietruck mit CUL und HM USB

Reinerlein

Hallo MartinMuc,

also, Sicherheitsabfragen zu ändern, und das rausspringen zu entfernen, führt in den seltensten Fällen zur Lösung :-)
Das return muss da schon hin. Er hat ja festgestellt, dass er mit dem gemeldeten Player nix anfangen kann, und hat das auch deutlich gemacht, als du das return entfernt hattest...

Die Ursache ist also zu suchen...
Ich finde zum Beispiel die erste Fehlermeldung, die sich auf die Common.pm bezieht, komischt. Bei mir ist Zeile 190 eine Leerzeile und kann damit eigentlich nicht den gemeldeten Fehler verursachen.

Hat das Installieren auf normalen Wege geklappt?
Ich gehe hier davon aus, dass der Fehler beim Abfragen des Description-Documents zu suchen ist. Das habe ich selber nachträglich in das UPnP-Modul eingebaut, und wird im Originalmodul nicht funktionieren. Deswegen ist es wichtig, dass das von mir mitgelieferte verwendet wird.
Ich werde das im Wiki noch mal deutlich machen, dort geht das vielleicht nicht klar hervor, da der Update-Prozess ja immer die richtigen Dateien installieren sollte...

Grüße
Reinerlein

MartinMuc

Ah das könnte das Problem sein ich prüfe das mal.

Das mit dem auskomentiren ist mir klar aber ich bastle nun mal gerne ;)

Nachdem es Probleme gab hatte ich Manuelle Installation gelesen im Wiki... Da steht das mit dem Original Upnp.

Danke für die schnelle Hilfe
Cubietruck mit CUL und HM USB