Application en ligne de commande pour piloter votre thermostat Netatmo connecté à votre chaudière.
Note importante : Cette application utilise exclusivement
api.netatmo.com. Le domaineapi.netatmo.netsera retiré le 8 septembre 2025 par Netatmo.
- Installer les dépendances :
pip install -r requirements.txt-
Obtenir les identifiants API Netatmo :
- Rendez-vous sur https://dev.netatmo.com/
- Créez un compte développeur si ce n'est pas déjà fait
- Allez dans "My Apps" et créez une nouvelle application
- Notez votre
Client IDetClient Secret
-
Configurer les identifiants : Créez un fichier
.envà la racine du projet avec le contenu suivant :
NETATMO_CLIENT_ID=your_client_id_here
NETATMO_CLIENT_SECRET=your_client_secret_here
NETATMO_USERNAME=your_email@example.com
NETATMO_PASSWORD=your_password_hereRemplacez les valeurs par vos identifiants réels.
python netatmo_cli.py statuspython netatmo_cli.py set 20.5python netatmo_cli.py frost-guard on
python netatmo_cli.py frost-guard offpython netatmo_cli.py history
python netatmo_cli.py history --days 14python netatmo_cli.py statspython netatmo_cli.py status --jsonstatus: Affiche la température actuelle, la température cible, le mode et le statutset <température>: Définit une nouvelle température cible (en °C)frost-guard on|off: Active ou désactive le mode hors gelhistory [--days N]: Affiche l'historique des températures (par défaut 7 jours)stats: Affiche des statistiques (température moyenne, min, max)
--json: Affiche la sortie au format JSON--debug: Mode debug (affiche plus de détails sur les erreurs)
Si vous obtenez une erreur 403 ou le message "The request is blocked", vérifiez :
-
Identifiants corrects : Vérifiez que votre
Client ID,Client Secret,usernameetpassworddans le fichier.envsont corrects.- Le
Client IDetClient Secretdoivent être ceux de votre application créée sur https://dev.netatmo.com/ - Le
usernameetpasswordsont ceux de votre compte Netatmo (celui utilisé pour vous connecter à l'application mobile)
- Le
-
Configuration de l'application dans le portail développeur :
- Allez sur https://dev.netatmo.com/ et connectez-vous
- Vérifiez que votre application est bien créée et active
- Assurez-vous que l'application a les permissions nécessaires (Energy API / Thermostat)
- Vérifiez que l'application n'a pas de restrictions IP ou autres restrictions de sécurité
-
Format du fichier .env : Vérifiez que le fichier
.envest bien formaté :- Pas d'espaces autour du
= - Pas de guillemets autour des valeurs (sauf si nécessaire pour les caractères spéciaux)
- Pas de lignes vides ou de commentaires mal formatés
- Exemple correct :
NETATMO_CLIENT_ID=abc123def456 NETATMO_CLIENT_SECRET=xyz789 NETATMO_USERNAME=email@example.com NETATMO_PASSWORD=MonMotDePasse#123
- Pas d'espaces autour du
-
Caractères spéciaux dans le mot de passe : Si votre mot de passe contient des caractères spéciaux, assurez-vous qu'ils sont correctement écrits dans le fichier
.env. -
Mode debug : Utilisez l'option
--debugpour obtenir plus d'informations sur l'erreur :python netatmo_cli.py status --debug
Note importante : Si la requête est bloquée par Netatmo, cela peut aussi indiquer que votre compte ou votre application a des restrictions de sécurité. Dans ce cas, contactez le support Netatmo.
Deux scripts de test sont disponibles pour diagnostiquer les problèmes d'authentification :
Script Python :
python3 test_auth.pyScript curl (pour tester directement avec curl) :
./test_curl.shCes scripts testent différentes méthodes d'authentification et affichent des informations détaillées pour aider à identifier le problème.
Si vous obtenez toujours une erreur 403 même avec curl, le problème vient de la configuration Netatmo, pas du code. Vérifiez dans le portail développeur Netatmo (https://dev.netatmo.com/) :
-
Type d'authentification :
- Vérifiez que votre application utilise bien le type d'authentification "Password"
- Certaines applications peuvent nécessiter un flux OAuth2 avec redirection au lieu du grant type "password"
- Vérifiez dans les paramètres de l'application si le grant type "password" est activé
-
Permissions API :
- Assurez-vous que l'application a accès à l'API Energy (pour les thermostats)
- Vérifiez que les scopes
read_thermostatetwrite_thermostatsont autorisés
-
État de l'application :
- Vérifiez que l'application est bien "Active" et non en attente d'approbation
- Certaines applications nécessitent une validation manuelle par Netatmo
-
Whitelist IP / Restrictions de sécurité :
- Si votre application a une whitelist IP, assurez-vous que votre adresse IP est autorisée
- Vérifiez s'il y a d'autres restrictions de sécurité activées
-
Identifiants :
- Vérifiez que le
Client IDetClient Secretcorrespondent exactement à ceux affichés dans le portail - Assurez-vous qu'il n'y a pas d'espaces ou de caractères invisibles
- Recréez une nouvelle application si nécessaire pour obtenir de nouveaux identifiants
- Vérifiez que le
-
Compte Netatmo :
- Le
usernameetpassworddoivent être ceux de votre compte Netatmo principal - Testez que vous pouvez vous connecter avec ces identifiants sur https://my.netatmo.com/
- Le
Si toutes ces vérifications sont correctes et que l'erreur 403 persiste, il est possible que :
- Netatmo ait restreint le grant type "password" pour votre région/compte
- L'application nécessite une approbation spéciale pour accéder à l'API Energy
- Il y ait un problème temporaire avec l'API Netatmo
Dans ce cas, contactez le support Netatmo avec les références d'erreur (x-azure-ref dans les headers de réponse) pour obtenir de l'aide.