Contains configuration and Grafana dashboard for monitoring PV inverters
This setup uses
- Grafana (for visualization)
- grafana-image-renderer (to render screenshots for alerts)
- InfluxDB (time series database)
- Telegraf (reads from mqtt and writes to influx)
- PVForecast (processes pv forecast data from solcast)
- SunGather (collects data from inverters using Modbus)
- modbus-proxy (proxies modbus connection to allow multiple connections to inverter)
- Mosquitto (MQTT broker)
- evcc (controls EV charger)
Since the setup is using SunGather to read the modbus registers, currently only Sungrow Inverters are supported. See the list on the projects website: https://sungather.app
Optionally copy .env-sample
to .env
and modify the variables before running docker compose.
The variables are used in the docker-compose.yml.
The variable HOST
contains the hostname of the system where all containers are running.
If you want to get an email from Grafana in case of alarms, modify the GF_
variables.
The default credentials for Grafana after first start are admin:admin. You can change the password after login.
The dashboard uses different variables for calculating your costs and savings:
strompreis
: your current grid priceverguetung
: rate for feeding excess (pv) energy to the grid (german: Einspeisevergütung)
For modbus connections to the inverter you must set the ip address at modbus-proxy.yml.
For non-modbus connections just remove the modbus-proxy part from docker-compose.yml and configure SunGather accordingly.
If you don't use the modbus-proxy connection, you must set your inverters ip address at sungather/config.yaml and set the connection type accordingly. For additional configuration of SunGather please see the project website.
evcc is configured to get the inverter data by mqtt. So there is no change needed.
But you must setup your wallbox according to https://docs.evcc.io/docs/devices/chargers in evcc/evcc.yaml.
This monitoring solution also supports PV forecasts from Solcast. To use it, create an account and update config.ini with your own site resource ids and API token.
This setup adds labels to every container with a UI for traefik.
You only have to set your preferred host name in traefik.http.routers.<CONTAINER>.rule=<HOST>
in docker-compose.yml.
The value of HOST
can be set in the .env
file. For e.g. HOST=example.com
Grafana would be accessible at http://grafana.example.com.
Do you like this project? Then consider a donation to support development.