What is Home Assistant Core?
Home Assistant Core is the Python-based foundation of Home Assistant. It provides a robust framework for:- Observing the state of entities across your home
- Controlling devices through a unified interface
- Automating tasks based on state changes and events
- Integrating thousands of different devices and services
Home Assistant Core is a production-ready platform currently at version 2026.4.0.dev0. It requires Python 3.14.2 or later.
Key Features
Local Control
All processing happens on your local hardware. Your data stays in your home, ensuring privacy and reducing cloud dependencies.
Modular Architecture
Built on a modular integration system that makes it easy to add support for new devices and services. Each integration runs independently.
Event-Driven System
Home Assistant uses an event bus architecture where components communicate through events, enabling powerful automation capabilities.
Extensive Integration Library
Supports thousands of integrations for devices from major manufacturers and DIY solutions.
Architecture Overview
Home Assistant Core is built around several fundamental concepts:The HomeAssistant Core Object
At the heart of the system is theHomeAssistant class (defined in homeassistant/core.py), which serves as the central coordinator:
Core Components
Event Bus
The event bus enables asynchronous communication between components. Events like
state_changed, service_registered, and custom events flow through this system.State Machine
Maintains the current state of all entities (sensors, lights, switches, etc.). Each state includes attributes, timestamps, and context.
Service Registry
Services are callable actions that components expose (e.g.,
light.turn_on, climate.set_temperature). The registry manages service registration and invocation.Key Constants
Home Assistant defines important constants inhomeassistant/const.py:
Platform Support
Home Assistant Core runs on:- Linux (recommended for production)
- macOS (Darwin)
- Windows (via WSL - Windows Subsystem for Linux)
Component Lifecycle
Integrations follow a standardized lifecycle:- Discovery - Integration is discovered through configuration or config entries
- Dependency Resolution - Required dependencies and other integrations are identified
- Setup - The integration’s
async_setuporasync_setup_entryis called - Platform Loading - Entity platforms (sensor, switch, etc.) are loaded
- Runtime - Integration responds to events and provides services
- Shutdown - Graceful cleanup when Home Assistant stops
Event-Driven Architecture
Home Assistant’s event-driven design enables loose coupling between components:Asyncio-Based
Home Assistant Core is built on Python’sasyncio library, enabling:
- Non-blocking I/O - Thousands of devices can be managed concurrently
- Efficient resource usage - Single-threaded event loop with minimal overhead
- Responsive UI - The web interface remains responsive during heavy operations
Configuration Management
Home Assistant uses YAML for configuration, with the main configuration file atconfiguration.yaml:
Next Steps
Now that you understand what Home Assistant Core is, you can:- Follow the Quickstart guide to get up and running quickly
- Read the Installation guide for detailed setup instructions
- Learn about Configuration options