Curl Befehle an LMS von anderem PI
Curl Befehle an LMS von anderem PI
Guten Morgen liebe Musik-Freunde,
dank euch habe ich schon sehr viel Zeit sparen können, nur leider bin ich jetzt mit meinem Latein am Ende und musste mich doch regiestrieren
Ich versuche seit Tagen curl Befehle von einem Pi an meinen Squeezebox LMS PI zu senden.
Der Befehl selber lautet : curl -m 1 "http://192.168.xxx.xx:9000/anyurl?p0=mi ... lume&p2=50"
Laut Command Line wird auch "anyurl processed" ausgegeben. Allerdings setzt er die Lautstärke nicht auf 50%. Am PC funtkioniert es ohne Probleme.
Gibt es hier irgendwelche Rechteprobleme o. Ä.?
dank euch habe ich schon sehr viel Zeit sparen können, nur leider bin ich jetzt mit meinem Latein am Ende und musste mich doch regiestrieren
Ich versuche seit Tagen curl Befehle von einem Pi an meinen Squeezebox LMS PI zu senden.
Der Befehl selber lautet : curl -m 1 "http://192.168.xxx.xx:9000/anyurl?p0=mi ... lume&p2=50"
Laut Command Line wird auch "anyurl processed" ausgegeben. Allerdings setzt er die Lautstärke nicht auf 50%. Am PC funtkioniert es ohne Probleme.
Gibt es hier irgendwelche Rechteprobleme o. Ä.?
-
- Moderator
- Beiträge: 2100
- Registriert: 2. November 2011 12:35
- SqueezeBox: Touch
- SqueezeBox: Radio
- SqueezeBox: Boom
- SqueezeBox: Classic
- SqueezeBox: Transporter
- SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)
Re: Curl Befehle an LMS von anderem PI
Das sieht so aus, als würdest Du die Befehle des Webinterface nutzen, um Deinen LMS fernzusteuern. Dafür ist aber eigentlich das CLI, besser: die JSON-Schnittstelle gedacht. Leider habe ich nur mal kurz reingeschaut und bin bei weitem nicht firm genug, Dir da großartig Hilfestellung zu geben, aber ein paar Links fallen schon ab.
Der CLI-Befehl für die Lautstärke ist beispielsweise (Interessant ist auch der Hinweis zum Befehl "button"):
Eigentlich erwartet der entsprechende CLI-Befehl ja die Player-ID, die man sich zuvor über die MAC-Adresse holt. Aber offensichtlich (weil es bie mir wie oben beschrieben geht) geht es auch direkt über die MAC-Adresse in den params.
- CLI wird Dir im LMS selbst erklärt:
Einstellungen: Hilfe -> Technische Informationen -> The Logitech Media Server Command Line Interface
oder direkt:
http://192.168.178.37:9000/html/docs/help.html
Dabei ist 192.168.178.37 die IP-Adresse meines LMS - der JSON Aufruf erfolgt bei mir dementsprechend über 192.168.178.37:9000/jsonrpc.js
Ein Beispiel für das JSON-Format für den Befehl zum Einschalten meiner Squeezebox:Code: Alles auswählen
{ "id": 1, "method": "slim.request", "params":["00:04:20:xx:xx:xx", ["power", 1]]}
- eine Art Dokumentation in Englisch findest Du hier: https://docs.google.com/document/d/15-A ... ejbv44g818
- Ein Beispiel mit curl:
Quelle:
Code: Alles auswählen
curl -H -X POST -d '{"id":1,"method":"slim.request","params":["12:36:aa:47:b4:08",["status","-",1,"tags:al"]]}' http://192.168.2.93:9000/jsonrpc.js
https://forums.slimdevices.com/showthre ... c-js/page2
Der CLI-Befehl für die Lautstärke ist beispielsweise (Interessant ist auch der Hinweis zum Befehl "button"):
Ich könnte mir jetzt mal die Parameterliste für Deinen Befehl so vorstellen:<playerid> mixer volume <0 .. 100|-100 .. +100|?>
The "mixer volume" command returns or sets the current volume setting for the player. The scale is 0 to 100, in real numbers (i.e. 34.5 is valid). If the player is muted, the volume is returned as a negative value. Note that players display a 0 to 40 scale, that is, the 0..100 volume divided by 2,5. Likewise, using the "button" command with "volume_up" or "volume_down" parameters increases or decreases the volume by 2,5.
Examples:
Request: "04:20:00:12:23:45 mixer volume ?<LF>"
Response: "04:20:00:12:23:45 mixer volume 98<LF>"
Request: "04:20:00:12:23:45 mixer volume 25<LF>"
Response: "04:20:00:12:23:45 mixer volume 25<LF>"
Request: "04:20:00:12:23:45 mixer volume +10<LF>"
Response: "04:20:00:12:23:45 mixer volume +10<LF>"
Code: Alles auswählen
{ "id": 1, "method": "slim.request", "params":["00:04:20:xx:xx:xx", ["mixer volume", 50]]}
Re: Curl Befehle an LMS von anderem PI
Hallo karlek,
danke dir schon mal für deine Hilfe
Das mit den CLI commands habe ich in meinen zig Recherchen auch gesehen, schnall ich aber überhaupt nicht. Darum wollte ich es auch mit den Web-Commands bewältigen.
Wo gebe ich diese Befehle z.B. ein? Das ist für mich zum Verständnis her total komisch. Vielleicht muss es einfach klick machen
Die Seite http://192.168.xxx.xx:9000/jsonrpc.js gibt es bei mir schonmal gar nicht.
danke dir schon mal für deine Hilfe
Das mit den CLI commands habe ich in meinen zig Recherchen auch gesehen, schnall ich aber überhaupt nicht. Darum wollte ich es auch mit den Web-Commands bewältigen.
Wo gebe ich diese Befehle z.B. ein? Das ist für mich zum Verständnis her total komisch. Vielleicht muss es einfach klick machen
Die Seite http://192.168.xxx.xx:9000/jsonrpc.js gibt es bei mir schonmal gar nicht.
-
- Moderator
- Beiträge: 2100
- Registriert: 2. November 2011 12:35
- SqueezeBox: Touch
- SqueezeBox: Radio
- SqueezeBox: Boom
- SqueezeBox: Classic
- SqueezeBox: Transporter
- SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)
Re: Curl Befehle an LMS von anderem PI
Die gibt man per se mal nicht ein, sondern sendet sie mit curl. Oben habe ich Dir ein Beispiel kopiert.
Hast Du das schon von Deinem Pi aus ausprobiert? Ich kann gerade nicht.
Du musst natürlich IP- und MAC-Adresse anpassen.
Hast Du das schon von Deinem Pi aus ausprobiert? Ich kann gerade nicht.
Du musst natürlich IP- und MAC-Adresse anpassen.
Re: Curl Befehle an LMS von anderem PI
Gibt folgendes aus:
> curl -H -X POST -d '{ "id": 1, "method": "slim.request", "params":["abef:12:34:62", ["mixer volume", 100]]} http://192.168.xxx.xx:9000/jsonrpc.js
curl: (6) Could not resolve host: POST
curl: (6) Could not resolve host: id
curl: (6) Could not resolve host: 1,
curl: (6) Could not resolve host: method
curl: (6) Could not resolve host: slim.request,
curl: (3) bad range in URL position 9:
params:[abef:12:34:62,
^
curl: (3) bad range in URL position 2:
[mixer volume,
^
curl: (3) unmatched close brace/bracket in URL position 4:
100]]}
^
> curl -H -X POST -d '{ "id": 1, "method": "slim.request", "params":["abef:12:34:62", ["mixer volume", 100]]} http://192.168.xxx.xx:9000/jsonrpc.js
curl: (6) Could not resolve host: POST
curl: (6) Could not resolve host: id
curl: (6) Could not resolve host: 1,
curl: (6) Could not resolve host: method
curl: (6) Could not resolve host: slim.request,
curl: (3) bad range in URL position 9:
params:[abef:12:34:62,
^
curl: (3) bad range in URL position 2:
[mixer volume,
^
curl: (3) unmatched close brace/bracket in URL position 4:
100]]}
^
-
- Moderator
- Beiträge: 2100
- Registriert: 2. November 2011 12:35
- SqueezeBox: Touch
- SqueezeBox: Radio
- SqueezeBox: Boom
- SqueezeBox: Classic
- SqueezeBox: Transporter
- SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)
Re: Curl Befehle an LMS von anderem PI
Schnellschuss: bei Dir fehlt das abschließende Hochkomma nach dem JSON-Zeug.
Edit:
bei mir funktioniert schon mal der folgende Befehl zum Ausschalten (kannst ja mal ausprobieren":
Das heißt, das -H stört auf dem RasPi.
curl liefert bei Erfolg vermutlich auch immer eine Art Echo zurück. Bei mir:
Wenn ich nun statt einsetze, ändert sich die Lautstärke nicht und ich erhalte zurück:
Edit:
bei mir funktioniert schon mal der folgende Befehl zum Ausschalten (kannst ja mal ausprobieren":
Code: Alles auswählen
curl -X POST -d '{ "id": 1, "method": "slim.request", "params":["00:04:20:xx:xx:xx", ["power", 0]]}' 192.168.178.37:9000/jsonrpc.js
curl liefert bei Erfolg vermutlich auch immer eine Art Echo zurück. Bei mir:
Code: Alles auswählen
{"id":1,"params":["00:04:20:xx:xx:xx",["power","0"]],"result":{},"method":"slim.request"}
Code: Alles auswählen
"power", 0
Code: Alles auswählen
"mixer volume", 10
Code: Alles auswählen
curl: (52) Empty reply from server
-
- Moderator
- Beiträge: 2100
- Registriert: 2. November 2011 12:35
- SqueezeBox: Touch
- SqueezeBox: Radio
- SqueezeBox: Boom
- SqueezeBox: Classic
- SqueezeBox: Transporter
- SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)
Re: Curl Befehle an LMS von anderem PI
Ich hab's:
Man muss also jedes Wort des Befehls einzeln absenden und auch dieLautstärke als String verpacken:
Echo:
Jetzt frage ich mal nach der Lautstärke:
liefert nun:
Die Reihenfolge der parameter scheint willkürlich, aber das ist bei JSON ja egal.
Code: Alles auswählen
curl -X POST -d '{ "method": "slim.request", "params":["00:04:20:xx:xx:xx", ["mixer", "volume", "50"]]}' 192.168.178.37:9000/jsonrpc.js
Echo:
Code: Alles auswählen
{"method":"slim.request","params":["00:04:20:06:6c:b7",["mixer","volume","50"]],"result":{}}
Code: Alles auswählen
curl -X POST -d '{ "method": "slim.request", "params":["00:04:20:06:6c:b7", ["mixer", "volume", "?"]]}' 192.168.178.37:9000/jsonrpc.js
Code: Alles auswählen
{"params":["00:04:20:06:6c:b7",["mixer","volume","?"]],"result":{"_volume":"50"},"method":"slim.request"}
Re: Curl Befehle an LMS von anderem PI
Das funktioniert!!!! Hätte ich nicht gedacht Es ist immer noch ein Mysterium für mich *duck*
Danke dir
Wie wäre dann der Befehlt für einen gewissen Track abspielen? Ich blick da nicht durch.
curl -X POST -d '{ "method": "slim.request", "params":["abef:12:34:62 playlist play file:///home/Music/test.wav]]}' 192.168.xxx.xx:9000/jsonrpc.js
So in etwa müsste er doch aussehen oder?
Danke dir
Wie wäre dann der Befehlt für einen gewissen Track abspielen? Ich blick da nicht durch.
curl -X POST -d '{ "method": "slim.request", "params":["abef:12:34:62 playlist play file:///home/Music/test.wav]]}' 192.168.xxx.xx:9000/jsonrpc.js
So in etwa müsste er doch aussehen oder?
-
- Moderator
- Beiträge: 2100
- Registriert: 2. November 2011 12:35
- SqueezeBox: Touch
- SqueezeBox: Radio
- SqueezeBox: Boom
- SqueezeBox: Classic
- SqueezeBox: Transporter
- SqueezeBox Server läuft auf: Raspberry Pi 3 (Jessie) mit LMS 7.9
(O2 Joggler mit LMS 7.9)
(QNAP-212 (Turbo) mit LMS 7.9)
Re: Curl Befehle an LMS von anderem PI
Sicher nicht.
Zum einen fehlen da ganz viele Zeichen, eckige Klammern und Anführungszeichen um jedes Wort des CLI-Befehls. Zum andern weiß ich nicht, wie im CLI Titel übergeben werden.
Dazu müsstest Du Dich im CLI einlesen und schauen, was beim Drag and Drop abläuft. Das file:// - Protokoll wird vermutlich nicht benutzt.
Zum einen fehlen da ganz viele Zeichen, eckige Klammern und Anführungszeichen um jedes Wort des CLI-Befehls. Zum andern weiß ich nicht, wie im CLI Titel übergeben werden.
Dazu müsstest Du Dich im CLI einlesen und schauen, was beim Drag and Drop abläuft. Das file:// - Protokoll wird vermutlich nicht benutzt.
-
- Beiträge: 2
- Registriert: 10. Juli 2020 23:21
- SqueezeBox: SqueezePlay
- SqueezeBox: SqueezePlay
- SqueezeBox: SqueezePlay
- SqueezeBox: SqueezePlay
- SqueezeBox Server läuft auf: piCorePlayer, raspPi
Re: Curl Befehle an LMS von anderem PI
Erst einmal: Der Thread war sehr hilfreich für mich!
Eine Anmerkung möchte ich noch machen: die MAC-Adresse muss in kleinbuchstaben übermittelt werden. Hab mich bestimmt 10 min. gewunder warum das bei mir einfach nicht funktionieren will, bis ich aus "Spass" einfach mal die Großbuchstaben der MAC-Adresse in kleine geschrieben hab.
Eine Anmerkung möchte ich noch machen: die MAC-Adresse muss in kleinbuchstaben übermittelt werden. Hab mich bestimmt 10 min. gewunder warum das bei mir einfach nicht funktionieren will, bis ich aus "Spass" einfach mal die Großbuchstaben der MAC-Adresse in kleine geschrieben hab.