Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Nein, sonos-cmd steuert die gleichen Kommandos an. Wichtig ist nur das Flag group_command, das muss auf 1. Wenns dann immer noch nicht funktioniert, ist es ein Bug
-
Also ein einzelner Lautsprecher ohne jegliche Gruppen geht ohne Probleme.
Und das ich es mit sonos_cmd teste sollte ja nicht das Problem sein, oder?
Thorsten
Einen Kommentar schreiben:
-
Ich gehe mal in mich und schau mir nochmal das play_snippet an.
Stefan
Einen Kommentar schreiben:
-
Hi Stefan,
klingt toll. Mit
dürfte dann recht viel abgedeckt seinCode:save_state

Aber aktuell hab ich wirklich Probleme mit play_snippet. Ich hab am Wochenende einmal direkt mit
getestet gehabt. Schön Update, zu einem Sonos innerhalb einer Gruppe gewechselt und dann eine MP3 im Sonsos-System ("x-sonos-cifs...") abgespielt. Am Master ging es (manchmal hatte ich den Eindruck, dass es auch da nicht immer will), aber an den Slaves auf jeden Fall nicht. Aber ich teste es heute Abend nochmal. Auch mit einer Logik in SH.py.Code:sonos_cmd
Aber braucht man wirklich eine Datenbank/Textdatei zum Speichern? Könnte doch über eine neue Funktion so laufen.
Z.B. anstatt play_snippet ein play_alert([Speaker],Link_zur_MP3) und die Werte in Variablen zwischenspeichern.
Wäre ne schöne Funktion. Könnte dann auch eine Taste in der Küche sein, die zum Essen ruftCode:play_alert([rincon_000e5..,rincon_000e5...,rincon_000e5...], "x-file-cifs://N5550/MP3/tuerklingel.mp3")

