Thermostat ne remonte pas

Bonjour,

Je viens de faire l’acquisition du plugin netatmopro en version beta.

Je possède, un thermostat relais, une camera presence et un detecteur monoxyde.

Le thermostat ne remonte pas et lors de la synchro une erreur 400 bad request invalid token est affichée.

image

Sachant que cette erreur n’apparait pas dans les logs

Cordialement,
Yannick

Je pense qu’il y a eu un soucis pendant l’association de Jeedom avec ton compte Netatmo.
Est-ce que cette procédure s’est terminée sans erreur ?

La procédure s’est bien terminée sans erreur.

Par contre j’ai eu une erreur 500 lorsque je l’ai retenté a partir de mon mobile en mode distant

Voici la trace lorsque j’excute l’association en mode distant via mes DNS

0000|[Tue Mar 05 11:41:17.427871 2024] [php7:error] [pid 165192] [client *****:51540] PHP Fatal error:  Uncaught GuzzleHttp\Exception\ClientException: Client error: `POST https://app.netatmo.net/oauth2/token` resulted in a `400 Bad Request` response:
0001|{"error":"invalid_grant"}
0002|in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
0003|Stack trace:
0004|#0 /var/www/html/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\Exception\RequestException::create()
0005|#1 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(204): GuzzleHttp\Middleware::GuzzleHttp\{closure}()
0006|#2 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(153): GuzzleHttp\Promise\Promise::callHandler()
0007|#3 /var/www/html/vendor/guzzlehttp/promises/src/TaskQueue.php(48): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
0008|#4 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(248): GuzzleHttp\Promise\TaskQueue->run()
0009|#5 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(224): GuzzleHttp\Promise\Promise->invokeWaitFn()
0010|#6 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(269): GuzzleHttp\Promise\ in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113

Je remarque dans les logs, lors de la synchronisation :

0043|[2024-03-07 12:23:44]DEBUG : synchronize:: guzzle:GuzzleHttp\Client::__set_state(array(    'config' =>    array (     'cookies' =>      GuzzleHttp\Cookie\FileCookieJar::__set_state(array(        'filename' => '/tmp/jeedom/netatmopro/b27536f76a9d4d240a34dbd84bc85085',        'storeSessionCookies' => true,        'cookies' =>        array (         6 =>          GuzzleHttp\Cookie\SetCookie::__set_state(array(            'data' =>            array (             'Name' => 'authnetatmocomrefresh_token',             'Value' => '[element caché]',             'Domain' => '.auth.netatmo.com',             'Path' => '/',             'Max-Age' => '0',             'Expires' => 1552130622,             'Secure' => true,             'Discard' => false,             'HttpOnly' => true,           ),         )),         7 =>          GuzzleHttp\Cookie\SetCookie::__set_state(array(            'data' =>            array (             'Name' => 'netatmocomaccess_token',             'Value' => 'deleted',             'Domain' => '.netatmo.com',             'Path' => '/',             'Max-Age' => '0',             'Expires' => 1678274621,             'Secure' => true,             'Discard' => false,             'HttpOnly' => false,           ),         )),         8 =>          GuzzleHttp\Cookie\SetCookie::__set_state(array(            'data' =>            array (             'Name' => 'XSRF-TOKEN',             'Value' => '[element caché]',             'Domain' => '.auth.netatmo.com',             'Path' => '/',             'Max-Age' => '7200',             'Expires' => 1709817824,             'Secure' => true,             'Discard' => false,             'HttpOnly' => false,           ),         )),         9 =>          GuzzleHttp\Cookie\SetCookie::__set_state(array(            'data' =>            array (             'Name' => 'authnetatmocomlaravel_session',             'Value' => '[element caché]',             'Domain' => '.auth.netatmo.com',             'Path' => '/',             'Max-Age' => '7200',             'Expires' => 1709817824,             'Secure' => true,             'Discard' => false,             'HttpOnly' => true,           ),         )),       ),        'strictMode' => false,     )),     'handler' =>      GuzzleHttp\HandlerStack::__set_state(array(        'handler' =>        Closure::__set_state(array(       )),        'stack' =>        array (         0 =>          array (           0 =>            Closure::__set_state(array(           )),           1 => 'http_errors',         ),         1 =>          array (           0 =>            Closure::__set_state(array(           )),           1 => 'allow_redirects',         ),         2 =>          array (           0 =>            Closure::__set_state(array(           )),           1 => 'cookies',         ),         3 =>          array (           0 =>            Closure::__set_state(array(           )),           1 => 'prepare_body',         ),       ),        'cached' =>        Closure::__set_state(array(       )),     )),     'allow_redirects' =>      array (       'max' => 5,       'protocols' =>        array (         0 => 'http',         1 => 'https',       ),       'strict' => false,       'referer' => false,       'track_redirects' => false,     ),     'http_errors' => true,     'decode_content' => true,     'verify' => true,     'idn_conversion' => true,     'headers' =>      array (       'User-Agent' => 'GuzzleHttp/6.5.5 curl/7.74.0 PHP/7.4.33',     ),   ), ))
0044|[2024-03-07 12:23:44]DEBUG : synchronize:: jar:GuzzleHttp\Cookie\FileCookieJar::__set_state(array(    'filename' => '/tmp/jeedom/netatmopro/b27536f76a9d4d240a34dbd84bc85085',    'storeSessionCookies' => true,    'cookies' =>    array (     6 =>      GuzzleHttp\Cookie\SetCookie::__set_state(array(        'data' =>        array (         'Name' => 'authnetatmocomrefresh_token',         'Value' => '[element caché]',         'Domain' => '.auth.netatmo.com',         'Path' => '/',         'Max-Age' => '0',         'Expires' => 1552130622,         'Secure' => true,         'Discard' => false,         'HttpOnly' => true,       ),     )),     7 =>      GuzzleHttp\Cookie\SetCookie::__set_state(array(        'data' =>        array (         'Name' => 'netatmocomaccess_token',         'Value' => 'deleted',         'Domain' => '.netatmo.com',         'Path' => '/',         'Max-Age' => '0',         'Expires' => 1678274621,         'Secure' => true,         'Discard' => false,         'HttpOnly' => false,       ),     )),     8 =>      GuzzleHttp\Cookie\SetCookie::__set_state(array(        'data' =>        array (         'Name' => 'XSRF-TOKEN',         'Value' => '[element caché]',         'Domain' => '.auth.netatmo.com',         'Path' => '/',         'Max-Age' => '7200',         'Expires' => 1709817824,         'Secure' => true,         'Discard' => false,         'HttpOnly' => false,       ),     )),     9 =>      GuzzleHttp\Cookie\SetCookie::__set_state(array(        'data' =>        array (         'Name' => 'authnetatmocomlaravel_session',         'Value' => '[element caché]',         'Domain' => '.auth.netatmo.com',         'Path' => '/',         'Max-Age' => '7200',         'Expires' => 1709817824,         'Secure' => true,         'Discard' => false,         'HttpOnly' => true,       ),     )),   ),    'strictMode' => false, ))
0045|[2024-03-07 12:23:44]DEBUG : synchronize:: uri:'https://app.netatmo.net/api/homesdata'

Le script plante ici car la valeur de netatmocomaccess_token est égale à ‹ deleted › … ?

Pour information, le problème résidais dans le mot de passe.

Celui-ci comportais le caractère #

Merci pour cette information…
Je vais voir comme gérer au mieux ce cas !

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.