A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

solarthing

An application that can monitor data from a variety of solar charge controllers and inverters.
https://github.com/wildmountainfarms/solarthing

Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy

Keywords

couchdb crne-solar dashboard energy-monitor modbus outback-mate packets pvoutput raspberry-pi renogy renogy-rover slack slack-bot solar solar-energy solarthing solcast

Keywords from Contributors

observability archiving transforms measur animals projection generic compose optimize conversion

Last synced: 27 minutes ago
JSON representation

Repository metadata

Monitors an Outback MATE, Renogy Rover - MPPT Charge Controller and EPEver Tracer. Integrates with Grafana, PVOutput and more!

README.md

SolarThing

SolarThing




Stores solar data in a database to view on Android, Grafana, or PVOutput

View full documentation at https://solarthing.readthedocs.io/

Contents

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, 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

Quickstart

Ready to install? Use the Quickstart!

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.
    • 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

Viewing Your Data

If you are wondering how to set up SolarThing to view your data, you can head here: https://solarthing.readthedocs.io/en/latest/quickstart/data/index.html

Supported Databases

  • CouchDB
    • Recommended database and best supported database for SolarThing
    • Used with Wild GraphQL Data Source to view data in Grafana
    • Used with SolarThing Android to view data in the Android app
    • Used as intermediate storage before data is aggregated and uploaded to PVOutput
  • InfluxDB
    • Upload statistics to InfluxDB and view them in your visualization tool of choice (Grafana is an option)
  • REST API
    • With the "post" database, all packets can be posted to a URL endpoint, useful for REST APIs

Screenshots and Examples

You can get data in Grafana via CouchDB+SolarThing Server or via InfluxDB (InfluxDB not recommended).

Grafana is customizable. Rearrange graphs and make it how you want!
Pre-made Grafana dashboards are coming soon.

alt text


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
alt text

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
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!







Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 1,104
Total Committers: 6
Avg Commits per committer: 184.0
Development Distribution Score (DDS): 0.053

Commits in past year: 33
Committers in past year: 2
Avg Commits per committer in past year: 16.5
Development Distribution Score (DDS) in past year: 0.03

Name Email Commits
Lavender Shannon r****l@g****m 1045
dependabot[bot] 4****] 55
BuildTools u****d@n****g 1
David Goodman d****e@w****m 1
Virgil Mihailovici v****m@d****o 1
David Goodman e****8@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 49
Total pull requests: 121
Average time to close issues: 28 days
Average time to close pull requests: 19 days
Total issue authors: 21
Total pull request authors: 3
Average comments per issue: 5.82
Average comments per pull request: 0.46
Merged pull request: 60
Bot issues: 0
Bot pull requests: 115

Past year issues: 8
Past year pull requests: 1
Past year average time to close issues: 5 days
Past year average time to close pull requests: 1 minute
Past year issue authors: 5
Past year pull request authors: 1
Past year average comments per issue: 1.75
Past year average comments per pull request: 0.0
Past year merged pull request: 1
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/wildmountainfarms/solarthing

Top Issue Authors

  • retrodaredevil (20)
  • riker65 (6)
  • TheAlchemistFLT (3)
  • rbroen3rd (2)
  • Joe13183 (2)
  • gecko951 (1)
  • bob5731 (1)
  • mgrouch (1)
  • scully1707 (1)
  • andraii (1)
  • Maikeleg (1)
  • egri-nagy (1)
  • ilikenwf (1)
  • cguay (1)
  • tesau (1)

Top Pull Request Authors

  • dependabot[bot] (115)
  • retrodaredevil (5)
  • eidolon1138 (1)

Top Issue Labels

  • enhancement (15)
  • bug (5)
  • unsupported device (4)
  • couchdb (4)
  • technical (3)
  • general support (3)
  • rover (2)
  • documentation (2)
  • config server (1)
  • help wanted (1)
  • rover like device (1)
  • possibly fixed (1)
  • data question (1)
  • file permission error (1)
  • inactive (1)
  • serial port (1)
  • docker (1)
  • modbus exception (1)

Top Pull Request Labels

  • dependencies (115)
  • java (62)
  • github_actions (27)
  • javascript (10)
  • investigate (3)

Dependencies

core/build.gradle maven
  • com.fasterxml.jackson.core:jackson-annotations $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-core $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-databind $jacksonVersion api
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 $jacksonVersion api
  • com.github.retrodaredevil.couchdb-java:couchdb $couchdbJavaVersion api
  • com.github.retrodaredevil.io-lib:core $ioLibVersion api
  • com.github.retrodaredevil:couchdb-java $couchdbJavaVersion api
  • org.ektorp:org.ektorp 1.5.0 api
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
.github/workflows/gradle.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v1 composite
  • actions/setup-node v3 composite
.github/workflows/release-upload.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v1 composite
  • actions/setup-node v3 composite
  • actions/setup-python v3 composite
  • actions/upload-release-asset v1 composite
.github/workflows/spotless.yml actions
  • actions/checkout v1 composite
  • actions/setup-java v1 composite
config_templates/docker/couchdb_docker-compose.yml docker
  • apache/couchdb 3
