Skip to content

spinscale/sunboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sunboard - A privacy-first, local-only dashboard for your solar data

A dashboard for your solar data. This currently only supports AlphaESS systems using the AlphaESS API to pull data. You need to have an Open AlphaESS developer account to poll this data. See more at AlphaCloud Open API Github repository

It's storing all data locally and does not need to store anything in the cloud.

It's also rather barebones as I have hacked it up in a few evenings. While being designed rather generic for any photovoltaic data, it's in fact heavily tailored to the way AlphaESS exports data, so it might take some refactoring to make it usable for your own solar data.

Setup

  • Register an account at https://open.alphaess.com/
  • Go to Releases and download the latest for your platform
  • Unzip, change into the unzipped directory and run bin/sunboard
  • Point your browser to http://localhost:8080
  • Go to Configuration and add your sysSn, appId and appSecret plus a mandatory start date, how far back your data should be pulled from. It makes sense to specifiy the date when your PV system was installed
  • Wait a while for all the data to be imported and then enjoy the graphs
  • If you want to see graphs for money saved, you need to add prices in the Prices tab. Lower timestamps are inclusive, upper timestamps are exclusive, so you can use timestamps like 2024-11-01 as end and start timestamps without overlap.
  • If you want to run SQL queries yourself against your downloaded data, you can use duckdb CLI tool via duckdb -readonly $HOME/.config/sunboard/solar_db.duckdb (after you installed duckdb, for example via brew install duckdb)

Configuration

Once you open the browser, you need to fill out the configuration tab.

Configuration

Next you should also fill out the prices tab, so you can see the amount of money saved over time.

Prices

Then wait until all the data is fetched in the background.

For developers: Run locally via maven

You can also clone this repo and then run it like this (including local changes):

git clone https://github.com/spinscale/sunboard
cd sunboard
./mvnw verify -DskipTests exec:java

You need to ensure you have at least Java 25 already installed locally

Features & Available statistics

  • Charging data (per week, total sum of charging)
  • Load (per week, with and without car charging)
  • Load per year
  • PV production per week/month/year
  • Top 10 of days with minimal/minimal produce
  • Peak production (to check degeneration over time)
  • Heatmap to see production per hour of the day for each month
  • Economics: Money saved due to running on battery/solar
  • Economics: Money earned due to pushing to the grid
  • Economics: Amount of time running on the grid/being independent (guessed)
  • Economics: Sum of total savings (aka figuring out when this thing is written off)
  • Longest streaks without requiring grid power

Some screenshots

Production per month

Production per week

Heatmap per hour per month

Money saved

Consumption vs. feeding into grid

More information

  • Note: Take care of your app secret, it not only allows to read data, but also allows to do changes on your solar installation! If you have a static IP you could whitelist just that one.
  • Your data is stored in a local duckdb database, by default in $HOME/.config/sunboard/solar_db.duckdb
  • I tested this only on mac os, neither Linux nor Windows
  • This is written in Java. This tool uses Javelit for dashboarding, DuckDB for storing data, JBDI for queries, Jackson for JSON parsing.

Updating dependencies & releases

This serves more as a reminder for me what to do, as I keep forgetting things.

  • Update maven wrapper: ./mvnw wrapper:wrapper -Dmaven=3.9.12
  • Find outdated depdendencies: ./mvnw versions:display-dependency-updates
  • Find outdated plugin dependencies: ./mvnw versions:display-plugin-updates
  • Build & upload release artifacts for all platforms:
./mvnw clean package
./mvnw -Pjdks
./mvnw jreleaser:assemble jreleaser:release

Help out!

This is open source, and I made this for you to share and enjoy. Feel free to fork, modify and submit pull requests so I can incorporate those.

If you submit PRs, make sure you can ./mvnw license:check and ./mvnw license:format to fix formatting. Also running ./mvnw package to run the tests should help.

Next TODO: document the SQL tables being used: configuration, prices, energy_daily and energy_point_in_time.

About

A privacy-first, local-only dashboard for your solar data

Resources

License

Stars

Watchers

Forks

Languages