Aller au contenu
zeldoi5

Envoyer Une Valeur À Un Périph Virtuel

Recommended Posts

Bonjour,

 

je suis débutant sur la HC2, et j'arrive avec une install de Zibase (en cours de migration donc).

Je travaille sur un script qui analyser et m'envoie au fil de l'eau les données de la zibase vers la HC2 (notamment).

 

J'ai plusieurs périphériques sur la Zibase qui ne seront pas migrés nativement sur la HC2 (ex. volets Somfy RTS, Philio... ) pour des raisons de compatibilité (enfin pas tout de suite tout du moins).

Je cherche donc à  "propager" les valeurs lues sur le suivi d'activité au fil de l'eau vers les périphériques virtuels correspondants que j'ai créé sur HC2.

 

Je comptais utiliser l'API fibaro et implémenter dans mon code les requêtes HTTP pour envoyer les valeurs.

Pour les actionneurs sur la Zibase (ex. volets Somfy), aucun problème, j'envoie la commande ZAPI (1 ou 2, peu importe) à  la zibase qui commande le volet en question,

mais pour les sondes ?

 

Exemples :

- une sonde Oregon me remonte une température sur la zibase. Mon script catch l'info et envoie la valeur par requête HTTP vers le virtuel de la HC2

- la porte du sous sol s'ouvre. Mon script catch l'info et envoie la valeur par requête HTTP vers le virtuel de la HC2.

 

J'ai essayé la requête HTTP suivante :

http://admin:mot_de_passe@192.168.1.5/api/callAction?deviceID=7&name=setValue&arg1=15

 

le device ID correspond il bien à  l'ID référencé du périph virtuel lorsqu'on rajoute un label ?

 

Désolé, je patauge un pneu :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour mettre à  jour un module virtuel depuis l'api il faut utiliser soit les boutons, soit les slider il me semble qu'il est encore impossible de mettre à  jour directement un label depuis l' API mais je peux me tromper.

 

Donc il faut utiliser pour un bouton: en name: pressButton et l'id du bouton an arg1

Et pour le slider: en name: setSlider et l'id du slider en arg1 et sa valeur (0-100) en arg2

 

Autre solution que je préfère: mettre à  jour un variable globale avec l' API puis demander un pressButton sur ton vd qui va lire la ou les variables pour mettre à  jour le ou les labels de ton vd.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Krikroff;

 

j'avais vaguement vu les commandes HTTP de l'api par cet article : http://tutoriels.domotique-store.fr/content/49/45/fr/api-commander-le-home-center-par-des-requ%C3%AAtes-http.html

 

mince... ça m'arrange guère.

Et je dois t'avouer que les solutions que tu évoquent ne me parle pas de trop (pour le moment tout du moins!)...

Si t'as un bon lien pour les variables globales, je suis preneur... sinon je vais quérir les infos à  droite à  gauche !7

 

Bonne soirée et merci pour ta réponse ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Un petit message pour démontrer la 1ère proposition de Krikroff :

 

C'est ici

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Steven pour intervention ! J'étais justement en train de zieuter l'article de Pascal :

http://domotique-info.fr/2014/02/utiliser-zibase-passerelle-enocean-pour-le-home-center-2/

 

Je vais aller zieuter de ce pas ton tuto ;)

 

Petite question annexe : pour exploiter l'API de la HC2, y a t'il une quelconque activation à  effectuer sur l'interface de la HC2, comme le signale cet article (à  l'époque!) :

http://maison-et-domotique.com/11959-home-center-de-fibaro-enfin-lapi/

 

Merci en tous cas ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Si tu suis l'article de Pascal, lorsque que tu importera le module virtuel, il faudra déplacer le code :(
 
Le code est dans le main loop et il plante après quelques heures. Il faut créer un bouton, mettre le code dedans et mettre à  la place

fibaro:call(fibaro:getSelfId(), "pressButton", "3")

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh... ouai ! Je ne maîtrise pas du tout la HC2 pour le moment... Je vais donc suivre ton tuto et ensuite, j'évaluerai la solution de Pascal en suivant tes préco ;)

 

Merci en tous cas pour tes réponses

 

