Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Spartacus

Hallo Reinerlein,
Zitat@Christian:
Wenn du das selber aufrufst, kannst du auf LastActionResult reagieren. Wenn das Paar-Erzeugen durch einen normalen Controller ausführst, bekommst du kein dediziertes Event dazu. Es taucht nur als neue Gruppierung auf (darauf kannst du natürlich reagieren :) )
..das mit LastActionResult habe ich gefunden, aber mir ist nicht klar,was Du mit der "neuen Gruppierung" meinst. Woran erkenne ich das Stereopaar, bzw. woran erkenne ich, dass es getrennt wurde.

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

Reinerlein

Hi Christian,

das wird Sonos-Intern als Gruppe behandelt. Das bedeutet, dass das Reading "currentTrackURI" des rechten Lautsprechers die ID des anderen (linken) Players enthält, also z.B. "x-rincon:RINCON_000E5887EAE401400" und das Reading "fieldType" enthält "RF" (für Right-Front).
Beim linken Player (in der Gruppe dann der Master) steht das Reading "fieldType" entsprechend auf "LF" (für Left-Front).

Und natürlich gibt ein "get Sonos Groups" die beiden Player entsprechend als gruppiert aus. Damit alleine erkennt man aber kein Pärchen...

Das düfte etwas schwieriger zu erkennen sein. Am Besten mittels eines DOIF, da die ganzen Readings nicht notwendigerweise in einem Rutsch diese neuen Werte erhalten...

Grüße
Reiner

rapster

Zitat von: rapster am 21 November 2015, 13:36:53
Hallo Reiner,

ich habe zurzeit Empfangsprobleme bei einem SONOS-Player über das SONOSNET
In einem solchen Fall scheint das SONOS Modul leider komplett zu sterben und auch die Kommunikation mit den restlichen Playern einzustellen.
Der Subprozess läuft allerdings noch...  :-\

Error loading SCPD document: Connection timed out at ./FHEM/00_SONOS.pm line 4902 thread 1.
Error loading SCPD document:  at ./FHEM/00_SONOS.pm line 4931 thread 1.
Loading device description failed with error: 500 Can't connect to 192.168.1.150:1400 at ./FHEM/00_SONOS.pm line 3590 thread 1.
2015.11.21 12:59:52.787 1: SONOS1: GroupRendering-Service-subscribing NOT successful
Subscription request failed with error: 500 Server closed connection without sending any data back at ./FHEM/00_SONOS.pm line 5135 thread 1.
Error loading SCPD document: Connection timed out at ./FHEM/00_SONOS.pm line 4943 thread 1.
2015.11.21 12:57:05.135 3: .....
2015.11.21 12:56:52.399 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2015.11.21 12:56:52.375 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2015.11.21 12:56:49.580 1: SONOS0: ./FHEM/00_SONOS.pm is listening to Port 4711
Current: "./FHEM/00_SONOS.pm", gPath: ""
Smartmatch is experimental at ./FHEM/00_SONOS.pm line 5383.
2015.11.21 12:56:49.310 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 2 Sekunde(n) darauf...


Gruß
  Claudiu

Hallo Reiner,

das SONOS-Modul (neuste Version) ist mir in den letzten Tagen wieder mehrmals abgehaut. Ich denke weil mein einer Player manchmal Empfangsprobleme hat.

Das eine mal konnte ich das hier im Log finden:
2015.12.12 01:36:49.586 1: PERL WARNING: Use of uninitialized value $params in split at ./FHEM/00_SONOS.pm line 2027.
Error loading SCPD document:  at ./FHEM/00_SONOS.pm line 4998 thread 1.
Error loading SCPD document:  at ./FHEM/00_SONOS.pm line 5039 thread 1.
Error loading SCPD document:  at ./FHEM/00_SONOS.pm line 5030 thread 1.


