Plugin ‚squeezebox‘ Konfiguration
Im folgenden sind etwaige Anforderungen und unterstützte Hardware beschrieben. Danach folgt die Beschreibung, wie das Plugin squeezebox konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann. [1]
Es handelt sich bei diesem Plugin um ein gateway Plugin.
Beschreibung
Anbindung von Squeezebox Devices. Eine laufender Logitech Media Server wird benötigt. Getestet mit folgenden Geräten:
Logitech Squeezebox Radio
Squeezelite auf Windows, Mac OS X und Linux
Sämtliche Kommandos sollten manuell über die Telnet-Schnittstelle auf Port 9090 getestet werden. Für Abfragen muss hierbei ein „?“ am Ende des Befehls stehen, z.B. „<playerid> name ?“
Anforderungen
laufender Logitech Media Server
Minimum SmartHomeNG Version: 1.3
Konfiguration
Im folgenden ist beschrieben, wie das Plugin squeezebox konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann.
Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/plugin.yaml konfiguriert werden:
autoreconnect
Erneuter Verbindungsaufbau, falls Verbindung unterbrochen
Datentyp: bool
Standardwert: False
connect_cycle
Pause zwischen automatischen Verbindungsversuchen.
Datentyp: int
Standardwert: 10
Minimalwert: 0
connect_retries
Anzahl Versuche, die Verbindung erneut aufzubauen
Datentyp: int
Standardwert: 2
Minimalwert: 0
host
IP des Logitech Media Servers
Datentyp: ip
Standardwert: 127.0.0.1
port
Der Port der CLI Schnittstelle vom Logitech Media Server
Datentyp: int
Standardwert: 9090
web_port
Der Port der Web Schnittstelle vom Logitech Media Server, wird für die Abfrage des aktuellen Album Artworks genutzt.
Datentyp: int
Standardwert: 9000
Item Attribute
Das Plugin unterstützt folgende Item Attribute, die in den Dateien im Verzeichnis ../items verwendet werden:
squeezebox_albumart
Wird genutzt, um die URL zum aktuellen Cover Artwork automatisch zu generieren. Als Wert ist <playerid> anzugeben. Der Wert des Items wird auf http://<SERVER IP>:9002/music/current/cover.jpg?player=<PLAYER MAC> gesetzt, wobei die Server IP und der Port aus der Pluginkonfiguration, und die MAC-Adresse aus der playerid Angabe im (Grand)parent Item gelesen wird.
Datentyp: str
squeezebox_init
Wird genutzt, um beim Start des Plugins das Item zu aktualisierenn. Der Befehl ist der CLI Dokumentation des Media Servers zu entnehmen. Der Platzhalter <playerid> wird durch die im Parent-Item gesetzte Player-ID ersetzt. Das Fragezeichen wird automatisch an den Befehl angehängt, kann also wegfallen
Beispiel: <playerid> playlist name, um den Namen des Player beim Pluginstart abzufragen
Datentyp: str
squeezebox_playerid
MAC Adresse des Players. Sollte im Parent-Item angegeben werden, um in den anderen Items den <playerid> Platzhalter nutzen zu können.
Datentyp: mac
squeezebox_recv
Wird genutzt, um Änderungen vom Player zu empfangen. Der Befehl ist der CLI Dokumentation des Media Servers zu entnehmen. Der Platzhalter <playerid> wird durch die im Parent-Item gesetzte Player-ID ersetzt
Beispiel: <playerid> prefset server volume zum Updaten des Itemwerts durch die Lautstärke des Players
Datentyp: str
squeezebox_send
Wird genutzt, um einen Befehl zu senden. Der Befehl ist der CLI Dokumentation des Media Servers zu entnehmen. Folgende Platzhalter können genutzt werden:
<playerid>: Wird durch die im Parent-Item gesetzte Player-ID ersetzt
{}: Der Wert des Items wird in diesen Platzhalter geschrieben (sollte nicht verwendet werden, wenn ein fixer oder kein Wert nötig ist).
Beispiel: <playerid> name {} zum Ersetzen des Playernamen durch den Itemwert
Datentyp: str
Item-Structs
Das Plugin stellt die folgenden Item-Structs zur Verfügung. Diese Informationen sind aus der plugin.yaml entnommen und möglicherweise nicht vollständig.
controls
Vorlage-Struktur für Squeezebox Playercontrols
- controls (foo, Vorlage-Struktur für Squeezebox Playercontrols)
- mode (str, the mode gets automatically updated when using play, stop or pause and the other way around)
query (bool, —)
mute (bool, —)
- volume (num, —)
fading (num, Use this item in conjunction with the fade() item function)
up (num, —)
down (num, —)
low (num, Sets the volume to a given (low) value)
high (num, Sets the volume to a given (high) value)
customskip (str, Use a filter to potentially skip songs with specific attributes (low rating, genre, etc.))
- repeat (num, Sets the repeat song, playlist, none values correctly)
- song (bool, —)
sendcommand (bool, —)
- playlist (bool, —)
sendcommand (bool, —)
- none (bool, —)
sendcommand (bool, —)
dummy (bool, —)
- shuffle (num, Sets the shuffle song, album, none values correctly)
- song (bool, —)
sendcommand (bool, —)
- album (bool, —)
sendcommand (bool, —)
- none (bool, —)
sendcommand (bool, —)
play (bool, —)
stop (bool, —)
pause (bool, —)
- time (num, —)
query (bool, Queries current song time every 10 seconds and updates time item)
forward (num, Item value defines time in seconds to skip in current song)
rewind (num, Item value defines time in seconds to go back in current song)
next (bool, —)
previous (bool, —)
database
Vorlage-Struktur für Squeezebox Server Database
- database (foo, Vorlage-Struktur für Squeezebox Server Database)
abortscan (bool, —)
wipecache (str, —)
libraries (str, —)
totalgenres (num, —)
totalduration (num, —)
totalartists (num, —)
totalalbums (num, —)
totalsongs (num, —)
- rescan (str, —)
query (bool, —)
- progress (str, —)
time (num, —)
scantype (str, —)
directory (str, —)
action (str, —)
info
Vorlage-Struktur für Squeezebox Mediainfo
- info (foo, Vorlage-Struktur für Squeezebox Mediainfo)
genre (str, —)
artist (str, —)
- album (str, —)
currentalbumarturl (str, Will get set to http://<SERVER IP>:<WEB_PORT>/music/current/cover.jpg?player=<PLAYER MAC> automatically on plugin start)
title (str, —)
current_title (str, —)
path (str, —)
duration (num, —)
player
Vorlage-Struktur für Squeezebox Player
- player (foo, Vorlage-Struktur für Squeezebox Player)
alarms (str, —)
alarm (str, —)
- syncgroups (num, —)
query (bool, —)
- signalstrength (num, —)
query (bool, —)
player_name (str, —)
connected (bool, —)
sleep (num, —)
- sync (str, —)
query (bool, —)
unsync (bool, —)
power (bool, —)
button (str, —)
- display (str, —)
query (bool, —)
connect (str, —)
disconnect (str, —)
playlist
Vorlage-Struktur für Squeezebox Playlists
- playlist (foo, Vorlage-Struktur für Squeezebox Playlists)
- index (num, —)
query (bool, —)
- playlist_name (str, —)
query (bool, —)
save (str, —)
load (str, —)
loadalbum (str, —)
loadtracks (str, —)
add (str, —)
addalbum (str, —)
addtracks (str, —)
tracks (num, —)
insert (str, —)
insertalbum (str, —)
clear (bool, —)
delete (str, —)
deletealbum (str, —)
deleteitem (str, —)
preview (str, —)
server
Vorlage-Struktur für Squeezebox Server
- server (foo, Vorlage-Struktur für Squeezebox Server)
alarm_playlists (str, —)
- playercount (num, —)
query (bool, —)
- favoritescount (num, —)
result (str, —)
query (bool, —)
Logik Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/logic.yaml konfiguriert werden:
Keine Logik Parameter in den Metadaten beschrieben - Bitte in der README nachsehen (siehe Fußnote)
Plugin Functions
Das Plugin verfügt über folgende öffentliche Funktionen, die z.B. in Logiken aufgerufen werden können.
Keine