Commit Graph

16751 Commits

Author SHA1 Message Date
J. Nick Koston fbc3413ed9 free 2025-11-05 23:00:40 -06:00
J. Nick Koston 754eaab3be Merge branch 'integration' into memory_api 2025-11-05 22:51:10 -06:00
J. Nick Koston ffd5b12324 Merge branch 'de_dupe_logging' into integration 2025-11-05 22:51:04 -06:00
J. Nick Koston 2ddfabe09e [core] Deduplicate entity icon and device class logging 2025-11-05 22:49:13 -06:00
rwrozelle 26607713bb [openthread] add poll period for mtd devices (#11374)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2025-11-06 16:57:31 +13:00
J. Nick Koston f0e52227f2 Merge branch 'integration' into memory_api 2025-11-05 21:28:25 -06:00
J. Nick Koston 6c09b16b38 Revert "[esp32_ble] Store custom GAP device name in flash"
This reverts commit 70d947fab9.
2025-11-05 21:28:17 -06:00
J. Nick Koston ef19d7bb24 Merge branch 'integration' into memory_api 2025-11-05 21:22:24 -06:00
J. Nick Koston 39b63ae87e Merge branch 'store_custom_ble_gap_name_flash' into integration 2025-11-05 21:22:17 -06:00
J. Nick Koston 70d947fab9 [esp32_ble] Store custom GAP device name in flash 2025-11-05 21:20:27 -06:00
Szewcson 895d76ca03 [gdk101] Fix fw version reporting (#11029)
Signed-off-by: szewcu <szewcson@gmail.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2025-11-05 22:19:29 -05:00
J. Nick Koston 74187845b7 [select] Convert remaining components to use index-based control() (#11693)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2025-11-06 15:55:26 +13:00
J. Nick Koston 822eacfd77 [core] Fix wait_until and for_condition timing regression in automation chains (#11716) 2025-11-06 15:49:24 +13:00
Clyde Stubbs ab5d8f67ae [core] Add helper functions for clamp_at_... (#10387) 2025-11-06 15:48:02 +13:00
J. Nick Koston 83f30a64ed [api] Store YAML service names in flash instead of heap (#11744) 2025-11-06 15:31:59 +13:00
J. Nick Koston 5eea7bdb44 Update AI instructions with C++ style guidelines from developers docs (#11743) 2025-11-06 14:45:48 +13:00
J. Nick Koston bdfd88441a [ci] Skip memory impact analysis when more than 40 components changed (#11741) 2025-11-05 19:31:23 -06:00
J. Nick Koston afe4ef17b7 Merge branch 'integration' into memory_api 2025-11-05 19:18:03 -06:00
J. Nick Koston dc3f4007df Merge branch 'api_services_flash' into integration 2025-11-05 19:17:55 -06:00
J. Nick Koston 8fded918b7 adjust 2025-11-05 19:16:37 -06:00
J. Nick Koston 784dc358f0 Merge branch 'integration' into memory_api 2025-11-05 19:02:28 -06:00
J. Nick Koston 99f5018dd2 Merge branch 'api_services_flash' into integration 2025-11-05 19:02:17 -06:00
J. Nick Koston ce4f9db778 adjust 2025-11-05 19:01:36 -06:00
J. Nick Koston b3fdef3ac4 Merge branch 'integration' into memory_api 2025-11-05 18:59:08 -06:00
J. Nick Koston d7c0ea22c4 Merge branch 'api_services_flash' into integration 2025-11-05 18:58:56 -06:00
J. Nick Koston 15c167b5ce adjust 2025-11-05 18:55:04 -06:00
J. Nick Koston ab6cb2dee6 remove extra test 2025-11-05 18:51:38 -06:00
J. Nick Koston bd0705cdc0 [api] Store YAML service names in flash instead of heap
Reduces memory usage for YAML-defined API services by storing service
names and argument names as pointers to string literals in flash instead
of heap-allocated std::string objects.

Implementation:
- Created UserServiceBase<Ts...> for YAML services (const char* storage)
- Created UserServiceDynamic<Ts...> for custom_api_device (std::string storage)
- Updated CustomAPIDeviceService to inherit from UserServiceDynamic
- UserServiceTrigger uses UserServiceBase (YAML-only)

Memory savings per YAML service:
- 0 args: 32 bytes (57% reduction)
- 2 args: 48 bytes (60% reduction)
- 5 args: 96 bytes (63% reduction)

Custom API device services maintain same memory footprint (no regression).

Typical ESPHome device (2-5 services): 100-240 bytes saved
High-service device (10+ services): 400-800 bytes saved
2025-11-05 18:51:17 -06:00
J. Nick Koston 4810c36141 [api] Store YAML service names in flash instead of heap
Reduces memory usage for YAML-defined API services by storing service
names and argument names as pointers to string literals in flash instead
of heap-allocated std::string objects.

Implementation:
- Created UserServiceBase<Ts...> for YAML services (const char* storage)
- Created UserServiceDynamic<Ts...> for custom_api_device (std::string storage)
- Updated CustomAPIDeviceService to inherit from UserServiceDynamic
- UserServiceTrigger uses UserServiceBase (YAML-only)

Memory savings per YAML service:
- 0 args: 32 bytes (57% reduction)
- 2 args: 48 bytes (60% reduction)
- 5 args: 96 bytes (63% reduction)

Custom API device services maintain same memory footprint (no regression).

Typical ESPHome device (2-5 services): 100-240 bytes saved
High-service device (10+ services): 400-800 bytes saved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 18:49:58 -06:00
J. Nick Koston 351262aea9 Merge branch 'integration' into memory_api 2025-11-05 18:06:09 -06:00
J. Nick Koston 89bd9d8d91 Merge branch 'ai_instructions_code_base' into integration 2025-11-05 18:06:02 -06:00
J. Nick Koston aaee3f2899 Merge remote-tracking branch 'upstream/dev' into integration
# Conflicts:
#	esphome/components/mqtt/mqtt_binary_sensor.cpp
#	esphome/components/mqtt/mqtt_component.cpp
#	esphome/components/mqtt/mqtt_cover.cpp
#	esphome/components/mqtt/mqtt_event.cpp
#	esphome/components/mqtt/mqtt_number.cpp
#	esphome/components/mqtt/mqtt_sensor.cpp
#	esphome/components/mqtt/mqtt_text_sensor.cpp
#	esphome/components/mqtt/mqtt_valve.cpp
2025-11-05 18:05:09 -06:00
Clyde Stubbs 20b6e0d5c2 [lvgl] Allow text substitution for NaN (#11712) 2025-11-06 10:37:38 +11:00
J. Nick Koston f8aee13a3a use actual pattern 2025-11-05 16:44:06 -06:00
J. Nick Koston c83e5e076b cleanup 2025-11-05 16:41:26 -06:00
J. Nick Koston e331056500 Update AI instructions with C++ style guidelines from developers documentation 2025-11-05 16:35:01 -06:00
J. Nick Koston ce5e608863 [ci] Skip memory impact analysis for release and beta branches (#11740) 2025-11-05 14:32:45 -06:00
J. Nick Koston aa5795c019 [tests] Fix ID collision between bl0940 and nau7802 component tests (#11739) 2025-11-05 13:17:34 -06:00
J. Nick Koston 00c0854323 [core] Deprecate get_icon(), get_device_class(), get_unit_of_measurement() and fix remaining non-MQTT usages (#11732) 2025-11-05 12:50:35 -06:00
J. Nick Koston 6d390d5b88 Merge branch 'integration' into memory_api 2025-11-05 12:36:32 -06:00
J. Nick Koston 8514fbcf71 Revert "Revert "Revert "[api] Release excess buffer capacity after initial sync"""
This reverts commit e8c7f74abd.
2025-11-05 12:36:27 -06:00
J. Nick Koston be006ecadd [mdns] Eliminate redundant hostname copy to save heap memory (#11734) 2025-11-05 18:31:19 +00:00
J. Nick Koston b08419fa47 [mqtt] Use StringRef to avoid string copies in discovery (#11731) 2025-11-06 07:30:45 +13:00
J. Nick Koston 0d2cdc5ce5 Merge branch 'integration' into memory_api 2025-11-05 12:25:24 -06:00
J. Nick Koston e8c7f74abd Revert "Revert "[api] Release excess buffer capacity after initial sync""
This reverts commit 1fce2918fb.
2025-11-05 12:25:16 -06:00
J. Nick Koston d25ff00af4 Merge branch 'integration' into memory_api 2025-11-05 12:22:24 -06:00
J. Nick Koston 1fce2918fb Revert "[api] Release excess buffer capacity after initial sync"
This reverts commit 90e4d15fd9.
2025-11-05 12:22:13 -06:00
J. Nick Koston d36ef050a9 [template] Mark all component classes as final (#11733) 2025-11-06 07:15:50 +13:00
J. Nick Koston 6e4b99db73 Merge branch 'integration' into memory_api 2025-11-05 12:15:30 -06:00
J. Nick Koston c9feb5cf65 Merge branch 'api_shrink_after_initial_sync' into integration 2025-11-05 12:15:24 -06:00