ericdmoore / solar-pi

Solar Power Monitor via a Raspbery Pi (and other hardware)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Solar Pi Project Logo

Solar Pi

Monitor Your Solar Power Equipment using a Raspberry Pi + other sensors.
Explore the docs »

View Demo | Review Wiki | Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Architecture Overview
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact

About The Project

Product Name Screen Shot

What It Does:

Senses, Saves, & Shows Solar Power Time-series Metrics via a web interface

  • MPPT / Battery
    • Voltage
    • State of Charge %
    • Lifetime Cycles
    • Lifetime kWH output
  • Panels (Before MPPT)
    • Voltages
    • Amp
    • Power
  • Load
    • instant Power Consumption (Watts)
    • Historical Net-Power Consumption/Generation
  • Environmental
    • Indoor Temp
    • Outdoor Temp
    • Light/Irridescence Score
  • Lifetime Solar Power Generated
  • Total solar PV generation
  • Total current, voltage, power, and power factor values
  • See Victron Stats

(back to top)

Getting Started

This project is a collection of components that make up a larger ecosystem. You may you use them independently, or collecively. TFor Example, there is software to run on a raspberry pi, or perhaps you have a sensor network already deployed, then look at the cloud-based software to render the data on screen.

Prerequisites

This is an electronics project. As such there are some hardware requirements for this project. You can buy what I bought ( the link might be to what I whish I bought) in the links below (note: they are affiliate links).

Or perhaps you already have a solar power system and just need monitoring via Solar-Pi, Great! then you just need to look at the sections starting with installing your sensors.

Installation

Secton Coming Soon!

  • Raspberry Pi Install
  • Cloud Install
  • Alexa Install

Architecture Overview

Basic(Unmonitored) Hardware / Power Connections:

  graph TD;
      Panels(Solar Panels)-->cb1(Circuit Breaker)
      cb1(Circuit Breaker)-->MPPT
      MPPT-->Batteries
      Batteries-->LVD(Low Voltage Disconnect)
      LVD-->cb2(Circuit Breaker)
      cb2(Circuit Breaker)-->24vFuseBox/Load
      LVD-->VReg(Voltage Regulator)
      VReg-->cb3(Circuit Breaker)
      cb3(Circuit Breaker)-->12vFuseBox/Load

Basic Software Components

  graph TD;
      subgraph sensors [Sensor Layer]
        Sensor1(Temperature)-->HWIntf
        Sensor2(Voltage)-->HWIntf
        Sensor3(Amps)-->HWIntf
        Sensor4(Humidity)-->HWIntf
        Sensor5(Light)-->HWIntf
        Sensor6(Motion)-->HWIntf
        Sensor7(UV)-->HWIntf
        Sensor8(Wind)-->HWIntf
        Sensor9(etc)-->HWIntf 
        HWIntf(Pi HW Interface)-->solDataWrangle(Solar Pi Data Wrangling)
      end

      subgraph data [Data Layer]
        solDataWrangle==>solLocalStorage[(Solar Pi HDD/SQLite)]
        solLocalStorage-. B: Do A or B -.->solCloudStorage
        solDataWrangle-. A: Do A or B -.->solCloudStorage[(Solar Pi Cloud Storage)]
      end

      subgraph api [API Layer]
        solLocalStorage-- Only On Local Network   ---ApiIntf1(λ:HTTP/WS/JSON Data API)
        solCloudStorage==>ApiIntf1
        solLocalStorage-- Only On Local Network ---ApiIntf2(λ:MQQT Data API)
        solCloudStorage==>ApiIntf2
        solLocalStorage-- Only On Local Network ---ApiIntfN(...Other Data λ:APIs)
        solCloudStorage==>ApiIntfN
      end

      subgraph apps [Application Layer]
        ApiIntf1==>solVizApp(Solar Pi Data Viz Application)
        ApiIntf1-.->alexaApp(WIP: Alexa Integration)
        ApiIntf2-.->homeAssistant(WIP: Home Assistant Integration)
        ApiIntfN-.->zmq(WIP: ZeroMQ Integration, etc)
      end

      subgraph notifications [Notification Layer]
        ApiIntf1-->email(Email Notifications)
        ApiIntf1-->slack(Slack Notifications)
        ApiIntf1-->rss(Rss Alert Log)
      end  

(back to top)

Proposed Bill Of Materials

Usage

  1. Buy Hardware.
  2. Connect the parts.
  3. Configure Solar-Pi.
  4. Sun Handles Everything Else From There (TSTCOEFT) SHEEFT (except the internet conection)
  5. Energy Independence: Checked
  6. Prepper Status: Checked

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Configuration Model per Node
    • What would a MultiNode Setup do/look like?
  • Support via Data Source for Grafana/Prometheus
  • Alerts Log
  • Relay Drivers for Terraced Batteries
    • aka: Water Heating with "Excess Energy"
    • "Battery" Interface
      • Status/Progress Signal
      • Fill Circuit
  • Direct Support For Other Vendors
    • Explore Renogy Charge Controllers
  • Amazon Alexa Integration
  • Alternative Network Interfaces
  • Alternative Data API Flavors
    • Raw Streaming
      • Websocket/JSONND
      • MQTT
      • ZMQ
    • Filtered Streaming
      • Registered Query - then subscribed for results
    • Query
      • GraphQL
      • RESTful (HTTP/JSON.GZ)
  • Explore NodeRed Options for User Friendly Programming
  • Explore Solar Tracker Motor Control

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Inspirations

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Eric D Moore - @ericdmoore - eric [𝓪𝓽] mooore [𝓭𝓸𝓽] cc

Project Link: https://github.com/ericdmoore/solar-pi

(back to top)

About

Solar Power Monitor via a Raspbery Pi (and other hardware)

License:MIT License