Skip to the content.

Powerwall-Dashboard

Monitoring Dashboard for Tesla Solar and Powerwall systems using Grafana, InfluxDB, Telegraf and pyPowerwall.

Animation Monthly Yearly Powerwall+ FreqVoltage Alerts Weather

Dashboards

The default dashboard.json shown above, pulls in live power data from the local Tesla Energy Gateway or the Tesla Cloud and displays that on the Grafana dashboard. A power flow animation is rendered by the pyPowerwall container using that live data.

A non-animated version of the dashboard is also available using dashboard-no-animation.json

Dashboard

Requirements

The host system will require:

Setup

Clone this repo on the host that will run the dashboard:

    git clone https://github.com/jasonacox/Powerwall-Dashboard.git

Option 1 - Quick Start

Run the interactive setup script that will ask you for your setup details.

    cd Powerwall-Dashboard
    ./setup.sh

The dashboard can be installed in two different configurations.

    Powerwall Dashboard (v4.0.0) - SETUP
    -----------------------------------------
    Select configuration mode:

    1 - Local Access (Powerwall 1, 2, or + using the Tesla Gateway on LAN) - Default
    2 - Tesla Cloud  (Solar-only systems or Powerwalls without LAN access)

For Powerwall 1, 2 or + owners with a Tesla Energy Gateway accessible on their LAN, select option 1 (Local Access).

For Tesla Solar owners or Powerwalls without LAN access, select option 2 (Tesla Cloud) and the dashboard will be installed to pull the data available from the Tesla Cloud API. This mode works for Solar Only and Powerwall 3 owners, but will not provide all the details or fidelity that the “Local Access” mode offers.

Next, you will then be asked for your Local timezone, and your Powerwall details or Tesla Cloud login details. To find your timezone, see the second column in this table: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Follow the Grafana Setup instructions provided (or see below) to complete the setup.

Option 2 - Manual Install

If you prefer, you can perform the same steps that setup.sh performs.

Note: some manual configuration is required if you are running a non-standard docker installation (e.g. rootless). Also, ensure that the conf, env and sql files are readable by the docker services (e.g. chmod 644).

You will want to set your local timezone by editing pypowerwall.env, telegraf.conf, influxdb.sql and dashboard.json or you can use this handy tz.sh update script. A list of timezones is available here: TZ Table.

    # Replace with your timezone
    bash tz.sh "America/Los_Angeles"

Docker Containers

InfluxDB

Note: It can take a while for InfluxDB to start. Also the influxdb.sql file is set to use America/Los_Angeles as timezone. Use the tz.sh script or manually update the database commands above to replace America/Los_Angeles with your own timezone.

Grafana Setup

Notes

Upgrading

Troubleshooting Tips and Tricks

Check the logs of the services using:

  docker logs -f pypowerwall
  docker logs -f telegraf
  docker logs -f influxdb
  docker logs -f grafana

Missing Powerwalls or String data?

Docker Errors

If you are getting permission errors running docker, or an error that it isn’t installed:

Savings Errors

The savings estimates are based on a $0.19/kWh (by default) utility cost and net metering credit. You likely have a different value for this and during importing dashboards indicate your average cost per kWh to reflect your actual costs and credits. As of now there’s one variable to set both cost and credit per kWh. To help, here are the variables used to calculate the savings:

The equations that are used to compute the estimated savings:

Synology NAS and Rootless Docker

Windows 11 Instructions

Installing Powerwall-Dashboard on a Windows 11 host requires some additional setup. Install and Setup using administrator PowerShell or Windows Command Prompt:

If required, see WINDOWS.md for notes on how to upgrade your WSL installation from WSL1 to WSL2, or for an installation without Docker Desktop - only recommended for very advanced users.

Powerwall 3

The new Powerwall 3 does not currently provide a customer accessible API on the local network. Work is ongoing to determine if there is a way to get the rich set of data that is available directly from its predecessors (Powerwall 2/+). In the meantime, users can use the “Tesla Cloud” mode to generate the basic graph data. See details in the Powerwall 3 Support issue: https://github.com/jasonacox/Powerwall-Dashboard/issues/387

Tips and Tricks

Since pyPowerwall proxy is part of this dashboard stack, you can query it to get raw data (read only) from the Powerwall API. This includes some aggregate functions you might find useful for other projects. I use this for ESP32 driven display for example. Replace localhost with the address of the system running the dashboard:

Since weather411 is part of this dashboard stack (if you set it up) you can query it to get current weather data from its built-in API.

Data Retention and Backups InfluxDB is configured to use a infinite retention policy (see influxdb.sql). It uses continuous queries to downsample Powerwall data and preserve disk space. However, this does not safeguard the data from accidental deletion or corruption. It is recommend that you set up a backup plan to snapshot the data for disaster recovery. See backups for some suggestions.

Credits