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 6 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
Fix lookup of top-level IANA timezone keys like UTC and GMT (#1538) @bdraco
[serial_proxy] Add awaitable serial proxy subscribe/unsubscribe responses (#1537) @kbx81
<details> <summary>2 changes</summary>
One column per quarter.
Remove unreachable guard in _skip_tz_name (#1534) @bdraco
Expose SerialProxyRequestResponse (#1524) @puddly
SerialProxyRequestResponse (#1524) @puddly[serial_proxy] Add SerialProxyRequestResponse (#1523) @kbx81
Add force encoding option to protobuf option (#1522) @bdraco
Add rpc entry for bluetooth_set_connection_params (#1521) @bdraco
Force release drafter (#1520) @bdraco
<details> <summary>12 changes</summary>
Add DEFROSTING to ClimateAction (#1506) @lyubomirtraykov
Add timezone parser (#1505) @bdraco
<details> <summary>8 changes</summary>
Add WaterHeaterFeature class for ESPHome (#1493) @tronikos
<details> <summary>5 changes</summary>
Add bluetooth_gatt_stop_notify and auto-cleanup notify callbacks on disconnect (#1487) @bdraco
<details> <summary>2 changes</summary>
Sync api.proto from ESPHome (#1482) @bdraco
[infrared] New component/entity type (#1477) @kbx81
Add packed buffer support to protobuf (#1480) @kbx81
<details> <summary>2 changes</summary>
Add missing water_heater entity command mappings (#1476) @bdraco
Adding API Password deprecation information (#1382) @generalmat82
Only compute object_id for API version 1.14+ (#1471) @bdraco
Bump API minor version to 14 (1.14) (#1470) @bdraco
Delegate list_entities_services to device_info_and_list_entities when not cached (#1469) @bdraco
Ensure list_entities_services always fills missing object_ids (#1468) @bdraco
Add version parameter to build_unique_id (#1466) @bdraco
Add water_heater component (#1459) @dhoeben
Migrate to zero-copy for HomeAssistantStateResponse (#1461) @bdraco
<details> <summary>2 changes</summary>
Update benchmarks to use Python 3.14 (#1427) @bdraco
<details> <summary>7 changes</summary>
Replace retired macos-13 with macos-15-intel to fix wheel builds (#1447) @bdraco
Implement zero copy for select calls (#1445) @bdraco
Change execute_service to be async to handle timeouts internally (#1443) @jesserockz
execute_service to be async to handle timeouts internally (#1443) @jesserockzAdd device defined action responses (#1436) @jesserockz
<details> <summary>4 changes</summary>
Add vscode tasks to run tests (#1437) @jesserockz
Sync light effects protobuf to avoid heap allocations (#1434) @bdraco
USE_API_SERVICES to USE_API_USER_DEFINED_ACTIONS (#1429) @jesserockz<details> <summary>10 changes</summary>
Store event_types in flash instead of RAM (#1419) @bdraco
<details> <summary>3 changes</summary>
Store custom climate presets and fan modes in flash instead of RAM (#1415) @bdraco
Change fan preset modes to std::vector (#1413) @bdraco
Store select options in flash instead of RAM (#1411) @bdraco
<details> <summary>5 changes</summary>
Update climate entity container types in api.proto (#1405) @bdraco
<details> <summary>2 changes</summary>
Replace enum_as_bitmask with container_pointer_no_template (#1402) @bdraco
Add enum_as_bitmask protobuf option for ColorMode encoding (#1401) @bdraco
Add Python 3.14 support and streamline CI testing (#1398) @bdraco
Mark ListEntitiesServicesResponse as fixed_vector (#1396) @bdraco
Convert HomeassistantActionRequest to use fixed_vector (#1395) @bdraco
Fix slow connections by using multicast mDNS queries for cache sharing (#1394) @bdraco
Sync protobuf changes for FixedVector support in BLE characteristics and descriptors (#1393) @bdraco
Add wifi_mac_to_bluetooth_mac() helper for ESP32 MAC address conversion (#1392) @bdraco
<details> <summary>4 changes</summary>
Reduce log spam from repeated "Successfully resolved" messages during reconnection attempts (#1387) @bdraco
<details> <summary>2 changes</summary>
Add support for getting action responses from home-assistant (#1374) @jesserockz
<details> <summary>2 changes</summary>
Loosen zeroconf pin (#1378) @bdraco
<details> <summary>4 changes</summary>
Add support for Z-Wave HomeID messages (#1371) @kbx81
Add external wake words (#1363) @synesthesiam
Fix connection timeout when password is configured but device does not support authentication (#1369) @bdraco
Fix failing tests when compiled with Cython (#1368) @bdraco
Fix segfault when send_messages is called after connection cleanup (#1366) @bdraco
Rename HomeassistantServiceResponse to HomeassistantActionRequest (#1365) @bdraco
Implement zero-copy for strings in base API calls (#1364) @bdraco
Implement zero-copy API for zwave_proxy (#1359) @bdraco
Implement zero-copy API for bluetooth_proxy writes (#1360) @bdraco
Add windows wheels (#1358) @bdraco
Add timezone parameter to APIClient to fix container timezone override issue (#1356) @bdraco
[zwave_proxy] Add Home ID to DeviceInfoResponse (#1353) @kbx81
<details> <summary>2 changes</summary>
Add port and noise_psk properties to client_base (#1352) @balloob
Your coding agent can read these notes before it upgrades. Set up the MCP server →