SONOS lähmt aber fhem für > 30 Sekunden

Begonnen von fhem-challenge, 20 November 2018, 14:40:50

Vorheriges Thema - Nächstes Thema

fhem-challenge

Hallo Zusammen,

das SONOS Modul verwende ich schon fast seit dem Erscheinen.

Seit einigen Wochen habe ich das Problem, dass fhem vollständig brach liegt, sobald ich SONOS nutze.

Bsp.:

set Sonos_Kueche Speak 75 de Irgend Etwas zum Sprechen

Danach bewegt sich bei fhem nichts mehr. Nach ca. 30 Sekunden arbeitet fhem weiter. Diese Verzögerung ist extrem ungünstig, da ich meist beim Verlassen des Hauses mir via SONOS Sprachausgabe den Status "erzählen" lasse, ich danach das Haus verlasse und die Garage öffnen will, was schlicht dann für 30 Sekunden nicht geht (läuft auch über fhem).

Diese gravierenden Verzögerungen scheinen seit dem oder den letzten SONOS Modulupdates gekommen zu sein. Ich hatte vorher seit ca. 2016 die Sprachausgabe ohne große Verzögerungen betrieben.

Wenn ich mir "apptime" anschaue, nimmt sich das SONOS Modul mit Abstand die meiste Zeit (zwei Potenzen höher, als die anderen Prozesse).

name                                     function                               max    count      total  average   maxDly   avgDly TS Max call     param Max call
Sonos                                    SONOS_Read                           12950        5   28449.40  5689.88     0.00     0.00 20.11. 14:28:07 HASH(Sonos)
WEB_192.168.100.180_33873                FW_Read                                965        4     990.80   247.70     0.00     0.00 20.11. 14:27:49 HASH(WEB_192.168.100.180_33873)
tmr-ESPEasy_statusRequest                HASH(0x6565f18)                        671        1     671.38   671.38     6.78     6.78 20.11. 14:28:36 HASH(ESPEasy_ESP_RGB2_rssi)
HmUART                                   HMUARTLGW_Read                         632       18    1938.29   107.68     0.00     0.00 20.11. 14:28:14 HASH(HmUART)
tmr-HMUARTLGW_CheckCmdResp               HASH(0x6aca468)                        342        1     342.52   342.52 10150.21 10150.21 20.11. 14:28:07 HASH(HmUART
[/font]


Ich habe 7 SONOS in Betrieb.

Habt Ihr eine Idee bzgl. des massiven Ausbremsen von fhem ?



Anbei mal meine Sonos def's:

define Sonos SONOS localhost:4711 30 1
attr Sonos SpeakGoogleURL http://translate.google.com/translate_tts?tl=%1$s&client=tw-ob&q=%2$s
attr Sonos room Sonos
attr Sonos targetSpeakDir /daten/sonos/speak
attr Sonos targetSpeakFileHashCache 1
attr Sonos targetSpeakFileTimestamp 1
attr Sonos targetSpeakMP3FileDir /daten/sonos
attr Sonos targetSpeakURL \\x.x.x.x\fhem\sonos\speak
attr Sonos verbose 0

define Sonos_Kueche SONOSPLAYER RINCON_5CAAFD4AA97201400_MR
attr Sonos_Kueche alias Küche
attr Sonos_Kueche 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_Kueche generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr Sonos_Kueche 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_Kueche generateVolumeSlider 1
attr Sonos_Kueche getAlarms 1
attr Sonos_Kueche getTitleInfoFromMaster 1
attr Sonos_Kueche group Kueche
attr Sonos_Kueche icon icoSONOSPLAYER_icon-S1.png
attr Sonos_Kueche minVolume 0
attr Sonos_Kueche model Sonos_S1
attr Sonos_Kueche room Sonos
attr Sonos_Kueche simulateCurrentTrackPosition 1
attr Sonos_Kueche sortby 1
attr Sonos_Kueche stateFormat presence ~ currentTrackPositionSimulatedPercent% (currentTrackPositionSimulated / currentTrackDuration)
attr Sonos_Kueche userReadings Favourites:LastActionResult.*?GetFavouritesWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Radios:LastActionResult.*?GetRadiosWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Playlists:LastActionResult.*?GetPlaylistsWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Queue:LastActionResult.*?GetQueueWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, currentTrackPosition:LastActionResult.*?GetCurrentTrackPosition.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }
attr Sonos_Kueche verbose 0
attr Sonos_Kueche webCmd Volume
define Sonos_KuecheRG_Favourites readingsGroup Sonos_Kueche:<{SONOS_getListRG($DEVICE,"Favourites",1)}@Favourites>
define Sonos_KuecheRG_Radios readingsGroup Sonos_Kueche:<{SONOS_getListRG($DEVICE,"Radios",1)}@Radios>
define Sonos_KuecheRG_Playlists readingsGroup Sonos_Kueche:<{SONOS_getListRG($DEVICE,"Playlists")}@Playlists>
define Sonos_KuecheRG_Queue readingsGroup Sonos_Kueche:<{SONOS_getListRG($DEVICE,"Queue")}@Queue>



