Code Monkey home page Code Monkey logo

solarcontroller's Introduction

Solar Inverter Controller for inverters based on Voltronic protocol

The main goals of this software is to provide monitoring and control to Voltronic solar inverters in an open source and container native way. It can read metrics form the inverter and write it to an influxdb database, and can write inverter settings from a yaml configuration file to the inverter. The configuration file is monitored for changes and apply any changes without reload.

Tested and in production use on a Growatt 3000-24 SPL and a Growatt 5000 SL solar inverter.

May be working on Voltronic Axpert series inverters and related OEM brand names.

sample dashboard

Building docker container image

docker build . -f docker/Dockerfile -t solar:latest

Starting external dependencies

docker run -dt --name influx --restart unless-stopped \
  --network host \
  --volume /srv/influx/db:/var/lib/influxdb \
  influxdb:1.8.4-alpine

docker run -dt --name grafana --restart unless-stopped \
  --network host \
  --volume /srv/grafana/lib:/var/lib/grafana \
  --volume /srv/grafana/etc:/etc/grafana \
  --volume /srv/grafana/log:/var/log/grafana \
  grafana/grafana:latest

Recommended to use better network topology or a firewall in production.

There is an example grafana dashboard in the grafana subdirectory. You need to add an influxdb data source pointed towards the installed influxdb instance to work.

Running Solar Inverter Controller

Preload the built docker image on the runner machine. Place the customized configuration file in the /srv/solar directory.

docker run -d --name solar --restart unless-stopped \
  --env CONFIG=/cfg/config.yaml \
  --volume /srv/solar:/cfg \
  --device /dev/ttyUSB0:/dev/ttyUSB0 \
  solar:latest

There is environment variables to configure the influxdb connection, defaulted to localhost:8086. Please see src/influxdbhandler.py.

solarcontroller's People

Contributors

balogh-attila avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.