A custom Home Assistant integration for Tesla Powerwall systems using the Netzero Developer API. It brings your Powerwall's live data and its settings into Home Assistant — no local gateway access or Tesla Fleet API keys required, just the site ID and API token from the Netzero app.
Live data (sensors)
| Entity | Description |
|---|---|
| Battery | Battery charge level (%) |
| Solar power | Current solar production (W) |
| Battery power | Battery output in W (negative while charging) |
| Home load | Current home consumption (W) |
| Grid power | Grid usage in W (positive importing, negative exporting) |
| Generator power | Power from other generation sources (W, if reported) |
| Grid status | Active / Inactive |
| Island status | On grid / Off grid (if reported) |
| Storm watch | Binary sensor — on when Storm Watch is active |
| Last update | Timestamp of the latest reading (diagnostic) |
| Wall connector … | Power, state, and fault state per Tesla Wall Connector (if present) |
Controls (write access via the Netzero API)
| Entity | Type | Description |
|---|---|---|
| Backup reserve | Number (slider) | Backup reserve percentage, 0–100 % |
| Operational mode | Select | Time-based control / Self-powered / Backup only |
| Energy exports | Select | Solar only / Everything / Never |
| Grid charging | Switch | Allow charging the Powerwall from the grid |
Changing a control immediately pushes the new configuration to your Tesla system through Netzero, and the entities update from the API response.
- In Home Assistant, open HACS.
- Open the ⋮ menu (top right) → Custom repositories.
- Add this repository's URL with type Integration:
https://github.com/sebastianwrightclaud/NetZero-Home-Assistant-Integration - Search for Netzero (Tesla Powerwall) in HACS and install it.
- Restart Home Assistant.
Copy custom_components/netzero into the custom_components folder of your Home Assistant configuration
directory and restart Home Assistant.
- Get your credentials from the Netzero app: Account > Settings > Developer API. You need the energy site ID and the API token.
- In Home Assistant go to Settings > Devices & Services > Add Integration and search for Netzero (Tesla Powerwall).
- Enter the site ID and API token.
All entities are grouped under a single Tesla Powerwall device. If your token ever stops working, the integration will prompt you to re-authenticate.
Open the integration's Configure dialog to change the polling interval (default 60 s, minimum 30 s). The Netzero API refreshes live data roughly once per minute, so polling faster mostly returns the same data.
The Netzero API exposes instantaneous power (W), not cumulative energy (kWh). To feed the Energy dashboard, create Riemann sum integral helpers (Settings > Devices & Services > Helpers > Create helper > Integration) for the power sensors you care about (e.g. solar power, grid power), using the left method and unit prefix k. The resulting kWh sensors can be selected in Settings > Dashboards > Energy.
- Raise the backup reserve when a storm is forecast, lower it afterwards.
- Switch to time-based control and enable grid charging during cheap overnight rates.
- Notify when the home goes off-grid (
Island statusbecomesOff grid) or Storm Watch activates.
- This integration is not affiliated with Tesla or Netzero.
- The API token grants control over your Powerwall configuration — treat it like a password. Diagnostics downloads redact the token, site ID, and wall connector serial numbers.
- Requires Home Assistant 2024.12 or newer.
Issues and pull requests are welcome. The repository runs hassfest and HACS validation in CI.