config_templates/docker/grafana/docker-compose.yml docker
  • grafana/grafana 7.4.0
config_templates/docker/influxdb2_docker-compose.yml docker
  • quay.io/influxdb/influxdb v2.0.3
config_templates/docker/syslog-ng/docker-compose.yml docker
  • balabit/syslog-ng latest
action-node/build.gradle maven
  • com.fasterxml.jackson.core:jackson-annotations $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-databind $jacksonVersion api
  • com.github.retrodaredevil:action-lib v1.3.1 api
build.gradle maven
  • org.jetbrains:annotations 23.0.0 implementation
  • com.tngtech.archunit:archunit 0.22.0 testImplementation
  • org.junit.jupiter:junit-jupiter-params $junit5Version testImplementation
  • org.junit.platform:junit-platform-commons $junit5PlatformVersion testImplementation
client/build.gradle maven
  • com.brsanthu:google-analytics-java 2.0.0 implementation
  • com.github.retrodaredevil.io-lib:jSerialComm $ioLibVersion implementation
  • com.influxdb:influxdb-client-java 6.1.0 implementation
  • com.slack.api:slack-api-client 1.22.2 implementation
  • info.debatty:java-string-similarity 2.0.0 implementation
  • org.apache.logging.log4j:log4j-core $log4jVersion implementation
  • org.apache.logging.log4j:log4j-jcl $log4jVersion implementation
  • org.apache.logging.log4j:log4j-slf4j2-impl $log4jVersion implementation
  • org.eclipse.paho:org.eclipse.paho.client.mqttv3 1.2.5 implementation
  • org.influxdb:influxdb-java 2.22 implementation
  • org.java-websocket:Java-WebSocket 1.5.3 implementation
notation-script/build.gradle maven
  • com.fasterxml.jackson.core:jackson-annotations $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-databind $jacksonVersion api
process-annotations/build.gradle maven
  • com.google.auto.service:auto-service 1.0.1 implementation
serviceapi/build.gradle maven
  • com.squareup.okhttp3:okhttp $okhttpVersion api
  • com.squareup.retrofit2:converter-jackson $retrofitVersion api
  • com.squareup.retrofit2:retrofit $retrofitVersion api
  • com.squareup.okhttp3:logging-interceptor $okhttpVersion implementation
  • com.squareup.retrofit2:converter-jackson $retrofitVersion implementation
  • com.squareup.retrofit2:converter-scalars $retrofitVersion implementation
web/package-lock.json npm
  • 1526 dependencies
web/package.json npm
  • @graphql-codegen/cli 2.12.0 development
  • @graphql-codegen/introspection 2.1.1 development
  • @graphql-codegen/typescript 2.4.8 development
  • @graphql-codegen/typescript-document-nodes 2.2.8 development
  • @graphql-codegen/typescript-graphql-files-modules 2.1.1 development
  • @graphql-codegen/typescript-graphql-request ^4.4.5 development
  • @graphql-codegen/typescript-operations ^2.3.5 development
  • @graphql-codegen/typescript-react-query ^3.5.9 development
  • react-scripts 5.0.1 development
  • shx ^0.3.4 development
  • @graphql-codegen/typescript-react-apollo ^3.2.14
  • @testing-library/jest-dom ^5.16.4
  • @testing-library/react ^13.2.0
  • @testing-library/user-event ^13.5.0
  • @types/jest ^27.5.1
  • @types/node ^16.11.36
  • @types/react ^18.0.9
  • @types/react-dom ^18.0.4
  • graphiql ^2.0.7
  • graphql ^16.5.0
  • graphql-request ^4.2.0
  • graphql-voyager ^1.0.0-rc.31
  • react ^18.1.0
  • react-cookie ^4.1.1
  • react-dom ^18.1.0
  • react-query ^3.39.0
  • react-router-dom ^6.3.0
  • typescript ^4.6.4
  • web-vitals ^2.1.4
.github/workflows/docker-build.yml actions
  • actions/checkout v4 composite
  • actions/setup-java v3 composite
  • actions/setup-node v3 composite
  • docker/build-push-action v4.2.1 composite
  • docker/login-action v2.2.0 composite
  • docker/metadata-action v4.6.0 composite
  • docker/setup-buildx-action v2 composite
docker/solarthing/Dockerfile docker
  • eclipse-temurin 19-jre-jammy build
docker/solarthing-server/Dockerfile docker
  • eclipse-temurin 19-jre-jammy build
action-lang/build.gradle maven
common/build.gradle maven
server/build.gradle maven
  • com.fasterxml.jackson.core:jackson-annotations $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-core $jacksonVersion api
  • com.fasterxml.jackson.core:jackson-databind $jacksonVersion api
  • com.graphql-java:graphql-java 14.0 implementation
  • io.leangen.graphql:spqr 0.12.3 implementation
  • org.springframework.boot:spring-boot-starter-graphql * implementation
  • org.springframework.boot:spring-boot-starter-log4j2 * implementation
  • org.springframework.boot:spring-boot-starter-web * implementation
  • org.springframework.boot:spring-boot-starter-test * testImplementation
web/build.gradle maven

Score: 6.860663671448286