jojo Posté(e) le 16 novembre 2014 Signaler Posté(e) le 16 novembre 2014 (modifié) Edit : regardez également ce post pour une info plus récente : http://www.domotique-fibaro.fr/index.php/topic/5935-requ%C3%AAtes-get-et-put-sur-hcl-synth%C3%A8se-de-celles-qui-fonctionnent/ Bonsoir, Je vois que beaucoup de monde se casse les dents sur les requêtes http sur HCL. Je précise que ce que je décris ici fonctionne avec la dernière version du firmware 3.593 1) créer un virtual device et préciser l'IP et le port (80) du HCL 2) dans la partie script de chaque bouton, entrez le string suivant qui contient la commande GET GET<space><command><space>HTTP/1.10x0D0x0AHost:<IP:port><space>0x0D0x0AAuthorization:<space>Basic<space><user:pwd inBase64><space>0x0D0x0A0x0D0x0A N.B. : remplacer <space> par un espace remplacer <command> par la commande GET à passer remplacer <user:pwd inBase64> en le calculant https://www.base64encode.org/. Pour user = admin; pwd = admin, le texte à encoder est admin:admin, ce qui donne YWRtaW46YWRtaW4= respecter SCRUPULEUSEMENT la syntaxe ci-dessus, y compris les espaces. Pour la liste de ce que vous pouvez passer comme requêtes, voir le post de moicphil http://www.domotique-fibaro.fr/index.php/topic/1321-ex%C3%A9cuter-et-stopper-une-sc%C3%A8ne-par-http/ Beaucoup de plaisir à toute la communauté Modifié le 19 décembre 2015 par jojo 4
Krikroff Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Merci beaucoup jojo pour ton partage ï¸. Je tiens à préciser que ceci fait suite à un bug de la version V3.593 du HCLite et que rien ne garantit un bon fonctionnement sur les versions ultérieures lorsque le bug sera résolu. JC. Envoyé de mon iPhone à l'aide de Tapatalk
Berale64 Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Merci Jojo. Quelqu'un peut-il expliquer la différence entre GET et PUT ? Existe-t-il une <commande> qui permettrait de changer la valeur d'une variable globale ?
jojo Posté(e) le 17 novembre 2014 Auteur Signaler Posté(e) le 17 novembre 2014 Berale24, Pour changer la valeur d'une variable, je fais une scène qui est lancée par ma virtual device
Berale64 Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Oui, j'ai vu ton sujet, mais si on peut éviter des scènes c'est pas plus mal.
Krikroff Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 @Berale24, sans rentrer dans les détails et faire une réponse la plus limpide possible, sur l' API: La méthode GET fait une demande pour obtenir une ressource (avec ou sans retour d'information) pour par exemple obtenir la liste des périphériques, des scènes...GET ne peut pas modifier la ressource. La méthode POST va servir à transmettre des données (avec ou sans retour d'information) avec passage d'argument dans "body" pour par exemple créer une variable, une scène... La méthode PUT fait une demande de modification de la ressource (avec ou sans retour d'information) avec passage d'argument dans le "body" (payload, etc) pour mettre à jour par exemple une variable, une propriété d'un périphérique etc.. La méthode DELETE fait une demande de suppression ...
jojo Posté(e) le 17 novembre 2014 Auteur Signaler Posté(e) le 17 novembre 2014 donc, si j'ai bien compris, Berale24 devrait faire une commande PUT. Mais je crois que les virtual devices de la HCL ne supportent que les commandes GET ?
Krikroff Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Attention, il ne faut pas confondre mise à jour d'un slider, bouton etc d'un virtual device (qui sous entend une mise à jour instantanée de l' interface utilisateur) et la modification du code même du virtual device (lua, propriété etc) Donc oui le HCL supporte la méthode PUT sur toutes les ressources modifiables.
jojo Posté(e) le 17 novembre 2014 Auteur Signaler Posté(e) le 17 novembre 2014 merci Krikroff, et où pourrais-je trouver une liste exhaustive des commandes GET, POST, PUT, ... ? Dans la doc Fibaro ????
Krikroff Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Il n'y a pas de doc a ma connaissance. Pour mettre à jour une variable en string avec le HCL ou le HC2 en version 3.5xx il faut: PUT http://ip:port/api/globalVariables HTTP/1.1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Content-Length: 27 Authorization: Basic YWRtaW46YWRtaW4= {"name":"TEST","value":"2"} ou "name" est le nom de la variable et "value" la nouvelle valeur. Attention au Content-Length qui peut poser problème et qui correspond à la longueur du corps de la requête L' idéal est d'attendre la mise à jour en V4 car l'api change ...
jojo Posté(e) le 17 novembre 2014 Auteur Signaler Posté(e) le 17 novembre 2014 Merci, j'y regarderai en détail comment implémenter cela sur HCL (le but serait de fournir à la communauté qqch de similaire au tuto de départ, car seuls les geek comme toi comprennent ton charabia Mais il me semble que la plus grande qualité que la personne qui veut mettre une domotique bien en place, est la PATIENCE
Krikroff Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Oui malheureusement la domotique pour monsieur tout le monde ce n'est pas encore exactement cela (àce jour) ou avec beaucoup d'investissement personnel sinon tout peut vitre devenir frustrant. Mais heureusement il y a toujours quelqu'un pour donner un coup de main
Berale64 Posté(e) le 17 novembre 2014 Signaler Posté(e) le 17 novembre 2014 Merci les gars. Voilà de quoi passer quelques nuits blanches ! @Krikroff : "Oui malheureusement la domotique pour monsieur tout le monde ce n'est pas encore exactement cela" Orange nous aurait menti ??? PS: Krikroff, peux tu nous dire si c'est pour les variables simples ou les variables prédéfinies. Merci.
Berale64 Posté(e) le 18 novembre 2014 Signaler Posté(e) le 18 novembre 2014 J'ai fait quelques essais, c'est pas gagné !
nickrdtp Posté(e) le 20 novembre 2014 Signaler Posté(e) le 20 novembre 2014 merci pour ces infos, un bon point de départ!
Krikroff Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 @Berale24, désole je n'avais pas vu la question . Donc oui les deux ... Envoyé de mon iPhone àl'aide de Tapatalk
Berale64 Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 Merci. Je retourne àmes essais.
Berale64 Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 Après quelques recherches sur le net, j'ai trouvé sur le forum Fibaro la solution suivante qui fonctionne mais seulement avec les variables simples. Ne me demandez pas pourquoi l'adresse IP est celle du local host 127.0.0.1 et le port 11111, mais ça marche. PUT /api/globalVariables HTTP/1.1Host: 127.0.0.1Authorization: Basic xxxxxxxxxxxxxx{"name":"toto","value":"4"}
Krikroff Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 @Berale24, Ça marche simplement parce-que c'est comme cela que Fibaro dois attaquer l' API en "interne" en LUA. Juste un complément d'information, le Authorization: Basic n'est pas utilise dans ce cas tu peux le supprimer
jojo Posté(e) le 21 novembre 2014 Auteur Signaler Posté(e) le 21 novembre 2014 Berale24, 1. Peux-tu préciser quelle est la différence entre des variables simples et prédéfinies ou globales ? Je n'en connais qu'un seul type dans le panneau des variables ? 2. Dans la partie texte du bouton de la virtual device, je rentre le code dont tu parles avec un copier / coller. Pour cela il n'y aurait pas tous les problèmes d'espaces etc comme pour la commande GET ? Merci et bonne journée
Berale64 Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 Dans le panneau variable, tu as d'abord Variable: tu donnes le nom d'une variable et une valeur exclusivement numérique. Puis, plus bas, tu as Variables prédéfinies: tu donnes le nom d'une variable et un nombre prédéfinie de valeurs possible alphanumériques. La solution que j'ai trouvé ne fonctionne que pour la première catégorie. Tu peux faire un Copier/Coller, la variable doit exister, et n'oublie pas dans la partie générale du virtual device de mettre l'adresse IP 127.0.0.1 et le port 11111. 1
jojo Posté(e) le 21 novembre 2014 Auteur Signaler Posté(e) le 21 novembre 2014 Merci, Jétais sûr qu'il s'agissait de la même chose dans les deux parties, sauf que dans la deuxième tu limites les possibilités d'entrées (choix pré-défini comme dans les listes xls). Mais je suis entrain déjàd'imaginer des tonnes de possibilités. Et merde encore des nuits blanches en vue ... Je me demande si je ne devrais pas quitter ce forum, car il me donne beaucoup trop de bonnes idées, et je n'arrive pas àsuivre ...
Berale64 Posté(e) le 21 novembre 2014 Signaler Posté(e) le 21 novembre 2014 Si, si, continue et partage !!!!!!!
Berale64 Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Bon, en fait, je m'étais trompé. ça marche aussi pour les variables prédéfinies. J'avais ouvert deux fenêtres, une pour les devices et une pour les variables, sauf qu'il fallait faire un refresh pour voir si la variable avait changée. ça m'arrange, j'avais pas trop envie de changer toutes mes variables et mes scènes. 1
Messages recommandés