Commit Graph
13378 Commits
Author SHA1 Message Date
J. Nick Koston a1df4f80e1 Skip proto message dump for log and camera responses
In debug builds (HAS_PROTO_MESSAGE_DUMP), skip dump logging for
SubscribeLogsResponse (recursive logging risk) and CameraImageResponse
(high-frequency image data noise). This matches the base branch behavior
where both bypassed dump logging via direct send_message_impl() calls.
2026-03-04 07:24:59 -10:00
J. Nick Koston 765075b1d0 tweaks 2026-03-03 21:35:11 -10:00
J. Nick Koston 3548911b07 cleanup 2026-03-03 20:45:36 -10:00
J. Nick Koston 46c3a897fe Add benchmark comparing virtual vs direct dispatch for proto encoding 2026-03-03 20:27:02 -10:00
J. Nick Koston cdcc5e5932 Rename ProtoSize static methods with calc_ prefix for clang-tidy 2026-03-03 20:22:27 -10:00
J. Nick Koston 3a5f03d0a3 naming 2026-03-03 20:22:02 -10:00
J. Nick Koston daf2e6ecc8 naming 2026-03-03 20:21:25 -10:00
J. Nick Koston 08c9990b53 simple register 2026-03-03 20:14:34 -10:00
J. Nick Koston e867712795 tweaks 2026-03-03 19:57:53 -10:00
J. Nick Koston 8407033111 dead 2026-03-03 19:56:31 -10:00
J. Nick Koston 675db740a9 Replace lambda and duplicate encode_msg thunk with shared proto_encode_msg<T>
Single named free function in proto.h used by both encode_message<T>
and APIConnection send paths. Eliminates duplicate thunk definitions.
2026-03-03 19:02:18 -10:00
J. Nick Koston 2b80effa20 Move HAS_PROTO_MESSAGE_DUMP code from template wrappers into non-template cores
Reduces per-instantiation cost of send_message<T> and
encode_message_to_buffer<T> by moving the DumpBuffer/log code
into send_message_() and encode_to_buffer(). The dump methods
(message_name, dump_to) are still virtual on ProtoMessage, so
they work correctly through the void* → ProtoMessage* cast.
2026-03-03 18:52:00 -10:00
J. Nick Koston 59b39d4388 tidy 2026-03-03 18:35:39 -10:00
J. Nick Koston 1e7eba1e90 tidy 2026-03-03 18:35:00 -10:00
J. Nick Koston 0a816192b2 restore comments to reduce diff churn 2026-03-03 18:32:18 -10:00
J. Nick Koston a7b61b1061 twea 2026-03-03 18:22:23 -10:00
J. Nick Koston 5d3d983994 fix bug 2026-03-03 17:49:25 -10:00
J. Nick Koston 9ba592cc42 cleanup 2026-03-03 17:40:07 -10:00
J. Nick Koston cfbe5904cc non-template cores 2026-03-03 17:31:43 -10:00
J. Nick Koston 6a66ab7406 tweak 2026-03-03 17:23:38 -10:00
J. Nick Koston b0279752eb tweak 2026-03-03 17:09:36 -10:00
J. Nick Koston 5373412f60 move DEVICE_CLASS_MAX_LENGTH to esphome/core/config.py alongside other max length constants 2026-03-03 12:03:51 -10:00
J. Nick Koston 151f1377a3 merge move_icons_progmem 2026-03-03 12:02:16 -10:00
J. Nick Koston c639accdfd move ICON_MAX_LENGTH to esphome/core/config.py alongside other max length constants 2026-03-03 11:55:26 -10:00
J. Nick Koston f73076bb8b should be in tu 2026-03-03 11:25:18 -10:00
J. Nick Koston 2fe9de7dbc add max length validation for device class strings
Defense-in-depth: validate device class strings don't exceed the
48-byte PROGMEM buffer limit (47 chars + null), matching the same
pattern used for icon strings.
2026-03-03 11:23:06 -10:00
J. Nick Koston ca6a05bfdd move device class strings to PROGMEM on ESP8266
Same treatment as icons in #14437. Device class strings were in
.rodata (RAM on ESP8266). Now stored as individual PROGMEM char arrays.

- Add get_device_class_to(std::span<char, MAX_DEVICE_CLASS_LENGTH>)
  buffer API matching get_icon_to() pattern
- Add fill_and_encode_entity_info_with_device_class() wrapper to
  deduplicate buffer handling across 10 API entity types
- Centralize MQTT device_class in send_discovery_() lambda where
  buffer lifetime outlives ArduinoJson serialization
