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.
/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:
...auch noch interessant
- LMS // 01.04.2021Logitech Mediacenter Server (LMS) auf Docker (SlimServer, SqueezeCenter und Squeezebox Server)
- bash // 12.03.2019Tipp für die Linux Bash: jq is a lightweight and flexible command-line JSON processor
- bash // 02.02.2018Raspberry Pi: 7 Zoll Touchscreen oder HDMI automatisch abschalten
- LMS // 01.04.2011Auf wiedersehen Benno
Tippsammlung
Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.Archiv
- Jun 2024 (1)
- May 2024 (1)
- Apr 2024 (2)
- Feb 2024 (3)
- Jan 2024 (1)
- Sep 2023 (1)
- Jul 2023 (1)
- Apr 2023 (1)
- Feb 2023 (1)
- Nov 2022 (2)
- Oct 2022 (1)
- Jul 2022 (1)
- Jun 2022 (2)
- May 2022 (2)
- Apr 2022 (6)
- tipps (31)
- synology (27)
- linux (22)
- Windows (19)
- tool (19)
- Powershell (15)
- Windows 10 (13)
- csharp (c#) (10)
- coding (9)
- Ubuntu (6)
- security (6)
- ad (6)
- Windows 2012 R2 (5)
- vpn (5)
- Pi (5)
- gitea (5)
- git (5)
- Windows 2012 (4)
- Ubuntu 22.04 (4)
- opnsense (4)
- openpgp.js (4)
- mysql (4)
- docker (4)
- Xubuntu (3)
- Windows 2016 (3)
- web2 (3)
- seo (3)
- LMS (3)
- Japanisch (3)
- ipkg (3)
- bash (3)
- app (3)
- Android (3)
- Zertifizierungsstelle (2)
- www (2)
- wsus (2)
- Windows Updates (2)
- windows 2022 (2)
- Windows 2008 (2)
- wadoku (2)
- VMware (2)
- verschlüsselung (2)
- Scripts (2)
- php (2)
- pgp (2)
- perl (2)
- openvpn (2)
- Kanji (2)
- javascript (2)
- GnuPgP (2)
Nichts gefunden
Es wurde zur Story Lyrion Music Server / Logitech Media Server STOP Playing kein Kommentar gefundenInformation
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
Modal Header
Some text in the Modal Body
Some other text...
(c)2024 stastka.ch // help system