Danke und Grüße
Thorsten
Einen Kommentar schreiben:
-
Hi, ich bin gerade in der SBahn, deswegen nur ein paar kleine Anmerkungen, morgen kann ich ausführlicher schreiben und eventuell auch testen.
Zum play_snippet Kommando:
Normalerweise muss du dich nicht drum kümmern, welchen Lautsprecher du in der Gruppe mit dem play_snippet ansprichst, es wird immer über den Coordinator ausgeführt (für dich transparent). Um das Snippet auf allen Lautsprechern in der Gruppe Abspielen zu können, muss das Kindelementvom play_snippet-Item auf 1 bzw. True gesetzt sein, dann wird auf allen Lautsprechern der Gruppe das Snippet abgespielt.Code:group_command
Im Moment wird nur der Status vor dem play_snippet gespeichert und danach wieder geladen. Vor oder nachdem Auftrennen einer Gruppe ist das noch nicht implementiert. Das schaue ich mir aber an, weil das eventuell relativ einfach zu implementieren ist.
In dem Fall würde ich demundCode:join
Item noch ein KinditemCode:partymode
mitgeben, wodurch bei True vor einem Umgruppieren der Broker den Status speichert und nachher wieder restored. Mal schauen ob ich wirklich alles an Metadaten speichern und wiederherstellen kann.Code:save_state
Deckt das deinen Fall soweit ab?
Theoretisch kann man schon jetzt auch alles über Logiken in sh.py machen. Vor einem join speichert man alle UIDs einer Gruppe und holt sich alle relevanten Daten eines Lautsprechers dieser Gruppe(hier wieder: egal ob Coordinator oder nicht). Das wären hier z.B sonos_playlists, playlist_position, volume etc, also alles was man wiederherstellen will. Das muss bis zum nächste Unjoin nach einem play_snippet persistent gespeichert werden (Datenbank, Textdatei). Nach dem Abspielen des Snipptes wieder alle Speaker einer Gruppe joinen und einem der Lautsprecher wieder alle zuvor gespeicherten Werte senden. Eventuell kann man diesen Ansatz auch verallgemeinert in eine Logik / Funktion des Sonos Plugins packen. Feedback erwünscht
additional_zone_members:
Ist eigentlich nur eine reine Info. Mit den gelieferten Sonos-UIDs könnte man z.B. die oben beschriebene Logiken innerhalb von SH.py basteln.
Danke für die Anregung und Gruss,
Stefan
Einen Kommentar schreiben:
-
Hallo Stefan,
mal wieder mit meinem alten Problem im Haus die Sonos klingeln zu lassen.
Zustand:
Meine Sonos-Stationen sind irgendwie einzeln oder zu Gruppen zusammengewürfelt, keine Ahnung wie.
Jetzt möchte ich beim Klingeln an der Haustür (Wird vom Mobotix ein GA auf 1 gesetzt)
a) von 7-19 Uhr auf allen (also Partymodus) mit play_snippet eine MP3 abspielen lassen,
b) von 19-7 Uhr nur bei bestimmten im "Elternbereich".
Nun meine Hauptfrage:
Wie kann ich die aktuellen Gruppierungen inkl. Playlisten, Trackpositionen, etc. abspeichern, das Snippet abspielen und wieder in den Ursprungszustand versetzen und weiterspielen lassen.
Nur play_snippet geht ja aufgrund unbekannter Gruppenkonstellationen nicht.
Bei Gruppen hab ich gemerkt, dass play_snippet nur über das Sonos-Gerät funktioniert, dass "is_coordinator == true" ist. Ok, beim neu zusammenfügen ist das ja klar.
Bei 2-3 Sonos vielleicht noch einfach, aber wir haben aktuell 12 Sonos im Einsatz.
Weitere Frage zum Finden einer Lösung:
Wie nutze ich "additional_zone_members"? Zum Speichern der einzelnen Gruppen muss ich ja für jedes Sonos die zugehörige "Gruppe" inkl. Koordinator (is_coordinator) herausfinden. Damit könnte ich ja über "additional_zone_members" an die Gruppenmitglieder kommen, oder? Was gibt mit der Befehl denn zurück? Hab in der Doku dazu leider nichts gefunden.
So ein "Klingelmodus" wäre total super. Würde ich dann auch gerne mit dem Telefon koppeln. Da soll dann z.B. einfach nur überall die Lautstärke reduziert werden bzw. über den Lautsprecher via play_tts der Anrufer durchgegeben werden.
Machbar sollte es ja irgendwie sein.
Danke für jeden Tip mit dem ich weiter basteln kann.
Grüße
Thorsten
Einen Kommentar schreiben:
-
Ich wollte dir gerade schreiben. Aufgrund deines Beitrages habe ich nochmal die Setuproutine geändert. Der Broker wird sich je nach Distro nun entweder als systemd oder init.d-Service mit den passenden Scripten installieren. Ich denke spätestens Anfang nächste Woche habe ich ein Release.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Okok... nächstes mal erst alle Kids ins Bett schicken und in Ruhe drüber nachdenken
Hab einfach meine init.d-Skripte angepasst.
Grüße
Thorsten
Einen Kommentar schreiben:
-
Hi Stefan,
irgendwie wollte bzw. wollte apt-get... so nicht, gab kein python3-pip Paket, daher hab ich alles manuell compiliert. Passt nun.
Nur zu "systemctl" hab ich ne Frage: Bei mir gibts das nicht (altes sh.py Image). Wie könnte ich den Auto-Start nun hinbekommen?
Danke!
Thorsten
Einen Kommentar schreiben:
-
Hast du es schon in der systemweiten Umgebung nstalliert?Zitat von RoyalTS Beitrag anzeigenHmm, Stefan...
ich steh grad auf m Schlauch. Wie bekomm ich "pip3 install..." zum Laufen?
in ner ENV-Umgebung hab ich es... hab Python3.5.2 manuell nachinstalliert.Code:sudo: pip3: command not found
Danke und Grüße
Thorsten
Gruss,Code:sudo apt-get install python3-pip
Stefan
Zuletzt geändert von pfischi; 07.12.2016, 06:40.
Einen Kommentar schreiben:
-
Hmm, Stefan...
ich steh grad auf m Schlauch. Wie bekomm ich "pip3 install..." zum Laufen?
in ner ENV-Umgebung hab ich es... hab Python3.5.2 manuell nachinstalliert.Code:sudo: pip3: command not found
Danke und Grüße
Thorsten
Einen Kommentar schreiben:
-
Zitat von manu241 Beitrag anzeigenHallo Stefan,
danke für deinen tollen Support. Nun läuft es wie gewünscht.
Irgendwie habe ich eine alte Plugin Version genommen.
Warum das Cover nicht angezeigt wurde, weiß ich leider nicht. Auf jeden Fall läuft es nun :-)
Nochmals besten Dank
Gruß Manuel
PS: Dann kann ich mich nun an die Senderauswahl machen :-)
Super.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Hallo Stefan,
danke für deinen tollen Support. Nun läuft es wie gewünscht.
Irgendwie habe ich eine alte Plugin Version genommen.
Warum das Cover nicht angezeigt wurde, weiß ich leider nicht. Auf jeden Fall läuft es nun :-)
Nochmals besten Dank
Gruß Manuel
PS: Dann kann ich mich nun an die Senderauswahl machen :-)
Einen Kommentar schreiben:


Einen Kommentar schreiben: