Monitor your solar panel production locally in Home Assistant without relying on a manufacturer's cloud service.
Send solar inverter data to Prometheus or a REST API for custom dashboards and long-term tracking.
Automatically reduce your inverter's power output using the relay control feature when you produce excess energy.
Read data from an unsupported Modbus-based inverter by adding a data file instead of writing code.
| timdebruijn/heliograph | 4brm01/picture-poker | bong-water-water-bong/npu-gpu-cpu | |
|---|---|---|---|
| Stars | 3 | 3 | 3 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | easy | hard |
| Complexity | 4/5 | 1/5 | 5/5 |
| Audience | ops devops | general | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires an ESP32-S3 board with an RS485 port and physical low-voltage wiring to the inverter's external communication port.
Heliograph is open-source firmware for a small, inexpensive device that sits next to your solar inverter and reads what the inverter is doing. It takes that data and shares it with the systems you already use, such as Home Assistant, MQTT, Modbus TCP, a REST API, or Prometheus. It runs entirely on your own network, with no account, no cloud service, and no subscription. On relay-equipped boards, it can also reduce the inverter's power output when you want it to produce less. The project exists because solar inverters often outlast the software built around them. Manufacturer monitoring portals shut down, apps stop working, and supported dongles disappear. When that happens, the inverter still works fine, but you can no longer see what it is producing. Even when the manufacturer's monitoring still functions, your production data travels to their servers before it reaches you, and if your internet goes down, you lose access to it. Heliograph solves this by reading the inverter directly over its RS485 communication port and republishing the data in formats your own tools understand. The firmware currently supports a limited set of inverters. EverSolar and Zeversolar legacy TL series models are in beta, running in daily use. Growatt SPH hybrid and Growatt MIC TL-X models are marked experimental, meaning the protocol has been written from documentation but not yet confirmed against real hardware. SolaX X1 series and any inverter implementing the SunSpec standard are also experimental. If your inverter is not listed, adding support for a Modbus-based model is described as a data file task rather than programming. Setting it up requires an ESP32-S3 board with an RS485 port, a USB-C cable, and some wire for the data connection. The project is straightforward about what is involved: you connect a few low-voltage data wires to the inverter's external communication port, and you should never open the inverter enclosure. The firmware is released under the MIT licence with no warranty, and the curtailment feature that can reduce power output ships disabled by default. The full README is longer than what was shown.
Open-source firmware for a small, inexpensive device that reads data from your solar inverter and shares it with your own home automation tools, with no cloud service or subscription required.
Mainly C++. The stack also includes C++, ESP32-S3, RS485.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice. No warranty is provided.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.