Vous êtes nombreux à m’avoir demandé s’il était possible de piloter une ZiBASE à partir du contrôleur domotique Home Center Lite, voici en quelques étapes comment procéder…
Certains d’entre vous utilisent en effet une Zibase en contrôleur secondaire, un bon moyen dans ce cas de gérer de multiples protocoles comme le Somfy RTS, EnOcean, Chacon, etc…
La famille des Home Center permettent de créer des périphériques virtuels mais contrairement au HC2 la version Lite n’est pas capable d’éditer des commandes complexes de type Lua.
Pour autant il est tout à fait possible de créer des commandes (String) et donc d’envoyer des url basées sur l’API ZiBASE (ZAPI).
Pour envoyer une commande à la Zibase il suffit de reprendre la documentation ZAPI pour y trouver ce dont nous auront besoin, envoyer des url de type HTTP.
La requête s’effectue par l’URL : http://zibase_ip/cgi-bin/domo.cgi?cmd=xxxxxxxxxxxxx
Elle doit être faite à partir du LAN, car ZiBASE est susceptible de vérifier que le demandeur se situe bien sur le LAN et la requête peut être rejetée dans le cas contraire.
Exemples :
- Allumage d’un périphérique d’adresse C1 de protocole par défaut
- zibase_ip/cgi-bin/domo.cgi?cmd=ON C1
- Allumage d’un périphérique d’adresse C1 de protocole 2
- zibase_ip/cgi-bin/domo.cgi?cmd=ON C1 P2
- Extinction d’un périphérique d’adresse C2 de protocole 3
- zibase_ip/cgi-bin/domo.cgi?cmd=OFF C2 P3
- DIM à 25% d’un périphérique d’adresse C3 de protocole 3
- zibase_ip/cgi-bin/domo.cgi?cmd=DIM C3 P3 25
- Lancement d’un scenario N°5 puis allumage d’un péri phérique
- zibase_ip/cgi-bin/domo.cgi?cmd=LM 5.ON C1 P2
Il suffit donc de créer un Device Virtuel sur votre Home Center Lite et renseigner l’adresse IP de votre Zibase comme ci-dessous.
Ensuite il ne reste plus qu’à ajouter les boutons que vous voulez créer et qui correspondront aux commandes désirées comme dnas mon exemple pour une Lampe connectée sur un module Chacon.
Comme vu plus haut la commande sera dans ce cas du type Action (cmd=ON) et numéro du périphérique (A1).
GET /cgi-bin/domo.cgi?cmd=ON%20A1 HTTP/1.1
Pensez à sauvegarder votre Device en cliquant sur la disquette à droite de votre écran.
Votre module est déjà créé, vous pourrez même modifier et adapter l’icone associée que je vous ai mis à disposition en fin de tuto.
Et enfin dernière étape, autoriser l’adresse IP de votre HCL sur la ZiBASE en créant un scénario comme ci-après. Pensez à cocher la case « Lancer au démarrage de Zibase ».
Vous pouvez dès maintenant tester votre Device Virtuel en cliquant sur le boutons et en vérifiant dans le log du suivi d’activité Zibase.
Ce genre de Périphérique Virtuel est également utilisable avec d’autres objets communicants capable de recevoir des requêtes HTTP en direct ou en passant par un serveur PHP…
Et pour ceux qu’ils veulent connaitre les différences avec le HC2 en terme de Device Virtuel et de scripts Lua, je vous invite à lire notre tuto ici.
10 Comments
Fred
Salut Pascal
J’utilise déjà le HC2 pour commander la zibase, avec une commande du type:
HC2 = Net.FHttp(« 192.168.xxx.xxx »)
HC2:GET(« /cgi-bin/domo.cgi?cmd=ON%20C1%20P10 »)
Déjà, ta commande est plus simple (pas d’IP à renseigner dans chaque bouton)
Par contre, 3 choses:
dans ta commande, pourquoi rajoutes-tu « HTTP/1.1 »?
Ensuite, dans la zibase, tu autorises l’adresse distante du HC, moi je ne l’ai pas fait mais ça fonctionne quand même.
Enfin, ça veut dire qu’il n’y a aucune sécurité dans les commandes envoyées à la Zibase, car pas de User/mdp nécessaire !
Pascal STEPHANY
Salut Fred
C’est effectivement plus simple mais personnellement j’ai du autoriser l’adresse du HCL à mon atelier pour que ça fonctionne. Pas d’User/mdp à condition d’être sur le même réseau local sans quoi il faut passer par le serveur Zibase.net…
Dans le protocole HTTP, une méthode est une Commande spécifiant un type de requête (ex : GET), c’est-à-dire qu’elle demande au serveur d’effectuer une action. En général l’action concerne une ressource identifiée par l’URL qui suit le nom de la méthode. Source wikipédia 😉
GET / HTTP/1.1
Fred
Ce qui me chagrine dans tout ça, par ce que je connais la chauve-souris enragée, c’est que si quelqu’un arrive à pirater le WIFI, il peut executer des commandes sur la Zibase dépourvue de contrôle d’accès en local !
Ensuite, pour l’histoire du HTTP/1.1, est-ce que c’est un protocole par défaut pour qu’on ait pas besoin de le spécifier, au même titre que le protocole par défaut radio de la Zibase? (je dis bien au même titre, parce que ça n’a rien à voir, j’en suis conscient !!!)
Pascal STEPHANY
Tout à fait et pourquoi je n’arrête pas de dire qu’une box domotique n’est pas une centrale d’alarme 😉 Et si quelqu’un pirate mon install domotique au pire il va jouer avec mes volets ou l’éclairage, par contre pour la partie alarme il va devoir faire beaucoup plus d’effort…
Fred
on est 100% d’accord.
Je comptais initialement pouvoir commander via l’IPX un contact clé pour activer/désactiver l’alarme, et il n’en est plus question.
Par contre, je vais faire une zone filaire, commander par l’IPX, qui pourra me permettre de faire sonner l’alarme à distance quand je les radars détectent des intrus dans le jardin et que mon DVR m’envoie une photo de la CAM concernée.
Je pense aussi retirer l’ouverture de la porte de garage, ou mieux encore la subordonner à l’état de l’alarme. Si armé, par d’ouverture via l’IPX et la BOX.
Pascal STEPHANY
Il ne faut pas non plus tomber dans la paranoïa systématique car en plus de pirater ton wifi il faudra savoir que tu as une box domotique, laquelle et comment elle fonctionne et quel périphérique actionner…
Fred
tu sais, j’habite à coté des bois et il y a plein de chauve-souris !!! 😉
Ceci dit, pour les ouvrants, il faut faire attention quand même
Fred
ne serait-ce qu’un bug malvenu ou une erreur d’appel HTTP d’un scénario via une autre box…
Pascal STEPHANY
oui mais dans ce cas mais avec un appel protégé l’erreur est également envisageable 😉
Les chauve-souris c’est mes amies, je suis un ancien spéléo 🙂
samuel
Bonjour, je dispose d’une zibase, mais aussi d’un autre système de domotique mêlant un Bus Legrand My Home et un produit Americain appelé RTI offrant une large possibilité d’interface graphique sur ipad et autres. J »aimerais ajouter dans RTI mes périphériques zibase (chacon et module fibaro). Le plus simple pour interfacer RTI avec la zibase est d’utiliser les commandes http, ce que j’ai fait. Ce qu’il me manque : connaitre l’état. d’où ma question : existe t-il une commande http pour récupérer l’état d’un périphérique ?