Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peterbrain/boilr
Optimizes water heating by combining a Fronius photovoltaic (PV) inverter with a Raspberry Pi, making optimal use of excess solar energy. The system avoids low-compensation grid exports by redirecting surplus power to heat water instead.
https://github.com/peterbrain/boilr
api boiler docker docker-compose docker-container fronius fronius-inverter fronius-solar-api mqtt mqtt-client ohmpilot pv python python3 raspberry-pi raspberrypi solar solar-energy waterheater
Last synced: 2 months ago
JSON representation
Optimizes water heating by combining a Fronius photovoltaic (PV) inverter with a Raspberry Pi, making optimal use of excess solar energy. The system avoids low-compensation grid exports by redirecting surplus power to heat water instead.
- Host: GitHub
- URL: https://github.com/peterbrain/boilr
- Owner: PeterBrain
- License: mit
- Created: 2020-09-25T02:46:11.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T16:46:49.000Z (2 months ago)
- Last Synced: 2024-10-22T05:42:23.992Z (2 months ago)
- Topics: api, boiler, docker, docker-compose, docker-container, fronius, fronius-inverter, fronius-solar-api, mqtt, mqtt-client, ohmpilot, pv, python, python3, raspberry-pi, raspberrypi, solar, solar-energy, waterheater
- Language: Python
- Homepage:
- Size: 1.73 MB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Boilr
[![latest release][github-release-shield]][github-release-link]
[![coverage][codecov-shield]][codecov-coverage]Water boiler automation with a Fronius pv inverter on a Raspberry Pi.
The objective was to harness the surplus generated by the PV system and enhance daytime self-consumption through water heating. This approach not only reduces the energy fed back to the grid but also curtails the need for heating resources like pellets, oil, or other fuels.
![sufficiency over one day][fronius-dashboard-graph]
The yellow area illustrates the self-consumed energy after using Boilr (this program) to increase self-sufficiency. The blue line is the overall energy consumption. The gray region represents the surplus energy directed into the grid. The green line corresponds to the battery charge level, depicted as a percentage, while the green segment represents the surplus energy channeled into the battery.![self-sufficiency example][fronius-dashboard]
Here, it's evident that all the energy generated by the PV system serves either to charge the battery or for direct consumption (inclusive of electrical devices and the water heater's heating element).## Features
- Heat water with surplus power from PV
- Active date & time spans
- MQTT contactor status
- Operating modes
- Interactive
- Daemon
- Manual contactor override## Setup
Refer to this for setup instructions: [Setup.md][setup]
Check out this [Sample configuration][config-reference] for reference.
## Usage
Starting service:
```bash
boilr start
```Stopping service:
```bash
boilr stop
```Run verbosely in command line with custom config path:
```bash
boilr -c ./config.yaml -v run
```Complete guide (boilr -h):
```bash
usage: boilr [-h] [-c CONFIG] [-v] {start,stop,status,restart,run,manual} ...Water boiler automation with a Fronius pv inverter on a Raspberry Pi.
options:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
Path to the configuration file. (default: None)
-v, --verbose Increase verbosity (default: False)commands:
Choose between the following positional arguments{start,stop,status,restart,run,manual}
start Start boilr service
stop Stop boilr service
status Show the status of boilr service
restart Restart boilr service
run Start boilr in command-line
manual Manually override contactorAdditional hardware required. Please check:
https://github.com/PeterBrain/boilr
```> [!IMPORTANT]
> In all operating modes Boilr needs permission to create a file in /var/log. If you run boilr as a daemon it needs permission to create a file in /var/run. Pytest needs write permission to /var/log too.## Requirements
Check out [Requirements][requirements] for more details.
## Weaknesses
The existing design exhibits a significant limitation: in contrast to Ohmpilot[^1], a comparable Fronius product that boasts notably higher efficiency due to its use of PWM (Pulse Width Modulation), my setup operates solely in two states. It's either fully activated, providing maximum power to the heating coil, or completely deactivated. The optimal efficiency advantage is sacrificed on days when PV production falls just short of meeting both the household's current consumption and the water heating requirements.
## Additional resources
- Fronius official API documentation: [Documentation - Fronius Solar API V1][fronius-api-documentation]
- Postman request collection: [Postman Collection - Fronius Solar API V1][fronius-api-collection][^1]: and
[github-release-link]: https://github.com/peterbrain/boilr/releases
[github-release-shield]: https://img.shields.io/github/v/release/peterbrain/boilr
[codecov-coverage]: https://codecov.io/gh/PeterBrain/boilr
[codecov-shield]: https://codecov.io/gh/PeterBrain/boilr/graph/badge.svg?token=NQDML8H7QA[fronius-dashboard-graph]: ./docs/sufficiency.jpg
[fronius-dashboard]: ./docs/fronius.jpg[setup]: ./docs/Setup.md
[requirements]: ./docs/Requirements.md
[config-reference]: ./config.yaml[fronius-api-documentation]: https://www.fronius.com/~/downloads/Solar%20Energy/Operating%20Instructions/42%2C0410%2C2012.pdf
[fronius-api-collection]: https://www.getpostman.com/collections/27c663306206d7fbf502