Exemple API en PHP

Pour intégrer la ZiGate à votre box domotique, vous pouvez vous inspirer de l’exemple suivant. J’ai utilisé une Raspberry Pi et des pages Web écrites PHP.

Lien téléchargement vers l’exemple complet

  • Dans le fichier Excel vous retrouverez quelques notions, protocole, principes, scénarios et aides au développement du plugin. Vous pouvez aussi consulter la documentation du site
  • Dans le fichiers ZIP, il y a un exemple complet en PHP pour vous permettre de voir un cas concret de fonctionnement. (comme on dit, la doc c’est le code)
    Le code a été fait assez rapidement et peut comporter des petites erreurs (et non optimisé) mais j’ai pu tester l’ensemble et vérifier que ça fonctionne.Démarches à suivre :* Brancher la ZiGate sur un port USB.
    * Installer ou utiliser un serveur apache + php
    * Dézipper le fichier zigate.zip et copier le répertoire zigate dans le www de votre serveur web
    * Modifier le fichier includes/config.php en fonction de la config :
    define(‘COM’, « /dev/ttyUSB0 »);
    $in = « /var/www/html/zigate/input »; // chemin vers fifo
    * Ouvrir 2 clients putty et lancer respectivement sur chaque console serial.php et parser.php (on simule 2 threads)

    Comme son nom l’indique serial.php permet de gérer le port série de la ZiGate, elle va recevoir toutes les données provenant de la passerelle, transcoder les données et les écrire dans la FIFO.
    parser.php va dépiler la FIFO et traduire les informations.

    Il est très important de respecter ce schéma de principes pour éviter les pertes de données. Il est indispensable d’avoir 1 thread de communication et 1 thread pour le traitement des données.
    principes zigate serialv

    * Lancer à travers le navigateur sendCmd.php (permet d’envoyer des commandes à la ZiGate )
    * Pour obtenir les autorisations nécessaires (écriture sur la com de l’utilisateur www-data), il faudra exécuter la commande suivante :

    sudo adduser www-data dialout

    * Suivre les instructions dans le fichier Excel tab « exemple de cas »

    Je n’ai pas lister dans le parser.php et le sendcmd.php toutes les commandes et informations disponibles de la ZiGate.
    Vous pouvez consulter la liste de toutes les commandes sur le site.

Translate »