Repository navigation
Releases: mycontroller-org/esphome_api
Releases · mycontroller-org/esphome_api
Release list
v1.4.0
Proto baseline jumped from ESPHome 2024.5.0 (library snapshot 2024-06-15) to
2026.7.0.
Full migration notes: docs/API_PROTO_UPDATE_2024.5.0_to_2026.7.0.md.
Contains BREAKING CHANGES (see below and the doc above).
Protocol and generated API
- Sync
api.proto/api_options.protowith ESPHome 2026.7.0 - Regenerate
pkg/apiprotobuf bindings; expandhelper.goto all 148 message type IDs
(was 111; highest ID 114 → 148) - New entities/features on the wire: siren, update, water heater, infrared, serial proxy,
radio frequency, Z-Wave proxy, noise key provisioning, HA action / service responses,
Bluetooth scanner mode and connection params, voice assistant extensions
Client (pkg/client, pkg/types)
- Advertise Hello API version 1.14
- Session setup: use
Hello()on modern devices (ESPHome 2026.1+) Login(password)kept for older firmware only; password auth was removed in
ESPHome 2026.1.0. Prefer Noise encryption viaencryptionKeyonGetClientLogintreats auth-response timeout as success after Hello (modern devices ignore password)- Answer device-originated
GetTimeRequest(timezone-aware epoch seconds) - Record
DisconnectReasonfrom deviceDisconnectRequest - Safer shutdown (
close-once + deadline) and register waiters before send DeviceInfogains friendly name, manufacturer, project, BT MAC, encryption flags,
areas/devices, Z-Wave, serial proxies, and related fieldsGetLogEntry: decode logmessagefrombytes;SendFailedalways false (field removed)
CLI (esphomectl) and examples
- Always complete session setup:
Hello(), or legacyLogin(password)when a password is set - Warn on stderr when API password is used (deprecated; removed in ESPHome 2026.1.0)
--passwordhelp/examples mark password auth as removed; prefer--encryption-key- Persist expanded device info after login; entity list UI no longer uses removed
unique_id - Examples follow the same Hello / Login session pattern
Build and docs
- Release builds use
-trimpathand slim ldflags (-s -w); README documents the same for local CLI builds - Migration guide:
docs/API_PROTO_UPDATE_2024.5.0_to_2026.7.0.md - README /
proto/README.mdupdated for 2026.7.0 and encryption-first setup
Breaking changes
api.ConnectRequest/api.ConnectResponse→api.AuthenticationRequest/api.AuthenticationResponse
(IDs 3/4; not processed by ESPHome 2026.1.0+)api.HomeassistantServiceResponse→api.HomeassistantActionRequest- Entity list messages:
unique_idremoved (useobject_id+key, optionaldevice_id) SubscribeLogsResponse.message:string→bytes;send_failedremovedBluetoothLEAdvertisementResponse.name:string→bytes- Bluetooth helper constants use
*TypeIDsuffix (aligned with other message IDs) - Callers must run
Hello()(or deprecatedLogin) afterGetClientfor a full session
Development Build - Pre Release
v1.3.0
- update proto: bluetooth support included (#7, @jkandasa)
- support encrypted connection (#5, @jkandasa)
Contains BREAKING CHANGES
- get new client function name changed and encryption key argument added on the new function
old: func Init(clientID, address string, timeout time.Duration, handlerFunc func(proto.Message)) (*Client, error)
new: GetClient(clientID, address, encryptionKey string, timeout time.Duration, handlerFunc func(proto.Message)) (*Client, error)