Autor Thema: Sonos steuern  (Gelesen 446954 mal)

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 6619
    • Otto's Technik Blog
Antw:Sonos steuern
« Antwort #2940 am: 14 Juli 2017, 09:37:28 »
am stateformat hatte ich eigentlich gar nichts geändert, das kommt automatisch wenn die Player 'generiert' werden (also wenn man das SONOS device das erste mal definiert).
Kommt also irgendwo von Reinerlein.
Hallo inoma,

komisch ist bei mir nicht so. Allerdings sind meine "Player" auch schon etwas älter. Letztens (nach einem Update?) wurden die aber eh ziemlich "zerrissen".
Ich werde die wohl mal neu anlegen lassen.

Wenn ich aber die commandref richtig verstehe, kannst Du durchaus auch ein anderes reading als state verwenden:
Zitat
<struct_type>_map
Mit diesem Attribut, das dem Struktur-Mitglied zugewiesen werden muss, koennen die Werte, die die einzelnen Struktur- Mitglieder melden, umdefiniert werden, damit man unterschiedliche Geraeteklassen zusammenfassen kann. Es existieren drei Varianten:
readingName
nehme den Wert von readingName anstatt von state

Probiert habe ich das jetzt nicht.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Esjay

  • Full Member
  • ***
  • Beiträge: 477
Antw:Sonos steuern
« Antwort #2941 am: 14 Juli 2017, 16:05:04 »
Hallo zusammen, ich hoffe es ist ok, wenn meine erste Frage nicht direkt eine Frage zum Modul ist,sondern eher zum technischen. Ich habe mir beim Primeday ein Doppelpack Play 1 zugelegt, diese werde ich wohl demnächst noch um eine Playbase erweitern,dann besteht die Möglichkeit entweder per Optischem Ausgang aus meiner Ax Box (E2) oder aus meinem Samsung TV zu speisen. Vll hat hier ja jemand ebenfalls diese Kombi, und kann mir sagen, was mehr Sinn macht.

Dann würde es mich interessieren, ob ich, bevor ich über einen Sonos Lautsprecher eine Sprachausgabe ausgebe, die Quelle/Gruppe irgendwie wechseln muss, oder ob die Ausgabe einfach beim Fernseh gucken beispielsweise"dazwischen" quatscht.

Meine nächste Frage bezieht sich auf die Stabilität des Moduls. Ich hatte noch nicht so viel Zeit mich mit Sonos und Fhem zu beschäftigen, da ich wie gesagt erst vor kurzem zugeschlagen habe, und zweitens noch die nächsten Tage am Strand von Bibione verweile  8). Da es wohl einen enormen Funktionsumfang gibt, habe Ich beiläufig mitbekommen, dass es für jede Version ein neuen Theard gibt, daher ist es nicht so einfach den Überblick zu behalten. Und daher meine Frage, ob es Sinnvoll ist die Sonos Devices auf dem Hauptsystem laufen zu lassen, oder doch ein 2 System aufzusetzen.

Liebe Grüße

Offline markusphi

  • New Member
  • *
  • Beiträge: 9
Antw:Sonos steuern
« Antwort #2942 am: 20 Juli 2017, 22:35:37 »
diese werde ich wohl demnächst noch um eine Playbase erweitern,dann besteht die Möglichkeit entweder per Optischem Ausgang aus meiner Ax Box (E2) oder aus meinem Samsung TV zu speisen. Vll hat hier ja jemand ebenfalls diese Kombi, und kann mir sagen, was mehr Sinn macht.
direkt an den TV macht am meisten Sinn

Zitat
Dann würde es mich interessieren, ob ich, bevor ich über einen Sonos Lautsprecher eine Sprachausgabe ausgebe, die Quelle/Gruppe irgendwie wechseln muss, oder ob die Ausgabe einfach beim Fernseh gucken beispielsweise"dazwischen" quatscht.
Die Sprachausgabe quatscht einfach los/dazwischen.
Das wirst Du aber nicht wirklich wollen wenn der TV läuft und gerade im Krimmi der Täter genannt wird....
Du musst Dich also drum kümmern unter welchen Voraussetzungen (z.B. Fernseher ist aus) Sprachausgabe erfolgt.
Wenn Dein TV im Netz ist, nicht schwierig.

