A simple Python Script for reading Growatt PV Inverter Modbus RS485 RTU Protocol and storing into InfluxDB
- Some hardware running a Linux based OS with Python 3 (eg. Raspberry Pi)
- Connect your Linux based OS to the RS485 port on the inverter via a RS485 to USB cable
- Install InfluxDB
- Copy
solarmon.cfg.exampletosolarmon.cfgand modify the config values to your setup as needed - Run
pip install -r requirements.txt - Run
python solarmon.pyin a screen (or you could setup a service if that is your preference) - Install Grafana
- Go to http://localhost:3000/dashboard/import or equivalent for where you installed Grafana and import
grafana/dashboard.json
To read from multiple units add a new section to the solarmon.cfg config with the unit's id and the measurement name to store the units data in influxdb
[inverters.<name>]
unit = <id>
measurement = <mesurement>Example:
[inverters.unit2]
unit = 2
measurement = inverter2To view the data using a Grafana dashboard simply import the template like described above in "How to use" and then change the measurement variable at the top of the page to match what you put in the config, in the example that is 'inverter2'.
- Copy
solarmon.serviceto/etc/systemd/system - Modify the
WorkingDirectoryandUserto suit your setup. - Run
systemctl start solarmonto start the service. - Run
systemctl status solarmonand ensure that the service is running correctly. - Run
systemctl enable solarmonto make the service automatically start when the system does.
