Planning Thermostat : bad Request : le retour :)

bonjour et tout d’abord un grand merci pour ce plugin que j’utilise depuis 2 bonnes années
je n’ai jamais eu a m’inscrire au forum car ayant toujours trouvé les réponses :slight_smile: mais la je sèche
j’ai le même problème qui a été remonté le 25 juillet, le plugin reçoit bien les infos de netatmo, mais quand l’exécute mon script qui passe le planning en mode planning et ou absent ( donc en voie jeedom>netatmo ) j’ai l’erreur bad request

voici le log:

0000|[2025-09-08 21:24:01][DEBUG] : execute:: options:array (   'background' => '0',   'select' => '2', )
0001|[2025-09-08 21:24:01][DEBUG] : execute:: this:\netatmoproCmd::__set_state(array(    'id' => 1724,    'logicalId' => 'setthermmode',    'generic_type' => NULL,    'eqType' => 'netatmopro',    'name' => 'Mode de chauffage',    'order' => 1,    'type' => 'action',    'subType' => 'select',    'eqLogic_id' => 185,    'isHistorized' => '0',    'unite' => '',    'configuration' =>    array (     'listValue' => '0|Mode Hors-Gel (hg);1|Mode Absent (away);2|Planning (schedule)',     'minValue' => '',     'maxValue' => '',   ),    'template' => '{"dashboard":"core::default","mobile":"core::default"}',    'display' => '{"showStatsOnmobile":0,"showStatsOndashboard":0,"icon":"","invertBinary":"0"}',    'value' => '',    'isVisible' => 1,    'alert' => '[]',    '_collectDate' => '',    '_valueDate' => '',    '_eqLogic' =>    \netatmopro::__set_state(array(      'id' => 185,      'name' => 'Relais',      'logicalId' => '70:ee:50:a0:9c:de',      'generic_type' => NULL,      'object_id' => 6,      'eqType_name' => 'netatmopro',      'isVisible' => 1,      'isEnable' => 1,      'configuration' => '{"type":"NAPlug","version":1,"scope":"read_thermostat","createtime":"2023-12-05 18:18:44","dashboard":[],"updatetime":"2025-09-08 21:15:07","home_id":"650f14bd9cbc9f201c07c28e","home_name":"Mon domicile","firmware_revision":251,"wifi_strength":38,"comment":"","previousIsEnable":1,"previousIsVisible":1}',      'timeout' => NULL,      'category' => '{"heating":"1","security":"0","energy":"0","light":"0","opening":"0","automatism":"0","multimedia":"0","default":"0"}',      'display' => '{"backGraph::info":0,"width":"336px","height":"308px"}',      'order' => 9,      'comment' => NULL,      'tags' => NULL,      '_debug' => false,      '_object' =>      \jeeObject::__set_state(array(        'id' => 6,        'name' => 'Salon',        'father_id' => 13,        'isVisible' => 1,        'position' => 4,        'configuration' => '{"parentNumber":3,"tagColor":"#000000","tagTextColor":"#FFFFFF","mobile::summaryTextColor":"","icon":"<i class=\\"far fa-lemon\\"><\\/i>","hideOnDashboard":"0","hideOnOverview":"0","synthToAction":"synthToDashboard","info::type":"room","info::orientation":"270","info::space":"","useCustomColor":"1","useBackground":"0","summary::global::security":"0","summary::global::motion":"0","summary::global::door":"0","summary::global::windows":"0","summary::global::shutter":"0","summary::global::light":"0","summary::global::outlet":"0","summary::global::temperature":"0","summary::global::humidity":"0","summary::global::luminosity":"0","summary::global::power":"0","summary::hide::desktop::security":"0","summary::hide::desktop::motion":"0","summary::hide::desktop::door":"0","summary::hide::desktop::windows":"0","summary::hide::desktop::shutter":"0","summary::hide::desktop::light":"0","summary::hide::desktop::outlet":"0","summary::hide::desktop::temperature":"0","summary::hide::desktop::humidity":"0","summary::hide::desktop::luminosity":"0","summary::hide::desktop::power":"0","summary::hide::mobile::security":"0","summary::hide::mobile::motion":"0","summary::hide::mobile::door":"0","summary::hide::mobile::windows":"0","summary::hide::mobile::shutter":"0","summary::hide::mobile::light":"0","summary::hide::mobile::outlet":"0","summary::hide::mobile::temperature":"0","summary::hide::mobile::humidity":"0","summary::hide::mobile::luminosity":"0","summary::hide::mobile::power":"0","summary":{"security":[],"motion":[],"door":[],"windows":[],"shutter":[],"light":[],"outlet":[],"temperature":[],"humidity":[],"luminosity":[],"power":[]},"synthToPlan":"1","sendToHomebridge":"1"}',        'display' => '{"icon":"<i class=\\"icon maison-sofa5\\"><\\/i>","tagColor":"#eb4d3d","tagTextColor":"#ebebeb"}',        'image' => '{"type":"jpg","sha512":"be27608dadab0aafafb4927df83dd5250187fe880a9fef7b604af6757e07257c5162c73bf922400a8da755d2f94aee860e34079b7c9d238b275e6b9648a0de51"}',        '_child' =>        array (       ),        '_changed' => false,        '_summaryChanged' => false,     )),      '_needRefreshWidget' => false,      '_timeoutUpdated' => false,      '_batteryUpdated' => false,      '_changed' => false,      '_cmds' =>      array (     ),   )),    '_needRefreshWidget' => NULL,    '_needRefreshAlert' => NULL,    '_changed' => false, ))
0002|[2025-09-08 21:24:01][DEBUG] : execute:: this:array (   'listValue' => '0|Mode Hors-Gel (hg);1|Mode Absent (away);2|Planning (schedule)',   'minValue' => '',   'maxValue' => '', )
0003|[2025-09-08 21:24:01][ALERT] : Starting task (Relais/Mode de chauffage #1724)
0004|[2025-09-08 21:24:02][ERROR] : execute:: ex:'Netatmo\\Exceptions\\NAApiErrorType - 400 - bad request'
0005|[2025-09-08 21:24:02][ERROR] : Erreur exécution de la commande [Salon][Relais][Mode de chauffage] : bad request
0006|[2025-09-08 21:24:02][DEBUG] : cron:: refresh:''

rien de foufou dedans
j’étais toujours en plugin stable, là j’ai migré sur la bêta
mon jeedom est en 4.4.20
le bilan de santé :wink:

si tu as une idée ?

je n’ai pas eu le droit de mettre la 3eme image la voici :slight_smile:

et j’oubliai, j’ai tenté de remplacer le netatmopro.class.php

j’ai aussi tenté la suppression du fichier temp via la commande
sudo rm -fr /tmp/jeedom/netatmopro/
( faite dans un scénario je ne sais pas si c’est comme ça qu’il faut la passer ^^)
j’ai biensur aussi désapairé tous les programmes dans
https://myconnectedaccount.netatmo.com/partners-apps
j’ai recréé le lien, avec succès
j’ai fais la synchro dans « gestion »
Synchronisation en cours avec le retour d’erreur que j’ai toujours eu :slight_smile: ( mais qui n’a jamais bloqué )

Client error: `POST https://api.netatmo.com/api/addwebhook?xxxxxxx resulted in a `400 Bad Request` response: {"error":{"code":21,"message":"Allowed ports for webhooks are 80, 88, 443 and 9443."}}

Les valeurs se mettent bien a jours sur le serveur netatmo puisque les modes changent comme désiré ( mais le message d’erreur subsiste )

j’avais toujours réussi a me dépatouiller mais la je sèche

Bonjour

Il y a déjà un sujet.

Antoine

Bonjour,

Je t’engage à passer par le plugin Mqtt Netatmo.

Fonctionne très bien.

Bonjour @NIK44fr

Pourrais-tu exceptionnellement me donner accès à ton installation Jeedom en m’envoyant les informations d’accès en MP ?
Ce serait ainsi beaucoup plus simple pour comprendre ce qui se passe chez toi

Pour ma part, il n’y a plus aucun souci avec les commandes liées à la partie Energie dans la dernière version beta

Hello j’ai bien vu , et si tu lis bien mon message tu verras que j’ai tout essayé sur ce qui a été déjà exposé :wink:
Jusqu’à présent ce qui a été donné ici suffisait , mais pas dans le cas que je rencontre aujourd’hui :slight_smile:

Merci je regarde pour te passer ça ce soir !

1 « J'aime »

Je l’ai aussi mais je préfère celui ci , l’autre me a justement du mal à « subir » les queries des départ du domicile où j’ai 2/3 départs dans les 5 minutes qui me lancent à chaque fois mon scénario de présence /absence et me remobte un « too many queries » et n’envoie pas l’instruction à netatmo ( bien sûr quand j’utilise un plugin je désactive l’autre )
Mais en effet depuis 1 ans ils l’ont amélioré et il est pas mal aussi !

si quelqu’un a une idée afin d’épurer au max les erreurs ( car oui les consignes passent bien pour autant :sailboat:

Je suis désolé pour le délai mais je dois malheureusement gérer pas mal de choses en parallèle.
Une nouvelle version beta sera disponible semaine prochaine pour corriger ce bug.

Merci de votre patience !

Bonjour idem allumage du chauffage et des erreurs :

ex:'GuzzleHttp\Exception\ClientException - 429 - Client error: GET https://app.netatmo.net/api/homestatus?home_id=6xxxcxxc resulted in a 429 ConcurrencyLimitTimedOut response: { « error »: { « code »: 11, « message »: « Failed to enter concurrency limited section » } } ’
0111|[2025-09-23 20:40:09] ALERT : cron5:: ex:'GuzzleHttp\Exception\ClientException - 429 - Client error: GET https://app.netatmo.net/api/homestatus?home_id=6xxxxxcc resulted in a 429 ConcurrencyLimitTimedOut response: { « error »: { « code »: 11, « message »: « Failed to enter concurrency limited section » } } ’
0112|[2025-09-24 02:25:09] ALERT : cron5:: ex:'GuzzleHttp\Exception\ClientException - 429 - Client error: GET https://app.netatmo.net/api/homestatus?home_id=xxxxx resulted in a 429 ConcurrencyLimitTimedOut response: { « error »: { « code »: 11, « message »: « Failed to enter concurrency limited section » } } ’
0113|[2025-09-24 07:30:07] ALERT : cron5:: ex:'GuzzleHttp\Exception\ClientException - 429 - Client error: GET https://app.netatmo.net/api/homestatus?home_id=6xxxxxxxx resulted in a 429 ConcurrencyLimitTimedOut response: { « error »: { « code »: 11, « message »: « Failed to enter concurrency limited section » } } ’
0114|[2025-09-24 09:50:07] ALERT : cron5:: ex:'GuzzleHttp\Exception\ClientException - 429 - Client error: GET https://app.netatmo.net/api/homestatus?home_id=6xxxxxc&device_types=NAPlug resulted in a 429 ConcurrencyLimitTimedOut response: { « error »: { « code »: 11, « message »: « Failed to enter concurrency limited section » } } ’
0115|[2025-09-24 16:43:29] ALERT : Starting task (Netatmo Relais/Planning #7067)
0116|[2025-09-24 16:43:29] ERROR : execute:: ex:‹ Netatmo\Exceptions\NAApiErrorType - 400 - bad request ›
0117|[2025-09-24 16:43:29] ERROR : Erreur exécution de la commande [Salon][Netatmo Relais][Planning] : bad request
0118|[2025-09-24 16:43:29] ALERT : Starting task (Netatmo Relais/Mode de chauffage #7066)
0119|[2025-09-24 16:43:31] ERROR : execute:: ex:‹ Netatmo\Exceptions\NAApiErrorType - 400 - bad request ›
0120|[2025-09-24 16:43:31] ERROR : Erreur exécution de la commande [Salon][Netatmo Relais][Mode de chauffage] : bad request
0121|[2025-09-24 19:50:08] ALERT : Starting task (Netatmo Salon/Manual Boost #7059)
0122|[2025-09-24 19:50:09] ERROR : execute:: ex:‹ Netatmo\Exceptions\NAApiErrorType - 400 - bad request ›
0123|[2025-09-24 19:50:09] ERROR : Erreur exécution de la commande [Salon][Netatmo Salon][Manual Boost] : bad request

cool merci rien de préssé tant que ça marche bien déjà :wink: c’est juste pour le coté « maniaque »

@NIK44fr : je viens de faire une correction dans la branche beta du plugin.
Peux-tu mettre à jour le plugin (beta) et refaire un test de la commande « Mode de chauffage » ?

@kwet : peux-tu faire une mise à jour du plugin avec la version beta ?
Pour information, les commandes « Planning » et « Manual Boost » sont disponibles dans cette version depuis fin Juillet.

Avec cette dernière mise à jour (version beta), les 3 commandes que tu indiques devraient être ok

Bonjour,

Merci je vais tester pendant 2 semaines avec la version beta du plugin.

par contre je vois les messages suivants dans la log :

[2025-10-06 17:30:11] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 17:35:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 17:40:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 17:45:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 17:50:25] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 17:55:31] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"}

Je pense qu’il serait intéressant de refaire une nouvelle association de ton compte Netatmo avec Jeedom + synchronisation manuelle depuis la page principale du plugin

Je viens de le refaire et voici les messages d’erreur :

"error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 18:30:08] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 18:35:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 18:40:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 18:45:06] ALERT  : cron5:: ex:'GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_scope","error_description":"Scope is not identical as the one granted by the user"} '
[2025-10-06 18:45:39] ERROR  : redirectURI:: ex:'GuzzleHttp\\Exception\\ClientException - GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_grant"} '
[2025-10-06 18:45:40] ERROR  : redirectURI:: ex:'GuzzleHttp\\Exception\\ClientException - GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_grant"} '
[2025-10-06 18:45:40] ERROR  : redirectURI:: ex:'GuzzleHttp\\Exception\\ClientException - GuzzleHttp\\Exception\\ClientException - 400 - Client error: `POST https://api.netatmo.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"invalid_grant"}

Possible de m’envoyer en MP un accès à ton installation Jeedom ?

Ok, je t’envoie de suite tu me diras quand le couper.

hello
merci @thanaus , ça marche nickel et sans l’erreur depuis ta nouvelle beta !

super réactif ça fait plaisir !

1 « J'aime »