Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je viens de passer à  la version 4.032 sur ma HC2.

J'ai plusieurs problèmes avec cette nouvelle version quand j'utilise l’Api:

 

J'ai une Raspberry PI avec une clé 3G, et je m'en servais pour pouvoir allumer une lampe (ou piloter un module) en envoyant un SMS à  la Raspberry.

Je suis débutant, mais j'avais réussi à  faire ce que je voulais en utilisant la commande suivante directement dans l'explorateur:

   X://admin:password@192.168.xxx.xxx/api/callAction?deviceID=8\&name=turnOn

J'ai ensuite utilisé cette commande dans un fichier "bash" exécuté par le PI dès réception d'un SMS (après traitement du contenu du SMS):

   wget X://admin:password@192.168.xxx.xxx/api/callAction?deviceID=8\&name=turnOn

 

Note: J'ai remplacé le "http" par X car ça cachait une partie de la commande en la transformant en lien.

 

Je ne sais pas si tout cela est très correct du point de vue des gourous en programmation  :rolleyes: , mais ça fonctionnait bien jusqu'à  ce que je passe à  la 4.032.

Maintenant, la même commande ne fait plus rien.

Si je la teste directement dans un explorateur, j'obtiens le message suivant:

{"type":"ERROR","reason":"WRONG_TYPE","message":"deviceID: expected unsigned int"}

J'ai vérifié l'ID de mon module de test: c'est toujours "8"...

 

Que faut-il changer à  cette commande pour obtenir le résultat d'avant ?

 

 

De plus, toujours en utilisant mon Raspberry, je souhaiterais modifier la valeur d'une variable globale crée sur la HC2.

 

Dans mon fichier ".sh" et aussi directement dans l'explorateur, j'ai essayé ces commandes, mais sans aucun résultat (et pas de message d'erreur non plus...)

 

     - X://admin:password@192.168.xxx.xxx/api/globalVariables/mavariable curl -X PUT -d '{"name":"mavariable","value":"1"}'

 

     - X://admin:password@192.168.xxx.xxx/api/globalVariables/mavariable curl -X POST -d '{"name":"mavariable","value":"1"}'

 

Note: J'ai remplacé le "http" par X .

 

Quelle commande dois-je passer pour modifier "mavariable" ?

 

 

Merci de votre aide.

 

Eric

Posté(e)

Personne pour m'aider ???

 

Personne ne modifie de variable en utilisant l'API ?

 

NB: je viens de passer à  la version 4.033 ... c'est toujours pareil !

Posté(e)

Tu devrais tenter:

/api/devices/8/action/turnOn

L'api est documentée en faisant un/docs derrière l'IP de ton HC2

Envoyé de mon smartphone

Posté(e)

Merci Krikroff !!!

 

En ce qui concerne la commande pour allumer ou éteindre un module: ça marche !

 

Mais j'ai toujours du mal à  modifier une variable depuis mon Raspberry.

En utilisant la page que tu m'indiques, on peut tester directement la modification de la variable, et là , ça marche !!!

 

C'est quand je veux passer la commande depuis le Raspberry que je n'y arrive pas.

 

En fait, j'ai un abonnement "Tempo" avec EDF, et je voudrais gérer mon chauffe-eau et mon chauffage électrique en fonction de la couleur (donc de la tarification) des jours.

Je récupère les infos avec le Rapberry, et je voudrais mettre les variables "jour_bleu", "jour_blanc" et "jour_rouge" sur la box Fibaro pour gérer les modules qui commandent mon chauffage.

 

Pour passer la variable "jour_rouge" à  1 , j'utilise la commande suivante:

 

curl -X PUT -d '{"name":"jour_rouge","value":"1"}' http://admin:password@192.168.1.114/api/globalVariables

 

mais j'obtiens le message d'erreur suivant:

 

{"type":"ERROR","reason":"name","message":"No variable name in uri"}

 

Je dois me planter dans la syntaxe, oublier une accolade ou un guillemet... :(

 

Une idée ???

 

Merci d'avance

  • 2 semaines après...
Posté(e)

Bon, je me réponds à  moi-même,

Après avoir ramé pendant un bon bout de temps, j'ai enfin trouvé une solution qui fonctionne !!!

Si ça peut aider les gens comme moi qui ne s'y connaissent pas vraiment en programmation... :)

 

En fait, je n’étais pas très loin de la vérité:

C'était juste un problème de syntaxe avec la commande "curl" lancée sur le Raspberry.

 

- Pour piloter un module, il faut exécuter cette commande depuis n'importe quel système tournant sous Linux et se trouvant sur le même réseau que la HC2:

 

wget http://admin:password@192.168.xxx.xxx/api/callAction?deviceID=8\&name=turnOn (ou turnOff)

 

- Pour modifier une variable existante (ici: "jour-rouge"), il faut exécuter cette commande:

 

curl -X PUT http://admin:password@192.168.xxx.xxx/api/globalVariables/jour_rouge -d'{"value":"1"}'

 

Il fallait "juste" mettre les paramètres au bon endroit :4:

 

Il ne me reste plus qu'à  peaufiner le programme qui va me gérer mon chauffage en fonction du tarif EDF ...

×
×
  • Créer...