Ir al contenido
Netzero

API para desarrolladores y automatización

Introducción

Netzero te permite programar cambios de configuración del Powerwall desde la app (reserva de respaldo, modo operativo, exportaciones de energía y carga desde la red).

Para un uso más avanzado, la app también ofrece una API que te permite gestionar estos cambios de configuración.

Token de API

Empieza iniciando sesión en tu cuenta de Tesla con la app Netzero. Para acceder a tu token de API y al ID de tu instalación de energía, abre el menú Cuenta (el último menú) y selecciona Ajustes > API para desarrolladores. Es importante mantener seguro tu token de API: aunque solo da acceso a los datos que se muestran aquí, sí permite gestionar la configuración del Powerwall.

El token se puede revocar y regenerar en la misma pantalla. La API para desarrolladores requiere una suscripción de Netzero para las cuentas creadas a partir de julio de 2026.

Automatización con solicitudes a la API

Si sabes ejecutar solicitudes web con curl o herramientas similares, puedes gestionar la configuración con scripts.

Para obtener la configuración actual y el estado en tiempo real del sistema, inserta los valores de $API_TOKEN y $SITE_ID obtenidos arriba y ejecuta:

Terminal window
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
}
]
}
}

Esta respuesta incluye tanto los valores de configuración como la potencia actual. Si tienes un Wall Connector conectado a tu cuenta, también verás el estado de carga del coche.

Para modificar la configuración, envía una solicitud POST con los nuevos valores. Puedes ajustar uno o varios de los siguientes parámetros en la misma solicitud:

  • backup_reserve_percent: valores enteros de 0 a 100, o la cadena preserve para fijar la reserva de respaldo en el estado de carga actual (esto evita que el Powerwall se descargue, por ejemplo mientras cargas un EV).

  • operational_mode: elige uno de:

    • autonomous (Ahorro, usa la energía almacenada para maximizar el ahorro según tu plan de tarifas),
    • self_consumption (Autoabastecimiento, usa la energía almacenada para alimentar tu casa cuando se pone el sol).
    • backup (modo Respaldo, consulta la documentación para más detalles).
  • energy_exports: elige uno de:

    • pv_only (exportar solo energía solar),
    • battery_ok (exportar tanto la energía solar como la energía almacenada en el Powerwall),
    • never (sin exportaciones).
  • grid_charging: elige true o false.

  • storm_watch: elige true o false para habilitar o deshabilitar la participación en Vigilancia de tormenta (documentación de Tesla). Se reporta como null en los sistemas donde Vigilancia de tormenta no está disponible.

  • off_grid_status: elige uno de:

    • go_off_grid (desconectar el sistema de la red eléctrica),
    • reconnect_grid (reconectar el sistema a la red eléctrica).

    Las llamadas a la API con off_grid_status requieren una suscripción de Netzero y la Vinculación de Powerwall. Consulta Estado de desconexión de la red más abajo para más detalles.

Puedes modificar uno o varios de estos valores en la misma solicitud.

Terminal window
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 respuesta es igual a la de la solicitud GET: devuelve la configuración actualizada (incluidos los cambios realizados) junto con el estado en tiempo real.

La respuesta refleja la configuración tal como la reporta Tesla, así que compárala con los valores que enviaste para confirmar que el cambio se aplicó. Ten en cuenta que Tesla no admite una reserva de respaldo entre el 81% y el 99%, y se restablece al 80%: consulta Actualización de la reserva de respaldo del Powerwall.

Este es un ejemplo con código Python en lugar de curl:

import os
import 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())

Valores del estado de la red

El campo de respuesta grid_status indica si el sistema está conectado a la red eléctrica, con el estado de funcionamiento en isla entre paréntesis cuando está disponible. Los valores posibles incluyen:

  • Active (on_grid): el sistema está conectado a la red eléctrica.
  • Inactive (off_grid_intentional): el sistema se desconectó intencionadamente (consulta Estado de desconexión de la red más abajo).
  • Inactive (off_grid_unintentional): el sistema está desconectado de la red eléctrica debido a un corte de red.
  • Unknown (island_status_unknown): Tesla no reportó el estado de la red. Algunos sistemas reportan este estado durante periodos prolongados incluso cuando la red funciona.

Si Tesla no reporta un estado de funcionamiento en isla, el valor es simplemente Active o Inactive.

Estado de desconexión de la red

El parámetro off_grid_status te permite desconectarte de la red eléctrica y volver a conectarte mediante programación. Es útil para evitar precios de venta negativos o cargos por demanda durante periodos concretos.

Requisitos:

Ejemplo: desconectar de la red eléctrica:

Terminal window
curl -H "Authorization: Bearer $API_TOKEN" \
--json '{"off_grid_status": "go_off_grid"}' \
https://api.netzero.energy/api/v1/$SITE_ID/config

Puedes consultar el estado actual de la red en la respuesta, en grid_status.