Site icon Abavala !!!

Sauvegarde des mesures reçues par la Zibase sur le NAS (1)

Problématique : La Zibase permet de visualiser les données des différentes sondes depuis son l’application Web ou iPhone.  L’historique sauvegardé à ce jour n’est pas très profonds : 1 mois maximum à ce jour.  Peut-on sauvegarder ses données sur le NAS?

Solution : C’est possible en associant à un évènement “réception de données” le déclanchement d’une URL sur un serveur web hébergé sur le NAS.

Descriptif de la solution

La Zibase permet de récupérer les données issues des différentes sondes qui lui sont compatibles et d’en faire la restitution avec l’application web dédiée (www.zibase.net) ou bien l’application iPhone/iPad.  A ce jour cette solution n’est pas adaptée à une présentation statistique sur une profondeur de plus de 1 mois.  On ne peut pas non plus afficher les températures des différentes pièces en même temps.

Sur le forum de touteladomotique.com onk1 présente sa solution de sauvegarde de données vers une base MySQL.  L’utilisation du couple PHP + MySql la rend compatible avec un hébergement de type pages personnelles Free ou bien NAS (de maque Synology en ce qui me concerne).

Il “suffit” de créer un évènement à la réception des données d’une sonde et de la rediriger sur le NAS via une requête HTTP.

Mise en oeuvre

La technique est simple et efficace:

Sur le net:

Sur le NAS:

  • créer un site web (ou en utiliser un existant) et y placer le contenu du ZIP téléchargé
  • activer MySql sur le NAS si ce n’est pas déjà fait
  • se connecter à la base MySql du NAS (via PHPMyAdmin par exemple)
  • jouer le script de création de la base du répertoire \db.  Cela créera une base Zibase dans MySql
  • Sur le NAS modifier le script /include/config.php conformément à votre environnement:


// Environement LOCAL
 case “127.0.0.1“:
 error_reporting(E_ALL ^ E_NOTICE);
 $client_config[‘cookie_domain’]  = “localhost”; 
 $client_config[’emailSmtpHost’]  = “”;         //  serveur smtp
 $client_config[‘debugMode’]   = true;
 $client_config[‘dbDriver’]   = “mysql”;       // driver utilisé pour la connexion
 $client_config[‘dbServer’]   = “localhost“;      // serveur de bases de données
 $client_config[‘dbLogin’]   = “root“;       // login du serveur de bases de données
 $client_config[‘dbPwd’]    = “password“;        // mot de passe du serveur de bases de données
 $client_config[‘dbName’]   = “zibase”;       // nom de la base de données
 $client_config[‘basePath’]   = “C:/wamp/www/zibase/”;   // racine du système
 $client_config[‘siteUrl’]   = “http://localhost/zibase/“;  // url d’accès au site
 $client_config[‘siteName’]   = “zibase DEV”;      // nom du site
 break;

Sur la Zibase :

  • Se connecter au configurateur en mode Expert
  • Dans l’onglet Domotique => Scenarios, ajouter un scénario.  Ce scénario se déclenchera à la réception de données de la part de la sonde.  Ce scénario redirigera les données au NAS via une requête HTTP.

C’est tout!

Conclusion

La solution fonctionne sans problèmes.  La discussion s’effectue rapidement entre la Zibase et le NAS.  Il n’y a pas une série importante de données en base car le code PHP est fait de telle manière qu’il n’y a de sauvegarde de données que 2 fois par heure: à l’heure pile et à la demi.

Le principal souci vient de la Zibase elle même: les requêtes HTTP sont très gourmandes en mémoire.  Il faut savoir que lorsque l’on sauvegarde un scénario Zodianet compile tout le paramétrage effectué et le fournit à votre Zibase.  Les requêtes HTTP étant du “texte libre” il ne peut pas être oprimisé à l’avance et prends donc beaucoup de place dans le code généré.  Si vous avez une dizaine de sondes et beaucoup de scénari vous atteindrez les limites de la mémoire:

En adaptant le code PHP on peut créer un fonctionnement similaire pour la sauvegarde des données de consomation éléctrique pour laquelle le pas temporel de la 1/2 heure est trop important.  J’effectue ainsi une sauvegarde en base uniquement si la consomation d’électricité change depuis la dernière mesure sauvegardée.

En adaptant encore une fois le code PHP on peut également sauvegarder des évènements comme par exemple l’ouverture d’une fenêtre afin de voir son impact sur la température de la pièce.

PS: Concernant la restitution de données je ne l’ai pas testé car je vais mettre une autre solution en oeuvre.  Les graphiques générés pas le code de onk1 sont bien sympathiques tout de même. 

A suivre donc!

Quitter la version mobile