Aller au contenu

Requêtes Get Et Put Sur Hcl (Synthèse De Celles Qui Fonctionnent !)


Zorgonaute84

Recommended Posts

Comme il y a pas mal de sujet éparpillés concernant les requetes GET et PUT sur HCL, j'ai décidé d'en créer un de plus !

 

Non plus sérieusement après avoir écumé tous les sujets (avoir tout lu et son contraire) et galéré a trouver quelque chose qui fonctionne, voici les deux syntaxes pour du GET et du PUT sur HCL qui fonctionnent en V4.057 !

 

Pour du PUT (changement d'une variable) :

 

Il est IMPERATIF que l'IP du virtual device soit 127.0.0.1 et son port : 11111

 

La requête s'écrit alors exactement comme cela :

PUT /api/globalVariables/VOTRE_VARIABLE HTTP/1.1
Host: 127.0.0.1
Authorization: Basic VOTRE_ADMIN:PASSWORD_EN_BASE64

{"name":"VOTRE_VARIABLE","value":"LA_VALEUR_A_CHANGER"}

Rien de plus, et rien de moins ! Meme si le host est 127.0.0.1, il faut garder le "Authorisation: Basic" sinon ca marche pas (j'ai testé), rajouter Votre variable a la fin de l'URL est indispensable, sinon ca ne marche pas non plus et le content-length ne sert a rien (j'ai pas testé si ça fonctionnait avec, mais ca fonctionne sans)

 

 

Pour le GET c'est une autre histoire (déclenchement d'une scène)

 

Vous pouvez écrire ce qu'il vous chante dans le champ adresse IP et port du virtual device, que ce soit l'IP de la box, 127.0.0.1 ou rien du tout, ca fonctionne !

 

La syntaxe est celle la :

GET /api/sceneControl?id=ID_DE_VOTRE_SCENE&action=start HTTP/1.10x0D0x0AHost:IP_DE_VOTRE_HCL:80 0x0D0x0AAuthorization: Basic VOTRE_ADMIN:PASSWORD_EN_BASE64 0x0D0x0A0x0D0x0A

Ce coup-ci c'est bien l'IP de la fibaro qu'il faut mettre, sinon ca ne marche pas ! Et il faut écrire toutes les petites merde comme celle-ci pour simuler des retours a la ligne (0x0D0x0A) sinon ca ne marche pas !

 

 

Remarque importante : Le changement d'une variable via la méthode PUT ne déclenche pas les scènes dont cette variable est le déclencheur.

  • Upvote 7
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Avec le PUT, les mises àjours ne sont pas restreinte au Variables. Par exemple pour mettre àjours un panneau de chauffage, pour la valeur de consigne de vacance:

PUT /api/panels/heating HTTP/1.10x0D0x0AHost:192.168.1.10 0x0D0x0AAuthorization: Basic YWRtXXXXXXXXXXXX 0x0D0x0A0x0D0x0A {"id":26,"name":"Sejour","properties":{"handTemperature":0,"handTimestamp":0,"vacationTemperature":23}}

http://www.domotique-fibaro.fr/index.php/topic/6420-mode-de-chauffage-sur-la-hcl/#entry96498

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
Bonjour,

 

Savez-vous si il est possible de réaliser un appel en HTTPS  depuis un module virtuel sur HCL ? 

 

Je cherche juste à  réaliser un appel ifttt sur le channel maker.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut 

 

Le https n'est possible que dans une scène ( Lua ) donc malheureusement, sur HC Lite, tu ne pourra pas utiliser le Https

 

Par contre, il me semble qu'en "http" ifttt fonctionne.

 

sur cette base :

http://maker.ifttt.com/trigger/{event}/with/key/{Userkey}. 

Va falloir créer un bouton dans ton .module virtuel et écrire en "string" ta requête.

 

( @jojo à  fait un tuto sur les requêtes http sur HC Lite )

Lien vers le commentaire
Partager sur d’autres sites

Dommage :(

 

ifttt semble en effet fonctionner en http.

 

Depuis un navigateur, l'appel http fonctionne correctement.

 

Depuis un module virtuel, impossible d'obtenir une trace d'appel dans les logs de ma Recipe.

 

Voici la syntaxe utilisée dans le bouton du module virtuel de la HCL.

 

GET /trigger/{event}/with/key/{Userkey}  HTTP/1.1

Host: maker.ifttt.com 

0x0D0x0A0x0D0x0A

 

 

(Avec

event = Nom de l'event dans ifttt

Userkey = la clé associée)
Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...