rockMike Posté(e) le 21 mars 2019 Signaler Posté(e) le 21 mars 2019 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. 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 ETAPE 2 : Renseigner les informations : - Nom - Description - Catégories (2 à sélectionner, celles que vous souhaitez) - Nombre d’utilisateurs - Support URL : https://nest.com/ ETAPE 3: Définissez les permissions (dans notre cas permissions liées au détecteur de fumée): Entrer une description et valider : ETAPE 4 Cliquer sur créer ETAPE 5 Recopier l’ « authorization url » ETAPE 6 Entrer l’url dans votre navigateur et cliquer sur [Allow] Noter le code obtenu 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 : 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 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: 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) Indiquer l'adresse IP de votre Home Center dans le champ IP adress du VD: Importer les icônes ci dessous : 1 1
kioneoranga Posté(e) le 21 mars 2019 Signaler Posté(e) le 21 mars 2019 Tu n'aurais un nest thermostat pour faire la meme chose???
pepite Posté(e) le 22 mars 2019 Signaler Posté(e) le 22 mars 2019 Merci d'avoir partage ton 1er tuto SuperEnvoyé de mon BND-L21 en utilisant Tapatalk
rockMike Posté(e) le 22 mars 2019 Auteur Signaler Posté(e) le 22 mars 2019 Il y a 13 heures, kioneoranga a dit : Tu n'aurais un nest thermostat pour faire la meme chose??? 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 Tu peux trouver tous les champs disponibles dans la réponse json pour un thermostat ici: https://developers.nest.com/documentation/api-reference Tu peux avoir des informations sur chaque élément en cliquant dessus si nécessaire 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 1
rockMike Posté(e) le 22 mars 2019 Auteur Signaler Posté(e) le 22 mars 2019 (modifié) v1.1.0 : corrections mineures sc_NestSmokeAndCo_V1.1.0.lua v1.1.1 : corrections mineures sc_NestSmokeAndCo_V1.1.1.lua Modifié le 28 mars 2019 par rockMike 3
idelectrik Posté(e) le 7 mai 2019 Signaler Posté(e) le 7 mai 2019 Merci rockMike !! A+ POM est mort, vive POM !
DomGreg Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 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 ?
jojo Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 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.
MAM78 Posté(e) le 16 novembre 2020 Signaler Posté(e) le 16 novembre 2020 (modifié) 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 : Est-ce que l'un de vous pourrait confirmer où est-ce une erreur d'interprétation de ma part ? Modifié le 16 novembre 2020 par MAM78
MAM78 Posté(e) le 16 novembre 2020 Signaler Posté(e) le 16 novembre 2020 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. En espérant que cela puisse me servir pour d'autres usages CF. article ci-dessous : https://support.google.com/googlenest/thread/76035557?hl=en 1
Messages recommandés