Autoplay einer Squeezebox nachdem sie Stromlos war

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.

Lösungsansatz

Voraussetzungen

Damit mein Lösungsansatz funktioniert gibt es die folgenden Voraussetzungen:

  • Es wird ein eigener LMS (Logitechmediaserver) als Streamingquelle verwendet
  • Der LMS ist immer - oder zumindest dann Online wenn Musik wiedergegenen werden soll
  • Der LMS läuft auf einem Linux System

Umsetzung

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.

Features

  • In der Konfigurationsdatei kann angegeben werden bei welcher Squeezebox die Wiedergabe gestartet werden soll. So wird verhindert, dass Squeezeboxen die immer am Stromnetz sind nach einem Stromausfall aktiv werden
  • Die automatische Wiedergabe ist auf allen Squeezeboxen Typen (wie etwa Radio, Receiver, Touch, Classic, Transporter, Picoreplayer.) möglich
  • Für jede Squeezebox kann angegeben werden wie sie reagieren soll. Letzte Wiedergabe fortsetzen oder einen bestimmten Titel / Playlist / Radiosender wiedergeben
  • Durch die Verwendung des "sleep" Befehls werden nur wenig Ressourcen auf dem Linux System benötigt
  • Das Skript kann manuell oder über die Cron gestartet werden
  • Änderungen an der Konfigurationsdatei, wie z.B. des Hinzufügens einer Squeezebox, werden nach 5 Minuten erkannt und automatisch verarbeitet
  • Alle Zeiten können angepasst werden

Die Konfigurationsdatei "squeezeAutoPlay.cfg"

Die Konfigurationsdatei kann drei Parameter beinhalten:

LMS-Server=<IP-Adresse/DNS-Name>
LMS-Port=<TCP-Port>
Player=<MAC-Adresse>;[Medien-URL]

LMS-Server

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.


LMS-Port

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.


Player

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.

Beispiel einer Konfigurationsdatei

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

Installation, Copyright & Gewährleistung und Download

Installation

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 & Gewährleistung

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/>.

Download

Version V1.0
:
(Checksum 2852910704)