solarthing

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

https://github.com/wildmountainfarms/solarthing

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary

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

interpretability agents projection archival autograding cryptocurrencies interactive transformers charts network-simulation
Last synced: 5 months ago · JSON representation

Repository

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

Basic Info
Statistics
  • Stars: 143
  • Watchers: 6
  • Forks: 31
  • Open Issues: 23
  • Releases: 60
Topics
couchdb crne-solar dashboard energy-monitor modbus outback-mate packets pvoutput raspberry-pi renogy renogy-rover slack slack-bot solar solar-energy solarthing solcast
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License

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

  • Grafana (recommended)
    • Use SolarThing Server (with CouchDB) alongside Wild GraphQL Data Source
    • Documentation: https://solarthing.readthedocs.io/en/latest/quickstart/data/solarthing-server/index.html
    • Alternatively, configure SolarThing to upload to InfluxDB for viewing of statistics in Grafana
  • SolarThing Android
    • SolarThing Android connects directly to CouchDB to display data in a persistent notification
  • PVOutput.org
    • Upload your data to CouchDB, then let SolarThing upload the data inside your database to PVOutput!

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

  • Name: Wild Mountain Farms
  • Login: wildmountainfarms
  • Kind: organization

Contains repositories for projects utilized on the ranch

GitHub Events

Total
  • Create event: 5
  • Release event: 2
  • Issues event: 16
  • Watch event: 12
  • Issue comment event: 16
  • Push event: 25
  • Pull request event: 2
  • Fork event: 3
Last Year
  • Create event: 5
  • Release event: 2
  • Issues event: 16
  • Watch event: 12
  • Issue comment event: 16
  • Push event: 25
  • Pull request event: 2
  • Fork event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,115
  • Total Committers: 6
  • Avg Commits per committer: 185.833
  • Development Distribution Score (DDS): 0.054
Past Year
  • Commits: 24
  • Committers: 3
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.083
Top Committers
Name Email Commits
Lavender Shannon r****l@g****m 1,055
dependabot[bot] 4****] 55
Lavender Shannon y****u@e****m 2
David Goodman d****e@w****m 1
Virgil Mihailovici v****m@d****o 1
David Goodman e****8@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 53
  • Total pull requests: 131
  • Average time to close issues: 3 months
  • Average time to close pull requests: 20 days
  • Total issue authors: 21
  • Total pull request authors: 3
  • Average comments per issue: 5.23
  • Average comments per pull request: 0.47
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 122
Past Year
  • Issues: 13
  • Pull requests: 3
  • Average time to close issues: 2 days
  • Average time to close pull requests: 1 minute
  • Issue authors: 3
  • Pull request authors: 2
  • Average comments per issue: 0.85
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • retrodaredevil (24)
  • 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)
Pull Request Authors
  • dependabot[bot] (122)
  • retrodaredevil (7)
  • eidolon1138 (2)
Top Labels
Issue Labels
enhancement (12) bug (5) unsupported device (3) couchdb (2) general support (2) rover (2) help wanted (1) documentation (1) config server (1) possibly fixed (1) data question (1) file permission error (1) inactive (1) modbus exception (1) rover like device (1) serial port (1) technical (1)
Pull Request Labels
dependencies (122) java (65) github_actions (30) javascript (11) investigate (3)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 68
proxy.golang.org: github.com/wildmountainfarms/solarthing
  • Versions: 68
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

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