Script mis à jour: infos Netatmo sur sa box domotique

Je vous ai présenté hier la station météo Netatmo, une station météo connectée pour iPhone (et appareils Android également).

Cette station météo dispose d'une API, ce qui peut permettre par exemple de récupérer les infos de cette station météo sur son système domotique.

J'ai réalisé un petit script très simple qui se connecte à son compte Netatmo et récupère les mesures de la station météo pour en faire un fichier xml. Ces informations seront donc récupérables par tout système capable de lire un fichier xml, comme par exemple la box eedomus, la Zibase, ou encore la Vera (via un script Lua).

Je met le script à votre disposition comme les scripts vus précédemment, pour ceux qui n'ont pas la possibilité de l'héberger eux même. Pour ceux qui préfèrent l'héberger eux même, vous pouvez télécharger la source ici.

 

[box_tip]Ce script a été mis à jour pour supporter les modules additionnels qui viennent de sortir pour l'intérieur.[/box_tip]

 

I. Utilisation du script

 

Le script est vraiment très simple. Il suffit d'appeler l'adresse

 

https://www.maison-et-domotique.com/scripts/netatmo.php?login=VOTRE_EMAIL&password=MOTDEPASSE&box=VOTRE_BOX

 

en complétant bien sûr l'adresse avec l'adresse mail de votre compte Netatmo et votre mot de passe. Pour le paramètre VOTRE_BOX (facultatif), il suffit d'indiquer le nom de la box utilisée (par exemple zibase, eedomus ou vera). C'est surtout utile actuellement pour la Zibase, qui nécessite de multiplier par 10 les températures, chose effectuée automatiquement par le script si vous indiquez le type de box.

Vous obtiendrez un fichier xml de cette forme, qui contiendra toutes les informations:

A lire également:
Nouveau lifting pour l’application Home + Security de Netatmo

 

xml version=”1.0″ encoding=”utf8″ ?>
<netatmo>
<temperature_interieure>22.8</temperature_interieure>
<co2>472</co2>
<humidite_interieure>54</humidite_interieure>
<pression>1020.6</pression>
<niveau_sonore>36</niveau_sonore>
<temperature_exterieure>21.2</temperature_exterieure>
<humidite_exterieure>70</humidite_exterieure>
<temperature_additionnel1>21.8</temperature_additionnel1>
<co2_additionnel1>521</co2_additionnel1>
<humidite_additionnel1>57</humidite_additionnel1>
<temperature_additionnel2>21.9</temperature_additionnel2>
<co2_additionnel2>518</co2_additionnel2>
<humidite_additionnel2>57</humidite_additionnel2>
<temperature_additionnel3>22.3</temperature_additionnel3>
<co2_additionnel3>628</co2_additionnel3>
<humidite_additionnel3>58</humidite_additionnel3>
</netatmo>

Si vous possédez des modules additionnels, les informations seront également récupérées dans les tags temperature_additionnelx, co2_additionnelx, et humidite_additionnelx, “x” étant le numéro du module concerné.

 

II. Exemple d'utilisation

 

J'utilise ce script depuis plusieurs jours avec ma box eedomus. La configuration est très simple, il faudra juste créer un capteur HTTP pour chaque donnée qu'on souhaite récupérer. Exemple avec la mesure de CO2 du module principal:

 

netatmo_co2_eedomus

 

Dans URL de la requête, on indique l'adresse du script, dans laquelle vous aurez complété votre adresse mail et votre mot de passe, bien sûr.

Ensuite dans le chemin Xpath, vous indiquez //co2 pour récupérer la mesure de CO2. Vous pouvez indiquer l'une des balises présntes dans le fichier xml pour récupérer la valeur souhaitée.

Autre exemple pour le niveau de bruit:

 

netatmo_bruit_eedomus

 

Avec l'arrivée des modules additionnels, on peut également récupérer leurs infos, exemple pour la température du module additionnel n°1:

 

netatmo_additionnel_eedomus

 

[box_warning]Au niveau de la fréquence de la requête, inutile de mettre moins de 10min. D'une part vous risquez de saturer le serveur, mais surtout la station Netatmo ne remonte les infos que toutes les 10min, il n'y a donc aucun intérêt à l'interroger plus souvent.

Si des abus sont faits au niveau des temps de requête, je serais obligé de suspendre ce script, ce qui serait dommage :/[/box_warning]

 

On peut ensuite utiliser les différentes représentations disponibles sur l'eedomus. J'ai par exemple ceci sur ma box:

 

031

 

Bien sûr on peut consulter l'historique des données:

 

042

 

Et les utiliser dans des scénarios. Un exemple ici qui déclenche un message vocal sur le Karotz si on dépasse le seuil des 1000 ppm en CO2:

 

051

 

Ces différentes informations peuvent être utiles pour bien des cas. Concernant la température et l'humidité, c'est du classique. Mais on peut imaginer également utiliser le niveau sonore pour indiquer une présence dans la maison, voire même le niveau de CO2, qui a vite fait d'augmenter quand plusieurs personnes sont présentes dans la pièce. Le niveau de CO2 peut aussi être utile pour augmenter ponctuellement la vitesse de la VMC afin de renouveler l'air, etc…

Ces informations peuvent également être récupérées sur la Zibase, en utilisant une requête http récupérant une valeur dans une variable:

 

zibase

 

Ou sur la Vera en utilisant la fonction extractElement dans un script Lua. Par exemple:

 

local function extractElement(tag, xml, default)

 local pattern = "< "..tag..">(.*)< /"..tag..">"
 local result = (xml:match(pattern) or default)
 return result
 end
local url = "https://www.maison-et-domotique.com/scripts/netatmo.php?login=VOTRE_EMAIL&password=MOTDEPASSE"
 local status, rss = luup.inet.wget(url, 10)
if (status == 0) then
 local tempext = extractElement("temperature_exterieure", rss, "N/A")
 luup.variable_set("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", tempext, 94)
 end

III. Conclusion

La station Netatmo est un excellent produit, qui, grâce à son API, nous permet en plus d'exploiter les mesures qu'elle effectue. Température et humidité sont des données courantes, mais les valeurs de CO2 ou de niveau sonore le sont nettement moins. D'ailleurs, je ne connais qu'un périphérique en Zwave capable d'analyser la qualité de l'air, mais qui coute deux fois le prix de la Netatmo. Le calcul est vite fait :p Les applications utilisant la station Netatmo risquent de fleurir dans les semaines à venir…
Pour information, cet article peut contenir des liens affiliés, sans aucun impact sur ce que vous gagnez vous même ou le prix que vous pouvez payer pour le produit. Passer par ce lien vous permet de me remercier pour le travail effectué sur le blog chaque jour, et d'aider à couvrir les dépenses du site (hébergement, frais de port pour les concours, etc.). Ca ne vous coute rien, mais ca m'aide beaucoup ! Merci donc à ceux qui joueront le jeu !

Inscrivez vous à notre newsletter !

Ne ratez plus aucun article, test de produit ou guide, grâce à un mail dans votre boite chaque vendredi !

37 Commentaires

Laisser un commentaire

Maison et Domotique
Logo
Register New Account
Enregistrez vous, et stockez vos articles préférés sur votre compte pour les retrouver n'importe où, n'importe quand !
Compare items
  • Casques Audio (0)
  • Sondes de Piscine Connectées (0)
  • Smartphones (0)
Compare