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.
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.
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…
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
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…
En attendant voilà de quoi alimenter vos solutions domotique de nouvelles sondes et de nouvelles conditions pour vos scénarios.
















Voici pour la Vera :
http://forum.netatmo.com/viewtopic.php?f=5&t=1026
Merci Sébastien, il ne te reste plus qu’à faire le plugin
Bonjour, est-ce que cela fonctionne aussi avec la Zipabox? Merci, Frankie666
Ça devrait être possible avec la nouvelle mise à jour mais je n’ai pas encore eu le temps de faire mon petit test…
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 !
Bonjour
@juke94, Pareil je galére…
et pour la fibaro …. possible en LUA ?