Edit : effectivement, il plante après quelques heures! Suivons ton tuto ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux suivre le tuto de Pascal mais au lieu de téléchargé le module Zibase_script.vib, prend celui-ci. Je te l'ai déjà  corrigé. Il faudra que tu mets dans la case IP Adresse, l'adresse IP de ta Zibase.

 

 

zibase.vfib

Partager ce message


Lien à poster
Partager sur d’autres sites

BOnsoir Steven, j'ai essayé rapidement ta solution.

 

Soucis, en testant la requête à  la mano (dans FF), j'ai un retour d'erreur :

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

Voici les requêtes type (avec les bons LOGIN et PASS renseignés :)  ) :

http://<LOGIN>:<PASS>@192.168.0.20/api/callAction?deviceID=SEXTT&name=setSlider&arg1=1&arg2=12.2

http://<LOGIN>:<PASS>@192.168.0.20/api/callAction?deviceID=SEXTH&name=setSlider&arg1=2&arg2=82

 

J'ai un doute sur le device ID? c'est bien l'ID de chaque slider ?

141114084311867301.jpg

 

Car je n'ai pas d'ID sur le périphérique virtuel :(

1411140847416457.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

L'id du module virtuel est dans l'url quand tu modifie le module. C'est celui que tu dois renseigner. Argent est le numéro de position du slider concerner (le 2eme afficher = 2).

A toi de jouer :)

Envoyé de mon portable grâce àmes petits doigts.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de le voir ! J'allais éditer mon post pour dire mon erreur, arggggg !

 

Merki !

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon ma requête HTTP passe... mais les valeurs ne sont pas affichées.... pas facile de se mettre sur une nouvelle plateforme ! :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Les sliders bougent ? Si oui, tu as gagné.

Mais tu devrait quand même essayer la méthode décrite sur domotique-info car la Zibase supporte mal d'envoyer trop souvent des requêtes http.

Envoyé de mon portable grâce àmes petits doigts.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Steven pour ta réponse.

Alors, ça ne marche pas : les slider n'évoluent pas.

 

Par contre, dans le doute, j'ai créé un nouveau virtuel avec des sliders, et là ... miracle ça a fonctionné !

Je pense que le fait de créer, supprimer,rajouter des bouttons/sliders a fouttu la zone dans la HC2...

 

Dans la foulée, j'ai essayé de modifié par requête HTTP des boutons de virtuels, mais ça n'a pas passé.

 

Pour info : les requêtes HTTP ne sont pas générées par la zibase mais par un script qui analyse en temps réel le suivi d'activité de la ZIbase. Comme cela, on a l'info sur la HOmeCenter2 en temps réel aussi.

Si tout fonctionne comme je le souhaite, je releaserai le code prochainement sur mon Github ;)

 

Question annexe : vu que la zibase génère en JSON, on pourrait pas améliorer le script LUA de Pascal pour s'affranchir du parser XML ?

Partager ce message


Lien à poster
Partager sur d’autres sites

En utilisant les requête Http ou le json, tu passes par les serveurs de zodianet.

Mon module sur domotique-info attaque directement le sensor.xml qui est sur le zibase. Donc même si tu n'as plus de connexion internet cela fonctionne encore.

Voili voilàle pourquoi :)

Donc perso, pour les sensors, je préfère utiliser le sensor.xml toute les 10 secondes. Par contre pour une consommation instantanée, la requête http peut s'avérer plus judicieuse.

Envoyé de mon portable grâce àmes petits doigts.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui, j'avais oublié ce détails (que le JSON était sur les serveurs de zodianet!). D'ailleurs c'est un choix très curieux de leur part... m'enfin.

 

J'ai des périphériques non supportés (par la HC2) sur la Zibase : philio 4 en 1.

Ca permet de les conserver sur l'install Domotique.

 

Pour ne pas être trop "spammé" par les sondes Oregon, je fixe une tempo dans le script...

 

Si le script t'intéresse (par curiosité), je t'enverra ça...

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis toujours intéressé. Merci d'avance :)

Envoyé de mon portable grâce àmes petits doigts.

Partager ce message


Lien à poster
Partager sur d’autres sites

×