(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
voici ma config WebStation
(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
Merci pour votre aide Jojo et sud-domotique-expert
(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
@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.
bon @jojo je sais que tu fais la gueule à deltadore
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.
(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????
(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.