Plugin-Daten
AutorChristian Fenzl
Logo
StatusSTABLE
Version1.1.0
Min. LB Version1.0.1
Release Downloadhttps://github.com/christianTF/LoxBerry-Plugin-squeezelite/archive/refs/tags/1.1.0.zip
BeschreibungDas Squeezelite Plugin ermöglicht das Betreiben einer oder mehrerer Squeezelite-Instanzen als Player für den Logitech Media Server, sowie die Datenübermittlung des aktuellen Zonenzustandes aller Zonen an den Miniserver.
SprachenEN, DE, CS
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/55310-loxberry-plugin-squeezelite

Squeezelite Player

Version History...

Download und Kompatibilität

Squeezelite Plugin Version 0.4.2

0.2.31.0.1 Squeezelite Player Plugin 0.4.2 für LoxBerry v0.2.x https://github.com/christianTF/LoxBerry-Plugin-squeezelite/releases/tag/0.4.2 . Dies ist die letzte für LoxBerry 0.2.x getestete Version.

Squeezelite Plugin ab Version 0.4.3

0.2.31.0.1 Squeezelite Player ist mit LoxBerry ab Version 1.0.1 kompatibel. Die aktuellste Version wird nicht mehr aktiv mit LB0.2.x getestet, sollte technisch aber kompatibel sein.

Squeezelite Plugin ab Version 1.x

0.2.31.X Squeezelite Player ist nur noch mit LoxBerry der Versionsangabe (siehe oben) kompatibel. Funktioniert nicht mehr mit LoxBerry 0.2.3.

Aktueller PRE-Release: keiner

Alle Releases: https://github.com/christianTF/LoxBerry-Plugin-squeezelite/releases 


Das Squeezelite Player Plugin bietet zwei Hauptfunktionen: 

  1. Die Player-Funktion kann eine oder mehrere Zonen in der Logitech Media Server Installation auf Basis von Squeezelite betreiben (Anzahl der Zonen abhängig von der Leistung des LoxBerry's).
  2. Die LMS Gateway-Funktion sendet den Playerstatus aller Zonen, d.h. auch jener Zonen, die nicht lokal auf diesem LoxBerry laufen, an den Loxone Miniserver.

Die beiden Funktionen können getrennt aktiviert werden. Es müssen nicht beide Funktionen gleichzeitig genutzt werden.

Reboot!

In der aktuellen Version von LoxBerry und dem Plugin muss nach der Installation einmal rebootet werden, damit das Plugin alle notwendigen Rechte hat.

Squeezelite Player Zonen betreiben

Player-Einstellungen

1193709379.jpg

In den Player-Einstellungen wird der Hostname oder die IP-Adresse des Logitech Media Servers definiert.

Wird das Webinterface an einem anderen Port als 9000 betrieben, kann der Port unter Mehr anzeigen geändert werden.

"Zonen im Leerlauf ausschalten" - Ist eine Zone nicht aktiv (gestoppt), wird diese nach ca. 15 Minuten ausgeschaltet. Das behebt laut Foren ein Problem mit der Stabilität von Squeezelite

"Alternative Squeezelite Binaries" aktiviert eine neuere Version von Squeezelite, die ebenfalls die Stabilität erhöht. Nach der Änderung bitte "Speichern" und den LoxBerry neu starten. 

Zonen

Pro Zone kann definiert werden:

  • Ob diese aktiv oder inaktiv ist
  • Welche MAC-Adresse verwendet werden soll (wenn in der ersten Instanz keine MAC-Adresse definiert ist, wird diese automatisch befüllt).
  • Welcher Audio-Ausgang verwendet werden soll
  • Zusätzliche Startparameter für Squeezelite
  • Es kann ein GPIO aktiviert werden - für diese Einstellung müssen die "Alternativen Binaries" aktiviert sein!

Die Konfiguration kann gespeichert werden, oder sofort übernommen (schließt alle Instanzen und startet diese neu).

Details zur Konfiguration

  • Der Hostname bzw. die IP-Adresse des Servers ist optional - Squeezelite (nicht das Plugin!) sucht ohne Angabe eines Hostnamens selbst nach einem Server. Meine Empfehlung ist, einen Hostnamen oder eine IP-Adresse zu setzen. Wird das Feld befüllt, erhält man oben im Menü direkte Links zum LMS Webinterface und zu den LMS Einstellungen.
  • Mit dem Link "Mehr anzeigen" können die Ports definiert werden. 
    • Der Webinterface-Port wird für die Links zum LMS Webinterface und den LMS Einstellungen verwendet.
    • Der CLI Port (Command Line Interface) wird hier nicht benötigt, jedoch für das LMS Gateway (siehe unten).
    • Der Data Port wird von Squeezelite zum Streamen verwendet und muss eigentlich nie geändert werden.
  • Damit mehrere Instanzen von Squeezelite laufen können, muss jede Zone eine eigene MAC-Adresse haben. Die erste Zone wird - wenn noch keine Adresse eingetragen ist - automatisch mit der echten physischen MAC-Adresse vorausgefüllt.
  • Mit dem Würfel wird eine zufällige MAC-Adresse generiert. Sobald du in Loxone die Virtuellen Ausgangsbefehle programmiert hast, solltest du die MAC nicht mehr ändern, da sonst alle programmierten Befehle in Loxone nicht mehr funktionieren.
  • Möchtest du in der ersten Zone die MAC-Adresse auf die des Adapters zurücksetzen, dann einfach das MAC-Feld leeren und speichern. Es wird dann die MAC-Adresse des Adapters vorbefüllt.

Verwendung der GPIOs

Abkündigung | Deprecation Announcement

Ich möchte mitteilen, dass die GPIO-Unterstützung des Squeezelite Player Plugins in zukünftigen Versionen ausgebaut werden könnte. Bitte verwendet stattdessen den vom Gateway an den Miniserver übermittelten Power-State in Verbindung mit dem GPIO-Plugin.


I'd like to announce that the GPIO support may be removed in future versions. Please consider to use the Power state transmitted from the Gateway to the Miniserver, in combination with the GPIO plugin.

Das Plugin installiert für die Verwendung der GPIOs WiringPi. Die Angabe im Plugin ist BCM-bezogen, nicht WiringPi-bezogen!

Damit die GPIO's funktionieren, muss

  1. "Alternative Binaries" aktiviert und gespeichert werden,
  2. danach der LoxBerry rebootet, erst dann
  3. kann man die GPIOs einstellen und mit "Speichern und neu starten" bestätigen.

High/Low bezieht sich auf den Level des Ausgangs. Mit High wird ein High-Level bei An ausgegeben, bei Low wird ein Low-Level bei An ausgegeben. Das ist relevant für PullUp- bzw. PullDown-Schaltungen. High ist der Standardwert.

Anmerkungen

Nur jeweils die letzte Zone lässt sich entfernen. Ein Verschieben ist nicht möglich. Die erste Zone lässt sich nicht entfernen. Das Hinzufügen und Entfernen speichert jeweils alle Einstellungen.

Beim Speichern und ausführen wird das Neustarten der Zonen parallel zum Laden der Webseite durchgeführt. Die Anzeige der Prozesse könnte daher nicht sofort stimmen, dann einfach die Seite nochmal laden.

Aktuell kann der Name der Zone nicht über den LMS geändert werden, sondern nur am LoxBerry.

Squeezelite wird vom Plugin standardmäßig mit dem Startparameter -a 160 zum Vergrößern des ALSA-Bufferspeichers gestartet. Das verhindert Knistern und Knacksen bei der Ausgabe (zumindest bei meinem Raspberry Pi passiert das ohne diesen Parameter). Wird bei den "Zusätzlichen Parametern" die Option -a mit einem anderen Wert gesetzt, wird dieser verwendet.

Auf ARM-Plattformen (also dem tratitionellen LoxBerry) und auf x86-Plattformen kann das neue Squeezelite-Binary verwendet werden. Das alte Binary stellte nach mehreren Stunden den Dienst ein. Die Hoffnung ist, dass dies mit der aktuellen Version nicht mehr passiert. 

Es ist nach meinem Kenntnisstand nicht möglich, den HDMI-Ausgang und den Klinkenstecker je als eigene Zone zu betreiben. Wenn jemand weiß, wie das doch möglich ist, bitte um Kontakt (z.B. Forum)! 

Troubleshooting und Tipps zur Player-Funktion

Logitech Media Server Gateway

Musicserver4Lox

Der Musicserver4Lox bietet ebenfalls die Statusmeldung an den Loxone Miniserver an.

LMS Gateway Einstellungen

1193709382.jpg

Das LMS Gateway übermittelt den aktuellen Status aller Zonen des Logitech Media Server an den Miniserver. Es werden dabei auch Zonen berücksichtigt, die nicht auf diesem LoxBerry laufen. Deswegen darf das Gateway nur auf einem LoxBerry im Netzwerk aktiviert sein. Die Übermittlung erfolgt relativ rasch (je nach "Verkehr" am LMS in 0,1 bis 0,5 Sekunden).

Die Übertragung aller Zahlenwerte erfolgt per UDP. Die Übertragung der Texte erfolgt per HTTP-REST-Befehlen. Der Assistent für "Eingänge und Ausgänge" stellt ein fertiges Template für die UDP-Eingänge bereit. Nur die virtuellen Text-Eingänge müssen manuell angelegt werden.

Mit der Checkbox wird das LMS Gateway aktiviert und deaktiviert.

Sofern du in deiner Installation mehrere Miniserver betreibst (z.B. im Gateway-Betrieb), kannst du den Ziel-Miniserver auswählen. Wenn nur ein Miniserver vorhanden ist, werden die Daten immer an diesen gesendet (die Einstellung ist dann nicht sichtbar).

Standardmäßig sendet das LMS Gateway die Daten an den Miniserver-Port 9093. Du kannst den Port hier ändern.

Für das Gateway ist die Logitech Media Server Adresse bzw. Hostname eine Pflichtangabe. Ist dieses Feld leer, startet das Gateway nicht.

Unter Mehr anzeigen können noch weitere Ports angepasst werden. Der CLI-Port des Logitech Media Servers muss korrekt sein.

Unten hast du die Möglichkeit, die Texte einzustellen, die in den einzelnen Stati (im Mode und im Titel) übermittelt werden. 

Mit Speichern werden die Einstellungen übernommen und das LMS Gateway gestartet (oder beendet).

Statusaktualisierung nach Miniserver-Neustart forcieren

Im Normalbetrieb werden alle eintretenden Ereignisse unmittelbar übertragen. Beim Starten, nach einem Verbindungsabbruch zum LMS und zusätzlich alle 5 Minuten wird immer der gesamte Status übertragen. 

Wenn der Miniserver neu startet (bei den Miniserver-Zeiten "Startimpuls"), kann ein Daten-Update forciert werden durch einen virtuellen Ausgangsbefehl "players 0\n" (ohne die Anführungszeichen). Ziel muss der LoxBerry sein, der Port ist standardmäßig 9092 (LoxBerry Plugin-Eingangsport). Auch ohne dieses Forcieren werden die Daten nach spätestens 5 Minuten aktualisiert.

Watchdog

Das Squeezelite Player Plugin liefert für die LMS Gateway Funktion einen "Watchdog" mit. Dieser ist immer aktiv und braucht nicht konfiguriert oder aktiviert zu werden.

Jede Stunde wird überprüft, ob das LMS Gateway noch aktiv ist. Ist das nicht der Fall, wird das Gateway neu gestartet.

Zur Überwachung der Verbindung zum Logitech Media Server wird jede Minute ein Testpaket gesendet. Ist dieses nicht erfolgreich, wird im 10-Sekunden-Takt versucht, die Verbindung wieder aufzubauen. Nachdem die Verbindung neu aufgebaut wurde, wird automatisch der aktuelle Status komplett an den Miniserver übertragen.

Troubleshooting und Tipps zur LMS Gateway-Funktion

Assistent "Eingänge und Ausgänge"

Nach dem Speichern sollte der Assistent "Eingänge und Ausgänge" aufgerufen werden.

1193709383.jpg

Alle numerischen Stati werden per UDP, alle Texte per HTTP-REST Webservice übertragen. Die Liste aller übermittelten Daten findest du hier.

UDP-Eingänge

Für die erforderlichen UDP Eingänge stellt das Squeezelite Player Plugin direkt das Template für die Zonen deiner Logitech Media Server Installation bereit (achte darauf, dass beim Aufruf alle Player verbunden sind).

Lade mit dem Link unten dieses Template herunter und speichere es in den Ordner C:\ProgramData\Loxone\Loxone Config <version>\Templates\VirtualIn\VIU_LMSGateway.xml

Achte darauf, dass der Dateiname wirklich mit VIU_ beginnt, sonst erkennt die Loxone Config den Typ nicht. Danach musst du die Loxone Config Software neu starten.

Anmerkung:

in der Config-Version 10.2.3..26 gibt es den Pfad nicht mehr (zumindest bei mir nicht - kann auch sein, dass das generell seit Version 10 schon so ist:) - Hier kann man das Template einfach in die Config also Vorlage importieren:

Nach dem Neustart kannst du deine Zonen über die Vorlage einfügen, siehe dazu Templates in Loxone Config einbinden.

Die Eingänge werden hier erklärt: Troubleshooting und Tipps zur LMS Gateway-Funktion

Virtuelle Texteingänge

Die virtuellen Texteingänge müssen selbst erstellt werden.

Einen neuen virtuellen Texteingang erstellst du am einfachsten mittels Taste F4 und der Suche nach z.B. "Texteingang". Solltest du mehrere Miniserver haben, achte darauf, dass die Texteingänge am richtigen Miniserver erstellt werden.

1193708450.jpg

Die Texteingänge legst du folgendermaßen an:

Die genaue Bezeichnung der Eingänge kannst du aus dem Eingangs-Assistenten kopieren. Die Bezeichnung kann frei gewählt werden. Bei der Beschreibung muss die eindeutige Bezeichnung stehen.  Den Standardtext kannst du nach Belieben setzen. Das Feld ist nach einem Neustart des Miniservers in der Regel leer, bis das erste Daten-Update vom LMS Gateway ankommt.

Virtuelle Ausgänge zum Steuern der Zone

Mit Klick auf den Pfeil nach rechts (bei jeder Zone) wird eine Vorlage für virtuelle Ausgänge für diese Zone heruntergeladen.  Speichere diese Vorlagen im Ordner C:\ProgramData\Loxone\Loxone Config <version>\Templates\VirtualOut\VO_LMS_<Zonenname>.xml

Achte darauf, dass der Dateiname wirklich mit VO_ beginnt, sonst erkennt die Loxone Config den Typ nicht. Danach musst du die Loxone Config Software neu starten.

Nach dem Neustart kannst du deine Zonen über die Vorlage einfügen, siehe dazu Templates in Loxone Config einbinden.

Tipps

Installation

  • Die Installation dauert aufgrund der Installation der Voraussetzungen auf einem Raspberry Pi 1 etwa 5-10 Minuten. 
  • Mit der aktuellen LoxBerry- und Plugin-Version muss der Raspberry nach der Installation einmal neu gestartet werden, damit die Berechtigungen korrekt gesetzt werden. (siehe https://github.com/mschlenstedt/Loxberry/issues/138 bzw. https://github.com/mschlenstedt/Loxberry/issues/137)
  • Nach Umstellung von den normalen Binaries auf die alternativen Binaries und zurück, muss ebenfalls der LoxBerry neu gestartet werden.

Fehler melden

Bitte melde Fehler entweder im Loxforum im Squeezelite-Plugin Thread, oder besser direkt im Issue-Tracker von GitHub (https://github.com/christianTF/LoxBerry-Plugin-squeezelite/issues).

Siehe auch

Translations

ENGLISH is included and default language if you use another language than German.

To translate the Squeezelite Player plugin to your language, use the LoxBerry Translate widget (Translation Guide for LoxBerry)

Trivia

Meine Squeezelite Plugin "Testumgebung" 

1192493105.jpeg

Update 20.1.2017: Neuer Platz hinterm Bildschirm  Der Pi1 kommt langsam ins Schwitzen (Statistics 4 Loxone)

1193708458.jpg