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-0.1.11.tar.gz (22.6 kB view hashes)

Uploaded Source

Built Distribution

smartboiler-0.1.11-py3-none-any.whl (24.9 kB view hashes)

Uploaded Python 3

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