Skip to main content

Smart boiling of household

Project description

SMARTBOILER

This is a README for the smartboiler library, used in a Home Assistant Add-On to decrease energy usage for heating water in a boiler. This is achieved by learning household consumption trends and heating water above the emergency temperature just before predicted consumption.

Recursive link to the GitHub repository: https://github.com/grinwi/smartboiler.

What's it all about?

This project was undertaken as a master's thesis at FIT VUT Brno. The goal was to find a solution for cutting costs by predicting household inhabitants' behavior with machine learning. Machine learning was utilized to train an LSTM network on historical data from a smart home. Based on the prediction of heat consumption from the water boiler, the algorithm included in class Control achieves a reduction in the average temperature of the water in the boiler, lowering energy losses, and the energy needed to deliver heat into the boiler. The method control() from this class is called in infinite loop of the main section in controller.py script. This is achieved also in cooperation with classes DataHandler which provides data for training model and retrieving actual stats, class Forecast for training LSTM model for prediction and getting the prediction for the next 6 hours, class EventChecker which is in charge of getting events from Google Calendar, class Photovoltaics for communicating with Solax Cloud API and getting information for function to optimize the usage of the additional power generated by the powerplant.

This solution assumes that the user has a boiler whose heating can be controlled by a Shelly smart plug https://www.shelly.com/en/products/shop/shelly-plus-1-pm. Another requirement is a Home Assistant running in the required household with an InfluxDB database, which stores household data as well as weather information, the presence of devices via NMAP https://www.home-assistant.io/integrations/nmap_tracker/ integration, and a flow meter with a temperature sensor placed on the output of the boiler. Another temperature sensor must be placed inside the boiler casing to control the heating based on the water temperature in the boiler. The data from the smart home must be collected into a time series database InfluxDB, for which can be used the Home Assitant Add-On https://www.home-assistant.io/integrations/influxdb/.

Users can also utilize their Google Calendar to turn off the heating, for example, when they are on holiday. Another function using the calendar is heating to a needed temperature when unusually high consumption is expected. This can be achieved by copying Google calendar API token as token.json to /app folder of the Add-On retrieved by this manual: https://developers.google.com/calendar/api/guides/overview

The Home Assistant Add-On repository can be found at this address: https://github.com/grinwi/smartboiler-add-on.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smartboiler-1.1.0.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

smartboiler-1.1.0.1-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file smartboiler-1.1.0.1.tar.gz.

File metadata

  • Download URL: smartboiler-1.1.0.1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for smartboiler-1.1.0.1.tar.gz
Algorithm Hash digest
SHA256 7b050fc27fb685ff809a0a0d7da4f3c1202837b545c8485e2601a57f014a446b
MD5 ee114be15abefbf13e92ddebe7ded507
BLAKE2b-256 d40b97a8dd6f794e9ce10203339abab2f47abb1bd7ccff499f14cba24ae6d161

See more details on using hashes here.

File details

Details for the file smartboiler-1.1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for smartboiler-1.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ae6b831bd9d13a8eb8339ded19648b1f2dbfbe20c38a3b706ff5ecfd06d1504e
MD5 935ad82db4645de55f64b49da7e4e928
BLAKE2b-256 36a435dd3d7598a4cf200517857815b8174db7181b04e7a82743472499ae9302

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page