Skip to main content
Performance is critical in Home Assistant. Poorly optimized integrations can slow down the entire system, increase resource usage, and degrade user experience.

Async Programming

Use Async/Await

Home Assistant is built on asyncio. Always use async functions:

Avoid Blocking I/O

Never use blocking I/O in async functions:

Use aiohttp for HTTP Requests

Always use aiohttp instead of requests:

Timeouts

Always use timeouts for network operations:

Data Updates

Use DataUpdateCoordinator

Coordinators prevent redundant API calls:

Appropriate Polling Intervals

Choose reasonable update intervals:

Parallel Updates Protection

Prevent concurrent entity updates:
This is defined in PARALLEL_UPDATES at the platform level:

Efficient Data Structures

Use Runtime Data

Avoid storing data in hass.data:

Cache Expensive Operations

Memory Management

Avoid Memory Leaks

Clean up resources properly:

Limit Data Storage

Database Performance

Exclude Unnecessary Data

Don’t store rapidly changing data:

Use State Classes

Network Efficiency

Batch API Requests

Connection Pooling

Compression

CPU Optimization

Offload Heavy Computation

Lazy Loading

Benchmarking

Measure Performance

Profile Code

Common Performance Issues

Issue: Blocking the Event Loop

Issue: Too Frequent Updates

Issue: Unbounded Memory Growth

Resources