ludifu/sungather

By ludifu

Updated 7 months ago

Read data from your network connected Sungrow inverter and make it available for monitoring.

Image
Monitoring & Observability
0

497

About

SunGatherEvo is the tool of choice for extracting data from your network connected Sungrow inverter to make it available for monitoring for example via Grafana or in a home automation like Home Assistant.

SunGatherEvo is based on Sungather which was inactive for over a year until early April 2024.

This repository contains many bugfixes, updates to new Sungrow specifications (support of new inverter models and registers) as well as new features like support for reading battery registers.

For detailed information check SunGatherEvo at GitHub.

Running SunGatherEvo

Prepare configuration:

mkdir config
curl -o config/config.yaml https://raw.githubusercontent.com/ludifu/SunGather/main/SunGather/config-example.yaml

and optionally:

mkdir registers
curl -o registers/registers-sungrow.yaml https://raw.githubusercontent.com/ludifu/SunGather/main/SunGather/registers-sungrow.yaml
mkdir logs
chmod 777 logs

Configure host and port of your inverter in config/config.yaml at least and check the exports configuration.

Then start the container:

docker run -d \
  --name <containername> \
  --network="host" \
  --restart always \
  -v ./config:/config \
  -v ./registers:/registers \
  -v ./logs:/logs \
  -p 8080:8080 \
  -e TZ=Europe/Berlin \
  ludifu/sungather:latest

The -v ./registers:/registers and -v ./logs:/logs lines are optional. -p 8080:8080 is required only if you want to access the web server export. Adapt the time zone to your location if desired.

Running with docker compose

Prepare the config:

mkdir sungatherevo
curl -o sungatherevo/config.yaml https://raw.githubusercontent.com/ludifu/SunGather/main/SunGather/config-example.yaml
curl -o sungatherevo/registers-sungrow.yaml https://raw.githubusercontent.com/ludifu/SunGather/main/SunGather/registers-sungrow.yaml

Adapt sungatherevo/config.yaml. In the services section in your docker-compose.yml add:

 sungatherevo:
    image: ludifu/sungather:latest
    container_name: sungatherevo
    restart: unless-stopped
    volumes:
      - ./sungatherevo/config.yaml:/config/config.yaml
      - ./sungatherevo/registers-sungrow.yaml:/registers/registers-sungrow.yaml
    environment:
      - TZ=Europe/Berlin
    ports:
      - "8080:8080"

You may need to add a networks section within the service.

Docker Pull Command

docker pull ludifu/sungather