Das letzte mal war vorhin erst direkt nach einem fhem-restart:
2015.12.14 20:15:53.720 0: SONOS0: Can't bind Port 4711: Bind failed: Die Adresse wird bereits verwendet at ./FHEM/00_SONOS.pm line 8096.
2015.12.14 20:15:53.720 0: SONOS0: Retries left (wait 30s): 8
2015.12.14 20:16:23.751 1: SONOS0: ./FHEM/00_SONOS.pm is listening to Port 4711
2015.12.14 20:16:25.460 1: localhost:4711 reappeared (SONOS)
2015.12.14 20:16:26.527 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2015.12.14 20:16:26.550 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
Error loading SCPD document: Die Wartezeit für die Verbindung ist abgelaufen at ./FHEM/00_SONOS.pm line 4998 thread 1.

Eine Aktion wurde sogar noch an einen Player gesendet (Mute), allerdings konnte das Modul anschließend mit keinem Player mehr kommunizieren.
In fhem blieb der Status meiner 4 Player bei 2 appeared und bei 2 initalized.

Falls es helfen würde dem Problem auf die Spur zu kommen, würde ich auch mal längere Zeit den verbose Level hochsetzen.
Oder hast du einen anderen Tipp?

Gruß
  Claudiu


Spartacus

Zitat von: Reinerlein am 14 Dezember 2015, 19:11:19
Hi Christian,

das wird Sonos-Intern als Gruppe behandelt. Das bedeutet, dass das Reading "currentTrackURI" des rechten Lautsprechers die ID des anderen (linken) Players enthält, also z.B. "x-rincon:RINCON_000E5887EAE401400" und das Reading "fieldType" enthält "RF" (für Right-Front).
Beim linken Player (in der Gruppe dann der Master) steht das Reading "fieldType" entsprechend auf "LF" (für Left-Front).

Und natürlich gibt ein "get Sonos Groups" die beiden Player entsprechend als gruppiert aus. Damit alleine erkennt man aber kein Pärchen...

Das düfte etwas schwieriger zu erkennen sein. Am Besten mittels eines DOIF, da die ganzen Readings nicht notwendigerweise in einem Rutsch diese neuen Werte erhalten...

Grüße
Reiner

Hallo Reiner,
danke Dir. So einfach ist es dann doch nicht! Ich habe per DOIF auf fieldType reagiert. Aber irgendwie wird "LF" nicht direkt gelöscht, wenn man das Pärchen wieder trennt.

Deshalb funzt das hier nur, wenn ich das Stereopaar bilde. Beim Trennen bleibt "LF" im fieldType bestehen. Irgendwann ist es dann zwar weg, aber keine Ahnung wie und wann das passiert!

([KG.sk.SON.ZP_S3:fieldType] eq "LF")
(set SonosDummy on)
DOELSEIF
([KG.sk.SON.ZP_S3:fieldType] eq "")
(set SonosDummy off)

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

Reinerlein

Hallo zusammen,

@Claudiu: Das klingt irgendwie wieder mal nach einem Nicht-Sonosplayer. Kannst du (testweise) mal das neue Attribut "usedonlyIPs" verwenden?

@Christian: Du hast recht, das Attribut wird erst beim Neu-Erkennen der Player zurückgesetzt. Beim Umgruppieren wurde dieses Feld nie auf Leer gesetzt, sondern hat nur einen neuen Wert bekommen, wenn eine neue Funktionalität im System erkannt wurde. Ich habe das mal korrigiert, werde aber nicht mehr heute zum Veröffentlichen kommen, da ich noch ein anderes Feature halbfertig habe, was da mit rein soll.
Ich denke mal Morgen komme ich zum abschließenden Testen, und kann das ganze dann hochladen...

Grüße
Reiner

rapster

Hi Reiner,

danke schonmal, allerdings ist das Attribut seit der Einführung schon gesetzt :)

...auch zuvor hatte ich schon versucht mit exclude möglichst alle Fremdgeräte auszuschließen da ich sowas auch zuerst vermutete.

Gruß
  Claudiu

Reinerlein

Hi Claudiu,

schade :)
Hmm, dann kann ich höchstens mal schauen, ob ich in dem UPnP-Modul das Fehlerhandling verbessern kann... ich gucke mal nach der nächsten Veröffentlichung...

