Sonos steuern

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

Vorheriges Thema - Nächstes Thema

rapster

Vll. hat sich der Fehler mit der neusten Version eingeschlichen, hast du mal eine ältere probiert (z.B. 00_SONOS und 21_SONOSPLAYER vom 08.12.) ?

Gruß
  Claudiu

Wuppi68

Zitat von: rapster am 26 Dezember 2015, 00:23:46
Vll. hat sich der Fehler mit der neusten Version eingeschlichen, hast du mal eine ältere probiert (z.B. 00_SONOS und 21_SONOSPLAYER vom 08.12.) ?

Gruß
  Claudiu

bei mir war der Fehler schon immer :-(
FHEM unter Proxmox als VM

rapster

Hm, scheint bei mir auch so zu sein, zwar akut nicht so ausgeprägt wie bei dir, ist mir allerdings nie aufgefallen :)

An einem Player war die ZoneGroupID gerade:
RINCON_B8E93783251E01400:__:__:__:__:__:__:__:__:__:__:__
Nachdem ich den Player mal eben in eine Group getan habe schaut die ZoneGroupID wieder so aus:
RINCON_B8E93783251E01400:__

Wuppi68

Zitat von: rapster am 26 Dezember 2015, 00:48:22
Hm, scheint bei mir auch so zu sein, zwar akut nicht so ausgeprägt wie bei dir, ist mir allerdings nie aufgefallen :)

An einem Player war die ZoneGroupID gerade:
RINCON_B8E93783251E01400:__:__:__:__:__:__:__:__:__:__:__
Nachdem ich den Player mal eben in eine Group getan habe schaut die ZoneGroupID wieder so aus:
RINCON_B8E93783251E01400:__

aber nicht mehr lange :-)
FHEM unter Proxmox als VM

Reinerlein

Hallo,

ich habe das Problem mit der ZoneGroupID gefunden. Sie wurde immer länger, wenn andere Playergruppierungen verändert wurden...

Ist im nächsten Release drin. Ich warte noch auf ein paar Nachwehen der letzten Veröffentlichung :)

Grüße
Reiner

m0urs

Hallo,

bei mir scheint ein "set SONOS_Schlafzimmer SnoozeAlarm 10" o.ä. nicht zu funktionieren. Obwohl ein Alarm aktiv ist, wird dieser nicht pausiert. Mache ich was falsch oder funktioniert das generell nicht?

Grüße
Michael

Reinerlein

Hi Michael,

da müsste eine Fehlermeldung in LastActionResult stehen... Du musst an der Stelle eine Zeit angeben.
In deinem Fall also "00:00:10".

Ich werde mal einbauen, dass man auch eine Zahl in Sekunden angeben kann...

Grüße
Reiner

Wuppi68

Zitat von: Reinerlein am 26 Dezember 2015, 01:13:26
Hallo,

ich habe das Problem mit der ZoneGroupID gefunden. Sie wurde immer länger, wenn andere Playergruppierungen verändert wurden...

Ist im nächsten Release drin. Ich warte noch auf ein paar Nachwehen der letzten Veröffentlichung :)

Grüße
Reiner

D a n k e
FHEM unter Proxmox als VM

m0urs

Zitat von: Reinerlein am 26 Dezember 2015, 09:42:30
da müsste eine Fehlermeldung in LastActionResult stehen... Du musst an der Stelle eine Zeit angeben.
In deinem Fall also "00:00:10".
Ich werde mal einbauen, dass man auch eine Zahl in Sekunden angeben kann...

Danke, Reiner, das war das Problem ;-) Damit ist es aus meiner Sicht nicht nötig, da smit den Sekunden einzubauen. Ein kurzer Hinweis in der DOku auf das Format ist m.E. völlig ausreichend.

ujaudio

Seit ich mein Sonos wieder aktiv habe gibt es jede Menge im Log zu lesen  ;)

Unbalanced scopes: 41 more ENTERs than LEAVEs
Unbalanced saves: 255 more saves than restores
Unbalanced tmps: 39 more allocs than frees
Unbalanced context: 33 more PUSHes than POPs
2015.12.27 12:45:01 0: SONOS0: No Answer from Subprocess. Restart Sonos-Subprocess...
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.27 15:52:04 1: readingsUpdate(mm_sonos_Wohnzimmer,transportState,PLAYING) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,currentTrackURI,x-rincon-mp3radio://swr-mp3-m-swr1bw.akacast.akamaistream.net/7/245/137133/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr1bw) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,currentTrackPosition,0:00:01) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,currentTrack,1) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,numberOfTracks,2) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,currentStreamAudio,1) missed to call readingsBeginUpdate first.
2015.12.27 15:52:05 1: readingsUpdate(mm_sonos_Wohnzimmer,currentNormalAudio,) missed to call readingsBeginUpdate first.
Loading device description failed with error: 401 Unauthorised at ./FHEM/00_SONOS.pm line 3590 thread 1
Loading device description failed with error: 401 Unauthorised at ./FHEM/00_SONOS.pm line 3590 thread 1
Use of uninitialized value $bufferedTrackPosition in pattern match (m//) at ./FHEM/00_SONOS.pm line 5666, <$client> line 7.
2015.12.27 19:45:36 1: readingsUpdate(mm_sonos_Wohnzimmer,currentStreamAudio,) 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.28 10:24:48 1: readingsUpdate(mm_sonos_Wohnzimmer,numberOfTracks,2) missed to call readingsBeginUpdate first.
2015.12.28 10:24:49 1: readingsUpdate(mm_sonos_Wohnzimmer,currentStreamAudio,1) missed to call readingsBeginUpdate first.
2015.12.28 10:24:49 1: readingsUpdate(mm_sonos_Wohnzimmer,currentNormalAudio,) missed to call readingsBeginUpdate first.
Loading device description failed with error: 500 Can't connect to 192.168.0.20:8838 (timeout) at ./FHEM/00_SONOS.pm line 3590 thread 1
Loading device description failed with error: 500 Can't connect to 192.168.0.20:8838 (timeout) at ./FHEM/00_SONOS.pm line 3590 thread 1


Für die letzten beiden Zeilen gibt es eine Lösung, ich habe inzwischen einige IP auf der "Ignorierliste". Gibt es Hinweise zu den anderen Einträgen?
Einen lieben Gruß
Jürgen

Reinerlein

Hi Jürgen,

das sieht so aus, als würden ein paar Pakete verloren gehen. Denn natürlich wird vorher ein BeginUpdate gesendet, sonst würde es ja nie funkionieren :)

Diese Meldung mit der Content-Length im Header deutet darauf hin, dass etwas nicht vollständig oder korrekt übertragen wurde. Ich hatte das bei meinen Basteleien mit der Unicode-Benennung der Player. Dort kam in manchen Konstellationen (also mit Wide-Characters) nicht alles an...

Vielleicht solltest du mal einen 5er Log machen, und die Zeilen um diese HTTP-Meldung hier posten... Dann kann man vielleicht erkennen, was er eigentlich gerade übertragen möchte, und was er daraus macht...

Grüße
Reiner

ujaudio

Meine Sonosteile heißen Lounge, Wohnzimmer und Mobil - sollte also von den Namen her keine Probleme machen.

Ich schalte mal jetzt das 5er-Log an, vielleicht sieht man dann auch, welche Ursachen die weiteren SONOS-FHEM-Problemchen haben, die ich da noch so habe...
Einen lieben Gruß
Jürgen

Reinerlein

Hi Jürgen,

das war ja auch nur ein Beispiel während meiner Entwicklung... In der aktuellen Version geht sowieso jeder Name (Mein Schlafzimmer hat jetzt zwei Knutschsmilies vorne und hinten :) ).

Dann warten wir mal...

Grüße
Reiner

ujaudio

#2338
Mein FadeIn beim Einschalten und FadeOut beim Ausschalten funktioniert seit einiger Zeit nicht mehr. Klar, habe ich mal wieder was falsch gemacht! In mehreren Durchgängen - zuletzt gestern und heute - habe ich nun alles mögliche nachgeprüft, aber nichts gefunden. Vielleicht bekomme ich hier noch einen Hinweis.
Das Fade an sich geht ja bekanntermaßen so:
set mm_sonos_Wohnzimmer Volume 33 1
wobei in diesem Beispiel die 33 die neue Lautstärke ist und die 1 einen für mich gerade richtig langsamen Fade erzeugt. Wenn ich das auf der FHEM-Kommandozeile eingebe, funktioniert es bestens.

Jetzt schalte ich mal das Sonos ein, nach ein paar vielen Sekunden triggert dann das notify:
mm_sonos_Wohnzimmer:presence:.appeared {
  fhem ("sleep 2;
    set mm_sonos_Wohnzimmer StartRadio /SWR1.Baden-Württemberg/;
    sleep 2; set mm_sonos_Wohnzimmer Volume 55;
    sleep 2; set mm_sonos_Wohnzimmer Volume 11;
    sleep 5; set mm_sonos_Wohnzimmer Volume 46 1")
}

Der kurze laute Peak soll nur die Aktivboxen einschalten, danach soll die Lautstärke auf 46 anschwellen - aber von einem FadIn ist nichts (mehr) zu hören (früher funktionierte das) und die Endlaustärke ist 45!

Wenn ich ausschalten, dann so:
wk_sonosbutton:off {
  fhem("set mm_sonos_Wohnzimmer Volume 13 1");
  fhem("delete wk_sonosBM6_Off_Timer");
  fhem("define wk_sonosBM6_Off_Timer at +00:02:00 set wk_sonosBM6 off");
}

Zuerst FadeOut, dann 2 Minuten später die Aktivbxen und Sonos vom der Stromversorgung trennen. Es gibt aber kein FadeOut, sondern egal welche Lautstärke aktuell gerade eingestellt war, sie wird ohne Fade auf 45 gestellt.

Es gibt im ganzen FHEM aber keine Einstellung der Lautstärke auf 45. Das habe ich überprüft!

Ich habe aber letztendlich doch noch eine 45 gefunden: Es gibt ein Readings namens VolumeStore, das diesen Wert hat. Im Logfile sieht man auch, dass der Fade-Befehl "ankommt" und kurz darauf von einem Setzen der Lautstärke auf 45 ersetzt wird.  Wenn ich nun das Readings VolumeStore auf einen anderen Wert bringe (z.B. 52), dann gilt all das Gesagte, nur eben mit 52 statt 45!

Mit verbose = 4 findet man im Logfile:
2015.12.29 15:45:54 4: SONOS0: DoWorkAnswer arrived for mm_sonos_Wohnzimmer->LastActionResult: 'SetVolume: Ramp to 13 with Type 1 started'
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, def, NAME, RINCON_000E582AB0EE01400_MR) -> mm_sonos_Wohnzimmer
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, attr, disable, 0) -> DEFAULT
2015.12.29 15:45:54 3: SONOS1: Event: Received Rendering-Event for Zone "mm_sonos_Wohnzimmer".
2015.12.29 15:45:54 4: SONOS1: Rendering-Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582AB0EE01400_MR'
2015.12.29 15:45:54 4: SONOS1: Rendering-Event: LastChange: <Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"><InstanceID val="0"><Volume channel="Master" val="37"/><Volume channel="LF" val="100"/><Volume channel="RF" val="100"/></InstanceID></Event>
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, attr, generateVolumeEvent, 0) -> 1
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, reading, Mute, 0) -> 0
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, reading, HeadphoneConnected, 0) -> 0
2015.12.29 15:45:54 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_000E582AB0EE01400_MR, reading, Balance, 0) -> 0
2015.12.29 15:45:55 4: SONOS0: DoWorkAnswer arrived for mm_sonos_Wohnzimmer->LastActionResult: 'SetVolume: 52'

Wo kann die letzte Zeile herkommen? Wann wird VolumeStore genau benutzt, wie kann ich darauf Einfluss nehmen?

Früher hatte ich das nicht benutzt, doch mittlerweile mache ich ein FadeOut, wenn das Telefon klingelt und ein FadeIn, wenn ich wieder auflege. Dazu benutze ich VolumeStore und irgendwo gibt es nun das Problem, welches ich einfach nicht lösen kann. Aber vielleicht gibt es hier doch noch einen Tipp!!?!


EDIT: Es ist tatsächlich das Event "Ende des telefongesprächs" welches die Lautstärke setzt. Das kann man am Zeitpunkt des Auslösens des notify eindeutig erkennen! Nun muss ich irgendiwe herausfinden,warum das triggert...

Ich lasse den Beitrag mal stehen, vielleicht ist er für andere hilfreich - ihr könnt ihn aber auch gerne löschen. Denn das Problem liegt ja woanders.
Einen lieben Gruß
Jürgen

Torben

Hallo,

ich habe fhem mit Sonos bisher auf einem Odroid U3 laufen lassen und bin nun auf einen Rpi. Dort habe ich alles frisch installiert und nur die fhem.cfg übernommen. Hier habe ich jetzt im log die Warnung:
ZitatOdd number of elements in hash assignment at /usr/share/perl/5.20/IO/Socket/IP.pm line 109, <$client> line 7.
und zwar 1 bis 40 Mal in direkter Folge.
Zur Lösung habe ich bereits eine Lösung von justme
Zitat von: justme1968 am 27 März 2015, 11:29:17
die meldung ist meiner meinung nach ein fehler im einem der low level perl module und nicht sonos spezifisch. ich hatte hier: http://forum.fhem.de/index.php/topic,10033.msg259741.html#msg259741 schon mal etwas dazu geschrieben.

gruss
  andre
ausprobiert sowie auch die Prüfung der Zugriffsrechte auf die Cover sowohl in ./FHEM/lib/UPnP/ als auch in ./www/images/default/SONOSPLAYER/ gecheckt - ohne Erfolg.
Kann es an der Perl-Version liegen? Der Fehler ist bei /usr/share/perl/5.20/... und es gibt auch /usr/share/perl5/... Kann man da irgendetwas verändern?

Gruß
Torben