Es gibt viele Gründe, warum eine Squeezebox bei nicht Verwendung vom Stromnetz getrennt werden. Sei es um unnötigen Energieverbrauch zu vermeiden oder auch aus Gründen des Brandschutzes - Schon mal ein Netzteil im wahrsten Sinne des Wortes Abgeraucht?
Es gibt zwar die Möglichkeit, eine Squeezebox nach dem Einschalten mit der Wiedergabe beginnen zu lassen, aber sobald sie stromlos gemacht wurde funktioniert das nicht.
Dieses Verhalten ist durchaus sinnvoll und gewollt, zumindest bei Squeezeboxen die immer am Stromnetz hängen. Sie würden sonst nach einem Stromausfall loslegen.
Wer seine Squeezeboxen jedoch bei nichtgebrauch vom Netz nimmt hat unter Umständen Verwendung für eine Funktion, die die Squeezebox in den Wiedergabemodus Versetzt, sobald sie gebootet hat.
Damit mein Lösungsansatz funktioniert gibt es die folgenden Voraussetzungen:
Der LMS besitzt eine "command line" Schnittstelle mit der er über das TCP Protokoll gesteuert werden kann.
In meiner Lösung lasse ich alle 3 Sekunden den LMS alle bekannten Squeezeboxen und deren Verbindungsstatus auflisten.
Ist eine Squeezebox längere Zeit stromlos wird sie vom LMS nicht mehr aufgelistet. Hat sie gebootet und sich wieder mit dem LMS verbunden, wird sie wieder aufgelistet und sobald sie aktiv ist wird ihr Verbindungsstatus von 0 auf 1 gesetzt.
Mein Skript erkennt nun den Übergang des Verbindungsstatus von 0 auf 1 und startet dann die Wiedergabe auf der Squeezebox.
Die Konfigurationsdatei kann drei Parameter beinhalten:
LMS-Server=<IP-Adresse/DNS-Name>
LMS-Port=<TCP-Port>
Player=<MAC-Adresse>;[Medien-URL]
Der Parameter "LMS-Server" wird nur einmal verwendet und gibt den LMS an. Es kann die IP-Adresse aber auch der DNS Name verwendet werden.
Der Parameter "LMS-Port" wird ebenfalls nur einmal verwendet und gibt den TCP-Port der "commandline" Schnittstelle an. Der Port ist in der Regel die 9090.
Mit dem Parameter "Player" wird dem Skript mitgeteilt, welche Squeezebox nach dem Booten auf Wiedergabe gesetzt werden soll.
Dieser Parameter kann beliebig oft vorkommen und kennzeichnet immer genau eine Squeezebox.
Die Squeezebox wird über ihre MAC-Adresse gekennzeichnet. Diese ist auf dem Aufkleber der Squeezebox oder über die Webschnittstelle des LMS ermittelbar.
Nach dem Semikolon - es muss immer angegeben werden - wird die Medien-URL angegeben.
Wird keine Medien-URL angegeben so erfolgt die Wiedergabe wo sie zuletzt aufgehört hat.
Wird eine Medien-URL angegeben so wird genau diese wiedergegeben.
Die Medien-URL kann einen Titel, eine Playlist, einen Radiosender und weiteres enthalten. Sie ist ebenfalls über die Webschnittstelle des LMS ermittelbar.
Leerzeilen und Kommentare mit "#" beginnend können in der Konfigurationsdatei vorhanden sein und werden ignoriert.
Die Konfigurationsdatei kann drei Parameter beinhalten:
# squeezeAutoPlay.cfg
LMS-Server=localhost
LMS-Port=9090
Player=00:11:22:22:4a:d5;http://icepool.silvacast.com/ESCRADIO.mp3 # Receiver Gästezimmer, ESC-Radio wiedergeben
Player=00:66:77:88:99:db; # Receiver Trainingsraum
Player=00:12:23:34:d5:56; # SB Radio Black 1 Bad
Die Installation gestaltet sich einfach. Einfach das Archiv mit den zwei Dateien entpacken und an beliebiger Stelle ablegen.
Die Konfigurationsdatei "squeezeAutoPlay.cfg" anpassen und das Skript "squeezeAutoPlay.pl" starten.
Soll das Skript automatisch nach dem Boot des Linux Systems gestartet werden kann der folgende Eintrag in die Crontab erfolgen:
@reboot /root/squeezeAutoPlay.pl &
Wobei "/root/" auf den Ablageort anzupassen ist.
Copyright (C) 2023 Thomas Schütz-Schneider
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe <https://www.gnu.org/licenses/>.
Version V1.0: | squeezeAutoPlay.tgz |
---|---|
(Checksum 2852910704) |