jeudi, 03 avril 2014

Thermostat Netatmo : Intégration a l'interface

netatmo,api,app,dev,developpeurL'intégration du Netatmo m'as posé pas mal de problèmes car je ne sais pas pourquoi mais les scripts exemple fournis par Netatmo ne fonctionnais pas chez moi. Et pour bien être fun, une mise a jour pour l'identification fin mars est venu ... enfin il avais une bonne documentation donc sa n'as pas pris trop de temps.

En bref l'on va devoir crée une app, puis donner les autorisations, aller chercher l'identifiant du relais ainsi que celui du thermostat et ensuite les incorporés dans une recherche pour pouvoir avoir les valeurs de la température a un moment donnée, bien sur vous pouvez obtenir beaucoup d'informations (voir le type de getmeasure pour le thermostat) .

Bien Sûr ici dans un premier temps je vais juste m'occupé de prendre la valeur de la température du thermostat avec un intervalle de 30 minutes puis le rajouter a ma base de donnée des températures mais on peut même imaginé que lorsque la température extérieur arrive a 3° de la température intérieur, qu'il baisse la température de chauffe pour s'habitué au température du printemps ou encore d'obtenir la température minimum et maximum et les intégré au graphique pour savoir la plage de chaleur et pouvoir régler le seul de l'hystérésis pour pouvoir avoir des sauts de températures moins important et faire soit même des capteurs et que toutes les 15 minutes le Raspberry évalue si sa vaux la peine de monter la température si certaines pièces ne sont plus dans la zone de température de confort.

Pour les plus experts vous pourriez même faire votre propre interface pour gérer le netatmo et intégrer des commandes vocales au raspberry pi pour modifier les températures.


Création de l'app

Pour commencer on va aller se crée une app, pour pouvoir interagir avec netatmo.

Donc pour ce faire, on va sur la partie développeur de netatmo ensuite allez sur "create an app", il vous demandera votre login/mdp de netatmo (celui que vous utilisez pour avoir accès a l'interface de votre thermostat), une fois identifier vous allez crée une application 

Capture d'écran 2014-04-03 12.20.49.png

Le callback url ne vous servira que si par exemple vous voulez redirigé sur une page spécifique après identification, mais dans mon cas on ne va pas l'utiliser.

Normalement une fois l'application crée on va avoir le app/client id et secret ce qui nous permettra de nous identifier a l'application crée.

Capture d'écran 2014-04-03 12.27.13.png

Récupérations des prérequis

A présent il nous reste a trouver le module_id ainsi que le device_id et on va se servir du login/mdp ainsi que du client_id/client_secret.

Donc maintenant il vous suffit de télécharger mon fichier php qui vous permettra de découvrir vitre deviceid et moduleid

Dans un premier temps modifier le fichier et remplacer ces valeurs par les votre : 

$app_id = 'Clientid_TEST';
$app_secret = 'Clientsecret_TEST';
$username = 'votreloginnetatmo';
$password = 'votremdpnetatmo';

Donc une fois les valeurs adapter vous acceder par votre navigateur a la page php, moi j'ai eu un truc comme ceci

Netatmp, api, app, dev, developpeur

 Donc mon device_id est : "70:ee:50:xx:xx:xx" et mon module_id est : "04:00:00:xx:xx:xx" a présent on peu passé a la prochaine étape qui consiste a récupérer la dernière valeur du thermostat, donc voici la page php que j'utilise pour prendre la dernière valeurs du thermostat, je l'ai placer dans le dossier : "www/python" comme sa je n'ai pas besoin de chercher ou j'ai mis le fichier php au cas ou je dois le modifier.

Il faudra également que vous modifier le debut du fichier pour que cela corresponde a VOTRE configuration

$app_id = 'Clientid_TEST';
$app_secret = 'Clientsecret_TEST';
$username = 'votreloginnetatmo';
$password = 'votremdpnetatmo';
$device_id = '70:ee:50:xx:xx:xx';
$module_id = '04:00:00:xx:xx:xx';

Si vous avez bien configuré et que vous allez sur la page thermostat.php vous devriez obtenir quelque chose comme ceci 

netatmp,api,app,dev,developpeur

Lancement automatique

 Pour que ce script fonctionne il vous faudra avoir d'abord suivis le tuto "Raspberry-pi: Interface Météo" car on va utilisé la même interfaces et même prérequis. 

Donc pour recupéré automatiquement les valeurs toutes les 30 minutes on va faire un scripts de lancement que l'on va devoir mettre dans le dossier des exécutables donc on s'y rend et on crée un premier fichier pour les éphémérides

cd /usr/bin
sudo nano netatmo

Voici ce qu'on va devoir mettre dans le fichier pour pouvoir lancer netatmo.py (que vous pouvez télécharger ici puis il suffit de copier le netatmo.py dans le dossier www/python) 

#!/bin/bash

cd /var/www/python
sudo ./netatmo.py

 Vous sauvez puis quittez et on rend le lanceur exécutable

sudo chmod 777 netatmo

Maintenant pour rendre automatique le lancement des scripts vous pouvez faire un crontab

crontab -e

J'ai choisit de prendre 2 valeurs par heures vu que le thermostat affiche la température avec décimales, donc on inscrit ceci a la fin a la fin du crontab

13 * * * * netatmo
43 * * * * netatmo

Normalement vous devriez avoir dans votre interface la valeur de votre thermostat qui s'enregistre toutes les 30 minutes. 

 

Écrit par Viskor dans Domotique, Ecologie, Netatmo |  Facebook | |