Forum eedomus http://forum.eedomus.fr/ |
|
[HELP] Nest - Récupérer les valeurs hvac_state et humidity http://forum.eedomus.fr/viewtopic.php?f=59&t=7811 |
Page 1 sur 3 Suivant » |
Auteur: | ElYoM [ 25 Nov 2018 13:03 ] |
Sujet du message: | [HELP] Nest - Récupérer les valeurs hvac_state et humidity |
Bonjour à tou(te)s, J'utilise le thermostat Nest sur ma box eedomus à l'aide du script officiel développé par Connected Object et ça marche très bien. Cependant, en lisant la documentation de l'API, je me suis aperçu que ce script ne récupère pas les valeurs "hvac_state" et "humidity" qui sont respectivement l'état actif ou non de la chauffe et le taux d'humidité relevé par le capteur du Nest. J'ai donc entrepris de récupérer ces valeurs en modifiant le script de Connected Object et en me basant sur les modifications de Jérôme DURIEZ pour récupérer l'état de batterie des détecteurs de fumée ("battery_health"). Modifications déjà disponibles et marquées comme telles dans le script de Connected Object. J'ai donc ajouté deux blocs de code comme suit : - A la ligne 381 du script, je rajoute le bloc de code PHP suivant :
- A la ligne 454 du script, je rajoute le bloc de code PHP suivant :
N'étant pas familier du PHP et en analysant malgré tout du mieux que je pouvais le code du script, je me suis dit que ces deux modifications suffiraient. Après tout, les modifications de Jérôme pour récupérer le niveau de batterie des Nest Protect se limitent à cela. Malheureusement, cela ne fonctionne pas et quand je teste le xpath "/nest/hvac_state", l'eedomus me renvoie "ERREUR: Valeur lue vide". Aussi, je cherche une bonne âme, familière du PHP, et qui pourrait m'indiquer comment faire pour récupérer les deux valeurs "hvac_state" et "humidity" parce que là, je sèche et ne comprend surtout pas pourquoi cela ne fonctionne pas, même si je suis quasi sûr que c'est trois fois rien niveau modification... En vous remerciant par avance. Bon Dimanche. |
Auteur: | merguez07 [ 25 Nov 2018 13:38 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
bonjour, peux tu mettre le script dans son intégralité ? |
Auteur: | ElYoM [ 25 Nov 2018 13:45 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Hello, Oui, pas de souci, le voici :
|
Auteur: | merguez07 [ 25 Nov 2018 17:42 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
De ce que je crois comprendre, certaines données supplémentaires sont accessibles suivant la version de ton Nest. Ton code est bon et si tu n'obtiens rien c'est que tout simplement la balise <hvac_state> n'existe pas dans la variable $json. Le firmware de ton Nest est il à jour ? quelle est la génération de ton Nest ? |
Auteur: | ElYoM [ 25 Nov 2018 21:51 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Hello merguez07, Merci pour ta réponse. Mon thermostat est bien en dernière version du firmware (5.9.1 du 22 octobre 2018) et il s'agit bien d'un 3ème génération, je suis donc étonné que l'API ne me renvoie aucune information pour la variable "hvac_state". Je vais tester avec la variable "humidity" pour voir si cela me renvoie quelque chose. |
Auteur: | ElYoM [ 25 Nov 2018 22:13 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Bon ben même constat pour la variable 'humidity' --> "ERREUR: Valeur lue vide"... Franchement, là, je sèche... Sinon, à la ligne 129 du script nest_oauth.php de ConnectedObject, je trouve la ligne suivante :
Je suis donc étonné qu'une référence à netatmo soit présente dans un script pour Nest... |
Auteur: | merguez07 [ 26 Nov 2018 07:39 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Ce n'est pas anormal dans la mesure où, à cet endroit du code, ils ont besoin de faire appel a un bout de code déjà réalisé pour gérer les netatmo : Callback.php
Du coup mon hypothèse ne tient pas. Ce qu'il va falloir faire pour s'en sortir c'est afficher toutes les balises que comporte ta variable $json essaye de rajouter les 2 lignes de codes suivantes après l'initialisation de la variable $json : $json = sdk_json_decode($result); echo $json; die; ainsi tu devrais voir ce que contient $json |
Auteur: | ElYoM [ 26 Nov 2018 11:53 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Hello merguez07, merci de ton aide.
Ha d'accord, c'est que ça doit être nécessaire, je te fais confiance là dessus.
Tu m'as perdu au moment où tu dis de rajouter ce bout de code après l'initialisation de la variable $json. Du coup, tu saurais me dire à quelle ligne la rajouter dans le script et dois-je supprimer mes modifications avant ? Ensuite, quel Xpath devrais-je tester ? |
Auteur: | merguez07 [ 26 Nov 2018 12:17 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
chez moi ça correspond aux ligne 382 et 383 mais il peut y a avoir une différence de numérotation avec toi car j'ai reformaté un peu le code chez moi pour y voir plus clair.
non tu changes rien à ton code à part le rajout des 2 lignes juste après la ligne $json = sdk_json_decode($result);
non tu ne mets aucun Xpath. Sous le Xpath de ton périphérique tu dois avoir le lien "Tester". En cliquant dessus tu as une autre fenêtre qui s'ouvre. Dans cette fenêtre tu clique sur le bouton tester et tu dois voir le résultat du Json |
Auteur: | ElYoM [ 26 Nov 2018 12:20 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Ok, merci, je teste ça et te tiens au courant. J'espère qu'on arrivera à quelque chose, j'aimerai vraiment pouvoir logger les périodes de chauffe effectives de mon chauffage. |
Auteur: | ElYoM [ 26 Nov 2018 12:43 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Bon ben quand je teste, le seul résultat que me donne l'eedomus, c'est :
Pour info, voici l'endroit dans le script où j'ai inséré ton bout de code. Je suis reparti du script original nest_oauth.php car j'ai l'impression que mes modifications génèrent des erreurs. Je les ajouterai de nouveau quand l'eedomus me donnera autre chose que simplement "Array" comme résultat.
|
Auteur: | merguez07 [ 26 Nov 2018 12:49 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
au temps pour moi remplace le echo $json; par print_r($json); |
Auteur: | ElYoM [ 26 Nov 2018 12:54 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Maintenant, ça me dit "La fonction print_r() n'est pas autorisée". ^^ |
Auteur: | merguez07 [ 26 Nov 2018 13:01 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
lol on va y arriver |
Auteur: | merguez07 [ 26 Nov 2018 13:06 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
a la place de print_r($json); met var_dump($json); |
Auteur: | ElYoM [ 26 Nov 2018 13:17 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Ok, merci, voilà la réponse de l'eedomus, sans mes modifications pour récupérer hvac_state et humidity (j'ai aussi masqué les infos sensibles) :
|
Auteur: | merguez07 [ 26 Nov 2018 14:02 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
bon ben voilà, on sait que les données ne sont pas dans le $json et donc c'est normal que tu ne puisses les faire remonter. Après la question et pourquoi elles ne sont pas dans le $Json. Je n'ai pas trouvé d'explication en parcourant le net.... |
Auteur: | ElYoM [ 26 Nov 2018 14:21 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Ok, merci beaucoup pour ton aide merguez07, c'est vraiment sympa de ta part, la communauté eedomus est vraiment excellente. Je vais ouvrir un ticket au support pour leur demander une évolution du script, les deux variables "hvac_state" et "humidity" étant quand même deux données très importantes. Je reviendrai faire un retour à ce sujet quand j'aurais eu une réponse du support (et surtout si j'en ai une). |
Auteur: | merguez07 [ 26 Nov 2018 14:53 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
honnêtement je ne pense pas que le problème soit au niveau d'Eedomus mais plutôt du coté de Nest. En effet l'Eedomus fait bien la requête auprès de Nest et c'est Nest qui envoie les infos. |
Auteur: | ElYoM [ 26 Nov 2018 15:05 ] |
Sujet du message: | Re: [HELP] Nest - Récupérer les valeurs hvac_state et humidi |
Pour ma part, j'ai un doute que cela vient de l'eedomus car l'API fait bien référence à des permissions spécifiques de lecture/écriture des données des appareils Nest. Le script n'ayant pas évolué depuis des années et l'API Nest ayant, elle, changé depuis, je pense que les permissions de ConnectedObject pour ce script ne sont plus réellement à jour. Dans tous les cas, je viens de soumettre ma demande au support, je verrai donc bien ce qu'il en est (j'ai un collègue développeur qui vient de m'appeler, 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). |
Page 1 sur 3 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |