Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi Chris,

das sieht ja zumindest so aus, als könnte man das System normal per UPnP steuern.
OK, damit wäre das Grundkonzept gleich.

Ich fürchte nur, dass sich die Befehle und das allgemeine System-Konzept von Sonos unterscheiden. Das wichtigste sind ja so Fragen wie, wie werden Zonen abgebildet, wie müssen Befehle übertragen werden, was kann alles gesteuert werde, wie bekommt man die laufenden und konfigurativen Informationen geliefert...

Meine Erfahrung mit Sonos zeigt, dass es zwar ein allgemeines Grundkonzept für den Zugriff gibt (UPnP), aber die Details doch sehr speziell sind (also die Frage, was eigentlich in den Befehlen übertragen werden muss, Formate der URLs z.B. und was für Informationen überhaupt benötigt werden, um einen Titel abzuspielen), der Teufel steckt wie immer im Detail :-).

Ich denke, das sollte jemand machen, der ein solches System auch zuhause stehen hat. Ich hatte ja schon so meine Probleme mit Komponenten, die ich innerhalb des Sonos-Systems nicht selber habe, und da stand der gesamte Grundzugriff schon...

Will damit sagen:
Meine Erfahrung würde sicherlich hilfreich sein, aber ohne lebendes Objekt wird das nix.
Und selbst dabei braucht man (wie am Beispiel Sonos auch zu sehen) viel Zeit und viele Mithelfer, die Dinge testen können, und andere Konstellationen zuhause haben...

Grüße
Reiner

Slarti

Hallo,

ganz herzlichen Dank für das Modul!

Leider bin ich absoluter FHEM Anfänger und fuchse mich gerade ins Thema. Mein Ziel ist, einen Player5 anzusprechen, der ohne Bridge betrieben wird. Leider wird der player immer als "disappeared" geführt. Das automatische Finden scheint (unabhängig vom PingType) nicht zu klappen. Meine CFG:

define Sonos SONOS localhost:4711 30

attr Sonos pingType syn


Nachdem das automatische Finden nicht geklappt hat, habe ich stumpf per Copy & Paste aus dem WIKI die CFG erweitert:

define Sonos SONOS localhost:4711 30

attr Sonos pingType syn
define Sonos_Wohnzimmer SONOSPLAYER RINCON_000E58545B7601400

attr Sonos_Wohnzimmer generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/> <Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio><StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
attr Sonos_Wohnzimmer generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr Sonos_Wohnzimmer generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/>~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/>
attr Sonos_Wohnzimmer icon icoSONOSPLAYER_icon-ZP90.png
attr Sonos_Wohnzimmer room Sonos
attr Sonos_Wohnzimmer stateVariable InfoSummarize2
attr Sonos_Wohnzimmer webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
attr Sonos_Wohnzimmer group Wohnzimmer

define AlbumArt_Wohnzimmer weblink image fhem/icons/SONOSPLAYER/Sonos_Wohnzimmer_AlbumArt
attr AlbumArt_Wohnzimmer room Sonos
attr AlbumArt_Wohnzimmer htmlattr width="200"
attr AlbumArt_Wohnzimmer group Wohnzimmer


Der Player wird dann zwar angezeigt, aber ist trotzdem "disappeared".

Mache ich gerade einen Denkfehler oder woran könnte es liegen?

Christoph

Hast schonmal ins Logfile geschaut da tauchen bestimmt irgendwelche Fehler auf...


Gruß Christoph

Slarti

Leider scheint da nichts zu stehen.

Kann es am "4711" liegen?

2014.01.10 17:17:05 0: Server shutdown
2014.01.10 17:17:09 1: Including fhem.cfg
2014.01.10 17:17:11 3: telnetPort: port 7072 opened
2014.01.10 17:17:11 3: WEB: port 8083 opened
2014.01.10 17:17:11 3: WEBphone: port 8084 opened
2014.01.10 17:17:11 3: WEBtablet: port 8085 opened
2014.01.10 17:17:16 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 sekunden darauf...
2014.01.10 17:17:24 3: Opening Sonos device localhost:4711
2014.01.10 17:17:24 3: Sonos device opened
2014.01.10 17:17:24 1: Including ./log/fhem.save
2014.01.10 17:17:24 1: statefile: Reading Sonos_Wohnzimmer->presence not used out of statefile.


Christoph

#649
Erhöh mal dein Verbose, das steht bestimmt auf 3 oder ?

attr global verbose 5

Dann bekommst auch mehr im Log zu sehen  ;)


Reinerlein

Hi Slarti,

du musst in der Konsolenausgabe gucken. Der normale Fhem-Log zeigt in dieser Hinsicht nur wenig (nämlich nur den Teil, der direkt in Fhem passiert).

Die Konsolenausgabe ist das, was du als Ausgabe auf der Kommandozeile erhältst, wenn du den Fhem-Prozess z.B. manuell startest.

Dort wird etwas erhellendes dazu stehen...

Grüße
Reiner

Slarti

Danke für die Unterstützung!

Hier mal die LOG-Ausgaben. Vielleicht erkennt man ja schon etwas.

Auf der Konsole war FHEM mit /etc/init.d/fhem start ohne Beanstandungen gestartet.



2014.01.10 19:10:47 3: Opening Sonos device localhost:4711
2014.01.10 19:10:47 3: Can't connect to localhost:4711: Connection refused
2014.01.10 19:10:47 5: Cmd: >attr Sonos pingType tcp<
2014.01.10 19:10:47 5: Cmd: >define Sonos_Wohnzimmer SONOSPLAYER RINCON_000E58545B7601400<
2014.01.10 19:10:47 5: Loading ./FHEM/21_SONOSPLAYER.pm
2014.01.10 19:10:47 5: _="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/><
2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer group Wohnzimmer<
2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer icon icoSONOSPLAYER_icon-ZP90.png<
2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer room Sonos<
2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer stateVariable InfoSummarize2<
2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT<
2014.01.10 19:10:48 5: Cmd: >define AlbumArt_Wohnzimmer weblink image fhem/icons/SONOSPLAYER/Sonos_Wohnzimmer_AlbumArt<
2014.01.10 19:10:48 5: Loading ./FHEM/98_weblink.pm
2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer group Wohnzimmer<
2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer htmlattr width="200"<
2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer room Sonos<
2014.01.10 19:10:48 1: Including ./log/fhem.save
2014.01.10 19:10:48 5: Cmd: >setstate AlbumArt_Wohnzimmer initialized<
2014.01.10 19:10:48 5: Cmd: >setstate Logfile active<
2014.01.10 19:10:48 5: Cmd: >setstate Sonos opened<
2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer initialized<
2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 18:12:50 LastActionResult CheckProxyObject-ERROR: SonosPlayer disappeared?<
2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 17:47:00 presence disappeared<
2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 17:47:00 state initialized<
2014.01.10 19:10:48 5: Cmd: >setstate autocreate active<
2014.01.10 19:10:48 5: Cmd: >setstate eventTypes active<
2014.01.10 19:10:48 5: Cmd: >setstate global <no definition><
2014.01.10 19:10:48 5: Cmd: >setstate initialUsbCheck active<
2014.01.10 19:10:48 1: statefile: Reading Sonos_Wohnzimmer->LastActionResult not used out of statefile.
Reading Sonos_Wohnzimmer->presence not used out of statefile.
2014.01.10 19:10:48 5: Interface "interface": readings "", getters "", setters ""
2014.01.10 19:10:48 5: Interface "switch": readings "onoff", getters "onoff", setters ""
2014.01.10 19:10:48 5: Interface "switch_active": readings "onoff", getters "onoff", setters ""
2014.01.10 19:10:48 5: Interface "switch_passive": readings "onoff", getters "onoff", setters "on:off"
2014.01.10 19:10:48 5: Interface "dimmer": readings "onoff:level", getters "onoff:level", setters "on:off:dimto:dimup:dimdown"
2014.01.10 19:10:48 5: Interface "temperature": readings "temperature", getters "temperature", setters ""
2014.01.10 19:10:48 5: Interface "humidity": readings "humidity", getters "humidity", setters ""
2014.01.10 19:10:48 5: Interface "wind": readings "wind", getters "wind", setters ""
2014.01.10 19:10:48 5: Interface "power": readings "power:maxPower:energy", getters "power:maxPower:energy", setters ""

...


2014.01.10 19:11:48 1: localhost:4711 reappeared (Sonos)
2014.01.10 19:11:48 5: Triggering Sonos (1 changes)
2014.01.10 19:11:48 5: Notify loop for Sonos CONNECTED
2014.01.10 19:11:48 4: eventTypes: SONOS Sonos CONNECTED -> CONNECTED
2014.01.10 19:11:48 5: SONOS0: Received from UPnP-Server: ''This is UPnP-Server calling''
2014.01.10 19:11:48 5: SONOS0: MainTrigger()-Line: 'This is UPnP-Server calling'
2014.01.10 19:11:49 5: SW: SetData:Sonos:tcp:Sonos_Wohnzimmer:RINCON_000E58545B7601400


Reinerlein

Hi Slarti,

in der Fhem-Logausgabe ist nur zu erkennen, dass keine Verbindung zum SubProzess hergestellt werden konnte.
Wir benötigen die Ausgabe auf "der anderen Seite".

