wildmountainfarms / Solarthing
Programming Languages
Projects that are alternatives of or similar to Solarthing
Stores solar data in a database to view on Android, Grafana, or PVOutput
Supported Products • Quickstart • Features • Supported Databases • Examples
Supported Products
- 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, and possibly others
- Should include Rover Boost once released
- 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
- Includes Rover, Rover Elite, Wanderer, Adventurer, Dual Input DCDC Charger, and possibly others
- DS18B20 Temperature Sensors and PZEM-003 and PZEM-017 Shunts
Quickstart
Ready to install? Use the Quickstart!
Post installation optinos
Do any or all of these after following the quickstart.
-
GraphQL Quickstart - Expose CouchDB as a GraphQL API (used for Grafana)
- This is the option I recommend most. Most people install SolarThing so they can get Grafana working
-
PVOutput Quickstart - uploads to PVOutput
- If you are interested in a nice way to view your daily kWh historical data, this is good
-
Message Quickstart (Automation program) - Slack or Mattermost bot for notifications
- Paranoid your system is gonna explode? This is a great way to monitor your system and get push notifications
Features
- 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.
- Can report Raspberry Pi CPU temperature.
- Easy setup on Linux. Runs without root.
Supported Databases
- CouchDB
- Allows for SolarThing Android and SolarThing Web 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
- Enables usage of the PVOutput Mycroft skill
- REST API
- With the "post" database, all packets can be posted to a URL endpoint, useful for REST APIs
Examples
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.
Snapshot of Wild Mountain Farms Dashboard
Grafana is very customizable. Rearrange graphs and make it how you want!
SolarThing Web (Mostly abandon at this point)
SolarThing web uses CouchDB as its database.
Can I run this?
Of course! This runs on Java 8+ and has been tested to work with Java 8 and Java 11. This runs on Linux, Windows and Mac, but is easiest to set up on Linux systems running Debian with systemd (such as the default Raspberry Pi OS or Ubuntu).
The quickstart can help you get SolarThing up and running.
Usage at Wild Mountain Farms
We monitor an Outback MATE2 with a Raspberry Pi 1 and a Renogy Rover charge controller with a Raspberry Pi Zero W.
Both SolarThing instances upload data to CouchDB, hosted on the computer also hosting Grafana and SolarThing Web.
This computer also gets data from CouchDB and uploads it to PVOutput using the pvoutput-upload
program.
We used to also use InfluxDB for allowing easy displaying of data on Grafana, but we now use CouchDB and SolarThing GraphQL for that.
Using the program
You can see the Outback/Renogy Rover README for using the program with outback or renogy products.
The input and output README is documentation for the io
JSON property option used in the rover and mate programs.
Database Setup
-
CouchDB setup
- Used for SolarThing Android, SolarThing Web, and SolarThing GraphQL (which gets data to Grafana)
-
InfluxDB 2.0 setup
- Used for direct Grafana queries
Developer Use
Contributing
Technical
Project Structure
History
Google Analytics
Updating
Configuration
This uses all JSON for configuring everything. The files you edit are all in one place unless you decide to move them.
See Quickstart to see how to set them up
Renogy Rover Monitoring Alternatives
Don't like something about SolarThing? Here are some alternatives to monitor your Renogy Rover.
- https://github.com/corbinbs/solarshed
- https://github.com/logreposit/renogy-rover-reader-service
- https://github.com/menloparkinnovation/renogy-rover
- https://github.com/floreno/renogy-rover-modbus
- https://github.com/CyberRad/CoopSolar
- https://github.com/amigadad/SolarDataCollection
Suggestions?
If you have suggestions on how to improve the documentation or have a feature request, I'd love to hear from you! SolarThing Issues
If you get confused while trying to configure solarthing, that's probably because the documentation is always a work in progress. If you find something confusing, please report it, so I can make it clearer.