[HELP] Nest - Récupérer les valeurs hvac_state et humidity

On parle ici de l’utilisation de vos objets connectés avec eedomus

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 26 Nov 2018 16:47

ElYoM a écrit: il s'est amusé à requêter le thermostat Nest de son boulot à l'aide de Postman et il récupère bien les valeurs de "hvac_state" et "humidity", le contraire serait d'ailleurs étonnant puisque l'API le prévoit et le permet)


Il a requêté ton Nest ou le sien ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 26 Nov 2018 18:33

Il a requêté celui qu'ils ont dans les locaux de son boulot.
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar Havok » 26 Nov 2018 18:34

Si le script ne recupere pas les valeurs que tu veux c’est peut etre qu’il ne les demande pas à l’API ?
Havok
 
Messages : 630
Inscription : 06 Fév 2015

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 26 Nov 2018 18:58

C'est ce qu'on s'est dit avec merguez07 mais, à priori, c'est autre chose étant donné les tests qu'on a menés. La variable $json retournée par le script contient bien d'autres variables que celles utilisées par le script, sauf hvac_state et humidity sans que je n'ai décelé dans le code quelque chose qui briderait cette remontée d'infos. Après, j'avoue que le PHP, ça me dépasse vraiment, même si je n'en suis pas à ma première bidouille de scripts dans plusieurs autres langages.
Dernière édition par ElYoM le 26 Nov 2018 21:22, édité 1 fois.
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 26 Nov 2018 19:44

perso j'ai le sentiment que c'est la version de ton Nest qui est bridée. Essaye de faire un postman toi même sur ton Nest.
Si tu ne sais pas faire je peux le faire pour toi si tu me donne en MP les données de ton Nest
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 26 Nov 2018 21:26

Hello merguez07,

Je sais utiliser PostMan, il n'y a que pour l'autorisation que je n'ai pas vraiment compris comment récupérer un token dans la doc de l'API. Mais ce serait effectivement un test à faire, je serais fixé comme cela. En tout cas, dans la doc, hormis ces histoires de permission, je n'ai trouvé aucune sorte de bridage.

Du coup, si tu comprends comment gérer l'authentification avec postman pour le Nest, un dernier petit coup de main ne serait pas de refus. ;) Il y a peut-être moyen de récupérer le token utilisé par le script eedomus mais je ne vois pas comment l'afficher.
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 27 Nov 2018 08:14

ElYoM a écrit:Il y a peut-être moyen de récupérer le token utilisé par le script eedomus mais je ne vois pas comment l'afficher.


c'est simple tu rajoutes dans le code
Code : Tout sélectionner
$xml .= '<hvac_state>';
$xml .= $json['hvac_state'];
$xml .= '</hvac_state>';
$xml .= '<token>';
$xml .= $access_token;
$xml .= '</token>';


et avec le xpath qui va bien tu as le token qui s'affiche
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 27 Nov 2018 12:18

Parfait, merci pour la réponse merguez07, c'était vraiment simple en fait... [shame on me]. Je viens de tester et, effectivement, ni 'hvac_state', ni 'humidity' ne remonte dans le json quand j'utilise le token demandé par l'eedomus.

Du coup, je viens d'avoir brièvement mon collègue développeur au téléphone et il m'a expliqué (avec ses mots de développeur, j'ai pas tout compris mais moi je suis dans les infrastructures info, pas le code ^^) que cela a à voir avec la version du client oauth utilisé par eedomus et m'a donné en référence cette page de la documentation de l'API Nest. Le problème vient donc bien, à priori, de la version du client oauth utilisé par eedomus qui n'a pas été mis à jour depuis 2014. (le json me remonte cela comme info de version du client : "client_version": 1).

https://developers.nest.com/guides/acco ... nt-version
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar Havok » 27 Nov 2018 13:22

C'est pas plutot à toi de mettre à jour tes autorisations en allant la : https://developers.nest.com/products ?

With the Nov 2014 release, we added the humidity field to the thermostats object. In order to access humidity from your product, you should follow these steps to enable the new fields:

Select the Permissions tab on the OAuth Clients page
Open the product category containing the permission you wish to edit
Select [Edit] for one of your existing permissions
Select [Done] without making any changes
Select [Update Permissions] at the bottom of the screen
Check the Overview tab—the client version number has incremented by 1
Havok
 
Messages : 630
Inscription : 06 Fév 2015

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 27 Nov 2018 13:49

Havok a écrit:C'est pas plutot à toi de mettre à jour tes autorisations en allant la : https://developers.nest.com/products ?

With the Nov 2014 release, we added the humidity field to the thermostats object. In order to access humidity from your product, you should follow these steps to enable the new fields:

Select the Permissions tab on the OAuth Clients page
Open the product category containing the permission you wish to edit
Select [Edit] for one of your existing permissions
Select [Done] without making any changes
Select [Update Permissions] at the bottom of the screen
Check the Overview tab—the client version number has incremented by 1

Hello Havok,

J'y ai pensé mais une fois arrivé sur la page, ça me demande de créer un compte développeur (mais à priori c'est pas possible pour le moment : "Thank you for your interest in the Works with Nest program. We're upgrading our systems and will not accept new client reviews during this time. Please check back in a few weeks. If you have an urgent issue, please message us through the developer console."). Et donc, sans compte développeur, pas de client oauth. Et comme je n'ai pas de compte développeur, je ne peux donc logiquement pas avoir de client oauth et donc je ne peux pas mettre à jour les permissions d'un client oauth que je n'ai pas. La seule explication reste donc que le client oauth utilisé est celui créé par la team eedomus. Sinon, je vois pas...
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 27 Nov 2018 14:11

Je ne suis pas sure que le problème soit cette histoire de version de client Oauth

Quand on lit la doc on s'aperçoit que pour avoir toute les autorisations il faudrait envoyer dans la requête son client_id et client_secret

ainsi au lieu de
$postdata = 'grant_type='.$grant_type.'&code='.$code.'&redirect_uri='.$redirect_uri;

on devrait avoir
$postdata = 'grant_type='.$grant_type.'&code='.$code.'&redirect_uri='.$redirect_uri.'&client_id='.$client_id.'&client_secret='.$client_secret;

pour obtenir le client_id et secret il faut suivre les instructions du point 1 ci dessous
https://developers.nest.com/guides/api/how-to-auth

A tester
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 27 Nov 2018 14:45

J'aurais bien aimé tester ce que tu proposes merguez07 mais comme indiqué précédemment il faut créer un compte développeur et Nest n'accepte pas les nouvelles créations de comptes durant les prochaines semaines : "Thank you for your interest in the Works with Nest program. We're upgrading our systems and will not accept new client reviews during this time. Please check back in a few weeks. If you have an urgent issue, please message us through the developer console."

Je vais attendre un retour du support car si la solution se limite seulement à ce qu'ils mettent à jour les permissions de leur client oauth, ça peut être vite réglé.

En tout cas, merci beaucoup de vous être penchés sur le problème avec moi, c'est vraiment sympa.
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017


Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 27 Nov 2018 15:54

Ok merci pour la confirmation Havok. ;)
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 28 Déc 2018 15:45

Bon ben après 3 relances auprès du support pour qu'ils fassent évoluer la version de leur client Oauth afin de récupérer les variables hvac_state et humidity (pourtant intégrées dans l'API Nest depuis 2015), rien, aucune réponse, le néant.
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 28 Déc 2018 21:10

ElYoM a écrit:Bon ben après 3 relances auprès du support pour qu'ils fassent évoluer la version de leur client Oauth afin de récupérer les variables hvac_state et humidity (pourtant intégrées dans l'API Nest depuis 2015), rien, aucune réponse, le néant.


On m'a offert un Nest à Noël. Je le connecte demain et je verrais si j'ai le même pb que toi. On se tient au jus
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 29 Déc 2018 01:34

Cool, sympa le cadeau. ça fonctionne vraiment bien, tu ne devrais pas être déçu. ;)
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 09 Jan 2019 16:22

Hello merguez07,

As-tu eu le temps de jeter un œil à l'API Nest de ton côté depuis que tu as reçu ton thermostat ?
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar ElYoM » 31 Jan 2019 14:35

Après de multiples relances auprès du support, j'ai finalement obtenu une réponse (un peu à côté de la plaque puisqu'elle ne va pas plus loin que les tests que nous avons déjà effectués et ne répond donc pas à la question de savoir pourquoi ces valeurs ne remontent pas alors que l'API Nest le permet) :
malheureusement, rien n'est renvoyé pour hvac_state ou humidity, vous pouvez faire un essai vous même en ajoutant les lignes suivantes après la ligne 370 du script de votre box.

$url = 'https://developer-api.nest.com/devices/thermostats/'.$thermostat_id.'/humidity?auth='.$access_token;
$result = httpQuery($url);
var_dump($result);

$url = 'https://developer-api.nest.com/devices/thermostats/'.$thermostat_id.'/hvac_state?auth='.$access_token;
$result = httpQuery($url);
var_dump($result); die();

Bien cordialement.
Bart pour
eedomys L'équipe eedomus
http://www.eedomus.com


Ayant encore mon ancienne box domotique Vera Edge, je confirme que ces valeurs remontent bien au-travers de l'API Nest puisque la Vera Edge me permet de disposer de ces deux informations (hvac_state et humidity), il y a donc bien un problème au niveau du script officiel Nest pour l'eedomus mais à cette allure là on aura jamais de réponse concrète au pourquoi du comment... Dans l'attente, je gruge en faisant remonter ces valeurs de la Vera Edge à l'eedomus mais ça m'embête vraiment de conserver la Vera Edge uniquement pour cela alors que je comptais m'en débarrasser puisque ayant tout migré sur l'eedomus (sauf cela désormais).
ElYoM
 
Messages : 182
Inscription : 08 Sep 2017

Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi

Messagepar merguez07 » 06 Fév 2019 18:21

Bon je confirme qu'il y a une restriction avec l'Eedomus dans la mesure ou si je fais mes requêtes directement via Postman, j'obtiens tous les paramètres.
Si j'implante certains des paramètres d'identification dans le code php du script dans l'Eedomus, j'arrive à avoir les bons résultats ce qui prouve que c'est, lors de la création de l'actionneur, les identifiants fournis qui ne permettent qu'un accès retreint aux paramètres (pourquoi, j'en sais rien).

En toute logique cela doit pouvoir se corriger dans le code mais là je suis un peu limité dans ma connaissance du PHP.
Par exemple dans le code ligne 132 je suis infoutu de comprendre comment il est possible de faire fonctionner cette requête sachant que dans le postdata il manque les éléments essentiels et nécessaires à savoir le client_id et le client_secret.

J'informe la team de mes conclusions
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1340
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

PrécédentSuivant

Retour vers Objets connectés

Qui est en ligne ?

Utilisateurs parcourant ce forum : FlyingAce, Kebiel et 1 invité