Grüße
Reiner

Reinerlein

Hi JoeALLb,

ich habe den Update-Prozess wieder am Laufen. Ich hatte einen Tippfehler in der Datei (es fehlte ein Unterstrich zwischen einem Datum und einer Uhrzeit).
Das geht also wieder...

Das mit dem Timeout konnte ich noch nicht finden, da es nicht einfach nur ein Parameter ist... ich bin aber noch dran...

Grüße
Reiner

Slarti

Das kam auf der Konsole:


/etc/init.d/fhem start


Starting fhem...
XYZ@XYZ:/home/pi# Current: "fhem.pl", gPath: "./FHEM"
Current: "FHEM/00_SONOS.pm", gPath: ""
2014.01.10 19:18:41 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
2014.01.10 19:18:44 1: SONOS0: Connection accepted from localhost:41393
2014.01.10 19:18:46 3: SONOS0: Received: 'SetData:Sonos:tcp:Sonos_Wohnzimmer:RINCON_000E58545B7601400'
2014.01.10 19:18:46 3: SONOS0: Received: 'StartThread'
2014.01.10 19:18:46 3: SONOS1: UPnP-Thread gestartet.
2014.01.10 19:18:47 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2014.01.10 19:18:47 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...


Danach kam nichts mehr

Reinerlein

Hi Slarti,

das ist komisch. Aus irgendeinem Grunde muss er ja mit einem Fehler aufhören, und das eigentlich auch mitteilen...

Ich fürchte, da musst du nochmal auf die Suche gehen, und rausfinden, wo er da was rausschreibt... da muss es einfach nochwas geben...

Grüße
Reiner

herman

#656
Hallo Reiner,

ich habe beim debuggen der Probleme bzgl. FHEMobile zusammen mit Arno festgestellt, dass das Encoding im Attribut roomName bei Umlauten Latin1 ist. Laut Arno müsse dies aber UTF-8 sein. Mir fehlt an dieser Stelle das FHEM Entwickler Knowhow, aber ich dachte ich schreibe die Erkenntnisse mal hier rein. Nachdem Umbenennen meines Play1 von Küche in Kueche hat FHEMobile auch wieder funktioniert. Das ü wurde in der FHEM Weboberfläche auch als Kasten angezeigt.

Ansonsten habe ich mit dem Sonos-Modul sehr viel Freude!

Viele Grüße,
Merhan

Reinerlein

Hallo Merhan,

das kann gut sein. Bislang gebe ich einfach die Daten so weiter, wie ich sie erhalte. Ich kann ja mal schauen, das ich sie entsprechend konvertiere.

Wie sieht das denn mit den Umlauten z.B. bei den Titeln aus?
Bei mir wird das alles auf der Weboberfläche normal dargestellt (auch in den FileLog-Dateien dazu)...

Grüße
Reiner

JoeALLb

Ich habe das Timeout jetzt mal über das Wochenende laufen lassen,
folges ergebnis habe ich danach erhalten:

Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (timeout) at FHEM/00_SONOS.pm line 1974 thread 1.
Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
Out of memory!
Perl exited with active threads:
        1 running and unjoined
        1 finished and unjoined
        0 running and detached


Von den "Keine Route zum Zielrechner" waren natürlich mehr als die oben angezeigten im Log.
Aktualisiere jetzt gerade auf die neueste Develop-Version, damit die Codezeilen wieder zusammenpassen.

Aufgefallen ist mir, dass dieses Verhalten am Freitag nach dem Absetzen folgendes Befehls erstmalig aufgetreten ist: Vielleicht hilft Dir das weiter?
set Sonos Groups [Sonos_Wohnzimmer,Sonos_Kueche];set Sonos_Wohnzimmer LoadRadio BAYERN%%203;set Sonos_Wohnzimmer Play;set Sonos_Wohnzimmer Volume 40;set Sonos_Kueche Volume 40;
Der FHEM Prozess lief danach noch, es reagierte jedoch nicht mehr. Es wurden nichtmal mer Lodeinträge geschrieben.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Reinerlein

Hi JoeALLb,

hmm... ich gehe mal davon aus, dass diese Zeile aus einer Notify-Definition stammt (sonst wäre ein %-Zeichen zuviel drin). Ich kann ja mal versuchen, das bei mir so nachzustellen.
Es könnte sein, dass die auf diese Aktionen folgenden Events eine problematische Situation verursachen, weil diese lange Befehlssequenz noch nicht abgearbeitet ist (wenn du z.B. die Gruppen veränderst, wird das ja wieder an Fhem gemeldet)...

Danke schon mal für die Info...

Grüße
Reiner