Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterBrain committed Oct 8, 2024
2 parents 01504ef + d78c5e4 commit ee90f38
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 18 deletions.
21 changes: 10 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ The yellow area illustrates the self-consumed energy after using Boilr (this pro
![self-sufficiency example](./docs/fronius.jpg)
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).

If dealing with the electrical aspect isn't within your comfort zone, it's advisable to seek assistance from an electrician, as mishandling it can pose serious risks.
> [!WARNING]
> If dealing with the electrical aspect isn't within your comfort zone, it's advisable to seek assistance from an electrician, as mishandling it can pose serious risks.
## Additional Downloads

Expand All @@ -19,25 +20,24 @@ If dealing with the electrical aspect isn't within your comfort zone, it's advis

## Setup

### Containerised (recommended)
### Containerised in Docker (recommended)

1. Build image (on Raspberry Pi)
- `docker-compose build`
1. Run app in container
- `docker-compose up -d`

#### Notes
> [!NOTE]
> In order to install and use Docker on a Raspberry Pi 1 Model B, I had to set `sysctl vm.overcommit_memory=1` and restart after the installation.
In order to install and use Docker on a Raspberry Pi 1 Model B I had to set `sysctl vm.overcommit_memory=1` and restart after the installation.

### cli
### Manual via cli

1. Install python3
- `sudo apt install python3 python3-venv`
1. Clone the repo
- `git clone https://github.com/PeterBrain/boilr.git boilr`
- `cd boilr`
1. Create a virtual environment (not not... it's up to you) & activate it
1. Create a virtual environment & activate it (optional, but recommended)
- `python3 -m venv venv`
- `source venv/bin/activate`
1. Install all requirements
Expand Down Expand Up @@ -122,15 +122,14 @@ Here is a list of all parts I used (2020):
- Ethernet cable (I had an old one at home (Cat5 - not even Cat5e))
- Network switch (used, gigabit (overkill) around 5-10€, or an old router with a builtin switch for free)

I had the option to use a WiFi dongle instead of an Ethernet cable, but due to the weak signal strength in my cellar (where the water boiler is located), WiFi connectivity wasn't viable. Additionally, the PV inverter, which is already connected via LAN, is situated in the same area.

Inside | Outside
:-----:|:-------:
:---:|:---:
![inside view](./docs/inside.JPG) | ![outside view](./docs/outside.JPG)

Regarding the second Schuko socket, I made an oversight and didn't consider the distribution box lid. Unfortunately, the lid cannot be closed when there's something plugged into the Schuko socket on the hut rail.

## Weaknesses

The existing design exhibits a significant limitation: in contrast to Ohmpilot, 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.
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.

[^1]: <https://www.fronius.com/en/solar-energy/installers-partners/infocentre/news-row/ohmpilot-hot-water-with-solar-energy> and <https://www.fronius.com/~/downloads/Solar%20Energy/Brochures/SE_BRO_Fronius_Ohmpilot_B2C_EN_MEACA.pdf>
9 changes: 6 additions & 3 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ boilr:
ppv_tolerance: 100 # tolerance pv production in W
heater_power: 2600 # max power of the heating element in W (for power availability calculation)

active_date_range: ["01-01", "31-12"] # may - oct (day-month) ([start, end])
active_time_range: ["00:00", "23:59"] # after charge_threshold & before discharging the battery
# e.g.: 10:00 - 17:00 ([start, end]) (hour:minute)
active_date_range: ["01-01", "31-12"] # (day-month) ([start, end])
# e.g.: may to oct -> ["01-05", "31-10"]
active_time_range: ["00:00", "23:59"] # (hour:minute) ([start, end])
# e.g.: 10am to 5pm -> ["10:00", "17:00"]
# boilr is active after charge_threshold is exceeded
# boilr is inactive before the battery is discharged

rpi:
rpi_channel_relay_out: 17 # board number 11
Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ services:
boilr:
container_name: boilr
build: .
restart: unless-stopped
privileged: true
volumes:
- ./config.yaml:/config.yaml
devices:
- /dev/gpiomem:/dev/gpiomem
restart: unless-stopped
privileged: true
networks:
- boilr-network

Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
certifi==2024.6.2
certifi==2024.8.30
charset-normalizer==3.3.2
docutils==0.21.2
idna==3.7
Expand All @@ -7,4 +7,4 @@ python-daemon==3.0.1
PyYAML==6.0.1
requests==2.32.3
RPi.GPIO==0.7.1
urllib3==2.2.1
urllib3==2.2.3

0 comments on commit ee90f38

Please sign in to comment.