Créer une sonde virtuelle NetAtmo pour votre solution domotique

STEPHANY Pascal 17 décembre 2012 7
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.

7 Comments »

  1. CaptainIgloo 29 janvier 2013 at 19:17 -
  2. Pascal STEPHANY 29 janvier 2013 at 20:22 -

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

  3. Frankie666 17 février 2013 at 18:49 -

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

  4. Pascal STEPHANY 17 février 2013 at 19:02 -

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

  5. juke94 28 février 2013 at 0:07 -

    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 !

  6. Puccin0 6 mars 2013 at 14:31 -

    Bonjour

    @juke94, Pareil je galére…

  7. Pascal 7 mai 2013 at 9:58 -

    et pour la fibaro …. possible en LUA ?

Leave A Response »