Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 10 of 10
  1. #1
    Junior Member
    Join Date
    Feb 2015
    Posts
    5

    Requête http Squeezebox

    Bonsoir,

    Dans un cadre domotique, je suis à la recherche de la commande permettant de rappatrier le niveau du volume. Je connais déjà les lignes permettant d'envoyer des commandes mais je ne trouve pas comment réaliser une requête. Pour information la requête est réalisée dans un script LUA.

    Par exemple, pour imposer le volume à 100 pour une requête http (port 9002 vu que LMS est sur Synology) : ip_lms:9002/status.html?p0=mixer&p1=volume&p2=100 mais par contre quelle commande dois-je envoyer au serveur pour connaitre le volume actuel ? J'ai beau chercher je n'ai pas trouvé ou alors je n'ai pas saisi les commandes envoyées...

    Si quelqu'un peut éclairer ma lanterne et toutes mes excuses si le sujet a été abordé

  2. #2
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    2,975
    Quote Originally Posted by Benjaminv View Post
    Bonsoir,

    Dans un cadre domotique, je suis à la recherche de la commande permettant de rappatrier le niveau du volume. Je connais déjà les lignes permettant d'envoyer des commandes mais je ne trouve pas comment réaliser une requête. Pour information la requête est réalisée dans un script LUA.

    Par exemple, pour imposer le volume à 100 pour une requête http (port 9002 vu que LMS est sur Synology) : ip_lms:9002/status.html?p0=mixer&p1=volume&p2=100 mais par contre quelle commande dois-je envoyer au serveur pour connaitre le volume actuel ? J'ai beau chercher je n'ai pas trouvé ou alors je n'ai pas saisi les commandes envoyées...

    Si quelqu'un peut éclairer ma lanterne et toutes mes excuses si le sujet a été abordé
    Je n'utilise que l'interface CLI, mais en essayant sans p2 ou avec p2=? j'ai le volume courant (échelle 1 à 10) qui est retourné, non ?
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express

  3. #3
    Junior Member
    Join Date
    Feb 2015
    Posts
    5
    Bonjour Philippe,

    Merci pour cette réponse. J'imagine que cette question est d'apparence simple mais je n'ai toujours pas trouvé de réponse même en analysant les scripts d'applications réalisées.

    J'ai déjà essayé la solution proposée. Je retrouve la même page que /status.html; autant avec p2=? que sans p2.

    Name:  Capture.JPG
Views: 407
Size:  60.7 KB

  4. #4
    Junior Member
    Join Date
    Feb 2015
    Posts
    5
    Quote Originally Posted by philippe_44 View Post
    Je n'utilise que l'interface CLI, mais en essayant sans p2 ou avec p2=? j'ai le volume courant (échelle 1 à 10) qui est retourné, non ?
    En fait, en fouillant un peu dans l'interface de LMS, j'ai remarqué que le port pour CLI est le 9090. Du coup j'ai essayé des commandes classiques telles que :9090/status.html mais je ne reçois aucune réponse de la part du serveur.

    EDIT : Après m'être renseigné avec comme mot clé "CLI" j'ai trouvé dans l'aide comment faire une requête pour trouver le volume ... Maintenant, il ne reste plus qu'à pouvoir reprendre la valeur dans un script
    Last edited by Benjaminv; 2015-02-28 at 05:41.

  5. #5
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    2,975
    Quote Originally Posted by Benjaminv View Post
    Bonjour Philippe,

    Merci pour cette réponse. J'imagine que cette question est d'apparence simple mais je n'ai toujours pas trouvé de réponse même en analysant les scripts d'applications réalisées.

    J'ai déjà essayé la solution proposée. Je retrouve la même page que /status.html; autant avec p2=? que sans p2.

    Name:  Capture.JPG
Views: 407
Size:  60.7 KB
    Je ne comprends pas trop - dans cette page, le volume "7" est clairement la valeur courante, non ? Comme "allumé" est l'état de la platine. Mais bon, j'aurais du effectivement te dire que CLI, c'est port 9090 et juste un simple socket TCP à ouvrir, ensuite c'est du texte à plat. Tout est bien documenté dans l'aide incluse (accessible directement à partir de l'interface Web de LMS - aide/information technique)
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express

  6. #6
    Junior Member
    Join Date
    Feb 2015
    Posts
    5
    Bonjour Philippe,

    Effectivement l'affichage des différentes variables est assez clair. Cependant, je ne sais pas comment créer mon script pour chercher les variables de cette page et c'est pourquoi je me suis tourné vers la solution CLI.

    Maintenant, aurais tu une idée d'un script se connectant au serveur avec un raspberry et allant chercher la valeur du volume ?

    Personnellement je sais comment arriver en ligne de commandes avec PuttY mais au niveau d'un script sur Raspberry je suis coincé car je n'arrive pas à envoyer des commandes après connexion (sauf manuellement). Voici ce que j'avais en tête :

    Telnet ip_lms 9090
    Ip_squeezebox Mixer volume ?
    Exit

    Si tu as une idée ...

  7. #7
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    2,975
    Quote Originally Posted by Benjaminv View Post
    Bonjour Philippe,

    Effectivement l'affichage des différentes variables est assez clair. Cependant, je ne sais pas comment créer mon script pour chercher les variables de cette page et c'est pourquoi je me suis tourné vers la solution CLI.

    Maintenant, aurais tu une idée d'un script se connectant au serveur avec un raspberry et allant chercher la valeur du volume ?

    Personnellement je sais comment arriver en ligne de commandes avec PuttY mais au niveau d'un script sur Raspberry je suis coincé car je n'arrive pas à envoyer des commandes après connexion (sauf manuellement). Voici ce que j'avais en tête :

    Telnet ip_lms 9090
    Ip_squeezebox Mixer volume ?
    Exit

    Si tu as une idée ...
    Je ne suis pas chez moi en ce moment et je n'ai pas acces à mes raspi, mais je pense que netcat est installé. Ou alors, bash a aussi une solution pour envoyer des données directement en ouvrant un socket, si netcat n'est pas installé. Il y a beaucoup de litterature dessus, le mieux est que tu trouves celle qui te convient le mieux, mais chercher "bash tcp sock" ou "netcat" te donnera tout ce que tu cherches, je pense
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express

  8. #8
    Junior Member
    Join Date
    Feb 2015
    Posts
    5
    Quote Originally Posted by philippe_44 View Post
    Je ne suis pas chez moi en ce moment et je n'ai pas acces à mes raspi, mais je pense que netcat est installé. Ou alors, bash a aussi une solution pour envoyer des données directement en ouvrant un socket, si netcat n'est pas installé. Il y a beaucoup de litterature dessus, le mieux est que tu trouves celle qui te convient le mieux, mais chercher "bash tcp sock" ou "netcat" te donnera tout ce que tu cherches, je pense
    Le problème n'est finalement pas d'envoyer des commandes via Netcat ou Telnet mais de mémoriser la réponse dans une variable ... J'avoue que je patauge un peu car je n'ai jamais pratiqué ce genre de communications.

    J'ai finalement réussi (enfin du moins je pense que je ne vois pas le résultat) à envoyer mes commandes via nectat ou telnet, il manquait juste le morceau "<< EOF". Cependant, lorsque les commandes sont envoyées je ne vois pas comment mémoriser la réponse dans une variable ou l'afficher lorsque la communication est fermée. Je continue de chercher mais si tu as une piste elle est bienvenue ... ou une méthode plus simple

    EDIT : TROUVE ! Voici la commande qui m'a permis de retrouver le volume

    Code:
    echo -e "mixer volume ?\nexit\n" | netcat 192.168.1.80 9090
    La réponse est du style

    Code:
    mac_lecteur volume 40
    Remplacer "mixer volume ?" par status, version, etc soit les commandes classiques par telnet ou netcat. Maintenant il ne me reste plus qu'à importer ça dans mon script LUA qui intervient dans le contrôle de ma domotique
    Last edited by Benjaminv; 2015-03-01 at 07:13.

  9. #9
    Senior Member
    Join Date
    Apr 2008
    Location
    Paris, France
    Posts
    2,005
    La CLI en Json est nettement plus moderne et utilisée de nos jours. Je te conseillerais de regarder de ce côté là.
    3 SB 3 • Libratone Loop, Zipp Mini • iPeng (iPhone + iPad) • LMS 7.9 (linux) with plugins: CD Player, WaveInput, Triode's BBC iPlayer by bpa • IRBlaster by Gwendesign (Felix) • Server Power Control by Gordon Harris • Smart Mix, Music Walk With Me, What Was That Tune? by Michael Herger • PowerSave by Jason Holtzapple • Song Info, Song Lyrics by Erland Isaksson • AirPlay Bridge by philippe_44 • WeatherTime by Martin Rehfeld • Auto Dim Display, SaverSwitcher, ContextMenu by Peter Watkins.

  10. #10
    Junior Member
    Join Date
    Mar 2016
    Posts
    1
    Je ne sais pas si quelqu'un suit encore le sujet mais j'aimerais bien savoir a quoi ont abouti tes recherches, sebastienv.
    De mon côté j'utilise des script python depuis un raspberry pour émettre des commandes http vers la SB radio.

    Envoyé de mon GT-I9505 en utilisant Tapatalk

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •