Zitat von RoyalTS
Beitrag anzeigen

Da das nächste Release ja die Version 1.0 werden wird, muss ja einiges kommen. Ich verweise mal für alle Änderungen auf die Github-Seite, die wichtigsten Dinge muss ich aber auch kurz hier erläutern. Wer es sich traut, kann HIER eine Vorab-Version testen. Würde mich über Feedback freuen, dann kann ich die Version auch als Release rausbringen.
An dieser Stelle kurz die wichtigsten Änderungen:
1. Ich habe die Namen der ausführbaren Dateien in
Code:
sonos-broker sonos-cmd
2. Ich habe die Setuproutine ein wenig geändert und pip-konform gemacht. Wenn man den Broker mit dem Befehl
Code:
python3 -m pip -v install sonos-broker-{release-version}.tar.gz
Die Setuproutine installiert die Standard-Konfigurationsdatei nach
Code:
/etc/default/sonos-broker
3. Das Daemonize-Verhalten des Brokers habe ich entfernt. D.h., er startet immer im Vordergrund. In Zunkunft setzte ich voll auf systemd, das kann es besser und ist einfacher zu installieren. Im Zuge dessen habe ich der Setuproutine Startskripte für upstart und systemd mitgegeben. Je nach System wird bei der Installation das entsprechende Skript bereits in die entsprechenden Ordner kopiert; im Fall von systemd z.B.
Code:
/etc/systemd/system
Code:
sudo systemctl enable sonos-broker.service
Bei einem Upstart-System (z.B. Ubuntu 14.04), muss man in der Datei
Code:
/etc/init/sonos-broker.conf
Code:
#start on runlevel [2345]
HIER kann man sich die simplen Skripte anschauen.
4. Ich habe den Broker einen eigenen Webservice für das Bereitstellen von Audiodateien spendiert. Man braucht nun keinen eigenen Server mehr, um z.B. GoogleTTS-Dateien oder andere Snippets abzuspielen. Die Konfigurationsdatei wurde entsprechend angepasst und eine neue Sektion [webservice] eingefügt. Eigentlich sollte die Beschreibung selbsterklärend sein.
5. Die Verarbeitung von den Kommandos
Code:
play_tts
Code:
play_snippet
6. Die Methode
Code:
unjoin
Code:
[[unjoin]] type = foo enforce_updates = True sonos_send = unjoin visu_acl = rw [[[play]]] type = bool value = 1
@RoyalTS
Die Zustandslogiken hab ich nochmal zurückgestellt. Nach Tests mit meinen zwei Lautsprechern wurde der Zustand der Lautsprecher nach einem join --> unjoin immer wieder korrekt von der Sonos-internen Logik zurückgesetzt. Ich habe wie oben schon geschrieben eingige Veränderungen am Code durchgeführt. Eventuell behebt es schon die meisten Probleme. Ich bin gespannt auf deine Tests.
Gruss,
Stefan
Kommentar