Créer une sonde virtuelle NetAtmo pour votre solution domotique

La station météo NetAtmo que je vous ai présenté il y a quelques jours ici offre la possibilité d’exploiter ses données via une API…

Nous allons pouvoir donc créer des sondes virtuelles dans nos applications ou box Domotique et les intégrer dans des scénarios de chauffage ou d’alertes.

Il suffit de créer une application sur la page NetAtmo dédiée à l’API pour en récupérer certaines données nécessaires à la suite.

Une fois connecté sur dev.netatmo.com avec ses propres identifiants, « Create An App » et remplir les champs vides.

Seetings App NetAtmo

Ensuite il faut télécharger le SKK PHP sur le répertoire GITHUB afin de l’installer et de le configurer sur un serveur perso ou son NAS pour ceux qui en possède un.

Ouvrir le fichier config.php pour l’éditer avec vos paramètres récupérés dans votre application NetAtmo.

config php netatmo

Puis créer un fichier exemple.php avec le code php suivant :

#!/usr/bin/php
 <?php
 /*
 Authentification au Serveur Netatmo avec vos identifiants API
 */
 require_once 'NAApiClient.php';
 require_once 'Config.php';
$client = new NAApiClient(array("client_id" => $client_id, "client_secret" => $client_secret, "username" => $test_username, "password" => $test_password));
 $helper = new NAApiHelper();
try {
 $tokens = $client->getAccessToken();
} catch(NAClientException $ex) {
 echo "An error happend while trying to retrieve your tokens\n";
 exit(-1);
 }
$devicelist = $client->api("devicelist", "POST");
 $devicelist = $helper->SimplifyDeviceList($devicelist);
 $mesures = $helper->GetLastMeasures($client,$devicelist);
echo "<DOMONETATMO>";
 echo "<STATION_NAME>".$mesures[0]['station_name']."</STATION_NAME>";
 echo "<INT>";
 echo "<TEMPERATURE>".$mesures[0]['modules'][0]['Temperature']."</TEMPERATURE>";
 echo "<CO2>".$mesures[0]['modules'][0]['CO2']."</CO2>";
 echo "<HUMIDITY>".$mesures[0]['modules'][0]['Humidity']."</HUMIDITY>";
 echo "<PRESSURE>".$mesures[0]['modules'][0]['Pressure']."</PRESSURE>";
 echo "<NOISE>".$mesures[0]['modules'][0]['Noise']."</NOISE>";
 echo "</INT>";
 echo "<EXT>";
 echo "<TEMPERATURE>".$mesures[0]['modules'][1]['Temperature']."</TEMPERATURE>";
 echo "<HUMIDITY>".$mesures[0]['modules'][1]['Humidity']."</HUMIDITY>";
 echo "</EXT>";
 echo "</DOMONETATMO>";
 ?>

Ce fichier récupérera vos données NetAtmo grâce à votre fichier config.php et générera une réponse xml. Vous pourrez ainsi interpréter les balises xml dans vos box ou applications domotique compatible avec ce type de données comme la Zibase, eedomus, Homeseer et bien d’autres…

Capteur NetAtmo Eedomus

Un exemple pour votre Box Domotique eedomus :

  • Créer un capteur HTTP
  • Sélectionner Nombre Décimal
  • Inscrire votre chemin url de votre fichier xxxxxxx.php
  • Donner le chemin de la balise

Sonde NetAtmo Zibase

Sur une Zibase la procédure est différente car l’interprétation xml ne prend en compte qu’un chemin de balise. Il faudra donc un autre exemple PHP pour interpréter chaque sonde NetAtmo

Vous pouvez dans ce cas utiliser l’exemple de Cédric qui met son code PHP à disposition ou faire le votre avec les exemples fournis par le SDK.

  • Affecter un chaine de caractère à une variable et indiquer la balise
  • Indiquer l’URL dans « commander par http » et lire en retour la valeur balisée par la variable
  • Alimenter une sonde par la variable et appliquer une conversion plus un offset
  • Récupérer l’ID de la sonde dans le suivi d’activité
  • Créer une sonde virtuelle avec cet ID

Ceci n’est qu’un exemple d’utilisation de l’API NetAtmo via le SDK PHP mais il est possible d’aller encore beaucoup plus loin, nous y reviendrons un peu plus tard pour d’autres utilisations…

