Stores solar data in a database to view on Android, Grafana, or PVOutput
Supported Products • Documentation • Features • Supported Databases • Examples
- Outback MATEs (FX Inverter, MX/FM Charge Controller)
- Renogy Rover (And other Renogy products) over modbus serial.
- Includes Rover, Rover Elite, Wanderer, Adventurer, Dual Input DCDC Charger, Rover Boost and possibly others
- Compatible with all SRNE Solar Charge Controllers (And rebranded products)
- Compatible with Zenith Grape Solar Charge Controller, PowMr MPPT Charge Controller, RICH SOLAR MPPT, WindyNations TrakMax MPPT
- EPEver Tracer
- Includes the AN series and the TRIRON N series
- Possibly includes the BN series (untested)
- DS18B20 Temperature Sensors and PZEM-003 and PZEM-017 Shunts
Ready to install? Use the Quickstart!
- Supports multiple types of solar products.
- Runs reliably 24-7. Recovers from connection errors and has verbose logging features.
- Fully customizable through JSON (No programming experience required).
- Supports CouchDB, InfluxDB, local JSON file, and PVOutput exporting.
- Multiple databases can even be used at the same time!
- Packets are uploaded in parallel to multiple databases at the same time
- Can report CPU temperature.
- Runs inside a Docker container
- CouchDB
- Allows for SolarThing Android and SolarThing Server to function
- Used for PVOutput data collection
- GraphQL
- Allows use of CouchDB SolarThing data with Grafana
- Supplements the CouchDB database
- InfluxDB
- Simplest to set up with Grafana
- PVOutput.org
- Allows for viewing of data on pvoutput.org
- Requires CouchDB to be set up
- REST API
- With the "post" database, all packets can be posted to a URL endpoint, useful for REST APIs
PVOutput Wild Mountain Farms: PVOutput System and PVOutput SolarThing Teams
SolarThing Android: Github | Google Play
SolarThing Android displays data in a persistent notification that updates at a configurable rate
You can get data in Grafana via InfluxDB or via CouchDB+SolarThing GraphQL.
Grafana is very customizable. Rearrange graphs and make it how you want!
We monitor an Outback MATE2, Renogy Rover PG 40A, EPEver Tracer2210AN (20A) using a Raspberry Pi 3. Each device has its own instance of SolarThing running. Each instance uploads data to CouchDB. CouchDB, Grafana, and SolarThing GraphQL run on a separate "NAS" computer. This NAS runs the automation and pvoutput programs. The automation program handles the sending of Slack messages for low battery notifications.
- CouchDB setup
- Used for SolarThing Android, and SolarThing Server
- InfluxDB 2.0 setup
- Used for direct Grafana queries
This uses all JSON for configuring everything. The files you edit are all in one place unless you decide to move them.
See configuration to see how to set them up
If you have suggestions on how to improve the documentation or have a feature request, I'd love to hear from you! SolarThing Issues or SolarThing Discussions
Any confusion you get while setting up SolarThing is something that can be improved upon. If you need help, ask for help! That way we can make the documentation clearer for everyone!