Requête GET HTTP via script LUA
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Requête GET HTTP via script LUA
Aucun script ne poura récupérer une info que ton ampli ne peut fournir !
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Requête GET HTTP via script LUA
Je précise qu'il ne s'agit pas d'un ampli mais d'un serveur sur lequel tourne Logitech Media Server (LMS). De nombreuses app mobiles existent pour commander chaque lecteur (un serveur contenant toutes les musiques et de nombreux lecteurs lisant les musiques sur le serveur). Des requêtes doivent être derrière car il y a des retours d'états donc la communication se fait forcément dans les deux sens ...vil1driver a écrit :Aucun script ne poura récupérer une info que ton ampli ne peut fournir !
Re: Requête GET HTTP via script LUA
Bsr
ben avec P0,P1?P2 tu peux jouer avec ton volume
Tiré de la page que tu citais en référence
http://10.0.1.201:9000/status.suffix?p0 ... &p3=param3
et dans le tableau plus bas on voit que
P0 P1 P2
mixer volume (0 .. 100)|(-100 .. +100) Adjust the volume as specified by p2 within the range 0 to 100. Prefix the number with a + or - to make the change relative.
donc
http://10.0.1.201:9000/status.suffix?p0 ... me1&p2=100
devrait assourdir ton voisinage pour les 10 prochaines années.
Bien sur mets ton ip et ton port à toi la dedans
ben avec P0,P1?P2 tu peux jouer avec ton volume
Tiré de la page que tu citais en référence
http://10.0.1.201:9000/status.suffix?p0 ... &p3=param3
et dans le tableau plus bas on voit que
P0 P1 P2
mixer volume (0 .. 100)|(-100 .. +100) Adjust the volume as specified by p2 within the range 0 to 100. Prefix the number with a + or - to make the change relative.
donc
http://10.0.1.201:9000/status.suffix?p0 ... me1&p2=100
devrait assourdir ton voisinage pour les 10 prochaines années.
Bien sur mets ton ip et ton port à toi la dedans
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: Requête GET HTTP via script LUA
Ca aucun soucis, j'arrive à le faire via un dimmer virtuel créé dans Domoticz. Le problème est que plusieurs app contrôlent chaque lecteur : Domoticz mais également des app dédiées sur iPad et autres. Par conséquent, je souhaiterais actualiser le niveau de chaque Squeezebox dans Domoticz en même temps qu'un script qui ping chaque Squeezebox afin de vérifier si elles sont connectées (car une autre app a peut être modifié le niveau sonore entre temps).patrice a écrit :Bsr
ben avec P0,P1?P2 tu peux jouer avec ton volume
Tiré de la page que tu citais en référence
http://10.0.1.201:9000/status.suffix?p0 ... &p3=param3
et dans le tableau plus bas on voit que
P0 P1 P2
mixer volume (0 .. 100)|(-100 .. +100) Adjust the volume as specified by p2 within the range 0 to 100. Prefix the number with a + or - to make the change relative.
donc
http://10.0.1.201:9000/status.suffix?p0 ... me1&p2=100
devrait assourdir ton voisinage pour les 10 prochaines années.
Bien sur mets ton ip et ton port à toi la dedans
Je sais c'est assez tordu mais il s'agit d'un système multi room que je souhaitais pouvoir commander par plusieurs intermédiaires (dont des boutons physiques), d'où la question.
J'irai demander s'ils ont une idée sur le forum officiel de logitech. Je ne sais même pas comment interroger la Squeezebox (je ne parle pas de la commander) donc il est normal que vous ne sachiez pas me dire quelle commande je dois envoyer ...
Je vous tiens au courant, je ne suis peut être pas le seul à vouloir réaliser cette opération
Re: Requête GET HTTP via script LUA
Ah ca y est j'ai compris !!
et ça http://host:port/xml/status.xml
ça te renvoie le volume qq part ?
et ça http://host:port/xml/status.xml
ça te renvoie le volume qq part ?
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: Requête GET HTTP via script LUA
J'ai également essayé mais j'ai une erreur 404 me disant "there is no 'xml' skin". La je dois chercher du côté de mon serveur mais je n'ai pas encore trouvé 
Re: Requête GET HTTP via script LUA
Et ça : http://host:port/status.txt ?
Re: Requête GET HTTP via script LUA
Bonjour,hobbe a écrit :Et ça : http://host:port/status.txt ?
Malheureusement, je n'avais que le nom du lecteur et son état (allumé ou éteint)... Enfin en réessayant je ne vois plus rien mais je suis aussi sur tablette et en VPN donc à vérifier lorsque je serai rentré
Re: Requête GET HTTP via script LUA
Bonjour à tous,
Après recherche et demande sur le forum officiel consacré aux Squeezebox et autres j'ai finalement trouvé comment réaliser une requête pour trouver le volume.
Jusqu'à preuve du contraire, je n'ai pas trouvé quelle requête http réaliser pour avoir simplement comme réponse la valeur du volume. Voici le mode opératoire nécessaire pour aller reprendre la valeur du volume :
1. Connexion en Telnet avec Putty avec Adresse : ip_server ; Port : 9090 (port pour réaliser des requêtes en lignes de commande)
2. Un requête parmi de nombreuses autres : "ip_lecteur mixer volume ?"
Donc l'histoire du "?" était effectivement une bonne piste mais insérée au mauvais endroit.
En recherchant avec comme base "Telnet LUA Domoticz" je suis tombé sur une de tes réponses Patrice viewtopic.php?t=31
D'où ma question, est-ce qu'il est possible de réaliser une requête telnet à partir d'un script LUA ou ta solution (squeezplay.sh) est préférable avec, placé dans un script, os.execute('/usr/bash/squeezeplay.sh ip_lecteur') ?
Merci d'avance de votre aide
Après recherche et demande sur le forum officiel consacré aux Squeezebox et autres j'ai finalement trouvé comment réaliser une requête pour trouver le volume.
Jusqu'à preuve du contraire, je n'ai pas trouvé quelle requête http réaliser pour avoir simplement comme réponse la valeur du volume. Voici le mode opératoire nécessaire pour aller reprendre la valeur du volume :
1. Connexion en Telnet avec Putty avec Adresse : ip_server ; Port : 9090 (port pour réaliser des requêtes en lignes de commande)
2. Un requête parmi de nombreuses autres : "ip_lecteur mixer volume ?"
Donc l'histoire du "?" était effectivement une bonne piste mais insérée au mauvais endroit.
En recherchant avec comme base "Telnet LUA Domoticz" je suis tombé sur une de tes réponses Patrice viewtopic.php?t=31
D'où ma question, est-ce qu'il est possible de réaliser une requête telnet à partir d'un script LUA ou ta solution (squeezplay.sh) est préférable avec, placé dans un script, os.execute('/usr/bash/squeezeplay.sh ip_lecteur') ?
Merci d'avance de votre aide
Re: Requête GET HTTP via script LUA
Bonsoir,
Après de multiples recherches, j'ai finalement la ligne de commande nécessaire mais je galère vraiment, rien que pour récupérer dans une variable la réponse du serveur à ma requête... Il faut savoir que je ne gère absolument pas tout ce qui est langage shell (que je trouve réellement affreux personnellement)
Dans un script shell j'ai implanté cette ligne de commande
Où,
$1=La commande à exécuter au niveau du serveur
$2=L'adresse ip du serveur
$3=Le port de communication
Je reçois une réponse composée de,
Il s'agit donc d'une chaine de caractère que je voudrais décomposer et envoyer la valeur du volume au niveau d'un switch de Domoticz. Je coince déjà rien qu'au niveau de la récupération du morceau de ma chaine de caractère... Si quelqu'un s'y connait un peu à ce niveau-ci, je ne trouve pas vraiment de bon tutoriel sur internet
Après de multiples recherches, j'ai finalement la ligne de commande nécessaire mais je galère vraiment, rien que pour récupérer dans une variable la réponse du serveur à ma requête... Il faut savoir que je ne gère absolument pas tout ce qui est langage shell (que je trouve réellement affreux personnellement)
Dans un script shell j'ai implanté cette ligne de commande
Code : Tout sélectionner
-e $1\nexit\n | netcat $2 $3$1=La commande à exécuter au niveau du serveur
$2=L'adresse ip du serveur
$3=Le port de communication
Je reçois une réponse composée de,
Code : Tout sélectionner
adresse_mac_lecteur réponse_serveur