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

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

Bonjour,

 

Depuis le rachat de nest par google, la procédure de création d'un user pour accéder à l'API de nest (proposée par rockMike) ne fonctionne plus !

Comment faire maintenant ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

La solution pour le thermostat N'est est ici

 

J'ai développé un php pour le thermostat, mais comme je n'ai pas de détecteur, il n'a pas été développé dans ce sens.

Mais je crois que c'est possible avec cette classe php.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • Nest Protect device information

Partager ce message


Lien à poster
Partager sur d’autres sites

Il semblerait que les services Work with Nest ne sont plus disponibles pour les nouveaux utilisateurs.

 

Voir message affiché sur le site de Nest :

 

Works with Google Assistant (WWGA) permet à Google Assistant de contrôler tous vos produits connectés. Vous pouvez utiliser l'Assistant Google pour développer des routines d'assistant à utiliser dans les applications Accueil ou Assistant. En outre, nous avons lancé un nouveau programme pour les développeurs, Device Access, qui permet d'accéder, de contrôler et de gérer les appareils Nest au sein des applications, des solutions et des écosystèmes de maison intelligente partenaires, à l'aide de l'API Smart Device Management (SDM). Pour en savoir plus sur ce nouveau programme et comment démarrer, visitez le site Device Access .

 

Le problème dans le nouveau programme d'API Google, il semblerait que les détecteurs Nest Protect ne sont pas accessibles, voir liste des fonctionnalités disponibles pour le appareils Nest :

 

image.thumb.png.e8a8cef9d3e47c5d8abbaf920956f7ad.png

 

Est-ce que l'un de vous pourrait confirmer où est-ce une erreur d'interprétation de ma part ?
 

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai trouvé la réponse à ma question. effectivement le Smoke+CO Alert n'est pas supporté par l'API Google.

 

J'ai perdu 5$ pour m'inscrire à leur service pour rien. :15: En espérant que cela puisse me servir pour d'autres usages :huh:

 

CF. article ci-dessous :

 

https://support.google.com/googlenest/thread/76035557?hl=en

  • Sad 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×