SqueezeboxRPC: Controller für Logitech Media Server über RPC-Protokoll

SqueezeboxRPC: Controller für Logitech Media Server über das RPC-Protokoll

Aktueller Release
3.0.1
Entwickler
oweitman
Lizenz
MIT

Dies ist ein alternativer Adapter, der Folgendes verwendet:JSON/RPC -Protokoll zum Abrufen von Daten und Senden von Befehlen an den Logitech Media Server/Lyrion Media Server ( LMS ) zur Steuerung angeschlossener Geräte wie

DerLMS -Der Server kann sehr große Musiksammlungen auf Festplatten verwalten/bereitstellen oderNAS , Verbindung zu verschiedenen Streaming-Anbietern herstellen wieSpotify ,Deezer ,Soundcloud ,shoutcast ,tunein ,napster ,pandora ,tidal und mehr

Inhaltsverzeichnis

Merkmale

  • die meisten Daten , die dieLMS Der Dienst ist im Adapter verfügbar.
  • Detaillierte Informationen zum Abspielstatus, Songtitel, Interpret, Album, Cover und zur Playlist
  • viele Steuerungsfunktionen zum Abspielen, Pausieren, Stoppen, Vorspulen,
    Zurückspulen, Wiederholen, Zufallswiedergabe, Favoriten abspielen, zu einer bestimmten Zeit springen
    (absolut und relativ), zum Wiedergabelistenindex springen (absolut und relativ),
    Ein-/Ausschalter und Voreinstellungstasten
  • Alle Favoriten und alle Unterebenen vom Server
  • Viele Widgets für die iobroker-vis-Komponente sind enthalten.
    Eigene Steuerungsschnittstellen erstellen (Player auswählen, Favoriten auswählen, Synchronisierungsgruppen verwalten, Schaltflächen für Wiedergabe/Pause, Vorwärts, Rückwärts, Wiederholungsmodus und Zufallswiedergabemodus auswählen)

Installation

  • Installieren Sie das Paket
  • Erstellen Sie eine Instanz
  • Konfigurieren Sie die Instanz mit der IP-Adresse des Logitech/Lyrion-Medienservers und dem Port (normalerweise 9000).
  • Instanz starten/neu starten

Konfiguration

Haupteinstellungen

OptionStandardBeschreibung
LMS-Server0.0.0.0Hostname oder IP-Adresse des Logitech/Lyrion Medienservers. Ein automatisch erkannter Server kann ausgewählt werden.
LMS-Port9000Der HTTP-Port, der von JSON-RPC oder dem experimentellen WebSocket-Plugin verwendet wird.
VerbindungstypJSON-RPCVerwendet stabiles HTTP JSON-RPC oder das experimentelle LMS WebSocket-Plugin.
WebSocket-URLleerOptionale, unabhängige Plugin-Webserver-URL, zum Beispielhttp://192.168.1.87/ Die
LMS Telnet-Port9090CLI/Telnet-Port. Wird nur bei JSON-RPC verwendet, wenn die Telnet-Signalisierung aktiviert ist.
BenutzernameleerOptionaler LMS-Benutzername.
PasswortleerOptionales LMS-Passwort.

Der WebSocket-Modus erfordert das experimentelle LMS-WebSocket-Plugin . Er überträgt Befehle und Benachrichtigungen über dieselbe Verbindung, daher werden die Telnet-Einstellungen in diesem Modus ignoriert. Die reguläre Player-Abfrage bleibt als Fallback für fehlende oder unvollständige Benachrichtigungen aktiviert. HTTP(S)-WebSocket-URLs werden in WS(S)-URLs konvertiert./ws wird automatisch hinzugefügt, wenn nur eine Stamm-URL konfiguriert ist.

Timer-Einstellungen

OptionStandardMinimumBeschreibung
Serveraktualisierung (Sekunden)3015Intervall für die Aktualisierung der LMS-Serverinformationen.
Player-Aktualisierung (ms)950200Intervall für die Aktualisierung der Spielerstatusinformationen.
Bevorzugte Aktualisierung (Minuten)7201Intervall zum Auffrischen des Favoritenbaums.
Aktualisierung der Entdeckung (Sekunden)3010Intervall für die Suche nach anderen LMS-Servern im lokalen Netzwerk.

Kurze Aktualisierungsintervalle erhöhen die Anzahl der an das LMS gesendeten Anfragen.

Leistungseinstellungen

OptionStandardBeschreibung
Playlist-Informationen bereitstellenermöglichtErstellt und aktualisiert diePlaylist JSON-Status für jeden Spieler.
Suche nach anderen LMS-ServernermöglichtErmöglicht die Erkennung anderer LMS-Server im lokalen Netzwerk.
Telnet-Signalisierung verwendendeaktiviertMit JSON-RPC wird LMS CLI/Telnet für zusätzliche Spielerverbindungs- und Trennungssignale verwendet.
Favoriten anfordernermöglichtRuft regelmäßig den Favoritenbaum vom LMS ab.

Deaktivieren Sie nicht benötigte Informationen, um die LMS-Anfragen und die Adapterverarbeitung zu reduzieren.

Ankündigungseinstellungen

OptionStandardBeschreibung
ioBroker Web-Basis-URLleerBasis-URL einer ioBroker-Webinstanz, zum Beispielhttp://192.168.1.10:8082 Nur erforderlich für Benachrichtigungen aus lokalen Dateien.
Ankündigungsvolumen50Lautstärke während der Wiedergabe der Ansage. Gültiger Bereich: 0 bis 100.
Verwenden Sie FadeToolsdeaktiviertVerwendet das optionale LMS FadeTools-Plugin vor und nach den Ankündigungen.
Ausblenddauer2 SGanze Sekunden wurden übergeben anfadeout stop Gültiger Bereich: 1 bis 60 Sekunden.
Einblenddauer2 SGanze Sekunden wurden übergeben anfadein play Gültiger Bereich: 1 bis 60 Sekunden.

Für lokale Ansagedateien muss das LMS die konfigurierte ioBroker-Web-URL erreichen können. HTTP(S)-Ansage-URLs werden direkt an das LMS übermittelt und benötigen diese Einstellung nicht. FadeTools-Befehle werden nur gesendet, wenn die Option aktiviert ist. Ohne FadeTools werden alle Lautstärkewerte direkt festgelegt und mit dem LMS abgeglichen.

Debug-Einstellungen

OptionStandardBeschreibung
Player-Debug-AusgabedeaktiviertAktiviert zusätzliche Debug-Meldungen für die Spielerverarbeitung.
Spieler-DummheitsausgabedeaktiviertErmöglicht sehr detaillierte Spielernachrichten.
Server-Debug-AusgabedeaktiviertAktiviert zusätzliche Debug-Meldungen für die LMS-Serververarbeitung.
Unsinnige ServerausgabedeaktiviertErmöglicht sehr detaillierte LMS-Servermeldungen.

Debug-Protokollierung und insbesondere unnötige Protokollierung sollten normalerweise deaktiviert bleiben und nur zur Diagnose eines Problems aktiviert werden.

Aktualisieren

  • Nach der Installation oder Aktualisierung kann es manchmal erforderlich sein
    Führen Sie den folgenden Befehl aus, falls in vis-1 Probleme aufgetreten sind.

iobroker upload squeezeboxrpc

Fehlerbehebung

SLIMP3-Spieler

Es wurde berichtet, dass ältere SLIMP3-Player möglicherweise keine Verbindung zum Server herstellen können, während der Adapter nach neuen Servern sucht. Durch Deaktivieren der Suche unter „Instanzkonfiguration → Leistungseinstellungen → Suche nach anderen LMS-Servern“ sollte die Verbindung des Players wiederhergestellt werden.

Bereitgestellte Staaten

Server

ZustandBeschreibung
LastScanZeitstempel des letzten Musikscans
PlayerCountAnzahl bekannter Spieler
PlayerCountOtherAnzahl bekannter anderer Spieler
PlayerCountSNAnzahl bekannter SN-Spieler
TotalAlbumsAnzahl aller bekannten Alben
TotalArtistsAnzahl aller bekannten Künstler
TotalDurationGesamtspielzeit aller Lieder
TotalGenresAnzahl aller bekannten Genres
TotalSongsAnzahl aller bekannten Lieder
SyncGroupsVorhandene Synchronisierungsgruppen
VersionVersion von LMS
macMAC-Adresse des Servers
uuidUUID desLMS -Beispiel

zusätzlich eine definierte Schaltfläche zum Aktualisieren der Favoriten

TasteBeschreibung
getFavoritesAlle Favoriten vom Server anfordern
cmdGeneralEin allgemeines Befehlsfeld zum Senden von Befehlen an den Server. Jedes Feld muss in Anführungszeichen gesetzt werden. Parameter müssen durch Kommas getrennt werden. Beispiel: "playerid oder leer",["para1","para2"]

Favoriten

Für jeden Favoriten sind alle Attribute schreibgeschützt.

ZustandBeschreibung
NameName des Favoriten
hasitemsGibt an, ob es sich um ein Verzeichnis handelt.
idID des Favoriten
imageBild/Symbol für Favorit, falls verfügbar
isaudioisaudio
typeBeispieltypen: Link, Text, Audio, Wiedergabeliste
urlURL des Titels

Alle Unterebenen (Unterverzeichnisse) von Favoriten sind verfügbar.

Spieler

Für jeden Spieler zeigt der Modus an, ob der Wert geändert werden kann. Die durchgeführte Aktion wird im Attribut beschrieben.

ZustandModusBeschreibung
AlarmsR/-Alle für diesen Player registrierten Alarme im JSON-Format
AlbumR/-Name des aktuellen Albums
Announce-/WSpielen Sie eine Audiodatei von einem absoluten Pfad oder einer HTTP(S)-URL ab und stellen Sie anschließend Wiedergabe und Lautstärke wieder her. Lokale Dateien benötigen die konfigurierte ioBroker-Web-URL (zum Beispielhttp://192.168.1.10:8082 ).
ArtistR/-Name des Künstlers
ArtworkUrlR/-URL zum Kunstwerk
BitrateR/-Bitrate des Titels
ConnectedR/-Verbindungsstatus des Spielers (0/1)
DurationR/-Dauer des Titels
GenreR/-Genre des Titels
IPR/-IP-Adresse des Spielers
ModeR/-Wiedergabe / Pause / Stopp
PlayernameR/-Name des Spielers
PlayerIDR/-Spieler-ID
PlaylistR/-Die eigentliche Playlist als JSON
PlaylistCurrentIndexR/WUm eine absolute Position anzusteuern, geben Sie den Trackindex an, oder verwenden Sie ein + oder - am Anfang, um eine relative Position zu erreichen. Beispiel: 10,-3,+2
PlaylistRepeatR/WLied wiederholen (1)/Playlist wiederholen (2)/Nicht wiederholen (0)
PlaylistShuffleR/WWiedergabeliste zufällig wiedergeben (1) / Album zufällig wiedergeben (2) / Nicht zufällig wiedergeben (0)
PowerR/WEnergiestatus des Spielers abrufen/setzen: aus (0) / ein (1)
RadioNameR/-Name des Radiosenders
RateR/-Bewertung des Liedes
RemoteR/-Wenn Remote-Stream (1)
SyncMasterR/-ID/MAC-Adresse des Syncmasters
SyncSlavesR/-ID/MAC der Spieler in der Syncgroup
TimeR/-verstrichene Liedzeit
TitleR/-Songtitel
TypeR/-Medientyp (z. B. MP3-Radio)
UrlR/-URL des Titels/Streams
VolumeR/WLautstärke des Players abrufen/einstellen (0-100)
stateR/WWiedergabestatus abrufen/setzen: Pause (0), Wiedergabe (1), Stopp (2)

Die Wiedergabeliste bietet, sofern verfügbar, die folgenden Attribute:LMS Einige Attribute hängen vom Typ der Songs ab (Stream/Datei/...). Alle Attribute sind schreibgeschützt.

AttributBeschreibung
AlbumName des aktuellen Albums
ArtistName des Künstlers
ArtworkUrlURL zum Kunstwerk
BitrateBitrate des Titels
DurationDauer des Titels
RadioNameName des Radiosenders
RateBewertung des Liedes
titleSongtitel
TypeMedientyp (z. B. MP3-Radio)
urlURL des Titels/Streams
indexIndex des Liedes in der Wiedergabeliste
idID des Liedes

zusätzlich definierte Schaltflächen:

TasteBeschreibung
btnForwardNächstes Lied
btnRewindVorheriges Lied
btnPreset\_\*1-6 Tasten zur Belegung im Spieler oder Server
cmdGeneralEin allgemeines Befehlsfeld zum Senden von Befehlen an den Spieler. Jedes Feld muss in Anführungszeichen gesetzt werden. Parameter müssen durch Kommas getrennt werden. Beispiel: "play","1"
cmdPlayFavoriteUm einen Favoriten abzuspielen, legen Sie die ID des Favoriten fest.
cmdPlayUrlEine URL abspielen. Beispiel: " http://50.7.77.114:8101/ "
cmdGoTimeSpringen Sie zu einer absoluten Position, indem Sie eine Anzahl von Sekunden angeben, oder zu einer relativen Position, indem Sie ein + oder - am Anfang der Sekundenangabe verwenden. Beispiel: 100,-50,+50

Die Ansageeinstellungen definieren die Lautstärke und die optionale Integration mit dem LMS FadeTools-Plugin . Wenn diese Option aktiviert ist, sendet der Adapter …fadeout stop wartet die konfigurierte Ausblenddauer ab und setzt die Wiedergabe später fort.fadein play Wenn diese Option deaktiviert ist, werden die vorherigen und die Ankündigungsvolumes direkt festgelegt. Für lokale Dateien müssen Sie die Basis-URL einer ioBroker-Webinstanz konfigurieren (z. B.http://192.168.1.10:8082 Der LMS-Host muss diese URL erreichen können. Remote-Streams werden ohne Suchfunktion wiederhergestellt, da sie in der Regel keine Wiedergabeposition unterstützen.

Anmerkungen zu Datenpunkten in Abhängigkeit von der Einstellung TPE2 im LMS

Je nach Einstellung werden den Datenpunkten unterschiedliche MP3-Tags zugewiesen. Die großgeschriebenen Namen sind die Namen der MP3-Tags.

TPE2 im LMS einrichtenKünstlerAlbumkünstlerTrackartistBand
als BandKÜNSTLERleerTRACKERALBUMKÜNSTLER
als die Interpreten des AlbumsALBUMKÜNSTLERALBUMKÜNSTLERleerleer

Es ist außerdem zu beachten, dass nach einer Änderung des Lernmanagementsystems die gesamte Bibliothek umgestellt werden muss.
erneut gesucht und indexiert werden, und ein Lied muss angehalten und neu gestartet werden.
bevor das LMS andere Daten liefert.

Weitere API-Dokumentation

Weitere Informationen finden Sie in der CLI-Dokumentation:

https://github.com/oweitman/LMS-CLI-Documentation/blob/master/LMS-CLI.md

Widgets

Der Adapter enthält passende Widget-Sets für beide Visualisierungsgenerationen. Jede Widget-Referenz enthält ihren Zweck, ein Vorschaubild, alle codebasierten Konfigurationsoptionen und relevante Laufzeithinweise:

Beide Widget-Sets verwenden ein Player- Widget als zentrale Auswahlquelle. Konfigurieren Sie dieses Widget zuerst und wählen Sie es anschließend in Steuerelementen, Wertanzeigen, Favoriten, Wiedergabelisten, Wiedergabelistendetails, Browser und Synchronisierungsgruppen aus. VIS 2-Referenzen funktionieren in verschiedenen Ansichten.

Legacy widget overview retained for existing links

Spieler-Schaltflächenleiste

Spieler-Schaltflächenleiste

Alle in Ihren Logitech/Lyrion Media Server integrierten Player können ausgewählt werden.
mit diesem Widget. Nach der Auswahl einessqueezerpc.? Instanz, die verfügbaren
Die Spieler werden im Widget angezeigt.

Attribute

GruppeAttributBeschreibung
SqueezeboxRPC-InstanzAllgemeine GruppeWählen Sie eine Instanz des SqueezeboxRPC-Adapters aus. Nur diese werden hier als gültig erkannt.
Widget-FormatAllgemeine GruppeDer Widget-Typ kann hier ausgewählt werden. Der Typ „Formatbutton“ bietet den vollen Funktionsumfang und ist auch mit dem SyncGroup-Widget kompatibel. Der Typ „Formatselect“ ist ein einfaches Auswahlfeld. Als Name wird der Spielername oder ein individueller Text verwendet.
AnzeigeindexAllgemeine GruppeEinzelne Schaltflächen lassen sich durch Löschen ihres Index ausblenden oder in einer anderen Reihenfolge anzeigen. Zum Ausblenden löschen Sie einfach die entsprechende Indexposition inklusive Komma. Die Indexnummern werden im Bearbeitungsmodus auf der jeweiligen Schaltfläche angezeigt, sofern die Bearbeitungshilfe aktiviert ist.
Zeilenumbruch in CamelCaseAllgemeine GruppeWenn der Spielername in CamelCase geschrieben ist, kann hier ein Zeilenumbruch aktiviert werden, damit der Spielername auf dem Button größer erscheint.
Hilfe zum BearbeitungsmodusAllgemeine GruppeWenn diese Hilfe aktiviert ist, werden Indexnummern auf der jeweiligen Schaltfläche angezeigt, und die Einstellung „Transparenz“ in den Schaltflächeneinstellungen hat keine Auswirkung.
BildbreiteTasteneinstellungenBildbreite eines Buttons
BildhöheTasteneinstellungenBildhöhe eines Buttons
TransparenzTasteneinstellungenWenn die Schaltfläche nicht aktiviert ist, hebt sie sich vom Hintergrund ab. 0 = Unsichtbar, 1 = Vollständig sichtbar
RahmenbreiteTasteneinstellungenRahmenbreite in Pixeln um die Schaltfläche
RahmenanzeigeTasteneinstellungenArt der Rahmendarstellung, z. B. durchgezogen, gestrichelt.
Normale RandfarbeTasteneinstellungenWenn der Knopf nicht aktiviert ist, wird dies durch diese Farbe angezeigt.
Rahmenfarbe aktivTasteneinstellungenWenn der Knopf aktiviert ist, wird dies durch diese Farbe angezeigt.
RahmenradiusTasteneinstellungenHier kann ein Radius in Pixeln für abgerundete Ecken eingegeben werden.
HintergrundfarbeTasteneinstellungenHintergrundfarbe für Text
BildButton[x]Hier kann ein Bild individuell definiert werden. Das Bild hat Vorrang vor dem Text.
TextButton[x]Text kann hier individuell definiert werden. Das Bild hat Vorrang vor dem Text.

Favoriten-Schaltfläche

Favoriten-Schaltfläche

Mit diesem Widget können Sie alle Ihre Favoriten auswählen.
Erstellt auf Ihrem Logitech/Lyrion Media Server. Nach Auswahl des Player-Widgets werden die verfügbaren Favoriten im Widget angezeigt.

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeWählen Sie das Player-Widget aus.
AnzeigeindexAllgemeine GruppeEinzelne Schaltflächen können mithilfe des Index ausgeblendet oder in einer anderen Reihenfolge angezeigt werden.
Hilfe zum BearbeitungsmodusAllgemeine GruppeWenn diese Hilfe aktiviert ist, werden auf den jeweiligen Schaltflächen Indexnummern angezeigt.
BildbreiteTasteneinstellungenBildbreite eines Buttons
BildhöheTasteneinstellungenBildhöhe eines Buttons
TransparenzTasteneinstellungenWenn die Schaltfläche nicht aktiviert ist, hebt sie sich vom Hintergrund ab. 0 = Unsichtbar, 1 = Vollständig sichtbar
RahmenbreiteTasteneinstellungenRahmenbreite in Pixeln um die Schaltfläche
RahmenanzeigeTasteneinstellungenArt der Rahmendarstellung, z. B. durchgezogen, gestrichelt.
Normale RandfarbeTasteneinstellungenWenn die Schaltfläche nicht aktiviert ist, wird sie in dieser Farbe angezeigt.
Rahmenfarbe aktivTasteneinstellungenWenn die Schaltfläche aktiviert ist, wird sie in dieser Farbe angezeigt.
RahmenradiusTasteneinstellungenHier kann ein Radius in Pixeln für abgerundete Ecken eingegeben werden.
HintergrundfarbeTasteneinstellungenHintergrundfarbe für Text
BildButton[x]Hier kann ein Bild individuell definiert werden. Das Bild hat Vorrang vor dem Text.
TextButton[x]Der Text kann hier individuell definiert werden. Das Bild hat Vorrang vor dem Text.

Wiedergabetaste

Wiedergabetaste

Mit der Wiedergabetaste wird die Musikwiedergabe auf dem ausgewählten Player gestartet oder gestoppt.
Zur Vorbereitung müssen Sie den Button mit dem Player-Widget verbinden.
Der Button verfügt über eigene Grafiken (SVG).
Alternativ können Sie auch Ihre eigenen Grafiken auswählen.

Attribute für die Wiedergabetaste

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
Bild anhaltenAllgemeine GruppeBild für Pause
Bild abspielenAllgemeine GruppeBild zum Spielen
StoppbildAllgemeine GruppeBild für Stopp
FüllfarbeSVG-EinstellungsgruppeFüllfarbe des Buttons
StrichfarbeSVG-EinstellungsgruppeFarbe für den Rand
StrichstärkeSVG-EinstellungsgruppeBreite des Rahmens in Pixeln

Nach vorne

Nach vorne

Mit dem Forward-Widget können Sie im aktuellen Titel vorwärts springen.
Die Schaltfläche kann so konfiguriert werden, dass sie einen bestimmten Betrag vorspult.
Zeit, sofern der Spieler diese Funktion unterstützt.

Attribute für die Schaltfläche „Weiter“

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SchrittgrößeAllgemeine GruppeGibt die Zeitspanne in Sekunden an, um die vorgespult werden soll.
SchaltflächenbeschriftungAllgemeine GruppeAnpassbare Beschriftung für die Schaltfläche.
SchaltflächensymbolAllgemeine GruppeAuswahl eines Symbols für die Schaltfläche, z. B. zum Weiterspringen.

Zurückspulen

Zurückspulen

Mit dem Rewind-Widget können Sie zum aktuellen Titel zurückspringen.
Ähnlich wie beim Forward-Widget kann ein Zeitraum festgelegt werden.

Attribute für die Zurückspulen-Schaltfläche

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SchrittgrößeAllgemeine GruppeGibt den Zeitraum in Sekunden an, um den zurückgesprungen werden soll.
SchaltflächenbeschriftungAllgemeine GruppeAnpassbare Beschriftung für die Schaltfläche.
SchaltflächensymbolAllgemeine GruppeAuswahl eines Symbols für die Schaltfläche, z. B. für „Zurück“.

Wiederholen

Wiederholen

Das Repeat-Widget ermöglicht es Ihnen, die Wiederholungsfunktion zu aktivieren oder zu deaktivieren.
für den aktuellen Titel oder die aktuelle Wiedergabeliste, sofern diese Funktion vom Player unterstützt wird.

Attribute für die Schaltfläche „Wiederholen“

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SchaltflächenbeschriftungAllgemeine GruppeAnpassbare Beschriftung für die Schaltfläche.
SchaltflächensymbolAllgemeine GruppeAuswahl eines Symbols für die Schaltfläche, z. B. für „Wiederholen“.
WiederholungsmodusAllgemeine GruppeDer Modus kann hier ausgewählt werden, zum Beispiel Einzelwiederholung (Titel) oder Listenwiederholung (Playlist).

Shuffle

Shuffle

Das Shuffle-Widget aktiviert oder deaktiviert die Zufallswiedergabe für die aktuelle Wiedergabeliste.
sofern diese Funktion vom Player unterstützt wird.

Attribute für die Shuffle-Taste

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SchaltflächenbeschriftungAllgemeine GruppeAnpassbare Beschriftung für die Schaltfläche.
SchaltflächensymbolAllgemeine GruppeAuswahl eines Symbols für die Schaltfläche, z. B. für Zufallswiedergabe.
Aktivierter ZustandAllgemeine GruppeFarbe oder Stil der Schaltfläche, wenn die Zufallswiedergabe aktiviert ist.

Volumen

Volumen

Das Lautstärke-Widget zeigt den aktuellen Lautstärkepegel des Players an und
ermöglicht es Ihnen, die Lautstärke anzupassen.

Attribute für die Lautstärketaste

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
Volumen-SchrittgrößeAllgemeine GruppeLegt die Schrittweite für die Erhöhung oder Verringerung der Lautstärke fest.
Maximales VolumenAllgemeine GruppeLegt den Maximalwert für die Lautstärke fest, z. B. 100.
Hauptfarbe des LautstärkereglersAllgemeine GruppeFarbe für den Bereich des Balkens, der das aktuelle Volumen darstellt.
Hintergrundfarbe des LautstärkereglersAllgemeine GruppeFarbe für den Bereich des Balkens, der nicht vom Volumen abgedeckt wird.
SchaltflächensymbolAllgemeine GruppeAuswahl eines Symbols für die Lautstärkeregelung.

SyncGroup-Schaltflächenleiste

SyncGroup-Schaltflächenleiste

Dieses Widget kann in Verbindung mit dem Player-Widget zur Steuerung verwendet werden.
die Synchronisierung der Spieler untereinander. Die meisten Einstellungen für die Anzahl der Schaltflächen, Beschriftungen oder Bilder werden übernommen.
über das Player-Widget. Zur Vorbereitung müssen Sie die Schaltfläche mit dem Player-Widget verbinden. Nach Auswahl eines Players im Player-Widget wird die aktuelle Synchronisierung durchgeführt.
ist im SyncGroup-Widget sichtbar. Der Synchronisierungsstatus wird mithilfe verschiedener anpassbarer Farben angezeigt. Der im Player-Widget ausgewählte Player kann nicht im SyncGroup-Widget ausgewählt werden. Wenn im SyncGroup-Widget ein Player ausgewählt wird, der sich bereits in
Wenn es einer anderen Gruppe angehört, wird es automatisch aus dieser Gruppe entfernt.

Attribute für die Schaltfläche „SyncGroup“

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
RahmenbreiteTasteneinstellungenRahmenbreite/Rahmenbreite in Pixeln um die Schaltfläche herum.
RahmenanzeigeTasteneinstellungenArt der Rahmendarstellung, z. B. durchgezogen, gestrichelt.
Rahmenfarbe – Nicht in der GruppeTasteneinstellungenDer Button erhält einen Rahmen in dieser Farbe, wenn der Spieler keiner Gruppe angehört.
Rahmenfarbe - In der GruppeTasteneinstellungenDer Button erhält einen Rahmen in dieser Farbe, wenn sich der Spieler in einer Gruppe mit dem ausgewählten Spieler befindet.
Rahmenfarbe - In anderer GruppeTasteneinstellungenDer Button erhält einen Rahmen in dieser Farbe, wenn sich der Spieler in einer anderen Gruppe befindet.
RahmenradiusTasteneinstellungenHier kann ein Radius in Pixeln für abgerundete Ecken eingegeben werden.
HintergrundfarbeTasteneinstellungenHintergrundfarbe für Text.

Spielzeitleiste

Spielzeitleiste

Die Wiedergabezeitleiste zeigt den Fortschritt des aktuell abgespielten Liedes visuell an.
vorausgesetzt, der Server stellt eine Gesamtlaufzeit (Dauer) bereit.
Dies ist bei Online-Streams normalerweise nicht der Fall. Die Breite des Balkens
entspricht 100 % der Spielzeit des Liedes. Durch Klicken auf einen Punkt auf
Mit der Leiste können Sie zum gewünschten Punkt im Lied springen.
Zur Vorbereitung müssen Sie den Button mit dem Player-Widget verbinden.

Attribute für die Spielzeitleiste

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
Hauptfarbe des BalkensAllgemeine GruppeDie Hintergrundfarbe des Balkens für noch nicht gespielte Zeiten.
Spielzeit FarbeAllgemeine GruppeDie Farbe des Balkens für die Anzahl der gespielten Spiele.
RahmenbreiteAllgemeine GruppeRahmenbreite/Randbreite in Pixeln um die Schaltfläche herum.
RahmenanzeigeAllgemeine GruppeArt der Rahmendarstellung, z. B. durchgezogen, gestrichelt.
RahmenfarbeAllgemeine GruppeFarbe des Rahmens um den Balken.
RandradiusAllgemeine GruppeHier kann ein Radius in Pixeln für abgerundete Ecken eingegeben werden.

Zeichenkette

Zeichenkette

Anzeige spielerspezifischer Zeichenketten. Zur Vorbereitung müssen Sie eine Verbindung herstellen.
die Schaltfläche zum Player-Widget.

Attribute für String

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SpielerattributeAllgemeine GruppeAuswahlliste aller verfügbaren Attribute eines Spielers.
TesttextAllgemeine GruppeText, der zu Testzwecken im Editor angezeigt werden soll.

Nummer

Nummer

Anzeige von Zahlen mit zusätzlichen Formatierungsoptionen. Zur Vorbereitung:
Sie müssen den Button mit dem Player-Widget verbinden.

Attribute für Zahlen

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
SpielerattributeAllgemeine GruppeAuswahlliste aller verfügbaren Attribute eines Spielers.
HTML voranstellenAllgemeine GruppeText oder HTML-Code, der vor der Zahl steht.
HTML anhängenAllgemeine GruppeText oder HTML-Code, der an die Zahl angehängt wird.
TesttextAllgemeine GruppeText, der zu Testzwecken im Editor angezeigt werden soll.
Zeichen nach dem KommaErweiterte EinstellungenAnzahl der Dezimalstellen.
Komma als TrennzeichenErweiterte EinstellungenEin Komma dient zur Trennung der Dezimalstellen.
TausendertrennzeichenErweiterte EinstellungenBei großen Zahlen wird alle 3 Stellen ein Trennzeichen eingefügt.

Wiedergabeliste

Wiedergabeliste

Die vom Server geladene Playlist wird angezeigt. Wenn Sie auf einen Eintrag klicken, wird die Playlist geladen und der Player gestartet. Das Widget aktualisiert sich nicht automatisch; Sie müssen die Aktualisierungsschaltfläche drücken.

Attribute für die Wiedergabeliste

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.

Das Widget selbst ist nur sehr einfach formatiert. Für die automatische Formatierung stehen einige vordefinierte CSS-Klassen zur Verfügung:

CSS-KlasseBeschreibung
plcontainerKlassenname, der dem ul-Tag zugewiesen wurde
FülleKlassenname, der dem li-Tag zugewiesen wurde
plrefreshKlassenname, der dem refresh-li-Tag zugewiesen wurde
pltextDer Wiedergabeliste wurde folgender Klassenname zugewiesen:

Das folgende CSS für den vis-css-Tab kann als Beispiel dienen:

Dunkelmodus

.plentry {
    border: 1px #505050 groove;
    margin: 1px 0px;
    padding: 5px;
    background-color: #202020;
}
.plrefresh {
    padding: 5px;
}
.plentry:hover {
    background-color: #404040;
}
.plrefresh svg {
    color: #cccccc;
}
.plrefresh svg:hover {
    color: #ffffff;
    filter: drop-shadow(0px 0px 1px #87ceeb);
}

Hellmodus

.plentry {
    border: 1px #b0b0b0 groove;
    margin: 1px 0px;
    padding: 5px;
    background-color: #c0c0c0;
}
.plrefresh {
    padding: 5px;
}
.plentry:hover {
    background-color: #e0e0e0;
}
.plrefresh svg {
    color: #444444;
}
.plrefresh svg:hover {
    color: #000000;
    filter: drop-shadow(0px 0px 1px #87ceeb);
}

Browser

Browser

Hier werden Musik, Alben, Künstler, Radiosender, Apps usw. vom Server angezeigt. Klicken Sie auf ein Element, um tiefer in die Hierarchie zu navigieren. Die verfügbaren Befehle werden mit zusätzlichen Schaltflächen angezeigt. Sie können eine Ebene nach oben gelangen, indem Sie auf den oben angezeigten Pfad klicken.

Attribute für Browser

GruppeAttributBeschreibung
Player-WidgetAllgemeine GruppeAuswahl des Player-Widgets.
debuggenAllgemeine GruppeAktivieren Sie zusätzliche Debugging-Informationen (Funktionsreferenz) in der Browserkonsole.
debugwithfetchresultsAllgemeine GruppeAktivieren Sie zusätzliche Debugging-Informationen (Objektreferenz) in der Browserkonsole.

Das Widget selbst verfügt über eine gewisse Formatierung. Für die automatische Formatierung stehen einige vordefinierte CSS-Klassen zur Verfügung:

CSS-KlasseBeschreibung
sqbrowser-list-containerContainer für das Widget
sqbrowser-parent-directoryElement zur Anzeige des übergeordneten Verzeichnisses
sqbrowser-btn-svgKlasse für alle SVG-Schaltflächen
sqbrowser-btn-svg-menuKlasse für SVG-Menüs
scrollbarer Bereich im BrowserfensterKlasse für Scrollcontainer
sqbrowser-list-itemKlasse für einzelnes Element
sqbrowser-list-item-contentKlasse für Artikeltitel
sqbrowser-button-groupKlasse für Schaltflächengruppe in einem Listenelement
sqbrowser-btn-svg sqbrowser-btn-svg-actionKlasse für Aktionsschaltfläche

Hinweis zum Alpha-Status dieses Widgets:

  • Die Implementierung von LMS/Lyrion für das Browsen ist die Hölle.
  • Das technische Vorbild für dieses Widget ist das „Material“-Theme-Plugin im LMS/Lyrion-Server.
  • Noch sind nicht alle Funktionen implementiert.
    • Noch sind nicht alle Eingabefeldtypen verfügbar.
    • Möglicherweise wurden noch nicht alle Artikeltypen implementiert.
  • Zur Analyse wurde eine optionale, ausführliche Debug-Ausgabe hinzugefügt (siehe auch Attribute).
    • Ausgabe der Funktionsreferenz: Alle Funktionsnamen werden der Reihe nach in der Browserkonsole ausgegeben.
    • Ausgabe der Datenreferenz: Alle vom Server angeforderten und zurückgegebenen Daten werden ausgegeben.

Falls Tester auf Fehler/Probleme oder fehlende Implementierungen stoßen, geben Sie bitte eine möglichst detaillierte Beschreibung an:

  • Woher stammen die Daten im LMS/Lyrion (bereits integrierter Dienst/zusätzlich installiertes Plugin)?
  • Welche Schritte/Klicks wurden ausgeführt, um das Problem zu erzeugen?
  • Was sind Funktions- und Datenreferenzen?

SendTo-Befehle

Spielernamen abrufen

Gibt die Namen aller aktuell im Adapter registrierten Spieler zurück. Die zurückgegebenen Namen sind die unten verwendeten, bereinigten Namen.squeezeboxrpc.<instance>.Players Die

async function main() {
    const playerNames = await sendToAsync('squeezeboxrpc.0', 'getPlayerNames', {});
    console.log(JSON.stringify(playerNames));
}
main();

Beispielergebnis:

["Living_room", "Kitchen"]

cmdGeneral

Mit diesem Befehl können Sie beliebige Befehle an den LMS-Server senden und eine Antwort erhalten.

Beispiel:

Alle Wiedergabelisten:

async function main() {
    let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
        playerid: '',
        cmdArray: ['playlists', '0', '999', 'tags:us'],
    });
    console.log(JSON.stringify(data));
}
main();

Alle Favoriten:

Dieser Befehl wird intern vom Adapter verwendet, um die Favoriten zu laden.

async function main() {
    let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
        playerid: '',
        cmdArray: ['favorites', 'items', '0', '999', 'want_url:1', 'item_id:'],
    });
    console.log(JSON.stringify(data));
}
main();

Weitere Optionen und detaillierte Beschreibungen der Parameter finden Sie in der folgenden CLI-Dokumentation:

Entwicklung

vis-1

  • start dev-server mitdev-server watch --noStart
  • Adapter mit Startkonfiguration "default Launch ioBroker Adapter" starten
  • Starte das Überwachungsskript im Widget-Verzeichnis mitnpm run watch
  • Vis-1-Editor oder Laufzeitumgebung öffnen
  • Wenn Sie im vis-1-Widget etwas ändern, warten Sie einige Sekunden, bis die Änderungen auf den Entwicklungsserver hochgeladen sind.
  • in vis-1 die Seite vis-1 neu laden
  • Wenn sich etwas in der Datei squeeboxrpc.html geändert hat, müssen Sie den Vis-1-Adapter neu starten.

vis-2

  • Zum Debuggen des vis-2-Widgets müssen Sie vis-2 in einem zweiten vis-2-Fenster ausführen.
  • Zur Installation und Ausführung folgen Sie den Anweisungen unter https://github.com/ioBroker/ioBroker.vis-2#development-and-debugging
  • Adapter mit Startkonfiguration "default Launch ioBroker Adapter" starten
  • Starten Sie den Vite-Entwicklungsserver im Verzeichnis src-widgets mitnpm run start
  • Im iobroker-Adminbereich/Registerkarte „Objekte“ bearbeiten Sie im Expertenmodus das Objekt vonsystem.adapter.squeezeboxrpc.0
  • Ändern Sie common.visWidgets.vis2vis-squeezeboxrpc.url von vis2squeezeboxrpc/customWidgets.js in http://localhost:4173/customWidgets.js. Dies ist die Adresse des Vite-Definitionsservers.
  • Öffnen Sie vis im Bearbeitungs- oder Laufzeitmodus mit der Startkonfiguration "vis2 edit 3000" oder "vis2 runtime 3000".
  • Wenn Sie etwas im Code des Vis-2-Widgets ändern, wird ein automatisches Neuladen ausgelöst, oder Sie drücken F5 im Browser.

abschließender Laufzeittest

  • stoppendev-server und Ihr Adapter in VS Code
  • Erstelle einen Produktions-Build und lade ihn mit dem Build auf den Entwicklungsserver hoch.dev-server upload
  • iobroker starten mitnpm run start
  • Die Änderung in system.adapter.squeezeboxrpc.0 wird auf den ursprünglichen Wert zurückgesetzt.
  • Öffnen Sie vis-1 oder vis-2 im Bearbeitungs- oder Laufzeitmodus.

zusätzlicher Test auf einem echten iobroker-Server

  • Erstellen Sie im Stammverzeichnis eine npm-Paketdatei mitnpm pack
  • Drücken Sie in iobroker auf der Registerkarte „Admin/Adapter“ im Expertenmodus die Schaltfläche „Katze“.
  • Wählen Sie im Dialogfeld die Registerkarte aus.from file
  • Wählen Sie die erstellte Paketdatei aus.
  • Installationsanleitung drücken
  • Wenn etwas nicht funktioniert, beim Start der Shelliobroker upload all

Todo

  • Widget „Spielergesteuerter Drehknopf“ hinzufügen
  • Die Wiedergabe wird gestoppt, wenn die Favoritentaste erneut gedrückt wird. (Nicht implementiert)
  • mehr Tests/Fehlerbehebungen
  • Mehr Konfigurationsmöglichkeiten zum optionalen Ein-/Ausschalten von Funktionen zur Verbesserung von Speicher und Leistung
  • Playlist-Widget hinzufügen
  • Widget zum Durchsuchen hinzufügenLMS -Speisekarte
  • Abhängigkeiten zu anderen Paketen reduzieren (squeezenode)
  • cmdGeneral für Server.
  • Fügen Sie eine Telnet-Kommunikation hinzu, um Push-Ereignisse vom Server zu erhalten und so das Polling zu optimieren.
  • Implementiere einen Befehlsstatus, um benutzerdefinierte Befehle (via JSON) für Server und Spieler zu platzieren.
  • mehr Steuerungsfunktionen implementieren (Wiedergabeposition auswählen, vorspulen, zurückspulen, zu einer bestimmten Position im Lied springen, Lied wiederholen, zufälliges Lied)
  • Füge die Playlist als JSON-Array zu den Playerdaten hinzu.
  • Füge Grafiken (Senderlogo/Playlist-Cover) für Favoriten hinzu
  • Implementieren Sie weitere Ebenen (Unterverzeichnisse) von Favoriten
  • Logitech Media Server automatisch erkennen

Changelog

3.0.1 (2026-09-08)

  • fix little regressions

3.0.0 (2026-09-07)

  • complete rework of the LMS API
  • add experimental websocket support, only usable with LMS 9.2 build after 5.9.2026

2.0.2 (2026-09-07)

  • fix io-package.json

2.0.1 (2026-09-05)

  • fix package-lock
  • fix tests

2.0.0 (2026-09-05)

  • power/connected state fixed
  • players button font size fixed
  • bring back fade in/out for Announcement with additional LMS plugin

Older entries are in CHANGELOG_OLD.md.

License

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Copyright (c) 2019-2026 oweitman