Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Fixel2012

1549-1555 sind die Folgenden Zeilen:

# SimulatedValues aktualisieren, wenn ein Wechsel des Titels stattgefunden hat, und gerade keine Wiedergabe erfolgt...
if (($current{TransportState} ne 'PLAYING')
&& (($oldTrackHandle ne $current{TrackHandle})
|| ($oldTrack != $current{Track})
|| ($oldTrackPosition ne $current{TrackPosition}))) {
SONOSPLAYER_SimulateCurrentTrackPosition($hash);
}




Ich dachte eigentlich ich habe die neuste Version?

$Id: 00_SONOS.pm 15151 2017-09-28 21:49:20Z Reinerlein $
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

math78

Hallo,

habe seit 2 Tagen dauernd folgende Fehlermeldungen:
ZitatRenewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4072 thread 19.
Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4048 thread 25.
Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4096 thread 25.
Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4168 thread 19.
Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4192 thread 19.
Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/00_SONOS.pm line 4168 thread 25.

ZitatLoading device description failed with error: 500 write failed: Connection reset by peer (Location: http://192.168.0.5:55000/dmr/ddd.xml) at ./FHEM/00_SONOS.pm line 2443 thread 1.
Loading device description failed with error: 500 write failed: Connection reset by peer (Location: http://192.168.0.5:55000/dmr/ddd.xml) at ./FHEM/00_SONOS.pm line 2443 thread 25.
Loading device description failed with error: 500 Status read failed: Connection reset by peer (Location: http://192.168.0.5:55000/dmr/ddd.xml) at ./FHEM/00_SONOS.pm line 2443 thread 19.
Loading device description failed with error: 500 Status read failed: Connection reset by peer (Location: http://192.168.0.5:55000/dmr/ddd.xml) at ./FHEM/00_SONOS.pm line 2443 thread 1.
Loading device description failed with error: 500 Status read failed: Connection reset by peer (Location: http://192.168.0.5:55000/dmr/ddd.xml) at ./FHEM/00_SONOS.pm line 2443 thread 19.

Könnt Ihr damit etwas anfangen?

Danke.

LG
Matthias

Elektrolurch

Hallo,

mal eine Frage zum Abspielen von .m3u - playlisten. Leider gelingt mir das nicht:

Der Befehl:
set Sonos_Arbeitszimmer StartPlaylist file://192.168.1.16/Sonos/playlists/Aktuell.m3u

führt nur dazu, dass der Player den letzten Song aus seiner internen Abspielliste wiedergibt, aber nicht die Abspielliste selbst.
Der Zugriff auf das Verzeichnis funktioniert, denn eine .mp3 - Datei aus dem Verzeichnis kann ich mit set Sonos_Arbeitszimmer playURI ... wiedergeben.
In der commandRef zum Befehl "StartPlaylist" ist beim dem Beispiel für einen Pfad vor dem file:... noch ein " ' " Zeichen, aber kein schliessendes, ich gehe mal davon aus, dass das inkorrekt ist und der Pfad zur Datei nicht in Apostrophs gestellt werden muss.


Die m3u-Datei sieht so aus:

#EXTM3U
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:1 Title:Lord Grenville
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/01-Lord%20Grenville.mp3
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:1 Title:Lord Grenville
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/01-Lord%20Grenville.mp3
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:2 Title:On The Border
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/02-On%20The%20Border.mp3
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:3 Title:Midas Shadow
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/03-Midas%20Shadow.mp3
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:4 Title:Sand In Your Shoes
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/04-Sand%20In%20Your%20Shoes.mp3
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:5 Title:If It Doesn't Come Naturally, Leave It
//192.168.1.16/Musik/Pop/Stewart,%20Al/Year%20Of%20The%20Cat/05-If%20It%20Doesn't%20Come%20Naturally,%20Leave%20It.mp3
...
Wo könnte der Fehler liegen?

Elektrolurch

configDB und Windows befreite Zone!

Reinerlein

Hi Elektrolurch,

das mit den Anführungsstrichen ist richtig, die sind nur für die Abgrenzung im Fließtext...

Steht denn irgendwas im Log, oder im Reading LastActionResult?
Ich könnte mir vorstellen, dass ich das nicht mit Netzwerkfreigaben für die m3u-Dateiablage getestet habe :(

Grüße
Reiner

Elektrolurch

 Hallo Reiner,

habe mal alles heruntergebrochen, was so geht:

2017.10.26 10:16:38 1: SCC_PlayAll: set Sonos_Arbeitszimmer StartPlaylist file://192.168.1.16/Sonos/playlists/Aktuell.m3u 1
Play: Success!
Aber es wird weiterhin der laufende Radiostream ohne Unterbrechung abgespielt.

Um ev. Probleme mit Dateipfaden zu vermeiden, habe ich die m3u-Datei wie folgt auf einen Eintrag geändert:

#EXTM3U
#EXTINF:-1, Artist:Al Stewart Album:Year Of The Cat Track:1 Title:Lord Grenville
//192.168.1.16/Sonos/playlists/file.mp3

Aber der Befehl:
set Sonos_Arbeitszimmer PlayURI //192.168.1.16/Sonos/playlists/file.mp3

Und schon wird "Money" abgespielt. Also an der Erreichbarkeit der Freigabe kann es nicht liegen.
Das Format für die m3u -Datei habe ich aus der wikipedia, wobei ich das so verstanden habe, dass nur die Länge mit -1 ausgewertet wird und der Rest ev. vom Player angezeigt werden kann.

Elektrolurch
configDB und Windows befreite Zone!

Reinerlein

Hi Elektrolurch,

mach mal nur ein LoadPlaylist, damit wir mal sehen können, was dieser im LastActionResult oder Log ausgibt.

Eine Anmerkung:
Aus der m3u-Datei verwende ich sowieso nur die Einträge, die nicht mit # beginnen. Der Rest wird übersprungen...
Also stimmt dein Format auf jeden Fall...

Grüße
Reiner

Phiolin

#3021
Meine Sonos Boxen machen auch mal wieder merkwürdige Probleme.
Seit neuestem funktioniert bei mir StartPlaylist nicht mehr (mit einer Apple Music Playlist) und auch StartRadio mit dem WDR 2 Internet-Stream tut nichts.

Rufe ich hingegen erst LoadPlaylist und dann Play manuell auf, funktioniert es. StartPlaylist macht ja eigentlich praktisch das gleiche?
Bei StartPlaylist erhalte ich hingegen einen UPnP Fehler:
2017-10-27 08:58:10 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: Play: Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "{UPnPError => {errorCode => 701}}"

LoadPlaylist und Play funktioniert ohne Fehler.
Bei StartRadio ist es das gleiche. LoadRadio und Play geht, StartRadio nicht.
Im Log sieht es teilweise so aus, als würden sich z.B. bei StartRadio die Befehle überholen. Sprich es wird erst der Play Befehl abgearbeitet und danach das LoadRadio ausgeführt. Am Ende ist der Player dann im Status, dass der Radio Stream zwar geladen ist, aber die Wiedergabe gestoppt ist.

Habe meine kritischeren Wiedergaben jetzt erst mal von StartPlaylist/StartRadio auf LoadPlaylist+Play/LoadRadio+Play, jeweils mit einigen Sekunden Delay dazwischen, umgestellt. Mal gucken ob es damit dauerhaft besser geht.

Elektrolurch

Hallo Reiner,
der Hinweis war richtig:      2017-10-27 09:52:45   LastActionResult LoadPlaylist: Error during opening file "//192.168.1.16/Sonos/playlists/Aktuell.m3u": No such file or directory

Also, alles nochmals durchgechecked:
1. Unter dem Ordner Sonos liegt der Ordner speak für die Audiodateien der Sprachausgabe. Das klappt. Bis Ordner Sonos ist also alles mit den Rechten ok smb - Freigabepunkt ist "Sonos".
2. der Ordner playlist steht auf drwrw-rw-, also da dürfte Sonos auch sogar schreiben.
3. Aktuell.m3u war zwar von fhem mit dem user fhem und Gruppe dialout angelegt worden, der Rest der "Welt" durfte aber lesen. Windows kann die Datei auch öffnen und will sie abspielen. Scheitert nur an den Pfaden, die ja bei Windows mit \\ und nicht mit // anfangen dürfen. Also von den Rechten müsste das also auch stimmen.
Außerdem habe ich in den Orner playlist eine .mp3 - Dtei zum Test abgelegt. Die spielt Sonos von fhem aus mit dem PlayURI-Befehl auch ab (s.o. mein Beitrag).

Jetzt habe ich leider keine Idee mehr, was da noch nicht stimmten könnte.
Noch eine andere Frage: Beim Neustart kommen immer so Meldungen:
Sonos modify device Sonos_Arbeitszimmer
usw. für alle bekannten Player. Kommen wohl aus der define - Anweisung.
Was bedeuten diese? Kann man da einen log-level setzen, damit ich die unterdrücken kann? Scheinen wohl mit loglevel 1 zu kommen. Vielleicht auf 3 setzen?

Elektrolurch
configDB und Windows befreite Zone!

Reinerlein

Hi Elektrolurch,

die .m3u-Datei wird nur vom Sonos-Modul gelesen, und dann jeder enthaltene Titel einzeln an das Sonos-System übertragen.
Das bedeutet, die .m3u-Datei muss vom Sonos-SubThread aus gelesen werden können, und die einzelnen enthaltenen Musikdateien vom Sonos-System selbst.

Wenn dieses Verzeichnis mit der .m3u-Datei sowieso lokal zu FHEM (bzw. zum Sonos-Modulthread) liegt, dann versuch doch mal einen lokalen Pfad wie

LoadPlaylist file:/opt/Sonos/irgendwas/datei.m3u
anzugeben.

Außerdem dürfen sehr wohl "\" in dieser .m3u-Datei vorkommen, sodass du diese gleichzeitig unter Windows und mit dem Sonos-Modul verwenden kannst. Diese werden automatisch für das Sonos-System von mir umgewandelt.

Zu den Modify-Ausgaben:
Du musst den Loglevel (also das Attribut "verbose") tiefer als die Ausgabe setzen, in diesem Fall also auf 0 (am Sonos-Device).

Grüße
Reiner

Elektrolurch

Hallo Reiner,
mir war das nicht klar, dass das Sonos-Modul die Datei auswertet und den Inhalt an Sonos überträgt. Mit dem direkten Dateipfad funkts. Danke für die Unterstützung.

Elektrolurch


configDB und Windows befreite Zone!

a13xde

Hallo zusammen,
Ich habe mir einen Sonos One zugelegt in der Hoffnung meinen Echo Dot mit verbundenem Bluetooth Speaker komplett ersetzen zu können und natürlich den tollen Sound von Sonos zu genießen, leider hat sich die Alexa Integration im One aber als noch sehr rudimentär herausgestellt. Ich bin daher den Umweg gegangen und habe den Echo Dot über den Line In eines Sonos Connect angeschlossen und leite das Signal mit der Autoplay Funktion an den One weiter, was auch wunderbar funktioniert.

Einzige Nachteil den ich im Moment habe ist, wenn ich nun über den Sonos Controller eine Wiedergabe starte und dann irgendwann mit Alexa spreche, die aktuelle Wiedergabe vom Sonos Controller unterbrochen wird. Ich sehe dann keine Möglichkeit einfach wieder dort die Wiedergabe fortzusetzen wo diese unterbrochen wurde (Autoplay hat dann den Line In aktiviert). Soweit ich gesehen habe wird eine solche fortsetzen Funktion aber von der Text2Speech Funktion genutzt, wie wird dies denn realisiert ?

Ist das in etwas so: Speicher aktuelle Playlist, spiele Text2Speech MP3 ab, lade gespeicherte Playlist und spiele diese ab ?
Könnte ich das auch für mein Problem nutzen um z.B. mit dem FHEM Custom Skill für Alexa mittels Sprachbefehl die Wiedergabe vom Sonos Controller fortzusetzen ? Könnte mir hier evtl. jemand ein paar Hinweise / Beispiele aufzeigen ?

Viele Grüße

Alex

Mitch

Ich habe seit ein paar Tagen nun auch folgendes im Log:
ZitatRenewal of subscription failed with error: 500 Can't connect to ...

Wurde ja schonmal angesprochen. Gab/Gibt es da eine Lösung?

Die Player sind übrigens immer alle online. Deswegen wundert mich die Fehlermeldung umso mehr.
FHEM im Proxmox Container

Tobias

Hi,
kann das sein das das Sonos Modul immer noch von Zeit zu Zeit die CPUs voll beansprucht?
Im "top" sehe eine perl Auslastung gegen 100%. Bei einem Neustart sind es nur 20-30%
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

frankBN

Hi,

ich nutze SONOS mit 10 Playern und möchte gerne eine temporäre Nachricht an alle Player ausgeben.
Bislang nutze ich die Funktionen PlayURITemp und Speak und rufe alle Player nacheinander auf. Gibt es eine bessere Lösung?

Grüße
Frank

DeeSPe

Zitat von: frankBN am 04 November 2017, 12:27:55
Hi,

ich nutze SONOS mit 10 Playern und möchte gerne eine temporäre Nachricht an alle Player ausgeben.
Bislang nutze ich die Funktionen PlayURITemp und Speak und rufe alle Player nacheinander auf. Gibt es eine bessere Lösung?

Grüße
Frank

set TYPE=SONOSPLAYER PlayURITemp ........

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe