API développeur et automatisation
Introduction
Netzero vous permet de programmer des modifications de configuration du Powerwall depuis l’application (réserve de secours, mode de fonctionnement, énergie exportée et recharge depuis le réseau).
Pour un usage plus avancé, l’application propose également une API qui permet de gérer ces modifications de configuration.
Jeton d’API
Commencez par vous connecter à votre compte Tesla dans l’application Netzero. Pour accéder à votre jeton d’API et à l’identifiant de votre site énergétique, ouvrez le menu Compte (dernier menu) et sélectionnez Paramètres > API développeur. Il est important de conserver votre jeton d’API en lieu sûr : même s’il ne donne accès qu’aux données affichées ici, il permet de gérer la configuration du Powerwall.
Le jeton peut être révoqué et régénéré sur le même écran. L’API développeur nécessite un abonnement Netzero pour les comptes créés à partir de juillet 2026.
Automatisation par requêtes API
Si vous savez exécuter des requêtes web avec curl ou des outils similaires, vous pouvez gérer la
configuration à l’aide de scripts.
Pour récupérer la configuration actuelle et l’état en direct du système, insérez les valeurs $API_TOKEN et $SITE_ID obtenues ci-dessus et exécutez :
export API_TOKEN="..."export SITE_ID="..."
curl -H "Authorization: Bearer $API_TOKEN" https://api.netzero.energy/api/v1/$SITE_ID/config
{ "backup_reserve_percent": 80, "operational_mode": "autonomous", "energy_exports": "pv_only", "grid_charging": true, "storm_watch": true, "percentage_charged": 70, "grid_status": "Active (on_grid)",
"live_status": { "solar_power": 4140, "battery_power": -2520, "load_power": 1620, "grid_power": 0, [...], "wall_connectors": [ { "din": "1457768-02-G--B7S12345J12345", "wall_connector_state": 2, "wall_connector_fault_state": 2, "wall_connector_power": 0 } ] }}Cette réponse contient à la fois les valeurs de configuration et la puissance actuelle. Si un Wall Connector est associé à votre compte, vous verrez également l’état de recharge du véhicule.
Pour modifier la configuration, envoyez une requête POST avec les nouvelles valeurs. Vous pouvez ajuster un ou plusieurs des paramètres suivants dans une même requête :
-
backup_reserve_percent: valeurs entières de0à100, ou la chaînepreservepour régler la réserve de secours sur le niveau de charge actuel (ce qui empêche le Powerwall de se décharger, par exemple pendant la recharge d’un VE). -
operational_mode: choisissez l’une des valeurs suivantes :autonomous(Économies, utilise l’énergie stockée pour maximiser les économies selon votre plan tarifaire),self_consumption(Auto-alimentation, utilise l’énergie stockée pour alimenter votre domicile après le coucher du soleil).backup(mode Secours, voir la documentation pour plus de détails).
-
energy_exports: choisissez l’une des valeurs suivantes :pv_only(exporter uniquement l’énergie solaire),battery_ok(exporter à la fois l’énergie solaire et l’énergie stockée dans le Powerwall),never(aucune exportation).
-
grid_charging: choisisseztrueoufalse. -
storm_watch: choisisseztrueoufalsepour activer ou désactiver la participation à Surveillance des orages (documentation Tesla). Renvoyé commenullsur les systèmes où Surveillance des orages n’est pas disponible. -
off_grid_status: choisissez l’une des valeurs suivantes :go_off_grid(déconnecter le système du réseau),reconnect_grid(reconnecter le système au réseau).
Les appels d’API
off_grid_statusnécessitent un abonnement Netzero et l’Appairage du Powerwall. Consultez la section Statut hors réseau ci-dessous pour plus de détails.
Vous pouvez modifier une ou plusieurs de ces valeurs dans une même requête.
curl -H "Authorization: Bearer $API_TOKEN" \ --json '{"backup_reserve_percent": 50, "operational_mode": "self_consumption"}' \ https://api.netzero.energy/api/v1/$SITE_ID/config
{ "backup_reserve_percent": 50, "operational_mode": "self_consumption", "energy_exports": "pv_only", "grid_charging": true, "storm_watch": true, "percentage_charged": 98, "grid_status": "Active (on_grid)", "live_status": {...}}La réponse a la même forme que celle de la requête GET : elle fournit la configuration mise à jour (y compris les modifications effectuées) ainsi que l’état en direct.
La réponse reflète la configuration telle que Tesla la rapporte : comparez-la avec les valeurs que vous avez envoyées pour vérifier que la modification a bien été appliquée. Notez qu’une réserve de secours comprise entre 81 % et 99 % n’est pas prise en charge par Tesla et revient à 80 % : voir Mise à jour de la réserve de secours du Powerwall.
Voici un exemple en Python au lieu de curl :
import osimport requests
site_id = os.environ['SITE_ID']api_token = os.environ['API_TOKEN']config = {'backup_reserve_percent': 30, 'operational_mode': 'autonomous'}
response = requests.post( url=f'https://api.netzero.energy/api/v1/{site_id}/config', headers={'Authorization': f'Bearer {api_token}'}, json=config,)print(response.json())Valeurs de l’état du réseau
Le champ de réponse grid_status indique si le système est raccordé au réseau, avec l’état d’îlotage
entre parenthèses lorsqu’il est disponible. Les valeurs possibles sont notamment :
Active (on_grid): le système est raccordé au réseau.Inactive (off_grid_intentional): le système a été volontairement déconnecté (voir Statut hors réseau ci-dessous).Inactive (off_grid_unintentional): le système est hors réseau en raison d’une panne de secteur.Unknown (island_status_unknown): Tesla n’a pas indiqué l’état du réseau. Certains systèmes signalent cet état pendant de longues périodes, même lorsque le réseau fonctionne.
Si Tesla n’indique pas d’état d’îlotage, la valeur est simplement Active ou Inactive.
Statut hors réseau
Le paramètre off_grid_status vous permet de vous déconnecter du réseau et de vous y reconnecter par programmation.
C’est utile pour éviter les prix d’exportation négatifs ou les frais de puissance pendant certaines périodes.
Conditions requises :
- Un abonnement Netzero actif.
- L’Appairage du Powerwall doit être configuré.
Exemple : se déconnecter du réseau :
curl -H "Authorization: Bearer $API_TOKEN" \ --json '{"off_grid_status": "go_off_grid"}' \ https://api.netzero.energy/api/v1/$SITE_ID/configVous pouvez vérifier l’état actuel du réseau dans la réponse, sous grid_status.