Netatmo_station_meteo_iphone_ipad

En attendant voilà de quoi alimenter vos solutions domotique de nouvelles sondes et de nouvelles conditions pour vos scénarios.

Author: Pascal STEPHANY

Rédacteur en Chef du Blog Domotique Info, je suis avant tout un passionné de nouvelles technologies depuis de nombreuses années... Je partage mon expérience Domotique sur ce Blog depuis 2008 en réalisant des tests ou des tutos avec comme objectif, celui de rendre la Domotique accessible à tous... Après avoir travaillé en tant qu'installateur Domotique pendant 5 ans j'ai créé mon entreprise de vente en ligne My Domotique en 2012, une boutique spécialisée dans les solutions Domotique grand public.

Share This Post On

12 Comments

  1. Merci Sébastien, il ne te reste plus qu’à faire le plugin ;)

  2. Bonjour, est-ce que cela fonctionne aussi avec la Zipabox? Merci, Frankie666

  3. Ça devrait être possible avec la nouvelle mise à jour mais je n’ai pas encore eu le temps de faire mon petit test…

  4. bonjour,
    un petit soucis je remonte a chaque fois l’erreur :
    « An error happend while trying to retrieve your tokens »
    j’ai beau relire leur doc je ne comprend. J’ai pourtant tester les deux codes possibles avec compte ou avec demande d’accès pour l’appli ! rien y fait toujours cette erreur !
    Quelqu’un aurai une idée ?
    merci
    Bien a vous !

  5. Bonjour

    @juke94, Pareil je galére…

  6. et pour la fibaro …. possible en LUA ?

  7. Merci pour ce scrpit!
    En revanche le chemin de la balise, je n’arrive pas à trouver le bon…
    Pouvez-vous m’aider? Le « grisé » dans l’exemple pour l’eedomus, on met quoi à la place?

    Merci beaucoup pour votre aide!

  8. Bonjour,
    J’ai écrit un petit tutorial pour récupérer les données de la station Netatmo dans un module virtuel Fibaro HC ou les affecter à une variable globale pour les réutiliser ensuite.
    Le code est basé sur le script php de C. Locqueneux, modifié pour renvoyer une réponse json exploitable par le FIbaro HC2.
    Si cela peut rendre service à certains parmi vous, c’est ici : http://www.eb-home.eu/blog/netatmo-data-on-fibaro-hc2

  9. Merci pour ton script sur lequel je devais me pencher depuis un bon moment ;)

    Je suis sur qu’il rendra effectivement service à certains utilisateurs du HC2…

    Pascal

  10. Bonjour,
    Merci pour cet article très intéressant.
    Possédant une Zibase, j’aurai aimé savoir comment lié l’humidité et la température sur la même sonde virtuelle (Même variable ? / variable différente …??)
    En vous remerciant

  11. bonjour,
    J’ai créé un serveur LAMP sous raspberry Pi, crée une application avec netatmo j’ai obtenu un « Client id » et « Client secret » copier les fichiers de configuration dans le dossier www de mon serveur. Au niveau du serveur aucun problème un fichier test .php ou index.html est accessible et le serveur fonctionne parfaitement. mon gros problème c’est que je n’y connais rien en php et après avoir lutté pendant deux demi-journées je n’arrive toujours pas configurer les fichiers malgré toutes les aides accessibles sur le web:
    http://forum.netatmo.com/viewtopic.php?f=5&t=1026
    http://dev.netatmo.com/doc/authentication/refreshtoken
    http://maison-et-domotique.com/books/script-infos-netatmo-sur-sa-box-domotique/
    http://domotique34.com/recuperer-les-donnees-de-votre-netatmo-dans-vos-box-domotique-a-laide-de-lapi/

    Mon gros problème vient de l’authentification que je n’arrive pas a initialisé « instantiate a new NAApiClient object with your client_id and client_secret: » je n’ai pas compris ou et comment crée un autre fichier ??
    Merci de votre aide.
    Je sais que le script de maison et domotique fonctionne avec ma boxe eedomus mais je voudrais récupérer les infos avec ma propre appli.
    Cordialement

Laisser un commentaire