NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4116 most downloaded on PyPI
Python API for interacting with ESPHome devices.
Last release 8 days ago
11 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
424 releases · first in 2018
Add test for legacy UserService type_ conversion (#761) @bdraco
Add test to ensure log runner reconnects on subscribe failure (#757) @bdraco
One column per quarter.
Add discover cli tool (#732) @bdraco
Refactor reading varuints to significant simplify plaintext frame helper (#718) @bdraco
Fix benchmarks from recent refactoring (#717) @bdraco
Speed up frame helpers (#696) @bdraco
Optimize the frame helpers by improving cython typing (#691) @bdraco
Refactor frame helper to get debug state from connection (#679) @bdraco
Reduce duplication in bluetooth gatt read code (#657) @bdraco
eof_received not raising SocketClosedAPIError (#651) @bdracoEnsure expected_disconnect is True when sending DisconnectResponse fails (#646) @bdraco
Refactor to reduce duplicate connection code (#644) @bdraco
Refactor zeroconf code to avoid creating instances when one is unneeded (#643) @bdraco
Fix handling incoming data from protractor event loop (#642) @bdraco
Refactor frame helper to avoid py conversions when processing packets (#641) @bdraco
Refactor frame helper to allow sending multiple packets at once (#640) @bdraco
Add the ability to pass the name the reconnect logic when running logs (#639) @bdraco
Fix host resolution when local dns does not resolve mdns (#636) @bdraco
Send hello and login asynchronously to speed up connecting (#628) @bdraco
Ensure an empty noise_psk or expected_name is treated as None (#623) @bdraco
Build aarch64 wheels (#619) @bdraco
Allow the start task to be cancelled when already disconnected (#615) @bdraco
Wait for handshake to finish to allow for clean disconnect when stopping reconnect logic (#614) @bdraco
Fix zeroconf reconnect logic (#613) @bdraco
Remove extra timeouts (#610) @bdraco
Add suggested_area to device info (#607) @jesserockz
Updated fork of PR for Text input components (#532) @EternityForest
Ensure frame_helper is always closed before the underlying socket (#602) @bdraco
<details> <summary>2 changes</summary>
Fix unhandled exception when handshake times out (#601) @bdraco
Refactor internal message handlers to use a single dispatch path (#598) @bdraco
Make reconnect logic state machine switches check locks (#597) @bdraco
Simplify raw ble advertisements callbacks (#594) @bdraco
Move mypy disable for async_timeout to mypy.ini (#593) @bdraco
<details> <summary>2 changes</summary>
Exclude .c files from wheel builds (#589) @bdraco
Remove unless local variable in _connect_resolve_host (#588) @bdraco
Add TTS_STREAM_START/END events (#586) @jesserockz
Add function to build new format unique ids (#585) @bdraco
Fix imports in host resolver test (#584) @bdraco
Improve consistency of name logging (#577) @bdraco
A faster reconnect process is expected to improve the battery life of deep sleep devices because it reduces the time the device is awake.
A faster reconnect process is expected to improve the battery life of deep sleep devices because it reduces the time the device is awake.
Narrow msg_types to only accept tuples (#574) @bdraco
Reduce memory copy when buffering is not required (#572) @bdraco
Disable all pypy wheels (#571) @bdraco
Disable wheel builds on old pypy versions as well (#569) @bdraco
<details> <summary>2 changes</summary>
Add optional basic cython implementation for frame_helper (#564) @bdraco
<details> <summary>3 changes</summary>
Switch host resolver to use modern zeroconf APIs (#559) @bdraco
Add voice assistant audio settings (#556) @jesserockz
Adjust black target version to 3.9 (#553) @bdraco
<details> <summary>7 changes</summary>
Increase expected disconnect cooldown to 5.0 seconds (#540) @bdraco
Increase default bluetooth disconnect timeout to 20s (#528) @bdraco
Speed up zeroconf reconnect logic (#531) @bdraco
Add new VA event types (#529) @jesserockz
Cache uuid conversions (#524) @bdraco
<details> <summary>2 changes</summary>
Add wake word capability to voice assistant (#519) @jesserockz
<details> <summary>2 changes</summary>
Increase SO_RCVBUF to 2MiB to reduce chance of ESP32 cam disconnects (#515) @bdraco
<details> <summary>2 changes</summary>
Reduce overhead to process packets (#503) @bdraco
Fix api calls not raising until timeout when the ESPHome device disconnects while waiting for a response (#498) @bdraco
Add messages to all task cancels (#497) @bdraco
Add slots to all models when using py3.10 or later (#459) @bdraco
Split _frame_helper into plain_text and noise (#491) @bdraco
Speed up encrypted handshake (#487) @bdraco
Your coding agent can read these notes before it upgrades. Set up the MCP server →