- Deprecate get_device_class_ref()/get_device_class() on non-ESP8266
- static_assert error on ESP8266 directing to get_device_class_to()
- Update all callers: api, mqtt, web_server, log helper
2026-03-03 10:50:39 -10:00
J. Nick Koston afb8ba6813 preen 2026-03-03 08:43:35 -10:00
J. Nick Koston 6425c15ee1 bot review 2026-03-03 08:33:04 -10:00
J. Nick Koston 4267d29cb5 simplify get_icon_to: single lookup call on non-ESP8266
- Non-ESP8266: just return entity_icon_lookup(idx) directly
- ESP8266: short-circuit idx==0 to avoid strncpy_P on non-PROGMEM ""
2026-03-03 08:19:30 -10:00
J. Nick Koston 8335bb5f8e remove unnecessary PROGMEM empty string from weak default
The weak default is only reached when USE_ENTITY_ICON is disabled,
and get_icon_to() already short-circuits with return "" in that case.
2026-03-03 08:18:18 -10:00
J. Nick Koston 4a22afb79d fix: ensure icon empty string is PROGMEM, skip lookup when disabled
- When USE_ENTITY_ICON is disabled, return "" directly without
  calling through the lookup table
- When enabled, ensure the empty-string fallback (index 0 / out of
  range) is a PROGMEM char array so strncpy_P on ESP8266 is safe
2026-03-03 08:15:56 -10:00
J. Nick Koston 1108511c63 move icons to progmem 2026-03-03 08:06:55 -10:00
J. Nick Koston 807e3f9efc move icons to progmem 2026-03-03 08:04:09 -10:00
J. Nick Koston 95544dddf8 [ci] Add code-owner-approved label workflow (#14421) 2026-03-03 07:11:47 -10:00
J. Nick Koston b209c903bb [core] Inline trivial Component state accessors (#14425) 2026-03-03 07:05:15 -10:00
J. Nick Koston 4f69c487da [bk72xx] Fix ~100ms loop stalls by raising main task priority (#14420) 2026-03-03 07:04:12 -10:00
J. Nick Koston 78602ccacb [ci] Add lint check to prevent powf in core and base entity platforms (#14126) 2026-03-03 07:03:50 -10:00
J. Nick Koston 1f1b20f4fe [core] Pack entity string properties into PROGMEM-indexed uint8_t fields (#14171) 2026-03-03 07:03:24 -10:00
J. Nick Koston d53ff7892a [socket] Cache lwip_sock pointers and inline ready() chain (#14408) 2026-03-03 07:03:02 -10:00
rwrozellepre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>Kevin Ahrendt
b6f0bb9b6b [speaker] Add off on capability to media player (#9295)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ahrendt <kevin.ahrendt@openhomefoundation.org>
2026-03-03 10:59:01 -05:00
Clyde Stubbs cfde0613bb [const][uart][usb_uart][weikai][core] Move constants to components/const (#14430) 2026-03-03 07:53:18 -05:00
Jesse Hills 903c67c994 Revert "[wifi] Revert cyw43_wifi_link_status change for RP2040"
This reverts commit 1b5bf2c848.
2026-03-03 22:16:54 +13:00
Jesse Hills d8d479cef7 Merge branch 'release' into dev 2026-03-03 22:15:06 +13:00
Jesse Hills f48106b160 Merge pull request #14427 from esphome/bump-2026.2.4
2026.2.4
2026.2.4
2026-03-03 22:07:35 +13:00
J. Nick Koston 1b5bf2c848 [wifi] Revert cyw43_wifi_link_status change for RP2040
The switch from cyw43_tcpip_link_status to cyw43_wifi_link_status
was intended for 2026.3.0 alongside the arduino-pico 5.5.0 framework
update but was accidentally included in 2026.2.3.

With the old framework (3.9.4), cyw43_wifi_link_status never returns
CYW43_LINK_UP, so the CONNECTED state is unreachable. The device
connects to WiFi but the status stays at CONNECTING until timeout,
causing a connect/disconnect loop.

Fixes https://github.com/esphome/esphome/issues/14422
2026-03-03 20:46:31 +13:00
Jesse Hills c4fa476c3c Bump version to 2026.2.4 2026-03-03 20:45:28 +13:00
schrobandJonathan Swoboda 60d66ca2dc [openthread] Add tx power option (#14200)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-02 23:28:01 -05:00
J. Nick Koston db15b94cd7 [core] Inline HighFrequencyLoopRequester::is_high_frequency() (#14423) 2026-03-03 03:17:20 +00:00
ae49b67321 [ld2450] Clear all related sensors when a target is not being tracked (#13602)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-02 15:47:40 -10:00