Tuto Nest Connector
#91
(03-29-2020, 10:38 PM)sud-domotique-expert a écrit : page blanche = problème avec le fichier ini , refait le mais pas à partir du tiens

Punaise je crois que j'ai trouvé avec le debug de PHP
En fait il faut activer les modules dans la console webstation/Php au niveau du profil
Il manquait "CURL"
Maintenant j'ai bien de l'info qui remonte !
Je continue de regarder ca, merci pour ton aide
Répondre
#92
voici ma config WebStation

[Image: spks.png]
[Image: k0fq.png]
Répondre
#93
(03-29-2020, 10:46 PM)guillaume.db a écrit :
(03-29-2020, 10:38 PM)sud-domotique-expert a écrit : page blanche = problème avec le fichier ini , refait le mais pas à partir du tiens

Punaise je crois que j'ai trouvé avec le debug de PHP
En fait il faut activer les modules dans la console webstation/Php au niveau du profil
Il manquait "CURL"
Maintenant j'ai bien de l'info qui remonte !
Je continue de regarder ca, merci pour ton aide

Merci pour ton retour, je le note dans la doc du php
Répondre
#94
Merci pour votre aide Jojo et sud-domotique-expert
Répondre
#95
(03-29-2020, 10:46 PM)guillaume.db a écrit :
(03-29-2020, 10:38 PM)sud-domotique-expert a écrit : page blanche = problème avec le fichier ini , refait le mais pas à partir du tiens

Punaise je crois que j'ai trouvé avec le debug de PHP
En fait il faut activer les modules dans la console webstation/Php au niveau du profil
Il manquait "CURL"
Maintenant j'ai bien de l'info qui remonte !
Je continue de regarder ca, merci pour ton aide

a oui , je me rappelais plus de cette partie, mais effectivement dans le profil tu déclares les actions ou fonctions actives
Répondre
#96
@jojo

je crois que j'ai trouvé de quoi simplifier un max  tout le fonctionnement

lorsqu'on demande à exécuter la commande Nest.php dans "read" , si on met le listener du connecteur en fonction, on voit qu'ont récupère les affichages HTTP en direct dans le listener HTTP.

A partir de là il suffit d'ajouter dans la partie parseur JS de la commande le code en javascript les ordres pour "décortiquer"  ce retour. On a alors directement charger les variables de l'équipement NEST sans passer par les automates ni les envois vers IpBox:UniversalListen? (le connecteur écoute universelle n'est plus nécessaire)

je viens de faire test en modifiant le script Nest.php de manière à avoir une trame simple à analyser avec javascript et ça fonctionne très bien.


la modification dans le code Nest.php porte sur les ordres "echo" pour renvoyer les données sous la forme :  Nom_de_la_donnée:valeurNom_de_la_donnée;
exemple:
Code PHP :
//echo "<i>Eco temperature : </i>".number_format($infos->current_state->eco_temperatures->low,1)."°".$infos->scale."<br>";
    
echo "ecotmp:".number_format($infos->current_state->eco_temperatures->low,1)."ecotmp;"


le résultat se trouve bien envoyé dans la trame retour de celui qui a déclenché l'ordre "Read", sans avoir à spécifier les infos Ipbox.
extrait de mon log listen du connecteur HTTP Nest:

Code :
résultat après decodage javascript:
safetytmp_test: 5.1
iseco_test: no
ecotmp_test: 17.8
setaway_test: present
targetmode_test: :heat
settmp_test: 20.5
currenthum_test: :55
isheating_test: no
current_temperature_test: 22.3
where_test: Living Room

trame brute renvoyée par le programme PHP
name_test: Thermostat_Nest_Peynier_Salon
name:Thermostat_Nest_Peynier_Salonname;where:Living Roomwhere;current_temperature:22.3current_temperature;isheating:noisheating;currenthum:55currenthum;settmp:20.5settmp;targetmode:heattargetmode;setaway:presentsetaway;ecotmp:17.8ecotmp;iseco:noiseco;safetytmp:5.1safetytmp;issafety:noissafety;


le code javascript dans le parseur JS de la commande est simple :
 on peut alors directement mettre le nom des variables qui doivent être alimentées  (ici j'ai mis variable_test, pour éviter de tout casser) 

Code PHP :
name_test trame.substring(trame.indexOf("name:")+5,trame.indexOf("name;"));
ldprint ("name_test: "name_test);
where_test trame.substring(trame.indexOf("where:")+6,trame.indexOf("where;"));
ldprint ("where_test: "where_test);
current_temperature_test trame.substring(trame.indexOf("current_temperature:")+20,trame.indexOf("current_temperature;"));
ldprint ("current_temperature_test: "current_temperature_test);
isheating_test trame.substring(trame.indexOf("isheating:")+10,trame.indexOf("isheating;"));
ldprint ("isheating_test: "isheating_test);
currenthum_test trame.substring(trame.indexOf("currenthum:")+10,trame.indexOf("currenthum;"));
ldprint ("currenthum_test: "currenthum_test);
settmp_test trame.substring(trame.indexOf("settmp:")+7,trame.indexOf("settmp;"));
ldprint ("settmp_test: "settmp_test);
targetmode_test trame.substring(trame.indexOf("targetmode:")+10,trame.indexOf("targetmode;"));
ldprint ("targetmode_test: "targetmode_test);
setaway_test trame.substring(trame.indexOf("setaway:")+8,trame.indexOf("setaway;"));
ldprint ("setaway_test: "setaway_test);
ecotmp_test trame.substring(trame.indexOf("ecotmp:")+7,trame.indexOf("ecotmp;"));
ldprint ("ecotmp_test: "ecotmp_test);
iseco_test trame.substring(trame.indexOf("iseco:")+6,trame.indexOf("iseco;"));
ldprint ("iseco_test: "iseco_test);
safetytmp_test trame.substring(trame.indexOf("safetytmp:")+10,trame.indexOf("safetytmp;"));
ldprint ("safetytmp_test: "safetytmp_test); 


qu'est-ce que tu en penses ?

à partir de là on va pouvoir simplifier les automates.
Répondre
#97
bon @jojo je sais que tu fais la gueule à deltadore Mdr7-20636 

mais comme tu en es le papa, je ne peux que voir avec toi quand il s'agit de faire évoluer ce bout de code .


j'ai terminé de refaire le programme en PHP pour dialoguer en direct avec LD sans passer par ecoute universelle, c'est fichetrement plus réactif et "simple".

j'ai supprimé la quasi totalité des automates et variables globales (il me reste 2 automates pour la mise à jour des températures depuis LD et la fonction setAway). Tout le reste est en direct.
Les stats sont directes et je n'ai plus de connecteur Nest ecoute ni d'équipement branché sur ce connecteur.
Répondre
#98
(05-11-2020, 04:50 PM)sud-domotique-expert a écrit : j'ai terminé de refaire le programme en PHP pour dialoguer en direct avec LD sans passer par ecoute universelle, c'est fichetrement plus réactif et "simple".

j'ai supprimé la quasi totalité des automates et variables globales (il me reste 2 automates pour la mise à jour des températures depuis LD et la fonction setAway). Tout le reste est en direct.
Les stats sont directes et je n'ai plus de connecteur Nest ecoute ni d'équipement branché sur ce connecteur.

J'ai loupé quelque chose.... Tu communique avec LD en PHP, a partir de ton NAS????
Répondre
#99
(05-11-2020, 07:20 PM)Jlr a écrit :
(05-11-2020, 04:50 PM)sud-domotique-expert a écrit : j'ai terminé de refaire le programme en PHP pour dialoguer en direct avec LD sans passer par ecoute universelle, c'est fichetrement plus réactif et "simple".

j'ai supprimé la quasi totalité des automates et variables globales (il me reste 2 automates pour la mise à jour des températures depuis LD et la fonction setAway). Tout le reste est en direct.
Les stats sont directes et je n'ai plus de connecteur Nest ecoute ni d'équipement branché sur ce connecteur.

J'ai loupé quelque chose.... Tu communique avec LD en PHP, a partir de ton NAS????

oui le php est installé sur le NAS (serveur web) ainsi que le programme qui discute avec l'API Nest , ensuite je fais juste un echo et je récupères les infos via javascript dans le connecteur Http qui échange avec le NAS.
Répondre
ok compris
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Nest Connector jojo 3 6,905 03-08-2020, 07:45 PM
Dernier message: jojo



Utilisateur(s) parcourant ce sujet : 9 visiteur(s)