HHEMS is a research prototype developed at TU Delft as part of the Convergence initiative. The platform provides a framework for developing and testing energy management algorithms while enabling integration with both real smart home devices and simulated energy systems.
HHEMS (Hybrid Home Energy Management System) is an experimental platform that combines real smart home device control with energy system simulation. The system addresses the challenge of developing and testing energy management algorithms without requiring expensive hardware setups.
The platform integrates Home Assistant for device communication with DEMKit simulation capabilities, allowing researchers to work with both physical devices (when available) and simulated alternatives (solar panels, batteries, electric vehicles) within the same framework.
- Home Assistant Integration: Connects to real smart home devices through existing integrations
- DEMKit Simulation Engine: Simulates energy devices like solar panels, batteries, and electric vehicles
- HEMS Core: Provides APIs for energy management algorithm development
- Unified Interface: Treats real and simulated devices identically from the algorithm perspective
- Algorithm development without hardware dependencies
- Testing energy management strategies in controlled environments
- Comparative studies between different optimization approaches
- Educational demonstrations of smart energy concepts
- Homeowners with existing smart devices seeking optimization
- Prototyping energy management solutions before hardware investment
- Integration testing for new smart home device configurations
The system operates through several interconnected components:
- Home Assistant Core: Manages real device communications and provides a unified device interface
- HEMS Core: Implements the main energy management logic and exposes APIs for algorithm development
- DEMKit Integration: Handles simulation of energy devices and systems
- Configuration Layer: Allows setup of hybrid environments mixing real and simulated devices
Developers interact with the platform through APIs that abstract device complexity, enabling focus on energy optimization logic rather than hardware communication protocols.
A mobile application is currently under development by students as part of the CSE2000 software project course. The app aims to provide a user interface for energy monitoring and device control, complementing Home Assistant's automation-focused interface.
Current research explores extensions including:
- Multi-household coordination: Investigating energy sharing and coordination between connected households
- Community-scale optimization: Developing algorithms for neighborhood-level energy management
- Grid integration: Exploring how coordinated household systems might interact with larger energy infrastructure
- Mobile energy storage: Research into electric vehicles as distributed energy storage resources
- Docker
- If Windows, preferably WSL
docker network create hems_network
cd ha
docker compose up -d
Create your user and configure Home Assistant, then create a long-lived access token (guide).
cd hems-core
cp .env.example .env
Set the HA_TOKEN
environment variable with your long-lived access token.
cd hems-core
docker build . -t hems-core
docker compose up hems-core -d
Note: Windows users without WSL should verify absolute paths in docker-compose files in the demkit/
folder.
cd demkit
docker build . -t demkit
docker compose -f docker-compose.services.yml up -d
docker compose -f docker-compose.demkit.yml up -d
python3 configs/basic.py
HHEMS is an active research project at TU Delft. The codebase is available for research purposes, algorithm development, and experimentation. The platform continues to evolve based on research needs and community feedback.
The project welcomes contributions in areas including:
- Energy management algorithm implementations
- Device integration extensions
- Simulation model improvements
- Documentation and examples
- Testing and validation
This project is open-source. License details are specified in the repository.
Additional information available at the project website.