Aller au contenu
rockMike

Virtual Device et Scene pour détecteur de fumée de la marque NEST

Recommended Posts

Bonjour,

 

Je possède un détecteur de fumée et de monoxyde de carbone de la marque NEST, et ne trouvant pas de Virtual device pour récupérer les informations depuis ma HC2, je me suis lancé dans le développment de mon propre VD et du scnénario associé. Je le mets à disposition si cela intéresse d'autres personnes détenteurs de ce modèle.

image.png.2be4c2bc95c4565a6e9670a9700c409b.png

 

image.png.49b803246c891ca9fbd229227a092422.png

 

 

Scene lua: sc_NestSmokeAndCo_V1.0.0.lua

Device Virtuel : VD_NestSmokeAndCO.vfib

 

 

PREREQUIS

  • ETAPE1 : Créer un client OAuth

Se connecter à https://console.developers.nest.com/products, et créer un nouveau client OAuth 
image.png.0705259173056b66497808f4f1de9a25.png

 

  • ETAPE 2 :

Renseigner les informations :
-    Nom
-    Description
-    Catégories (2 à sélectionner, celles que vous souhaitez)
-    Nombre d’utilisateurs
-    Support URL : https://nest.com/
image.png.f674800d2c5fafa9ca15984c23b9cbfb.png

 

  • ETAPE 3:

Définissez les permissions (dans notre cas permissions liées au détecteur de fumée):

image.png.7f28ba92d03c181f142fcc31dafc5c67.png

Entrer une description et valider :

image.png.3a56cb91029b205b9ff2b981dcc8e2f3.png

 

  • ETAPE 4

Cliquer sur créer

image.png.0c0dd85a4aa4086f412a505430830558.png

 

  • ETAPE 5

Recopier l’ « authorization url »

image.png.941b79126ca0522cedacbf59332e66d0.png

 

  • ETAPE 6 

Entrer l’url dans votre navigateur et cliquer sur [Allow]

image.png.9adef0e95097006268efc020eb6ae477.png

 

Noter le code obtenu

image.png.1d5a9c2fb5dbfda3598dd91fcc24d4c6.png

 

  • ETAPE 7

Il va falloir maintenant avec toutes ces informations, récupérer notre Token qui nous permettra d’interroger l’API. Et oui ce n’est pas encore fini !
Le Token est obtenu en interrogeant l’URL suivante (https://api.home.nest.com/oauth2/access_token) via une requête POST. Moi, j’utilise Postman pour générer des requêtes POST :

image.png.2bcab4a9718cf0a743e8b73fba226890.png

 

Noter alors le Token obtenu (qui sera à remplacer dans le code du la scene LUA sous la variable AUTHORIZATION_CODE)

Notons que sa validité est de 315360000 secondes, soit 10 ans, ce qui devrait nous laisser tranquille pour quelques temps ;-)

 

  • ETAPE 8

Récupérons maintenant l’id de notre device afin de se repérer plus facilement dans le json lorsque nous interrogerons l’API depuis notre scene LUA.

Dans Postman, j’exécute la requête GET sur https://developer-api.nest.com/ en définissant dans les entêtes du header :

-          Authorization : Bearer [Valeur du token obtenu à l’étape précédente] (exemple « Bearer c-TYHIx02kjjYghfgu521887l)

-          Content-Type : application/json

image.png.2d3e2d635f3e2afe06c1d0c61e2ae986.png

 

Dans la réponse json, sous l’élément [Smoke_co_alarms], noter l’Id du détecteur de fumée (NEST_DEVICE_ID dans le code lua de la scene)

Voilà, nous avons tous les éléments pour paramétrer le code de notre scene :

-          AUTHORIZATION_CODE

-          NEST_DEVICE_ID

 

INSTALLATION

Il ne vous reste plus qu'à installer la scene en remplaçant les variables suivantes avec le code et l'id du device:

image.png.e3576e4f533ed386b21a3c6f615a99cc.png

 

Indiquer l'ID du VD et les différents ID des icônes avec vos propres ID (cf. en fin de post la liste des icones à importer)

image.png.9df8c38466a49c7253ca7b181b1613d0.png

  

 

Indiquer l'adresse IP de votre Home Center dans le champ IP adress du VD:

image.png.83527502b21ac734077671057c42be18.png

 

Importer les icônes ci dessous :

 

api_error.png.ab76dc09f99538b49fe2f3074377cf45.pngunknown.png.428c16e6f2e48622c385500c66b63ce3.pngglow-yellow_battery-red.png.0f12c1cec3c8fa07b74850eceb0eadbd.pngglow-yellow_battery-green.png.d84dac35af866c915091024fe553f3e7.pngglow-red_battery-red.png.eeb9e754e4942d3197d3779b1f66c1f5.pngglow-red_battery-green.png.63d14aa0ae4c648de4eba53b78aab947.pngglow-grey_battery-red.png.35007e82efd05be3404382c0f6a80819.pngglow-grey_battery-green.png.40dcac3b2d1bb39262cadd7fc01af94a.pngglow-green_battery-red.png.0102098a46fd6b9ed01463f122f83b86.pngglow-green_battery-green.png.c058e3b4214498e1a34771fdb49161a1.png

image.png

  • Like 1
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu n'aurais un nest thermostat pour faire la meme chose???   :13:

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci d'avoir partage ton 1er tuto
Super

Envoyé de mon BND-L21 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 13 heures, kioneoranga a dit :

Tu n'aurais un nest thermostat pour faire la meme chose???   :13:

Hello,

 

Malheureusement non je n'ai pas de themostats NEST. Mais si tu souhaites juste récupérer des informations de ton thermostat et de les afficher dans un VD, tu dois pouvoir adapter sans trop de difficultés le code de la scene, afin de parser la réponse json. Pour envoyer des commandes malheureusemnt, mon code n'est pas adapté car sur un détecteur on ne fait que de la lecture et pas d'écriture, il faudra donc redévelopper cette partie.

 

Pour lire des informations de ton thermostat, il faut adapter les droits du token à l'étape 3 avec les permissions voulues sur le thermostat

image.png.58f7b3f3708a20431987b3cd7b7f6851.png

 

 

 

Tu peux trouver tous les champs disponibles dans la réponse json pour un thermostat ici: https://developers.nest.com/documentation/api-reference

image.thumb.png.b9ccc2e1d882e76c83ba24642557d6bd.png

Tu peux avoir des informations sur chaque élément en cliquant dessus si nécessaire

image.thumb.png.ee1985de81669e352400f223d03e4d54.png

 

 

Il ne te reste plus alors qu'à adapter la fonction updateVD(jsonTable) avec les valeurs du json que tu souhaites récupérer

Ex pour récupérer la température ambiante:

local ambientTemp= jsonTable.devices.smoke_co_alarms[NEST_DEVICE_ID].ambient_temperature_c or "???"

 

Et de mettre à jour ton VD ( a créer et personnaliser avec tes icônes et tes labels) avec les valeurs récupérées

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×