whatisgithub

What is heliograph?

timdebruijn/heliograph — explained in plain English

Analysis updated 2026-07-26

3C++Audience · ops devopsComplexity · 4/5LicenseSetup · hard

In one sentence

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.

Mindmap

mindmap
  root((repo))
    What it does
      Reads solar inverter data
      Shares to local network
      Controls power output
    Supported systems
      Home Assistant
      MQTT
      Prometheus
    Supported inverters
      EverSolar
      Growatt
      SolaX
    Tech stack
      C++ firmware
      ESP32-S3
      RS485
    Audience
      Home automation users
      Solar panel owners
    Licensing
      MIT licensed
      No warranty

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Monitor your solar panel production locally in Home Assistant without relying on a manufacturer's cloud service.

USE CASE 2

Send solar inverter data to Prometheus or a REST API for custom dashboards and long-term tracking.

USE CASE 3

Automatically reduce your inverter's power output using the relay control feature when you produce excess energy.

USE CASE 4

Read data from an unsupported Modbus-based inverter by adding a data file instead of writing code.

What is it built with?

C++ESP32-S3RS485Home AssistantMQTTModbus TCP

How does it compare?

timdebruijn/heliograph4brm01/picture-pokerbong-water-water-bong/npu-gpu-cpu
Stars333
LanguageC++C++C++
Setup difficultyhardeasyhard
Complexity4/51/55/5
Audienceops devopsgeneralresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires an ESP32-S3 board with an RS485 port and physical low-voltage wiring to the inverter's external communication port.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice. No warranty is provided.

So what is it?

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.

Copy-paste prompts

Prompt 1
I have an EverSolar or Zeversolar legacy TL series solar inverter and an ESP32-S3 board with an RS485 port. Help me wire the data connection and flash Heliograph firmware to start reading production data.
Prompt 2
I want to add support for a new Modbus-based solar inverter to Heliograph. Walk me through creating the data file needed to read its registers.
Prompt 3
Help me configure Heliograph to send my solar inverter data to my local MQTT broker and Home Assistant instance.
Prompt 4
I want to enable the power curtailment feature on my Heliograph relay-equipped board to reduce my Growatt inverter output. Explain how to safely enable and configure it.

Frequently asked questions

What is heliograph?

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.

What language is heliograph written in?

Mainly C++. The stack also includes C++, ESP32-S3, RS485.

What license does heliograph use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice. No warranty is provided.

How hard is heliograph to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is heliograph for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.