Zitat
Meine nächste Frage bezieht sich auf die Stabilität des Moduls. Ich hatte noch nicht so viel Zeit mich mit Sonos und Fhem zu beschäftigen, da ich wie gesagt erst vor kurzem zugeschlagen habe, und zweitens noch die nächsten Tage am Strand von Bibione verweile  8). Da es wohl einen enormen Funktionsumfang gibt, habe Ich beiläufig mitbekommen, dass es für jede Version ein neuen Theard gibt, daher ist es nicht so einfach den Überblick zu behalten. Und daher meine Frage, ob es Sinnvoll ist die Sonos Devices auf dem Hauptsystem laufen zu lassen, oder doch ein 2 System aufzusetzen.

Liebe Grüße

Hier ist das ausreichend stabil - nachdem ich im Modul die IP der Player eingetragen habe

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 6619
    • Otto's Technik Blog
Antw:Sonos steuern
« Antwort #2943 am: 20 Juli 2017, 22:52:56 »
Hallo Esjay,

Sonos läuft bei mir seit Januar 2015, völlig ohne Probleme.  Jetzt vor kurzem musste ich mal was neu machen, dass kann schon immer mal passieren wenn die Module intensiv weiterentwickelt werden. Irgendwann passt vielleicht was nicht mehr mit den alten Definitionen. Irgendwann muss der alte Zopf ab.  ;D

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1310
Antw:Sonos steuern
« Antwort #2944 am: 22 Juli 2017, 10:43:41 »
Hallo,

ich habe ein reading "roomicon" mit dem Inhalt "living". Ich hätte gerne den Player mit dem Icon "living" dargestelt. Weiß jemand, wie der Pfad zum dem Icon lautet?

Elektrolurch
configDB und Windows befreite Zone!

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1752
Antw:Sonos steuern
« Antwort #2945 am: 22 Juli 2017, 10:51:20 »
Hi Elektrolurch,

die Roomicons sind nur Sonos-intern vorhanden, und nicht herunterladbar (zumindest habe ich das noch nicht entdeckt).
Du müsstest dir also ein Bildchen mittels eines Screenshots aus der Mac- oder Windows-Software heraus erzeugen...
Oder natürlich, es hat schon mal jemand gemacht, und kann es hier hochladen :)

Grüße
Reiner

Offline Nobby1805

  • Full Member
  • ***
  • Beiträge: 442
Antw:Sonos steuern
« Antwort #2946 am: 22 Juli 2017, 11:39:08 »
bei mir z.B.
c:/fhem/www/images/default/icoSONOSPLAYER_icon-S1.png
FHEM: 5.8 auf Windows Server 2003 mit Strawberry Perl 5.20.2.1-32bit
TabletUI: 2.6
IO: HMLAN(0.965)|HMUSB2(0.967)

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1752
Antw:Sonos steuern
« Antwort #2947 am: 22 Juli 2017, 11:53:43 »
Hi Nobby,

das ist der Pfad zu dem Playersymbol-Icon (also die Darstellung eines S1 z.B.). Das wird in der Default-Erzeugung ja auch für den Player als Icon eingetragen.
Elektrolurch wollte aber vermutlich das Icon für das "Wohnzimmer" haben...

Grüße
Reiner

Offline Nobby1805

  • Full Member
  • ***
  • Beiträge: 442
