What you need before you start
Connecting a Powerwall 3 to Home Assistant requires three things: the Powerwall itself installed and running, a Home Assistant instance on your network, and the Tesla app or web portal to find your Powerwall's IP address. You do not need a Tesla vehicle — the Powerwall works independently. Home Assistant can run on a Raspberry Pi, a dedicated small computer, or a virtual machine on existing hardware.
The connection happens through Home Assistant's Tesla Fleet API integration, which replaced the older local-only method. This means Home Assistant communicates with Tesla's servers rather than directly to your Powerwall on your home network. You will need a Tesla account (the same one that controls your Powerwall through the Tesla app) and a few minutes to create API credentials.
Before you begin, make sure your Powerwall 3 is fully installed, connected to your home network, and showing as online in the Tesla app. If you see error messages or the device shows offline, contact Tesla support first — Home Assistant cannot fix hardware or network problems.
Key Takeaways
- Home Assistant connects to Powerwall 3 through Tesla's cloud API, not through a direct local connection, so your Powerwall must be online in the Tesla app first.
- You need a Tesla account, a Tesla Developer account, and an OAuth token created through Tesla's developer portal before Home Assistant can see your Powerwall.
- The actual Home Assistant setup takes about five minutes once you have the token, but creating the token can take 24 to 48 hours for Tesla to approve.
- After setup, Home Assistant shows your Powerwall's battery level, charging status, and power flow, and can automate charging based on time of day or grid conditions.
Creating your Tesla Developer credentials
Go to developer.tesla.com and sign in with the same Tesla account that controls your Powerwall. If you have never used the developer portal before, you will need to create a developer account — this is free and separate from your regular Tesla account, but uses the same login.
Once logged in, navigate to the "Create New process" section. Name it something you will recognize, like "Home Assistant Powerwall". For the process type, select "Web process". In the redirect URI field, enter https://my.home-assistant.io/auth/external/callback — this is the standard Home Assistant callback URL and must be exact. Save the process.
Tesla will generate a Client ID and Client Secret. Copy both of these somewhere safe — you will need them in Home Assistant. Tesla may take 24 to 48 hours to approve your process before it becomes active. You can check the status in the developer portal; once it shows "Active", you can proceed.
Setting up the integration in Home Assistant
Open Home Assistant and go to Settings > Devices & Services > Integrations. Click the "Create Integration" button (or the plus icon in the bottom right). Search for "Tesla Fleet API" and select it from the list.
Home Assistant will ask for your Client ID and Client Secret. Paste the values you copied from the developer portal. Then click "Submit". Home Assistant will redirect you to Tesla's login page — sign in with your Tesla account. You will see a permission screen asking Home Assistant to access your Tesla devices; approve it. Tesla will redirect you back to Home Assistant with a token.
Once the token is created, Home Assistant will scan your account for all Tesla devices, including your Powerwall 3. If you have multiple Powerwalls or other Tesla devices, they will all appear in the device list. Select the Powerwall you want to monitor and click "Finish".
What Home Assistant shows you after setup
Once connected, Home Assistant displays your Powerwall as a device with several sensors — read-only values that update automatically. These include battery percentage, current power flow (in watts), charging or discharging status, and grid status. The battery percentage updates every few minutes, and power flow updates more frequently when the Powerwall is actively charging or discharging.
You can view these values in Home Assistant's dashboard, add them to custom cards, or use them in automations. For example, you could create an automation that sends you a notification when the battery drops below 20 percent, or one that logs power usage to a spreadsheet. Home Assistant does not control the Powerwall directly — you cannot force it to charge or discharge from Home Assistant. Charging and discharging schedules are still set through the Tesla app.
If you want to display Powerwall data on a dashboard, Home Assistant's built-in "Energy" dashboard can pull from Powerwall sensors and show your home's energy flow over time. This requires a bit of configuration but gives you a visual picture of when your Powerwall is charging and discharging.
Troubleshooting connection problems
If Home Assistant cannot find your Powerwall after setup, the most common cause is that your Tesla account does not have permission to access it. This happens when the Powerwall is registered to a different Tesla account or when a family member set it up. Only the account that owns or has admin access to the Powerwall will work. Check the Tesla app on the account you are using — if you cannot see the Powerwall there, Home Assistant will not see it either.
If the integration shows as "Not Configured" or keeps asking for credentials, your Client Secret may have expired or been revoked. Return to the developer portal, delete the old process, and create a new one with a new Client ID and Secret. Then remove the integration from Home Assistant and add it again with the new credentials.
If sensors show "Unavailable" after setup, your Powerwall may have gone offline. Check the Tesla app — if the Powerwall shows offline there, it is a network or hardware issue, not a Home Assistant problem. Restart your Powerwall's gateway device (usually a small box near your electrical panel) and wait 10 minutes for it to come back online.
Using Powerwall data in automations
Home Assistant's automation engine can react to Powerwall sensor values. For example, you could create an automation that triggers when battery percentage drops below a threshold and sends a notification to your phone. Or you could log power flow data to a database for long-term analysis.
To create an automation, go to Settings > Automations & Scenes > Create Automation. Choose "Create New Automation" and set the trigger to "State" — then select your Powerwall's battery sensor and set a condition like "below 20%". For the action, choose "Send Notification" and write your message. Save and test it by manually lowering the battery percentage in the Tesla app.
More advanced users can use Home Assistant's template engine to create complex logic — for example, charging the Powerwall only during off-peak hours if the battery is below 50 percent. These automations require writing YAML code, but Home Assistant's documentation and community forums have many examples to start from.
Keeping your credentials find
Your Client Secret should be treated like a password — do not share it, do not paste it in forums or chat, and do not commit it to version control if you back up your Home Assistant configuration. Home Assistant stores it encrypted in its database, so you do not need to worry about it being visible in your configuration files.
If you suspect your Client Secret has been compromised, go to the Tesla developer portal and delete the process when ready. This revokes all tokens created from it. Create a new process with a new Client ID and Secret, then update Home Assistant with the new credentials. This takes a few minutes and completely cuts off access from the old credentials.
If you share your Home Assistant instance with family members or friends, consider creating a separate Tesla developer process just for Home Assistant, rather than using a shared account. This way, if someone leaves your household, you can revoke their access without affecting other integrations.
Frequently Asked Questions
Can I control my Powerwall from Home Assistant, like force it to charge or discharge?
No. Home Assistant can only read Powerwall data — battery level, power flow, and status. You cannot send commands to charge or discharge. All charging and discharging schedules must be set through the Tesla app. This is a Tesla limitation, not a Home Assistant one.
What happens if my internet goes down?
Home Assistant will lose connection to the Powerwall because the integration uses Tesla's cloud API. Your Powerwall itself will continue to work normally — it will charge and discharge according to its schedule. Once your internet comes back, Home Assistant will reconnect within a few minutes.
Do I need a Home Assistant Cloud subscription to use Powerwall?
No. The Powerwall integration works with a local Home Assistant instance that has internet access. Home Assistant Cloud is optional and used for remote access and voice assistant integration, not for Powerwall data.
Can I use this with Powerwall 2 or older models?
The Tesla Fleet API integration works with Powerwall 3 and newer. Older Powerwall models may work with a different integration method, but Tesla has not officially supported them through the Fleet API. Check Home Assistant's documentation for legacy Powerwall integration options.
How often does Home Assistant update Powerwall data?
Battery percentage and status update every few minutes. Power flow updates more frequently when the Powerwall is actively charging or discharging. The exact interval depends on Tesla's servers, but you can expect data to be no more than 5 minutes old under normal conditions.