Viele Grüße!

Andreas

Jamo

Hallo Andreas,
ich habe das gleiche Problem, auch schon länger, bei mir legt Sonos das FHEM zwischen 15 und 30 Sekunden brach.
Und zwar genau dann, wenn entweder
1) die Sprachausgabe endet, und zum vorherigen Radiosender zurückkehrt, wie bei Dir, als auch wenn
2) ich die Radiosender in FHEM umschalte (also mit StartFavourite einen neuen Sender einstelle). Beim ersten Wechsel gehts noch einigermassen schnell, beim 2-ten und dritten umschalten zum nächsten Radiosender muss ich zwischen 15 u 30 Sekunden warten.
Wenn man die RadioSender direkt aus der iOS Sonos App heraus wechselt, gehts innerhalb einiger Sekunden.

Habe schon alles mögliche probiert, ich glaube es liegt am grossen Speicherverbrauch vom Sonos Modul, und ein RasPi 3 hat nur 1GByte Memory.

Mir ist noch aufgefallen, das Du sowohl "targetSpeakFileTimestamp" UND "targetSpeakFileHashCache" gesetzt hast, das Sonos Wiki sagt dazu, das man nicht beides gleichzeitig setzten soll (Hilft dem problem aber auch nicht).
Zitat
Empfehlenswert ist auch das Setzen eines der Attribute targetSpeakFileTimestamp oder targetSpeakFileHashCache am FHEM-Sonos-Device. Damit werden Indizierungsprobleme des Sonos-Systems umgangen. Es ist nicht sinnvoll beide Attribute gleichzeitig zu setzen. Auch diese Attribute werden bei den "Sonos Sprachattributen" beschrieben.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

binford6000

Hallo Andreas,
hab das mal versucht nachzustellen. Leider ohne Erfolg. Heißt hier ist weiterhin alles
bedienbar - während und nach der Sprachausgabe. Auch wiederholt.

Bei den Favourites ist ein klitzekleines Lag festzustellen. 2-3 Sekunden nur. Aber keine halbe Minute...

Hab allerdings auch nur einen einzigen SONOS Play 1...

Das einzige was mir auffällt ist:
attr Sonos_Kueche userReadings Favourites:LastActionResult.*?GetFavouritesWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Radios:LastActionResult.*?GetRadiosWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Playlists:LastActionResult.*?GetPlaylistsWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Queue:LastActionResult.*?GetQueueWithCovers.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, currentTrackPosition:LastActionResult.*?GetCurrentTrackPosition.* { if (ReadingsVal($name, "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }


Das brauchst du nicht mehr. Das geht jetzt mit:

attr SONOS getListsDirectlyToReadings 1

Ansonsten läuft mein FHEM auch auf einem Raspi 3 so vor sich hin.
Auch die ganzen disappeared Geschichten die hier immer wieder auftauchen hab ich noch nie gehabt.
Obwohl das Teil immer brav vom Strom getrennt wird bei Abwesenheit  ;)

VG Sebastian

Jamo

Andreas hat 7 Sonos, ich habe 6 Sonos Play:1 in Betrieb, vielleicht liegts daran?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

binford6000

ZitatHab allerdings auch nur einen einzigen SONOS Play 1...

Ich denke schon  ???

VG Sebastian

fhem-challenge

Zitat von: inoma am 20 November 2018, 22:37:32
Andreas hat 7 Sonos, ich habe 6 Sonos Play:1 in Betrieb, vielleicht liegts daran?

Nicht auszuschliessen, dass es an der Anzahl liegt, aber dennoch hatte es bei (in meinem Fall) gleicher Anzahl bis vor einigen Wochen funktioniert. Wenn ich die Sprachausgabe nutze, funktioniert die reine Ausgabe der Sprache recht schnell (also an google liegts dann nicht) das MP3 File ist recht schnell vorhanden, nur nach erfolgter Sprachausgabe werkelt das SONOS Modul noch irrsinnig lange herum. FHEM ist vollständig blockiert.

Natürlich könnte man überlegen entweder ein zweites FHEM (Docker, oder gar eigenen RasPi) nur für SONOS zu verwenden und FHEM2FHEM zu machen, aber da der dann zweite Raspi ja auch mit der FHEM Instanz "stehen" bleibt , würde vermutlich die FHEM2FHEM Instanz auf dem primären ebenfalls fhem blockieren.

Hmmm ... ich schätze mal , dass man (ich) ggf. abseits des SONOS Moduls die Sprachausgabe macht ...

Viele Grüße!


Andreas