Skip to content

JuliaSzulc/Efficient-House-Energy-Management-Using-Self-Learning-AI

Repository files navigation

logo
Efficient House Energy Management
using self learning AI

The project implements the idea of reinforcement learning for decision process using custom learning agent and environment. The aim is to create a working system for a smart house that analyzes the outside and inside data collected by sensors and determines the action to perform considering the user desired values of temperature and light and energy cost. As a result the system should minimize energy consumption in the house and maximize user’s comfort.

Problem and idea:

We wanted to create a system for a smart house that works properly under any base requirements and conditions and results in visible energy saving. Here we think about the smart house as an agent with the access to the basic devices in the house (currently it is: energy source, light level, window blinds, air conditioning and heater) as well as the inside and outside sensors. The sensors collect the data (temperature, brightness and solar battery level) between the fixed timeframes.

Applied solution:

A complex simulation of the outside world, house and weather has been created as a base environment for the agent. The reward is calculated from difference between current conditions and user requests and energy use. Currently implemented algorithm uses Double Deep Q Learning with Prioritized Experience Replay.

Getting Started

Prerequisites:

  • A Debian based distribution of Linux operating system
  • Python 3.6.5 installed
  • Python package manager (pip) and python3 tkinter library installed

On a Debian based operating system, you can use apt package manager to setup the requirements quickly:

$ sudo apt-get update
$ sudo apt-get install python3.6 python3.6-pip python3-tk

Instalation:

Install required Python3 libraries using requirements.txt. We recommend installing libraries inside virtual environment, although this is not necessary. (for more info about virtualenvs, look here).

$ pip3 install -r requirements.txt

Running:

Proceed into source code directory , and run one of following scripts:

  1. To run a training session:
$ python3 main.py
  1. For full-screen live simulation:
$ python3 simulation.py
  1. For manual, step-by-step testing:
$ python3 manual_test.py

You can change the configuration of agent and environment through configuration.json

Repo Guide

.
├── configuration.json        Main configuration file 
├── README.md
├── requirements.txt
├── ...
├── documentation             Both technical and business documentation of the project 
│   └── ...
├── research                  Our additional research notes 
│   └── ...
├── src                       Source code directory 
│   ├── main.py               Main script used to train Agent 
│   ├── simulation.py         Graphical simulation of Agent at work 
│   ├── manual_test.py        Console-based simulation of Agent and Environment
│   ├── profile.sh            Our profiling script
│   ├── ...
│   ├── saved_models          Directory for storing models 
│   │   └── ...
│   └── tests                 Unit tests directory 
│       ├── get_coverage.sh   Our testing script 
│       └── ...
└── static                    Directory for storing static files 
    ├── fonts 
    └── icons 
 

For more info please refer to documentation of the project, where you can find technical docs and a list of used sources.

Authors

🐻 Dawid Czarneta
🐅 Jakub Frąckiewicz
:squirrel: Filip Olszewski
🐗 Michał Popiel
🐱 Julia Szulc

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published