Grüße
Reiner

rapster

Hi Reiner,

Danke dir schonmal, vielleicht findet sich ja was.

Ich habe schon versucht ob ich das Problem irgendwie nachstellen kann, allerdings tritt es gefühlt immer am Wochenende oder manchmal Abends auf während der Nachbar mit seinen 5 Accesspoints (zusätzlich zu meinen 3) mithilft alle WLAN-Kanäle zuzuballern. Selber hab ich es noch nicht geschafft das SONOSNET zu killen :)

Was mir aufgefallen ist, wenn das SONOSNET zusammenbricht verliert der Player auch oft seine komplette Playliste.
Auch wenn er dann teilweise noch in der SONOS-App zu sehen ist, erhalte ich hier beim Versuch etwas abzuspielen auch nur Kommunikationsfehler Meldungen.

Dazu hatte ich schon bei SONOS ein Ticket offen, in den Diagnosedaten war zu sehen das teilweise nurnoch 20% der Pakete am Player ankamen.

Das ganze wär eigentlich halb so wild, wenn das Modul dadurch nicht komplett stillgelegt wird und in allen anderen Räumen dadurch auch nichts mehr funktioniert ;)

Gruß
  Claudiu

Spartacus

Hallo,
ich muss doch noch mal eine Frage loswerden. Ich hae eine rg gebaut, die mir das stereopaar erstellt:
Internals:
   DEF        KG.sk.SON.ZP_S3:<%icoSONOSPLAYER_icon-S3.png>,<Sonos&nbspTerasse>,fieldType,!Ein,!Aus
   NAME       rg.01.KG.sk.SON.ZP_S3
   NR         215
   NTFY_ORDER 50-rg.01.KG.sk.SON.ZP_S3
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     KG.sk.SON.ZP_S3 1
   Content2:
   DEVICES:
     ARRAY(0x1aac5b8)
   Fhem:
     lastDefChange 39
     last_update 1450440397.80755
   Helper:
     DEF
     commands   {'Ein' => 'set $DEVICE createStereoPair KG.sr.SON.ZP_S3', 'Aus' => 'set $DEVICE SeparateStereoPair'}
     valueFormat {if($READING eq "fieldType" and $VALUE eq "LF"){$VALUE = "on"} elsif($READING eq "fieldType" and $VALUE eq ""){$VALUE = "off"}}
     Cellstyle:
       c:2        style="width:120px"
     Positions:
       KG.sk.SON.ZP_S3.Aus 1:5
       KG.sk.SON.ZP_S3.Ein 1:4
       KG.sk.SON.ZP_S3.fieldType 1:3
     Valueicon:
       fieldType.off general_aus@grey
       fieldType.on general_an@lightgreen
     Values:
       formated:



         ARRAY(0x1b53d70)
         ARRAY(0x1b508e0)
         ARRAY(0x1b50490)
       orig:



         ARRAY(0x1b533c8)
         ARRAY(0xaa7f10)
         ARRAY(0x1763c58)
       prefixsuffix:



         ARRAY(0xaea968)
         ARRAY(0x1b8b958)
         ARRAY(0xae7340)
Attributes:
   alias      Play 3 Stereopaar
   cellStyle  {'c:2' => 'style="width:120px"'}
   commands   {'Ein' => 'set $DEVICE createStereoPair KG.sr.SON.ZP_S3', 'Aus' => 'set $DEVICE SeparateStereoPair'}
   notime     1
   room       98-Sonos
   valueFormat {if($READING eq "fieldType" and $VALUE eq "LF"){$VALUE = "on"} elsif($READING eq "fieldType" and $VALUE eq ""){$VALUE = "off"}}
   valueIcon  {'fieldType.on' => 'general_an@lightgreen', 'fieldType.off' => 'general_aus@grey'}

Das funktioniert auch. Allerdings wird das valueIcon nicht aktualisiert. Erst nach einem Refresh des Browsers. Warum macht er das nicht?
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

ujaudio

