boilr-pv


Nameboilr-pv JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryWater boiler automation with a Fronius pv inverter on a Raspberry Pi.
upload_time2024-10-27 22:39:37
maintainerNone
docs_urlNone
authorNone
requires_python<3.11,>=3.8
licenseMIT License Copyright (c) 2020 Peter Loecker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords boiler pv photovoltaic solar solar-energy fronius-solar-api fronius fronius-inverter ohmpilot waterheater raspberry-pi raspberrypi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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 contactor

Additional 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]: <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>


[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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "boilr-pv",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.11,>=3.8",
    "maintainer_email": null,
    "keywords": "boiler, pv, photovoltaic, solar, solar-energy, fronius-solar-api, fronius, fronius-inverter, ohmpilot, waterheater, raspberry-pi, raspberrypi",
    "author": null,
    "author_email": "Peter Loecker <peter.loecker@live.at>",
    "download_url": "https://files.pythonhosted.org/packages/21/33/a43ddc642c46655f85ba64f06ed450c4db9e801cdee5057bfbcbd24d278c/boilr_pv-0.1.1.tar.gz",
    "platform": null,
    "description": "# Boilr\n\n[![latest release][github-release-shield]][github-release-link]\n[![coverage][codecov-shield]][codecov-coverage]\n\nWater boiler automation with a Fronius pv inverter on a Raspberry Pi.\n\nThe 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.\n\n![sufficiency over one day][fronius-dashboard-graph]\nThe 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.\n\n![self-sufficiency example][fronius-dashboard]\nHere, 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).\n\n## Features\n\n- Heat water with surplus power from PV\n- Active date & time spans\n- MQTT contactor status\n- Operating modes\n  - Interactive\n  - Daemon\n- Manual contactor override\n\n## Setup\n\nRefer to this for setup instructions: [Setup.md][setup]\n\nCheck out this [Sample configuration][config-reference] for reference.\n\n## Usage\n\nStarting service:\n\n```bash\nboilr start\n```\n\nStopping service:\n\n```bash\nboilr stop\n```\n\nRun verbosely in command line with custom config path:\n\n```bash\nboilr -c ./config.yaml -v run\n```\n\nComplete guide (boilr -h):\n\n```bash\nusage: boilr [-h] [-c CONFIG] [-v] {start,stop,status,restart,run,manual} ...\n\nWater boiler automation with a Fronius pv inverter on a Raspberry Pi.\n\noptions:\n  -h, --help            show this help message and exit\n  -c CONFIG, --config CONFIG\n                        Path to the configuration file. (default: None)\n  -v, --verbose         Increase verbosity (default: False)\n\ncommands:\n  Choose between the following positional arguments\n\n  {start,stop,status,restart,run,manual}\n    start               Start boilr service\n    stop                Stop boilr service\n    status              Show the status of boilr service\n    restart             Restart boilr service\n    run                 Start boilr in command-line\n    manual              Manually override contactor\n\nAdditional hardware required. Please check:\nhttps://github.com/PeterBrain/boilr\n```\n\n> [!IMPORTANT]\n> 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.\n\n## Requirements\n\nCheck out [Requirements][requirements] for more details.\n\n## Weaknesses\n\nThe 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.\n\n## Additional resources\n\n- Fronius official API documentation: [Documentation - Fronius Solar API V1][fronius-api-documentation]\n- Postman request collection: [Postman Collection - Fronius Solar API V1][fronius-api-collection]\n\n[^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>\n\n\n[github-release-link]: https://github.com/peterbrain/boilr/releases\n[github-release-shield]: https://img.shields.io/github/v/release/peterbrain/boilr\n[codecov-coverage]: https://codecov.io/gh/PeterBrain/boilr\n[codecov-shield]: https://codecov.io/gh/PeterBrain/boilr/graph/badge.svg?token=NQDML8H7QA\n\n[fronius-dashboard-graph]: ./docs/sufficiency.jpg\n[fronius-dashboard]: ./docs/fronius.jpg\n\n[setup]: ./docs/Setup.md\n[requirements]: ./docs/Requirements.md\n[config-reference]: ./config.yaml\n\n[fronius-api-documentation]: https://www.fronius.com/~/downloads/Solar%20Energy/Operating%20Instructions/42%2C0410%2C2012.pdf\n[fronius-api-collection]: https://www.getpostman.com/collections/27c663306206d7fbf502\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 Peter Loecker  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Water boiler automation with a Fronius pv inverter on a Raspberry Pi.",
    "version": "0.1.1",
    "project_urls": {
        "Documentation": "https://github.com/PeterBrain/boilr",
        "Homepage": "https://github.com/PeterBrain/boilr",
        "Issues": "https://github.com/PeterBrain/boilr/issues",
        "Source": "https://github.com/PeterBrain/boilr"
    },
    "split_keywords": [
        "boiler",
        " pv",
        " photovoltaic",
        " solar",
        " solar-energy",
        " fronius-solar-api",
        " fronius",
        " fronius-inverter",
        " ohmpilot",
        " waterheater",
        " raspberry-pi",
        " raspberrypi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a903aa12852be64efeea85a4248b3c8647ef9870828498bd9ba145b2dfc4f73a",
                "md5": "6151a3981f9bbf9babff8a52d55295d2",
                "sha256": "125427cb34f9439f448b8fbb8282a7f57c9370f8d9ee05a97c77e39ec7bf172d"
            },
            "downloads": -1,
            "filename": "boilr_pv-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6151a3981f9bbf9babff8a52d55295d2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.11,>=3.8",
            "size": 19179,
            "upload_time": "2024-10-27T22:39:34",
            "upload_time_iso_8601": "2024-10-27T22:39:34.171332Z",
            "url": "https://files.pythonhosted.org/packages/a9/03/aa12852be64efeea85a4248b3c8647ef9870828498bd9ba145b2dfc4f73a/boilr_pv-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2133a43ddc642c46655f85ba64f06ed450c4db9e801cdee5057bfbcbd24d278c",
                "md5": "3b935feb3429353373050ca63297a404",
                "sha256": "0f64eb64b2a123d2847b92531c9c60ce36c54246a59ec7902ff0d6ff210c70e3"
            },
            "downloads": -1,
            "filename": "boilr_pv-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3b935feb3429353373050ca63297a404",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.11,>=3.8",
            "size": 1760165,
            "upload_time": "2024-10-27T22:39:37",
            "upload_time_iso_8601": "2024-10-27T22:39:37.524902Z",
            "url": "https://files.pythonhosted.org/packages/21/33/a43ddc642c46655f85ba64f06ed450c4db9e801cdee5057bfbcbd24d278c/boilr_pv-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-27 22:39:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PeterBrain",
    "github_project": "boilr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "boilr-pv"
}
        
Elapsed time: 1.49597s