Antw:Sonos steuern
« Antwort #2948 am: 22 Juli 2017, 14:35:16 »
Hi Reiner,

 :-[ du hast natürlich völlig Recht ... lesen sollte man können  :-[

Gruß Nobby
FHEM: 5.8 auf Windows Server 2003 mit Strawberry Perl 5.20.2.1-32bit
TabletUI: 2.6
IO: HMLAN(0.965)|HMUSB2(0.967)

Offline dantist

  • Full Member
  • ***
  • Beiträge: 202
Antw:Sonos steuern
« Antwort #2949 am: 22 Juli 2017, 15:06:17 »
Wenn ich für ein Notify auf "Select icon" klicke, sehe ich ganz oben in der Liste teils riesige Albumcover, auch von Musik, die in keiner Playliste steckt und die ewig nicht mehr lief. Kann ich die irgendwie löschen?

Offline Eragos

  • New Member
  • *
  • Beiträge: 13
Antw:Sonos steuern
« Antwort #2950 am: 22 Juli 2017, 17:56:20 »
Hi Daniel,

das Sonos-Modul greift auf jeden Fall auf diverse Server im Internet zu. Die Adressen werden bei Sonos ermittelt und verwendet (z.B. TuneIn-Cover bei tunein.com oder Logos bei sonos-logo.ws.sonos.com).
Wenn man da unsichtbar nicht mehr hinkommt, dann blockiert das natürlich alles.
So wie ich die Beschreibung verstehe, kommt statt der eigentlichen Antwort eine Hinweisseite oder ein GIF. Beides kann dann vom Modul nicht mehr korrekt verarbeitet werden, und sorgt natürlich für Fehler...

Die Frage ist ja: Wieso sind anscheinend einige der Adressen, die von Sonos (nicht ausschließlich mein Modul, ich verwende nur diesselben Abfragesysteme) verwendet werden, im pi-hole blockiert?
In der Hauptsache sind das ja Cloud-Dienste und andere Speichersysteme...

Am Einfachsten wird es wohl sein, wenn du dem Pi ohne DHCP eine eigene Adresse gibst, und vor allem dabei nicht den pi-hole als DNS-Server angibst.

Ansonsten: Zeigt der pi-hole in seiner Übersicht nicht, welche Seiten er vom Sonos-Modul aus geblockt hat? Dann müsstest du die doch auf die Whitelist setzen können...

Grüße
Reiner

Ich habe eine ähnliche Kombination (FHEM + Pi-Hole auf RPI, fixed IP) am laufen. Sobald man SONOS definiert, steht FHEM. Es werden keinerlei Logausgaben geschrieben. Augenscheinlich wird am Pi-Hole selber auch nichts geblockt (Logfiles durchgeschaut und ebenfalls den Filter einmal komplett abgeschaltet). In FHEM habe ich dann 'attr global dnsServer 8.8.8.8' gesetzt. Ebenfalls ohne Erfolg. Um Wechselwirkungen mit anderen FHEM Modulen auszuschließen, habe ich FHEM jeweils in einer Minimalkonfiguration mit verbose 5 gestartet.

Testhalber habe ich FHEM auf meinem Mac installiert => SONOS definiert => SONOS wird erkannt und lässt sich steuern :)

Auf dem RPI habe ich danach mit 'define Sonos SONOS 192.168.178.59:4711 30 1 5' den UPnP-Server auf dem Mac definiert. FHEM stürzt immer noch ab (uns reißt den gesamten RPI mit sich), allerdings schreibt er vorher noch ein wenig im Log. Vielleicht hilft das, der Ursache näher zu kommen.

2017.07.22 17:25:59 1: SONOS0: Modify Device: Sonos
2017.07.22 17:26:05 3: Opening Sonos device 192.168.178.59:4711
2017.07.22 17:26:05 5: SW: Establish connection

2017.07.22 17:26:05 3: Sonos device opened
2017.07.22 17:26:05 5: SONOS0: Received from UPnP-Server: 'Sorry. I don't understand you - 'Establish connection'.'
2017.07.22 17:26:05 5: SONOS0: MainTrigger()-Line: Sorry. I don't understand you - 'Establish connection'.
2017.07.22 17:26:05 2: SONOS0: Error during MainTrigger: syntax error at (eval 1984) line 1, at EOF
 - Trying to execute 'Sorry. I don't understand you - 'Establish connection'.'
2017.07.22 17:26:05 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChanged:RINCON_5CAAFD99896201400_MR:roomName:Lounge'
2017.07.22 17:26:05 1: PERL WARNING: Deep recursion on subroutine "main::SONOS_getSonosPlayerByUDN" at ./FHEM/00_SONOS.pm line 10002.
2017.07.22 17:26:05 1: PERL WARNING: Deep recursion on subroutine "main::SONOS_Log" at ./FHEM/00_SONOS.pm line 9753.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1752
Antw:Sonos steuern
« Antwort #2951 am: 22 Juli 2017, 18:59:47 »
Hi Eragos,

das hilft ein bißchen. Das Problem ist aber nicht einfach erklärbar. Es wird ein String "Establish connection" vom Fhem-Modul in Richtung SubProzess losgesendet, der vom SubProzess eigentlich blockierend erwartet werden sollte. Dieser wartet darauf aber gar nicht mehr...

Versuch mal folgende Zeile hinter "send(listening for commands)" des SubProzesses einzufügen (um die Zeile 10089 ungefähr), also so:
send($client, "This is UPnP-Server listening for commands\r\n", 0);
select(undef, undef, undef, 0.5);
Vielleicht müssen wie dort einfach etwas warten :) pi-hole hängt sich vielleicht, wie Wireshark auch, in die Verarbeitungskette des TCP/IP-Stacks rein, und sorgt für eine Verzögerte Auslieferung...

Danke schon mal...

Grüße
Reiner

Offline Eragos

  • New Member
  • *
  • Beiträge: 13
Antw:Sonos steuern
« Antwort #2952 am: 23 Juli 2017, 03:26:23 »
Guten Morgen Reiner,

ich habe die Zeile hinzugefügt und erst mal nur auf dem RPI alleine probiert. Hier konnte ich keine Änderung im Verhalten feststellen. Nach der SONOS Device Definition zieht es FHEM ins Nirvana.

In der Kombination mit dem UPnP-Server auf dem Mac, scheinen wir schon mal weiter gekommen zu sein. Nach dem ich das SONOS Device auf dem RPI definiert habe, initialisiert er sich und geht dann in den State open. SONOSPLAYER werden allerdings nicht angelegt. Auch nach einem RescanNetwork nicht. Hier weiß ich allerdings nicht, ob das nicht evtl. so gewollt ist. Ich werde heute Mittag mal den SONOSPLAYER von Hand anlegen und schauen was geht.

EDIT: Hat etwas gedauert, aber nun sind die SONOSPLAYER ebenfalls da und scheinen auf den ersten Blick zu funktionieren :)

Nun erst mal schlafen  8)

2017.07.23 02:59:09 1: SONOS0: Modify Device: Sonos
2017.07.23 02:59:15 3: Opening Sonos device 192.168.178.59:4711
2017.07.23 02:59:15 5: SW: Establish connection

2017.07.23 02:59:15 3: Sonos device opened
2017.07.23 02:59:15 5: SONOS0: Received from UPnP-Server: 'Sorry. I don't understand you - 'Establish connection'.'
2017.07.23 02:59:15 5: SONOS0: MainTrigger()-Line: Sorry. I don't understand you - 'Establish connection'.
2017.07.23 02:59:15 2: SONOS0: Error during MainTrigger: syntax error at (eval 420) line 1, at EOF
 - Trying to execute 'Sorry. I don't understand you - 'Establish connection'.'
2017.07.23 02:59:16 5: SONOS0: SetData:Sonos:5:-:syn:::0::
2017.07.23 02:59:16 5: SW: SetData:Sonos:5:-:syn:::0::

2017.07.23 02:59:16 5: SONOS0: SetValues:SONOS:INTERVAL=30|NAME=Sonos
2017.07.23 02:59:16 5: SW: SetValues:SONOS:INTERVAL=30|NAME=Sonos

2017.07.23 02:59:16 5: SW: StartThread

2017.07.23 02:59:53 5: SW: DoWork:SONOS:rescanNetwork:

Viele Grüße
Micha
« Letzte Änderung: 23 Juli 2017, 03:34:20 von Eragos »

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1752
Antw:Sonos steuern
« Antwort #2953 am: 23 Juli 2017, 11:22:37 »
Hi Micha,

kannst du mal ein bißchen mit dem Zahlenwert spielen?
Ruhig zum Anfang mal deutlich hoch, vielleicht auf 3-4 Sekunden. Nur um mal zu sehen, ob es wirklich etwas bewirken kann...

Grüße
Reiner

Offline Eragos

  • New Member
  • *
  • Beiträge: 13
Antw:Sonos steuern
« Antwort #2954 am: 23 Juli 2017, 17:44:28 »
Hallo Reiner,

ich habe diverse Werte ausprobiert, leider ohne Erfolg.

Ich habe mir auf dem RPI mal eine Minimalkonfiguration erstellt und mal den Perl Debugger angeworfen.

Unten findest du ein Tracelog. Nach

main::SONOS_StartClientProcessIfNeccessary(./FHEM/00_SONOS.pm:1815):
...
302:       ${*$sock}{'io_socket_peername'} = recv($sock, $_[1]='', $len, $flags);
ist dann Feierabend.

Locate:

 
DB<1> l
302==>      ${*$sock}{'io_socket_peername'} = recv($sock, $_[1]='', $len, $flags);
303     }
304
305     sub shutdown {
306:        @_ == 2 or croak 'usage: $sock->shutdown(HOW)';
307:        my($sock, $how) = @_;
308:        ${*$sock}{'io_socket_peername'} = undef;
309:        shutdown($sock, $how);
310     }
311

Den gesamten Trace findest du im Anhang.
« Letzte Änderung: 23 Juli 2017, 17:54:45 von Eragos »