Bonjour Loïc (et les lecteurs de post),
Je reviens sur le sujet initial du message d’'erreur de ce post je pense avoir diagnostiqué l’origine !
L’erreur se produit à 100% lorsqu’un des modules est en erreur ; Car la réponse (sur /homestatus?home_id=XXXXXXXXXXXXXX) contient dans la partie « body » un conteneur « home » (situation normale) mais aussi un conteneur « errors ».
Illustration avec 2 situations :
A) Situation normale (sans module en erreur)
{"status":"ok","time_server":1712614592,"body":{"home":{"id":"75d5","modules":[{"boiler_control":"opentherm","firmware_revision":25,"id":"70:xx:xx:xx:xx:xx","outdoor_temperature":13,"rf_strength":64,"type":"OTH","wifi_strength":57}],"rooms":[{"anticipating":false,"id":"599","therm_measured_temperature":21,}]}}}
B) Situation avec un module en erreur (module id 90:00:00:00:XX:XX) : La réponse contient bien le status des équipements, mais aussi un conteneur « errors » pour signaler le(s) problème(s) qui peuvent exister sur un/des équipements (avec la nature de l’erreur: Code 2 dans l’exemple ci-dessous - Inaccessible )
{"status":"ok","time_server":1712614592,"body":{"home":{"id":"75d5","modules":[{"boiler_control":"opentherm","firmware_revision":25,"id":"70:xx:xx:xx:xx:xx","outdoor_temperature":13,"rf_strength":64,"type":"OTH","wifi_strength":57}],"rooms":[{"anticipating":false,"id":"599","therm_measured_temperature":21,}]},"errors":[{"code":2,"id":"90:00:00:00:XX:XX"}]}}
Malheureusement je ne maitrise pas node.js ni le client http Axios utilisé par le cloud netatmo/jeedom.
Quand il y a une vrai erreur sur la requête /homestatus il n’y a qu’un conteneur « error » et rien d’autre;
Exemples :
{"error":{"code":1,"message":"Access token is missing"}}
{"error":{"code":2,"message":"Invalid access_token"}}
{"error":{"code":3,"message":"Access token expired"}}
{"error":{"code":21,"message": "Invalid home_id"}}
{"error":{"code":10,"message":"Missing home_id"}}"}
Il faut donc ignorer ou ne pas chercher error/errors sur le conteneur « body » ; sinon c’est là qu’on arrive au fameux :
{result : {state : "nok",error : "Can no post netatmo server : "+JSON.stringify(error?.response?.data)}}
J’espère que les infos sont suffisamment claires, je reste dispo si nécessaire !