#2304
So, nun habe ich nach längerer Zeit mal wieder das Sonos-Modul aktiviert (attr disable auf 0 gesetzt) und habe postwendend im log folgende Meldung:
Current: "./FHEM/00_SONOS.pm", gPath: ""
Out of memory!
Perl exited with active threads:
2 running and unjoined
1 finished and unjoined
0 running and detached
Current: "./FHEM/00_SONOS.pm", gPath: ""
Content-Length header value was wrong, fixed at /usr/share/perl5/LWP/Protocol/http.pm line 207, <$client> line 7.
Content-Length header value was wrong, fixed at /usr/share/perl5/LWP/Protocol/http.pm line 207, <$client> line 7.
2015.12.19 11:28:47 1: readingsUpdate(mm_sonos_Wohnzimmer,numberOfTracks,2) missed to call readingsBeginUpdate first.
2015.12.19 11:28:47 1: readingsUpdate(mm_sonos_Wohnzimmer,currentStreamAudio,1) missed to call readingsBeginUpdate first.
2015.12.19 11:28:47 1: readingsUpdate(mm_sonos_Wohnzimmer,currentNormalAudio,) missed to call readingsBeginUpdate first.
Content-Length header value was wrong, fixed at /usr/share/perl5/LWP/Protocol/http.pm line 207, <$client> line 7.
2015.12.19 11:41:55 1: readingsUpdate(mm_sonos_Wohnzimmer,currentStreamAudio,) missed to call readingsBeginUpdate first.


Es scheint aber vorerst mal alles zu funktionieren...
Einen lieben Gruß
Jürgen

joschy83

Hallo allerseits,

ich bin ein fhem Neuling und würde gern über einen raspi mit EnOcean mein Sonos ein und ausschalten...

gibt es irgendwo eine "einfache" Anleitung auf die aktuellen Versionen bezogen bzw. wo muss ich anfangen zu lesen?

über die sufu oder google wird man ja mit Informationen erschlagen...

das enocean Modul und einen Taster hab ich ans laufen gebracht.
Sonos kann ich über fhem auch steuern.

aber wie zum t..... startet man mit dem enOcean Taster SWR3 auf meinem SONOS_Bad?!

kann mir bitte jemand helfen???

Grüße

ujaudio

#2306
An den Taster ein notify hängen und darin den Befehl
set mm_sonos_Badezimmer StartRadio /SWR1.Baden-Württemberg/

Bei dir heisst das natürlich nicht unbedingt "mm_sonos_Badezimmer" und vermutlich hättest du gerne auch einen anderen Radiosender  :)

Hilft dir das?
Einen lieben Gruß
Jürgen

Jarnsen

Hallo,

Habe Probleme mit dem SonosModul... Es werden nur 2 meiner 3 Play1 erkannt. Der Play 3 wird normal erkannt... Leider kann ich auch die Player nicht steuern... Die zusätzlich benötigten Pakete habe ich installiert...

Hoffe mir kann jemand helfen


Thx Jarnsen
1 x RPi2,
1 x nanoCUL433, 1 x nanoCUL868, 1 x SIGNALduino433
Sonos/SonosSpeak, Homebridge, 2 x Enigma2, 10 x Nobily Rollläden, 3 x Intertechno Steckdosen
Pushover, Abfallerinnerung, MySensors, 7 x Max!

Reinerlein

Hi Jarnsen,

da scheint der Sonosplayer ein Sonderzeichen im Namen zu haben... Zumindest noch vor dem Modul...

Kannst du das mal checken?

Grüße
Reinerlein

Jarnsen

Danke für deine schnelle Hilfe... Was so ein ß im Namen alles ausmacht.... Jetzt lässt sich alles wunderbar Steuern...

Thx Jarnsen
1 x RPi2,
1 x nanoCUL433, 1 x nanoCUL868, 1 x SIGNALduino433
Sonos/SonosSpeak, Homebridge, 2 x Enigma2, 10 x Nobily Rollläden, 3 x Intertechno Steckdosen
Pushover, Abfallerinnerung, MySensors, 7 x Max!