Sonosscripte für die CCU2
Moderator: Co-Administratoren
Sonosscripte für die CCU2
Hallo,
ich habe aus meinen Sonos-Scripten ein Addon entwickelt, so dass ich dieses jetzt in diesem Forum-Ordner vorstellen möchte. Der alte thread meiner Scripte war hier: Sonos steuern mit der weißen Fernbedienung.
Ziel war es, die bekannten Sonos-Scripte, die per PHP implementiert waren, in Tcl nachzuempfinden, da man so kein PHP extra installieren muss. Die Soap-Anfragen gehen per Socket, so dass man auch kein Curl braucht.
Das größte Problem bei der Entwicklung ist, dass auf der CCU2 nur das alte Tcl 8.2 läuft, auf dem Mac und Linux mindestens Tcl 8.5, so fällt man beim Ausprobieren immer wieder rein. Der Bequemlichkeit halber habe ich auch die Udp-Abfragen eingebaut, so dass man die IP-Adressen nicht mehr braucht. Zum Einstellen und Ausprobieren gibt es jetzt eine Web-Oberfläche.
Ich empfehle die Installation über Zusatzsoftware, dann Einstellungen drücken, "ReadZoneplayers per UDP" drücken und die Scripte sind bereit.
Einschränkungen bisher: Die CCU2 ist recht langsam, das Anzeigen der Topology kann eine Weile dauern. Die Status-Seite macht noch gar nichts, hier könnte man eine Sonos-ähnliche Oberfläche einbauen, die sich per subscribes selbst aktualisiert-ist kein Problem, dauert nur noch.
Die Udp-Abfrage ist übrigens in C geschrieben und kompiliert per Crosscompiler auf meinem Mac. Ich selbst benutze die Web-Oberfläche eigentlich gar nicht, sondern habe 10 Tasten meiner Fernbedienung mit je 2 Senden belegt (kurz/lang) sowie die beiden Daumen-Tasten mit An/Aus bzw. laut/leise.
Gruß fiveyears
ich habe aus meinen Sonos-Scripten ein Addon entwickelt, so dass ich dieses jetzt in diesem Forum-Ordner vorstellen möchte. Der alte thread meiner Scripte war hier: Sonos steuern mit der weißen Fernbedienung.
Ziel war es, die bekannten Sonos-Scripte, die per PHP implementiert waren, in Tcl nachzuempfinden, da man so kein PHP extra installieren muss. Die Soap-Anfragen gehen per Socket, so dass man auch kein Curl braucht.
Das größte Problem bei der Entwicklung ist, dass auf der CCU2 nur das alte Tcl 8.2 läuft, auf dem Mac und Linux mindestens Tcl 8.5, so fällt man beim Ausprobieren immer wieder rein. Der Bequemlichkeit halber habe ich auch die Udp-Abfragen eingebaut, so dass man die IP-Adressen nicht mehr braucht. Zum Einstellen und Ausprobieren gibt es jetzt eine Web-Oberfläche.
Ich empfehle die Installation über Zusatzsoftware, dann Einstellungen drücken, "ReadZoneplayers per UDP" drücken und die Scripte sind bereit.
Einschränkungen bisher: Die CCU2 ist recht langsam, das Anzeigen der Topology kann eine Weile dauern. Die Status-Seite macht noch gar nichts, hier könnte man eine Sonos-ähnliche Oberfläche einbauen, die sich per subscribes selbst aktualisiert-ist kein Problem, dauert nur noch.
Die Udp-Abfrage ist übrigens in C geschrieben und kompiliert per Crosscompiler auf meinem Mac. Ich selbst benutze die Web-Oberfläche eigentlich gar nicht, sondern habe 10 Tasten meiner Fernbedienung mit je 2 Senden belegt (kurz/lang) sowie die beiden Daumen-Tasten mit An/Aus bzw. laut/leise.
Gruß fiveyears
- Dateianhänge
-
- sonos2.tar.gz
- (191.24 KiB) 1132-mal heruntergeladen
Re: Sonosscripte für die CCU2
Wenn es mit Umlauten in den Zoneplayern nicht klappt, dann hier versuchen
- Dateianhänge
-
- sonos2.tar.gz
- (191.29 KiB) 616-mal heruntergeladen
Re: Sonosscripte für die CCU2
Vielen Dank!
Werde es gleich ausprobieren!
CCU Backup wird erstellt ...
Bin sehr gespannt!
Gruß
Xanon
Werde es gleich ausprobieren!
CCU Backup wird erstellt ...
Bin sehr gespannt!
Gruß
Xanon
Re: Sonosscripte für die CCU2
Hallo fiveyears,
sieht gut aus.
Vielen Dank erst einmal, dass du hier dein AddOn zur Verfügung stellst.
Könntest du vielleicht noch einmal schreiben, was denn jetzt alles funktioniert?
Finde es gut, dass du einige Beispiele mit eingebaut hast, aber ich konnte keinen Hinweis finden, welche Kommandos jetzt funktionieren.
Habe z.B. versucht Gruppen zu bilden, da ich oft im ganzen Haus das gleiche "Synchron" höre.
Wie kann ich den TEMP/Message Ordner benutzen und aufrufen?
Ich lasse mir sonst immer sagen, wenn z.B. die Waschmaschine fertig ist, oder es an der Tür geklingelt hat.
(Zur Zeit über Logitech Media Server)
Da ich aber nun auf Sonos umgestiegen möchte, vermisse ich diese Funktion noch.
Toll wäre, wenn man "Internetradio" oder eine "Spotify Playlist" hört, gruppen bilden oder auch wieder trennen kann.
Wenn nun die Waschmaschine fertig ist, wäre es toll, wenn die Musik (auf allen Lautsprechern) langsam leiser wird und auf pause geht.
(Pause deswegen, weil sonst die Werbung bei manchen Internetradio Sendern wieder startet, bzw. bei Spotify der Titel von vorne starten würde)
Nun die Durchsage getätigt wird und danach wieder der vorige Internetradio-Sender / Spotify Playlist
(an der zuvor gespeicherten Position) fortgesetzt wird. (langsam einblenden)
Geht dies vielleicht schon und ich benutze nur die falschen Parameter?
zur Info:
Wenn ich auf der Oberfläche bin und einen Lautsprecher ausgewählt habe, ist dieser manchmal (nicht erreichbar) oder ich habe auf einmal einen Lautsprecher in der Liste namens "TV", der auch nicht erreichbar ist.
Wahrscheinlich ein Lautsprecher von dir
Vielen Dank noch einmal für deinen Einsatz.
Gruß
Xanon
sieht gut aus.
Vielen Dank erst einmal, dass du hier dein AddOn zur Verfügung stellst.
Könntest du vielleicht noch einmal schreiben, was denn jetzt alles funktioniert?
Finde es gut, dass du einige Beispiele mit eingebaut hast, aber ich konnte keinen Hinweis finden, welche Kommandos jetzt funktionieren.
Habe z.B. versucht Gruppen zu bilden, da ich oft im ganzen Haus das gleiche "Synchron" höre.
Wie kann ich den TEMP/Message Ordner benutzen und aufrufen?
Ich lasse mir sonst immer sagen, wenn z.B. die Waschmaschine fertig ist, oder es an der Tür geklingelt hat.
(Zur Zeit über Logitech Media Server)
Da ich aber nun auf Sonos umgestiegen möchte, vermisse ich diese Funktion noch.
Toll wäre, wenn man "Internetradio" oder eine "Spotify Playlist" hört, gruppen bilden oder auch wieder trennen kann.
Wenn nun die Waschmaschine fertig ist, wäre es toll, wenn die Musik (auf allen Lautsprechern) langsam leiser wird und auf pause geht.
(Pause deswegen, weil sonst die Werbung bei manchen Internetradio Sendern wieder startet, bzw. bei Spotify der Titel von vorne starten würde)
Nun die Durchsage getätigt wird und danach wieder der vorige Internetradio-Sender / Spotify Playlist
(an der zuvor gespeicherten Position) fortgesetzt wird. (langsam einblenden)
Geht dies vielleicht schon und ich benutze nur die falschen Parameter?
zur Info:
Wenn ich auf der Oberfläche bin und einen Lautsprecher ausgewählt habe, ist dieser manchmal (nicht erreichbar) oder ich habe auf einmal einen Lautsprecher in der Liste namens "TV", der auch nicht erreichbar ist.
Wahrscheinlich ein Lautsprecher von dir
Vielen Dank noch einmal für deinen Einsatz.
Gruß
Xanon
Re: Sonosscripte für die CCU2
Bis jetzt geht:
# zonen= (wohnzimmer,tv,bad,kueche,schlafzimmer) -> kleinschreibung, keine Leer oder Sonderzeichen
#
# action=
# play -> Abspielen
# pause -> Pause
# stop -> Stop
# toggle -> Play / Pause umschalten
# mute (true,false) -> Stumm schalten
# shuffle (true,false) -> shuffle an/aus
# repeat (true,false) -> repeat an/aus
# crossfade (true,false) -> Titelübergang aus, aus
# volume (0-100) -> Lautstärke setzen
# ramp (0-100) -> auto ramp to Volume
# sleep (0-100) -> sleep ramp to Volume
# alarm (0-100) -> alarm ramp to Volume
# volumeup -> Lautstärke um 3% erhöhen
# volumedown -> Lautstärke um 5% verringern
# info (Info-Name) -> zeigt Infos an
# AudioInputAttributes
# ZoneGroupAttributes
# ZoneAttributes
# ZoneInfo
# Alarm -> Liste der Alarme, nicht formatiert
# RadioIdUri -> ID: gut zum Anlegen neuer Sender und Radio-URI
# MediaInfo -> z. B. Sonos-URI, Sendername
# mute
# crossfademode
# repeat
# shuffle
# volume
# LEDState
# PositionInfo
# AskRadio -> Info, was läuft
#
Gruppenbildung und Message abspielen habe ich noch nicht implementiert
Wenn man per Udp seine Player abfragt und das Ergebnis speichert in den Settings, dann dürften nur die eigenen erscheinen, wenn nicht, dann muss ich schauen, woran es hängt
Gruß fiveyears
# zonen= (wohnzimmer,tv,bad,kueche,schlafzimmer) -> kleinschreibung, keine Leer oder Sonderzeichen
#
# action=
# play -> Abspielen
# pause -> Pause
# stop -> Stop
# toggle -> Play / Pause umschalten
# mute (true,false) -> Stumm schalten
# shuffle (true,false) -> shuffle an/aus
# repeat (true,false) -> repeat an/aus
# crossfade (true,false) -> Titelübergang aus, aus
# volume (0-100) -> Lautstärke setzen
# ramp (0-100) -> auto ramp to Volume
# sleep (0-100) -> sleep ramp to Volume
# alarm (0-100) -> alarm ramp to Volume
# volumeup -> Lautstärke um 3% erhöhen
# volumedown -> Lautstärke um 5% verringern
# info (Info-Name) -> zeigt Infos an
# AudioInputAttributes
# ZoneGroupAttributes
# ZoneAttributes
# ZoneInfo
# Alarm -> Liste der Alarme, nicht formatiert
# RadioIdUri -> ID: gut zum Anlegen neuer Sender und Radio-URI
# MediaInfo -> z. B. Sonos-URI, Sendername
# mute
# crossfademode
# repeat
# shuffle
# volume
# LEDState
# PositionInfo
# AskRadio -> Info, was läuft
#
Gruppenbildung und Message abspielen habe ich noch nicht implementiert
Wenn man per Udp seine Player abfragt und das Ergebnis speichert in den Settings, dann dürften nur die eigenen erscheinen, wenn nicht, dann muss ich schauen, woran es hängt
Gruß fiveyears
Re: Sonosscripte für die CCU2
Werde dein Plugin heute Abend oder am WE auch mal testen. Hört sich echt gut an.
Message wäre klasse wenn du das implementierst. Wäre für mich definitiv was, da ich es auch wie Xanon nutzen würde
Message wäre klasse wenn du das implementierst. Wäre für mich definitiv was, da ich es auch wie Xanon nutzen würde
Re: Sonosscripte für die CCU2
Also derTeil, den ich testen konnte, funktioniert bei mir ganz gut.
Alles konnte ich noch nicht ausprobieren, da ich das per Fernsteuerung gemacht habe und ich nicht zu Hause bin.
Alles konnte ich noch nicht ausprobieren, da ich das per Fernsteuerung gemacht habe und ich nicht zu Hause bin.
Re: Sonosscripte für die CCU2
Ich habe im Quellcode dummy-Player statt meiner eingegeben. Wenn ich dann starten über die CCU2, auf Einstellungen gehe, die UDP-Abfrage mache, erscheinen meine Player, die werden in der sonos.cfg gespeichert und die dummies erscheinen bei mir nicht mehr.
Das mit der Message habe ich mir angeschaut, es dauert nur etwas länger, weil die Funktion komplexer ist (Abfragen, was läuft, speichern, Message spielen, zurückspeichern und wieder laufen lassen).
Das mit den Groups habe ich bisher sein, lassen, denn sowas kann man ja wirklich über die Sonos-Oberfläche oder gar dem iPhone/Android machen.
Gruß fiveyears
Das mit der Message habe ich mir angeschaut, es dauert nur etwas länger, weil die Funktion komplexer ist (Abfragen, was läuft, speichern, Message spielen, zurückspeichern und wieder laufen lassen).
Das mit den Groups habe ich bisher sein, lassen, denn sowas kann man ja wirklich über die Sonos-Oberfläche oder gar dem iPhone/Android machen.
Gruß fiveyears
Re: Sonosscripte für die CCU2
Ich habe im Quellcode dummy-Player statt meiner eingegeben. Wenn ich dann starten über die CCU2, auf Einstellungen gehe, die UDP-Abfrage mache, erscheinen meine Player, die werden in der sonos.cfg gespeichert und die dummies erscheinen bei mir nicht mehr.
Das mit der Message habe ich mir angeschaut, es dauert nur etwas länger, weil die Funktion komplexer ist (Abfragen, was läuft, speichern, Message spielen, zurückspeichern und wieder laufen lassen).
Das mit den Groups habe ich bisher sein, lassen, denn sowas kann man ja wirklich über die Sonos-Oberfläche oder gar dem iPhone/Android machen.
Gruß fiveyears
Das mit der Message habe ich mir angeschaut, es dauert nur etwas länger, weil die Funktion komplexer ist (Abfragen, was läuft, speichern, Message spielen, zurückspeichern und wieder laufen lassen).
Das mit den Groups habe ich bisher sein, lassen, denn sowas kann man ja wirklich über die Sonos-Oberfläche oder gar dem iPhone/Android machen.
Gruß fiveyears
Re: Sonosscripte für die CCU2
So, hab es soweit mal laufen. Erstmal danke dafür.
Aber wie binde ich eigene Radio Sender ein?
Und wenn ich meine Player in der WebUI suchen lasse und speichern will geht es nicht, wenn z.B. die Zone "Flur" heißt. Es müssen mindestens 20 Zeichen sein kommt dann als Meldung.
Aber wie binde ich eigene Radio Sender ein?
Und wenn ich meine Player in der WebUI suchen lasse und speichern will geht es nicht, wenn z.B. die Zone "Flur" heißt. Es müssen mindestens 20 Zeichen sein kommt dann als Meldung.