Lyrion Music Server / Logitech Media Server STOP Playing
Lyrion Music Server / Logitech Media Server STOP Playing

Ich habe seit ein paar Jahren den Logitech Media Server (LMS), auch bekannt als Lyrion Music Server, bei mir in Betrieb. Diese Applikation wurde in Perl geschrieben und funktioniert über Docker sehr stabil. Der LMS bietet neben einem Web-Interface auch Remote-Apps für Android an, sodass man von verschiedenen Geräten auf die Musikbibliothek zugreifen kann. Darüber hinaus bietet der Server eine direkte Schnittstelle per Telnet/CLI (Port 9090) sowie eine Schnittstelle über eine JSON-RPC 1.0 API over HTTP.

Diese Schnittstellen sind äusserst nützlich für verschiedene Automatisierungsaufgaben. Beispielsweise kann man die JSON-RPC API über Powershell oder Bash-Skripte nutzen, um bestimmte Aktionen auszuführen oder Statusinformationen abzufragen. Dies eröffnet vielfältige Möglichkeiten, den LMS nahtlos in bestehende Heimautomatisierungssysteme zu integrieren oder benutzerdefinierte Steuerungsmechanismen zu entwickeln.

Um diese Automatisierungen erfolgreich durchzuführen, ist es wichtig, die MAC-Adresse oder die ID des Gerätes zu kennen, mit dem man interagieren möchte. Diese Informationen werden benötigt, um spezifische Geräte innerhalb des Netzwerks eindeutig zu identifizieren und entsprechende Befehle an sie zu senden.

Ich habe für mich nun die Anfoderung aufgestellt das ich für einen bestimmten Zeitraum einen Client automatisch abschalte der aktuelle am abspielen von Musik oder Hörspiel ist. Das Script benötigt neben curl noch das JSON Hilfsprogramm jq. Das Letztere musst ich über opkg auf meinem Synology NAS nachinstallieren.
 
/bin/bash
LMSSERVER="192.168.0.100"
LMSPORT="9000"
DT=$(date '+%Y-%m-%d %H:%M:%S')

check_player ()
{
PLAYERMACADDR_X=$1

status=$(curl -g -X POST -d '{"method":"slim.request","params":["'$PLAYERMACADDR_X'",["'status'","-",1]]}' http://$LMSSERVER:$LMSPORT/jsonrpc.js 2>/dev/null |jq -r ".result.mode")
player_name=$(curl -g -X POST -d '{"method":"slim.request","params":["'$PLAYERMACADDR_X'",["'status'","-",1]]}' http://$LMSSERVER:$LMSPORT/jsonrpc.js 2>/dev/null |jq -r ".result.player_name")

if [[ "$status" == "stop" ]]; then
   echo "$DT $player_name - OK, nothing to do"
elif [[ "$status" == "play" ]]; then
   echo "$DT $player_name - NOW stopping"

LMSACTION=$(curl -g -X POST -d '{"method":"slim.request","params":["'$PLAYERMACADDR_X'",["'power'","0"]]}' http://$LMSSERVER:$LMSPORT/jsonrpc.js 2>/dev/null)

fi

echo "$DT $player_name - status: $status"
}

check_player "00:04:20:2b:ff:41"
check_player "00:04:20:2a:42:24"
check_player "00:04:20:2d:43:11"

Eine Referenz der API ist auf jedem LMS Server zu finden: 

https://[IP]/html/docs/cli-api.html

Quelle LMS: 

Nichts gefunden

Es wurde zur Story Lyrion Music Server / Logitech Media Server STOP Playing kein Kommentar gefunden

Information

Werbung oder Ähnliches sind nicht erlaubt, daher wird jeder Beitrag geprüft und freigegeben.
Advertising, etc. are not allowed, so any contribution is reviewed and approved.
Facebook-Webadress are not allowed, Facebook als Webadresse ist nicht erlaubt


* Die E-Mail wird nicht veröffentlicht / The email will not be published
** Bitte Zahl eintragen / Please enter the number
Ihr Kommentar
?
?
captcha Image?
?
 

Tippsammlung

Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.

Archiv

JahrArchiv
Tag(s):