Advanced Home Solar Monitoring Dashboard

Explore it here

The Sitch

We got solar panels on the roof and a battery pack at home. The provided dashboard, however, is not that good. The system does offer an api, though, so I made my own.

Objectives

The primary objective is to offer a centralized platform that can:

Technology Stack

Python, Flask, and Pandas

The server is a simple Flask app, so I can use Python libraries I'm familiar with.

Matplotlib for Data Visualization

Graphs are generated using Matplotlib with aggto work on the headless server, at a fixed file location linked in the webpage.

HTML/CSS

The frontend is crafted with HTML and CSS, organizing information into a responsive layout of "cards" that dynamically update to reflect real-time data.

System Architecture

  1. Data Collection: Data from the solar inverters is continuously logged to a CSV file.

  2. Scheduled Tasks: Using APScheduler, the system periodically generates and updates graphs based on the collected data.

  3. User Interface: The frontend updates dynamically to show the latest metrics from the solar panels and battery using HTMX.