Commit Graph
27309 Commits
Author SHA1 Message Date
J. Nick Koston 5d31f4aeba [light] Use function-pointer fields in LightControlAction (#15132) 2026-04-07 12:00:17 -10:00
Jonathan Swoboda 9fe4d5c63d [rp2040_pio_led_strip][rp2040_pio] Fix CUSTOM chipset crash and improve error message (#15537) 2026-04-07 11:56:50 -10:00
Jonathan Swoboda 97ad5ab35f [udp] Fix on_receive only processing first automation (#15538) 2026-04-07 11:56:01 -10:00
Jonathan Swoboda e7ddc6f6d3 [multiple] Fix validation ranges (batch 2) (#15533) 2026-04-07 17:54:57 -04:00
Jonathan Swoboda cbcf80081b [pcf8563] Fix default I2C address from 8-bit (0xA3) to 7-bit (0x51) (#15526) 2026-04-07 17:54:12 -04:00
Jonathan Swoboda 3073f3ec5c [haier] Fix control_method schema incorrectly using ensure_list (#15523) 2026-04-07 17:53:16 -04:00
Jonathan Swoboda 5a52936f72 [graph] Fix legend config incorrectly accepting a list (#15522) 2026-04-07 17:52:33 -04:00
Jonathan Swoboda 3ca3cdc5e2 [multiple] Fix missing entity base classes in Python class declarations (#15534) 2026-04-07 11:44:28 -10:00
Jonathan Swoboda 4ebfe71b8f [seeed_mr24hpc1] Move baud rate validation to FINAL_VALIDATE_SCHEMA (#15536) 2026-04-07 11:42:33 -10:00
Jonathan Swoboda 2fe6cb392b [rotary_encoder] Fix set_value action accepting any sensor ID (#15535) 2026-04-07 11:40:43 -10:00
J. Nick Koston f61d316bbb Merge remote-tracking branch 'origin/light-control-action-compact' into integration 2026-04-07 11:28:50 -10:00
J. Nick Koston 35a7ba75de reduce 2026-04-07 11:26:06 -10:00
J. Nick Koston 1ad84035c3 reduce 2026-04-07 11:24:19 -10:00
J. Nick Koston e862b4f5fd reduce 2026-04-07 11:23:37 -10:00
J. Nick Koston 0d65d23c05 lambda everything 2026-04-07 11:16:10 -10:00
Edward Firmo d354747da0 [nextion] Fix format specifiers and error message typos in command handlers (#15542) 2026-04-07 21:10:56 +00:00
Jonathan Swoboda 17ec5389d8 [mcp4461] Fix terminal disable passing string where C++ expects char (#15528) 2026-04-07 11:07:28 -10:00
Jonathan Swoboda 687753b0be [lightwaverf] Fix write pin using input schema instead of output (#15525) 2026-04-07 11:03:55 -10:00
Jonathan Swoboda 186525e77d [ld2420] Fix select options wrapped in extra list (#15524) 2026-04-07 10:57:26 -10:00
Jonathan Swoboda 9d396cea5a [grove_tb6612fng] Move direction logic from Python to C++ to fix lambda crash (#15513) 2026-04-07 10:56:25 -10:00
dependabot[bot] ac14b9e558 Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (#15541)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 10:40:21 -10:00
J. Nick Koston ef6c65c7ec [cli] Add config bundle CLI command for remote compilation (#13791) 2026-04-07 10:37:19 -10:00
dependabot[bot] c6c743e2bb Bump pytest from 9.0.2 to 9.0.3 (#15540)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 10:26:11 -10:00
J. Nick Koston 6460f3a757 [api] Add max_data_length and force to DeviceInfoResponse/HelloResponse proto fields (#15514) 2026-04-07 10:24:36 -10:00
J. Nick Koston 0d809a7481 [automation] Add CallbackAutomation dataclass and build_callback_automations helper (#15246) 2026-04-07 10:09:27 -10:00
J. Nick Koston cf78b035be Merge remote-tracking branch 'upstream/dev' into integration 2026-04-07 08:53:34 -10:00
J. Nick Koston 674d030cbb [core] Reschedule fired intervals directly into heap (#15516) 2026-04-07 07:36:55 -10:00
Diorcet Yann 7ab7538220 [hdc2080] Fix tests (#15518) 2026-04-06 21:59:05 -10:00
J. Nick Koston 9d43ed77c6 Merge remote-tracking branch 'origin/scheduler-interval-direct-heap' into integration 2026-04-06 20:58:44 -10:00
J. Nick Koston cf704b6b91 Address review: remove unused global, fix assertion messages 2026-04-06 20:54:01 -10:00
J. Nick Koston c79e7f4018 [core] Reschedule fired intervals directly into heap instead of to_add_
When an interval fires in Scheduler::call(), push it directly back into
items_ via push_back() + push_heap() instead of routing through the
to_add_ staging vector and process_to_add_slow_path_().

This eliminates per-cycle overhead of process_to_add_slow_path_() which
acquires a lock, iterates to_add_, pushes each item into the heap, clears
the vector, and resets the atomic counter.
2026-04-06 20:37:04 -10:00
J. Nick Koston cfb6af6c69 Merge remote-tracking branch 'upstream/dev' into integration 2026-04-06 19:19:44 -10:00
J. Nick Koston d0b3cdebdb Merge remote-tracking branch 'upstream/fan-store-preset-modes-on-entity' into integration 2026-04-06 19:19:34 -10:00
J. Nick Koston e3d95817a1 Merge remote-tracking branch 'upstream/climate-store-custom-modes-on-entity' into integration 2026-04-06 19:18:58 -10:00
J. Nick Koston 26e2d8c50d Merge remote-tracking branch 'upstream/api-max-data-length-force' into integration 2026-04-06 19:18:53 -10:00
dependabot[bot] 488a6a1c40 Bump aioesphomeapi from 44.11.1 to 44.12.0 (#15515)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 05:15:03 +00:00
J. Nick Koston 60b5893ec7 Merge branch 'dev' into climate-store-custom-modes-on-entity 2026-04-06 18:46:43 -10:00
J. Nick Koston 6db21ec054 Merge branch 'dev' into fan-store-preset-modes-on-entity 2026-04-06 18:46:32 -10:00
J. Nick Koston 7e0216e1bf [core] Add type annotations to cv.ByteLength 2026-04-06 18:45:08 -10:00
J. Nick Koston d3df97f534 Merge remote-tracking branch 'origin/api-max-data-length-force' into integration 2026-04-06 18:42:13 -10:00
J. Nick Koston 9ed1a35544 Merge remote-tracking branch 'upstream/dev' into integration 2026-04-06 18:42:00 -10:00
J. Nick Koston b86ab07632 [core] Fix test for byte-length error message, add ByteLength and multibyte tests 2026-04-06 18:38:58 -10:00
J. Nick Koston cf9e79beda Merge branch 'dev' into api-max-data-length-force 2026-04-06 18:34:36 -10:00
J. Nick Koston cfcf9216f3 [core] Add cv.ByteLength validator, switch all proto-backed length checks to byte length
Add cv.ByteLength() validator that checks UTF-8 byte length instead
of character count. This ensures multibyte characters don't cause
the encoded string to exceed the proto max_data_length limit.

Switch all length validators that feed into proto fields with
max_data_length annotations to use byte length:
- Entity names, friendly names, area names, device names
- Icons, device classes, units of measurement
- Board names, project name/version
2026-04-06 18:33:04 -10:00
J. Nick Koston 52d76f8db0 [api] Fix name max_data_length to match hostname limit, add suggested_area
- Fix HelloResponse.name and DeviceInfoResponse.name max_data_length
  from 120 to 31 to match ESPHOME_DEVICE_NAME_MAX_LEN (hostname limit)
- Add max_data_length=120 + force to suggested_area field
- Add static_asserts for ESPHOME_DEVICE_NAME_MAX_LEN and
  ESPHOME_FRIENDLY_NAME_MAX_LEN
- Fix comments to accurately describe guarantees
2026-04-06 18:17:04 -10:00
J. Nick Koston 5a92a3b16e [api] Add max_data_length/force to model and project fields, validate board/project lengths
Add BOARD_MAX_LENGTH and PROJECT_MAX_LENGTH constants (127) and
enforce them in YAML validation for all platform board schemas
and project name/version.

Add max_data_length + force proto options to model, project_name,
and project_version fields in DeviceInfoResponse.
2026-04-06 18:14:18 -10:00
J. Nick Koston f94e1dfab6 [core] Move ControllerRegistry notify methods inline into header (#15505) 2026-04-07 16:12:01 +12:00
J. Nick Koston 95974358ab [api] Add max_data_length and force to DeviceInfoResponse/HelloResponse proto fields
Add max_data_length + force proto options to string fields in
HelloResponse, AreaInfo, DeviceInfo, and DeviceInfoResponse where
we have strong compile-time or codegen guarantees on max length.

This enables encode_short_string_force() (direct byte writes,
no varint branching) for fields with single-byte tags, and
fixed-formula size calculations for all annotated fields.

Add static_asserts to cross-validate C++ constexpr constants
(MAC_ADDRESS_PRETTY_BUFFER_SIZE, BUILD_TIME_STR_SIZE,
ESPHOME_VERSION, ESPHOME_MANUFACTURER) against the proto
max_data_length annotations.
2026-04-06 18:03:26 -10:00
Jonathan Swoboda e49384cd57 [dfrobot_sen0395] Fix list.index() on mutated list in range validator (#15511) 2026-04-06 23:42:39 -04:00
J. Nick Koston 14a48ec6ac Merge remote-tracking branch 'upstream/dev' into integration 2026-04-06 17:33:57 -10:00