Sommaire
Le package Nest vous permet de piloter votre thermostat Nest et de suivre en temps réel vos objets connectés Nest (Thermostats, détecteur de fumée ou caméras).
Le code source de ce package est en ligne sur : https://github.com/myconstellation/constellation-packages/tree/master/Nest
Installation
Prérequis : créer un jeton de sécurité Nest
Pour installer le package Nest dans votre Constellation vous allez avoir besoin d’un jeton de sécurité pour autoriser le package à se connecter au service Nest.
Etape 1 : Créer un compte développeur Nest
Pour commencez donc par créer un compte sur https://developers.nest.com :
Etape 2 : Créer un produit Nest
Créez ensuite un “Product” en cliquant sur le bouton “Create New Product” :
Vous devrez alors fournir les informations sur votre “Produit”. Par exemple nommez-le “Constellation”.
Vous devrez également définir les autorisations accordées à ce produit : activer les différents services (Thermostat, Away, etc..) en “Read / Write” si vous souhaitez contrôler vos équipements Nest.
Une fois votre produit Nest créé, vous obtiendrez votre “Product ID” et “Product Secret” que vous gardez sous la main :
Etape 3 : Générer le jeton de sécurité pour le package Constellation
Vous pouvez maintenant générer un jeton de sécurité qui sera utilisé par le package Constellation.
Vous avez deux méthodes :
- Via un script Powershell (à partir d’un poste Windows)
- Manuellement
Pour la première méthode, téléchargez ce fichier ici, il s’agit d’un script Powershell à exécuter sur un poste Windows (voir le code source ici).
Une fois téléchargé sur votre poste Windows, ouvrez une invite de commande Powershell et lancez le script en passant en paramètre votre “Product ID” et “Product Secret” :
1 |
GetNestAccessToken.ps1 <<product ID>> <<product Secret>> |
Vous devez valider le fait d’exécuter un script téléchargé sur Internet en entrant la lettre “O” en majuscule.
Le script ouvrira votre navigateur Internet sur une page de Nest vous demandant votre autorisation pour activer le produit que vous avez créé ci-dessus :
Il suffit de cliquer sur le bouton “Accepter” :
Vous obtiendrez en retour un code PIN temporaire :
Copiez alors ce code PIN dans le script PowerShell et celui ci vous retournera l’AccessToken (le jeton de sécurité) :
Ce jeton est également copié automatiquement dans votre presse-papier ! Vous pouvez maintenant le “coller” où vous souhaitez ! Gardez-le pour l’installation du package Constellation ci-dessous.
Installation du package Constellation
Depuis le “Online Package Repository” de votre Console Constellation, déployez le package Nest :
Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.
Pour finir, sur la page de Settings, vous devez obligatoirement définir le jeton de sécurité obtenu précédemment pour accéder à votre compte Nest.
Si vous avez utiliser le script Powershell, l’AccessToken est déjà dans votre presse-papier, il suffit simplement de le coller dans la page de settings :
Bien entendu vos pouvez également déployer ce package manuellement dans la configuration de votre Constellation :
1 2 3 4 5 |
<package name="Nest"> <settings> <setting key="AccessToken" value="xxxxx" /> </settings> </package> |
Détails du package
Les Settings
Nom | Type | Détail | Description |
AccessToken | String | Obligatoire | Jeton de sécurité pour accès à votre compte Nest |
Les StateObjects
Vous retrouverez autant de StateObjects que d’objet et de structure Nest rattachés à votre compte :
Nom | Type | Description |
<< nom de la structure >> | Nest.Structure | Information sur la structure (maison) Nest (localisation, mode absence, objets rattachés) |
<< nom de l’objet Nest >> | Nest.thermostat, Nest.SmokeDetector, Nest.Camera |
Information sur l’objet Nest. Par exemple pour un thermostat : T° actuelle et de consigne, mode de chauffe, humidité, etc.. |
Les MessageCallbacks
Le package expose un MessageCallback :
Nom | Réponse (saga) | Description |
SetAwayMode | Aucune | Spécifie le mode absence d’une structure |
SetTargetTemperature | Aucune | Spécifie la température de consigne d’un thermostat |
SetProperty | Aucune | Définie la valeur d’un propriété sur un objet Nest |
Quelques exemples
- Piloter et réguler la température avec un package C#
- Piloter le thermostat depuis un Dashboard HTML
- Synchroniser le mode absence du thermostat Nest avec l’alarme
Démarrez la discussion sur le forum Constellation