Aller au contenu
jojo

Requêtes Http /get Sur Hcl

Recommended Posts

Merci pour cette bonne nouvelle et tes recherches

Partager ce message


Lien à poster
Partager sur d’autres sites

Coucou tout le monde, personnellement j'ai un soucis avec la mise à  jour de variable simple.

J'ai créé un périphérique virtuel avec deux boutons (127.0.0.1 port 11111), le code du premier bouton est :

 

PUT /api/globalVariables HTTP/1.1

Host: 127.0.0.1
{"name":"test","value":"2"}
 
J'ai également créé évidement une variable test de valeur 0 mais quand j'utilise le bouton et que je retourne voir la variable dans le panneau des variables la valeur ne change pas :(
 
Une idée ?
 
Merci d'avance 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je débute et je rame avec mon GET, pourriez vous me dire ce qui ne colle pas SVP?

 

GET /Notifications/ HTTP/1.10x0D0x0AHost:192.168.0.8:80 0x0D0x0AAuthorization: Basic YWTOTO46dGlTUTUwTIT= 0x0D0x0A0x0D0x0A

 

A noter que je ne veux pas faire un GET sur ma Fibaro mais vers mon nas, ca devrait donc être tout simple.... mais non....

 

PS: Et merci pour le tuto

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, j'ai réussit àfaire ce que je voulais en utilisant les 2 fonctions LUA suivantes, si ca peut en aider d'autres:

tcpSERVER = Net.FHttp("192.168.0.8", 80);
tcpSERVER:GET("/Notifications/index.php");

Partager ce message


Lien à poster
Partager sur d’autres sites

@bechamel1979, il me semble que lorsqu'on veut mettre à  jour la valeur d'une variable avec un PUT il faut passer le nom de la variable dans l'url.

 

essayes avec: 

 

PUT /api/globalVariables/test HTTP/1.1

Host: 127.0.0.1
{"name":"test","value":"2"}

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est bien cela Ofwood

Envoyé de mon smartphone

Partager ce message


Lien à poster
Partager sur d’autres sites

PUT /api/globalVariables HTTP/1.1
Host: 127.0.0.1
Authorization: Basic xxxxxxxxxxxxxx

{"name":"toto","value":"4"}

 

ID et PW indispensable.

Sans, ça ne marche pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci bcp pour l'astuce de la variable. 

 

Petite subtilité on modifiant les variables de cette manière ça n'active pas les déclencheurs ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

@gunnm,

Si la technique de Berale24 n'active pas les déclencheurs lors du changement de valeur de la variable, tu peux essayer celle-ci (http://www.domotique-fibaro.fr/index.php/topic/3166-virtual-devices-variables/).

Je n'ai pas testé si cela activait les déclencheurs => merci pour ton retour

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

Pour ma part j'essaye d'exporter des valeurs vers le site https://thingspeak.com/

pour faire des graphiques de températures, etc....

Je précise que je suis sur HCL donc PAS de code LUA.

J'ai créé un bouton virtuel avec les paramètres : 

adresse IP : api.thingspeak.com

port : 80

puis un bouton dans lequel j'ai écris :

GET /update?key=xxxxxxxxxxxx&field1=99 HTTP/1.1
Host: api.thingspeak.com
0x0D0x0A0x0D0x0A
(xxxxxxxxxxxx= valeur de l'API KEY fourni par le site thingspeak, et 99=valeur transmise au site thingspeak)
 
Et oh miracle : ça fonctionne ! 
MAIS (eh oui, il y a toujours un mais) : je ne vois pas comment je peux écrire le code pour transmettre une valeur provenant d'une variable ou d'un capteur.... 
Si quelqu'un a une idée.. merci !!
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut à  tous,

 

Bon j'ai une question simple: y-a-t-il quelqu'un pour qui ses requêtes HTTP/GET sur HCL version 3.594 fonctionnent? Non parce que là  je ne vois vraiment pas.

 

Je veux tout simplement changer l'état d'une d'une variable prédéfinie (prenant comme valeur 0 ou 1). Et si tout fonctionne au poil avec les scènes adéquates (configuré tout comme le fait si bien jojo), ce n'est malheureusement pas le cas lorsque j'utilise mon module virtuel :angry:  (normalement lui aussi configuré au petits oignons comme le fait si bien jojo).

 

Voici mes requêtes, si des fois j'ai des moufles aux mains:

 

Module virtuel

Name: TV ON/OFF

Pièce: salon

IP: 192.168.0.20

Port TCP: 80

Bouton 1:

Label: 0 - TV OFF      ID: TV0

Requête qui appelle la scène 13 qui change la valeur de ma variable Etat_TV à  0 (Off en quelque sorte): GET /api/sceneControl?id=13&action=start HTTP/1.10x0D0x0AHost: 192.168.0.20 0x0D0x0AAuthorization: Basic xxx 0x0D0x0A0x0D0x0A

 

Bouton 2: 

Label: 1 - TV ON      ID: TV1     option "Main" sélectionnée

Requête qui appelle la scène 12 qui change la valeur de ma variable Etat_TV à  1 (On en quelque sorte): GET /api/sceneControl?id=12&action=start HTTP/1.10x0D0x0AHost: 192.168.0.20 0x0D0x0AAuthorization: Basic xxx 0x0D0x0A0x0D0x0A

 

avec xxx: <user:pwd> crypté avec base64

 

Après question scène, j'ai juste coché l'option Do not allow alarm to stop scene while alarm is running

 

Et en gros, je conditionne sur un timer: n'importe quand dans la semaine (tous les jours de la semaine sont cochés) je passe la valeur 1 (ou 0 selon la scène) à  ma variable Etat_TV. 

 

Voilà  en gros ce que j'ai configuré pour le moment. C'est simple mais ça ne fonctionne pas. Et c'est plutôt bête car je viens de configurer un petit Raspberry avec domotic et un RFXCOM pour gérer des volets somfy, et c'est plutôt mal barré si je n'arrive pas à  émuler un simple changement de variable :60:  

 

J'ai même tenté du PUT et du PUSH. Pas mieux  :huh: Bon et question user et pwd, je ne pense vraiment pas me planter. J'ai juste un caractère ? après le : qui sépare le login du psd. Si des fois cela a une incidence sur le mode d'authentification de la HCL (bien que je me connecte avec à  chaque fois que je trifouille la bête)... 

 

Je précise également que je vais vérifier la valeur de ma variable depuis le panneau Variables (logique je sais, mais bon, au point où j'en suis). Bon ben avec les scènes, c'est OK, et avec le module, ben c'est l'encéphalogramme de la grenouille... 

 

Une idée? 

Partager ce message


Lien à poster
Partager sur d’autres sites

comme tu fais appel àune scène, c'est l'IP:port de ta fibaro, pas de la TV qu'il faut mettre.

192.168.0.20 est l'IP de ta TV ou de ta box ?

Partager ce message


Lien à poster
Partager sur d’autres sites

je vois également un <space> entre "HOST:" et ton <IP>

Partager ce message


Lien à poster
Partager sur d’autres sites

(punaise quelle réponse fulgurante!!!  :60: )

 

Bon, l'ip indiquée est celle de ma box HCL. Et je viens d'essayer sans l'espace entre le HOST: et l'ip, mais ça ne change rien :(

 

Etat_TV, comme TV ON/OFF, est juste une indication pour activer ou désactiver les modules d'une greenwave sur lesquelles j'ai un appareil, lié à  ma TV, branché dessus (ma TV, un lecteur bluray, un ampli et un caisson de basse). En gros, je voulais juste m'essayer à  la gestion des variables et des modules virtuels, au travers d'un cas d'étude basique: avoir un petit module virtuel pour activer/désactiver les prises de tous ces appareils en un click seulement (plutôt que d'activer ou désactiver le module de chaque prise).

 

Bon ben là , ça commence mal  :D

Partager ce message


Lien à poster
Partager sur d’autres sites

ça DOIT fonctionner.

Vérifie :

  1. l'utilisateur a-t-il bien les droits sur ces scènes ?
  2. essaie avec un mot de passe qui ne contient pas des caractères bizarres

Partager ce message


Lien à poster
Partager sur d’autres sites

Yeehaa !!!  :D  Bon, le problème venait du type de mot de passe. En gros, ne surtout pas mettre un caractère spécial en début de votre mot de passe, sinon la HCL ne semble pas le reconnaître avec le séparateur ":" du login:pwd

 

Le truc con...  :huh:

 

Bon, en tout cas merci pour ton aide et surtout de m'avoir rassurer quant au bon fonctionnement des requêtes HTTP/GET sur ma HCL version 3.594. 

 

Je vais maintenant pouvoir jouer avec mon raspberry  :74:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon après avoir tenté avec difficultés les commandes PUT depuis une HCL, je m'attaque aux commandes GET mais vers un appareil autre que la HCL.

 

L'idée est de créer dans un module virtuel deux boutons permettant d'activiter/desactiver la détection de mouvement d'une camera Foscam.

 

Voila la commande que je dois envoyer (je sais elle est balaise) :

http://<IP>:<PORT>/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=14&snapInterval=1&sensitivity=4&triggerInterval=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=24&area1=824&area2=888&area3=2040&area4=2040&area5=504&area6=508&area7=510&area8=1023&area9=1023&usr=<USER>&pwd=<PASSWORD>

Testé et approuvé fonctionnel dans mon navigateur.

 

J'ai alors testé plusieurs syntaxes mais sans résultat :

GET /cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=14&snapInterval=1&sensitivity=4&triggerInterval=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=24&area1=824&area2=888&area3=2040&area4=2040&area5=504&area6=508&area7=510&area8=1023&area9=1023 HTTP/1.10x0D0x0AHost:<IP:port> 0x0D0x0AAuthorization: Basic <user:pwd inBase64> 0x0D0x0A0x0D0x0A

et aussi :

GET /cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=14&snapInterval=1&sensitivity=4&triggerInterval=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=24&area1=824&area2=888&area3=2040&area4=2040&area5=504&area6=508&area7=510&area8=1023&area9=1023&usr=<USER>&pwd=<PASSWORD> HTTP/1.10x0D0x0AHost:<IP:PORT> 0x0D0x0A0x0D0x0A

Si vous avez une idée, je suis preneur, car je peine la...

Partager ce message


Lien à poster
Partager sur d’autres sites

j'essaierais ceci  :

GET cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=14&snapInterval=1&sensitivity=4&triggerInterval=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=24&area1=824&area2=888&area3=2040&area4=2040&area5=504&area6=508&area7=510&area8=1023&area9=1023&usr=<USER>&pwd=<PASSWORD> HTTP/1.10x0D0x0AHost:<IP:port><space>x0D0x0A0x0D0x0A

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ca peut aider voici la commande PUT qui fonctionne sur mon HCL en v4.061.

PUT /api/globalVariables/JourNuit HTTP/1.10x0D0x0AHost:127.0.0.1 0x0D0x0AAuthorization: Basic YWRtaW46YWRtaW4= 0x0D0x0A0x0D0x0A{"name":"JourNuit","value":"Jour"}

JourNuit : nom de la variable

YWRtaW46YWRtaW4= : c'est le login/pasword en base64 (ici admin:admin)

Jour : une des valeurs de ma variable JourNuit.

 

Ha et important, dans la section global :

IP 127.0.0.1

port TCP 11111

Partager ce message


Lien à poster
Partager sur d’autres sites

pour l'encodage base64, ce n'ast pas admin:admin au lieu de admin/admin

Partager ce message


Lien à poster
Partager sur d’autres sites

en fait dans les plugin, il n'y a pas de n° de boutons. J'ai essayé de chercher sans succès dans le plugin Nest

Partager ce message


Lien à poster
Partager sur d’autres sites

×