Forum eedomus http://forum.eedomus.fr/ |
|
Netatmo Thermostat - Bug avéré avec le script http://forum.eedomus.fr/viewtopic.php?f=50&t=8863 |
Page 1 sur 1 |
Auteur: | julieng [ 13 Sep 2019 19:33 ] |
Sujet du message: | Netatmo Thermostat - Bug avéré avec le script |
Bonjour - J'ai à la maison 4 thermostats Netatmo qui marchent parfaitement avec l'app Netatmo. Je souhaite récupérer les valeur de mes thermostats dans ma box domotique eedomus La box eedomus est configurée pour récupérer les valeurs des température toutes les 30 minutes et fait donc des appels API. Le problème est que lorsque les 4 requetes http sont lancées dans la meme plage de quelques minutes, Netamo renvoie la meme valeur. Si j'attend 5+ minutes, alors la première requete executée me renvoie la bonne valeur mais pas la 2eme sur un autre thermostat. Cela ressemble fortement à un système de cache coté API Netatmo et j'ai donc logué un ticket chez Netatmo dont voici la réponse: Cela n'est pas un fonctionnement interne de nos serveurs, pour les Thermostats, même si en fonctionnement normal la demande est de toute les 10 minutes, quand il y a un call la valeur de la température est en quasi live. Cela ressemble plutôt au code Eedomus qui semble exécuter un call sur le même appareil de façon répété. Vous pouvez confirmer qu'il ne s'agit pas d'un fonctionnement de nos serveurs en utilisant postman par exemple et exécuter les 4 calls en même temps. Avec ce call vous avez même toute les info en même temps : https://dev.netatmo.com/resources/techn ... /homesdata Voici nos calls et endpoint dispo pour l'API : https://dev.netatmo.com/resources/techn ... nce/energy Il s'agit donc très certainement du code Eedomus et je vous invite à les contacter avec d’éclaircir le sujet. Comment débuguer le script? Comment voir les requetes que Eedomus envoie aux API Netatmo? Merci bcp |
Auteur: | julieng [ 13 Sep 2019 21:30 ] |
Sujet du message: | Re: Netatmo Thermostat - Bug avec les scripts |
J'ai épluché les logs: Les 2 calls successifs vers 2 modules différents renvoient systématiquement la meme valeur alors qu'ils sont dans des étages différents donc les valeurs devraient être différents (j'ai maquillé les ID). Ou peut on voir les appels API réels vers Netatmo? [22:15:45.146] HTTP [GET] Query -> [http://localhost/script/?exec=netatmo_thermostat_oauth.php&home_id=5b9ff449ea00a00&room_id=29569&module_id=04:00:00:38&eedomus_controller_module_id=161] XPATH -> [/netatmo/temperature] [22:15:45.213] Result -> [HTTP:200] in 1s [22:15:45.215] -> Read value [24.7] [22:16:20.201] HTTP [GET] Query -> [http://localhost/script/?exec=netatmo_thermostat_oauth.php&home_id=5b9ff449ea00a00&room_id=414523&module_id=04:00:00:11&eedomus_controller_module_id=16] XPATH -> [/netatmo/temperature] [22:16:20.263] Result -> [HTTP:200] in 1s [22:16:20.264] -> Read value [24.7] |
Auteur: | julieng [ 13 Sep 2019 21:37 ] |
Sujet du message: | Re: Netatmo Thermostat - Bug avec les scripts |
Je vois dans le script netatmo_thermostat_oauth.php une variable $CACHE_DURATION = 2; // minutes... Ne serait elle pas la source de mon problème ? Je pense passer à $CACHE_DURATION = 0; sachant que le script se lance toutes les 30 min. Qu'en pensez vous? |
Auteur: | julieng [ 13 Sep 2019 22:00 ] |
Sujet du message: | Re: Netatmo Thermostat - Bug avec les scripts |
Bug confirmé Je le joue une première fois sur la box en envoyant cette requete http://192.168.0.29/script/?exec=netatmo_thermostat_oauth.php&home_id=5b9ff449e08b45dd&room_id=6940709&module_id=04:000:9c:0e&eedomus_controller_module_id=16063 Ca me renvoie la même chose alors que la requete ne devrait jamais marcher... <netatmo> <cached>1</cached> <setpoint_mode>schedule</setpoint_mode> <setpoint_temperature>22</setpoint_temperature> <temperature>24.6</temperature> <boiler>0</boiler> </netatmo> Je le rejoue dans la foulée en mettant une valeur bidon dans les variables http://192.168.0.29/script/?exec=netatmo_thermostat_oauth.php&home_id=5b9ff449e08b4XXX5dd&room_id=6940XXX709&module_id=04:0>XXX00:9c:0e&eedomus_controller_module_id=16063 Ca me renvoie <netatmo> <cached>1</cached> <setpoint_mode>schedule</setpoint_mode> <setpoint_temperature>22</setpoint_temperature> <temperature>24.6</temperature> <boiler>0</boiler> </netatmo> Comment régler ca proprement? |
Auteur: | julieng [ 13 Sep 2019 23:48 ] |
Sujet du message: | Re: Netatmo Thermostat - Bug avéré avec le script |
J'ai réglé le problème en rajoutant en dur des switch dans le code... Je pense qu'il y aurait moyen de faire ca plus proprement avec un tableau, dynamique dans cached_xml et last_xml_success mais je n'ai pas eu envie de me prendre la tete. echo $cached_xml; $cached_xml = str_replace('<cached>0</cached>', '<cached>1</cached>', $cached_xml); if ($allow_cache) { switch($room_id) { case '230518663'; saveVariable('cached_xml_e1', $cached_xml); saveVariable('last_xml_success_e1', time()); break; case '694056709'; saveVariable('cached_xml_e2', $cached_xml); saveVariable('last_xml_success_e2', time()); break; case '2956991408'; saveVariable('cached_xml_e3', $cached_xml); saveVariable('last_xml_success_e3', time()); break; case '4145288283'; saveVariable('cached_xml_e4', $cached_xml); saveVariable('last_xml_success_e4', time()); break; |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |