NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5168 most downloaded on PyPI
Python API for interacting with ESPHome devices.
Last release 9 days ago
25 Sep 2026
Ships fairly regularly
a new release about every 1 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
426 releases · first in 2018
Add check for unexpected MAC address for noise protocol (#1149) @bdraco
<details> <summary>2 changes</summary>
Raise EncryptionPlaintextAPIError when noise is selected but remote protocol is plaintext (#1138) @bdraco
<details> <summary>3 changes</summary>
One column per quarter.
Raise EncryptionHelloAPIError when connection drops during encrypted hello (#1132) @bdraco
<details> <summary>7 changes</summary>
Add IPv6 support to the reconnect logic zeroconf listener (#1121) @bdraco
<details> <summary>2 changes</summary>
Rework process_packet to handle the common case of a single callback (#1117) @bdraco
No changes from 2.5.0; release due to failed release of 2.5.0
Avoid protobuf lookup to find MergeFromString (#1100) @bdraco
Reduce size of wheels (#1098) @bdraco
<details> <summary>2 changes</summary>
Also catch OSError when trying to set TCP_QUICKACK (#1093) @badrpc
Add bluetooth_mac_address to DeviceInfo model (#1090) @bdraco
bluetooth_mac_address to DeviceInfo model (#1090) @bdracoAdd bluetooth mac address to DeviceInfoResponse (#1080) @bdraco
<details> <summary>3 changes</summary>
Add the ability to cancel subscribe_logs (#1086) @bdraco
<details> <summary>2 changes</summary>
Fix discovery display when values are unexpectedly empty (#1082) @bdraco
Resolve hosts in parallel (#1072) @bdraco
Add manylinux armv7l wheels (#1070) @bdraco
Build armv7l wheels (#1069) @bdraco
<details> <summary>11 changes</summary>
Include Bluetooth connection slot allocations in connections free message (#1038) @bdraco
<details> <summary>4 changes</summary>
Migrate to using native ARM runners for wheel builds (#1031) @bdraco
<details> <summary>19 changes</summary>
Bump protobuf requirement to >=4 (#1007) @bdraco
<details> <summary>3 changes</summary>
Wrap PACK_NONCE in staticmethod (#1002) @bdraco
<details> <summary>2 changes</summary>
Ensure BLE device is disconnected after unhandled connect exception (#999) @bdraco
<details> <summary>6 changes</summary>
Implement zerocopy writes (#990) @bdraco
<details> <summary>18 changes</summary>
Change wake word id to string (#960) @synesthesiam
<details> <summary>2 changes</summary>
Add get/set/config messages for voice assistant (#956) @synesthesiam
Bump async-interrupt to >=1.2.0 (#952) @bdraco
MediaPlayerSupportedFormat (#948) @jesserockzAvoid a dict lookup and int conversion to process every packet (#946) @bdraco
<details> <summary>4 changes</summary>
Try to set TCP_QUICKACK where support for that option is available (#932) @nkinnan
Add MediaPlayerSupportedFormat (#925) @synesthesiam
Dont call subscription callback when we want single state only (#930) @jesserockz
Adjust subscribe_home_assistant_states to allow separate callback (#928) @jesserockz
subscribe_home_assistant_states to allow separate callback (#928) @jesserockz<details> <summary>2 changes</summary>
Add once flag to SubscribeHomeAssistantStateResponse (#923) @jesserockz
once flag to SubscribeHomeAssistantStateResponse (#923) @jesserockz<details> <summary>5 changes</summary>
Ruff updates (#915) @jesserockz
Bump cryptography to 43.0.0 and chacha20poly1305-reuseable to 0.13.2 (#910) @bdraco
<details> <summary>13 changes</summary>
remove name from test auto_spec to workaround py3.12.4 breaking changes (#890) @bdraco
<details> <summary>5 changes</summary>
Update Entities (#882) @jesserockz
<details> <summary>3 changes</summary>
Voice Assistant Timers (#878) @jesserockz
<details> <summary>3 changes</summary>
Adding announcement flag to media player command (#871) @gnumpi
<details> <summary>5 changes</summary>
Support for Event entity messages (#853) @nohat
Add Datetime entities (#859) @jesserockz
Remove deprecated settings for devcontainer (#857) @jesserockz
<details> <summary>10 changes</summary>
Send/Receive Voice Assistant Audio Messages (#854) @jesserockz
Implement datetime time entity (#850) @jesserockz
<details> <summary>4 changes</summary>
Use loopback address in all tests (#841) @bdraco
Implement Datetime date component (#824) @RFDarter
Gitignore the generated .c files for cython (#832) @jesserockz
Add device_class to text_sensor in ESPHome by @dougiteixeira in https://github.com/esphome/aioesphomeapi/pull/828
Full Changelog: https://github.com/esphome/aioesphomeapi/compare/v22.0.0...v22.1.0
Convert functions that no longer await to be normal functions (#827) @bdraco
Avoid creating tasks for starting/finishing the connection (#826) @bdraco
<details> <summary>3 changes</summary>
Pin cryptography and chacha20poly1305-reuseable to minimum compatible versions (#822) @bdraco
<details> <summary>8 changes</summary>
Make failure to increase the recv buffer size non-fatal (#802) @bdraco
Refactor raw Bluetooth advs subscriptions (#797) @bdraco
Add support for passing multiple addresses to the client (#796) @bdraco
<details> <summary>3 changes</summary>
Add happy eyeballs support (RFC 8305) (#789) @bdraco
Bump chacha20poly1305-reuseable to >=0.12.0 (#792) @bdraco
<details> <summary>2 changes</summary>
Add support for fan preset modes (#616) @mill1000
Partially revert "Add humidity and aux heat support to climate (#631)" (#783) @kroimon
Add humidity and aux heat support to climate (#631) @kroimon
Use background task logic for the on_stop callback (#780) @bdraco
Refactor list_entities_services to reduce unneeded local variables (#775) @bdraco
Use explict type checks for protobuf messages (#774) @bdraco
Your coding agent can read these notes before it upgrades. Set up the MCP server →