J. Nick Koston
|
6370132cbb
|
Merge branch 'integration' into memory_api
|
2025-11-13 12:38:14 -06:00 |
|
J. Nick Koston
|
1f408ce41c
|
[template.alarm_control_panel] Use FixedVector for iteration-only sensor storage
|
2025-11-13 12:35:43 -06:00 |
|
J. Nick Koston
|
3a5b3ad77d
|
[thermostat] Replace std::map with FixedVector, reduce flash usage (#11875)
|
2025-11-12 17:55:06 -06:00 |
|
J. Nick Koston
|
9a2574a2fe
|
Merge branch 'integration' into memory_api
|
2025-11-12 14:56:02 -06:00 |
|
J. Nick Koston
|
20388ce848
|
[thermostat] Replace std::map with FixedVector, reduce flash usage
|
2025-11-12 14:54:23 -06:00 |
|
J. Nick Koston
|
9accb16b4a
|
Merge branch 'integration' into memory_api
|
2025-11-12 12:02:04 -06:00 |
|
J. Nick Koston
|
9de80b635a
|
[core] Fix wait_until hanging when used in on_boot automations (#11869)
|
2025-11-12 17:56:19 +00:00 |
|
J. Nick Koston
|
ef19d7bb24
|
Merge branch 'integration' into memory_api
|
2025-11-05 21:22:24 -06: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 |
|
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
|
b3fdef3ac4
|
Merge branch 'integration' into memory_api
|
2025-11-05 18:59:08 -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
|
1446e7174a
|
[core] Reduce action framework argument copies by 83% (#11704)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
|
2025-11-05 01:23:24 +00:00 |
|
J. Nick Koston
|
42833c85f5
|
[climate] Replace std::vector<std::string> with const char* for custom fan modes and presets (#11621)
|
2025-11-02 23:16:39 -06:00 |
|
J. Nick Koston
|
40f919eaa6
|
Add action continuation tests (#11674)
|
2025-11-03 14:07:03 +13:00 |
|
Kjell Braden
|
86402be9e3
|
actions: fix loop re-entry (#7972)
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
|
2025-11-02 17:02:13 -06:00 |
|
Kjell Braden
|
f6946c0b9a
|
add integration test for script re-entry argument issue (#11652)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
|
2025-11-02 15:08:45 -06:00 |
|
J. Nick Koston
|
58235049e3
|
[template] Eliminate optional wrapper to save 4 bytes RAM per instance (#11610)
|
2025-10-30 15:06:21 +13:00 |
|
J. Nick Koston
|
dfb4b31bf9
|
[template] Store initial option as index in template select (#11523)
|
2025-10-28 11:37:40 +13:00 |
|
Jesse Hills
|
2c1927fd12
|
[api] Allow clearing noise psk if dynamically set (#11429)
|
2025-10-22 14:24:56 +13:00 |
|
Keith Burzinski
|
66afe4a9be
|
[climate] Add some integration tests (#11439)
|
2025-10-21 02:26:18 -05:00 |
|
J. Nick Koston
|
46101fd830
|
Add tests for FilterOutValueFilter and ThrottleWithPriorityFilter (#11408)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
2025-10-20 09:25:03 -10:00 |
|
J. Nick Koston
|
c9312d5c27
|
[script] Fix unbounded queue growth, optimize queued mode (default max_runs=5) (#11308)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
|
2025-10-19 09:42:17 -10:00 |
|
J. Nick Koston
|
85babe85e4
|
[sensor] Optimize sliding window filters to eliminate heap fragmentation (#11282)
|
2025-10-20 07:59:47 +13:00 |
|
Juan Antonio Aldea
|
d5c36eaf2a
|
[tests] Remove superfluous else-blocks from lambdas (#11322)
Co-authored-by: J. Nick Koston <nick@koston.org>
|
2025-10-17 21:40:54 -10:00 |
|
J. Nick Koston
|
a56d044d98
|
[api] Prevent API from overriding noise encryption keys set in YAML (#10927)
|
2025-09-28 22:42:58 -05:00 |
|
J. Nick Koston
|
440b0b5574
|
[tests] Add integration tests for oversized payload handling in API (#10788)
|
2025-09-22 09:07:47 +12:00 |
|
J. Nick Koston
|
8c28f346c7
|
[gpio_expander] Add intelligent pin type selection to CachedGpioExpander template (#10577)
|
2025-09-08 10:57:02 +12:00 |
|
J. Nick Koston
|
28d16728d3
|
[core] Add memory pool to scheduler to reduce heap fragmentation (#10536)
|
2025-09-08 10:27:58 +12:00 |
|
J. Nick Koston
|
23c6650902
|
[api] Fix VERY_VERBOSE logging compilation error with bool arrays (#10539)
|
2025-09-04 08:07:13 +12:00 |
|
J. Nick Koston
|
5ba1c32242
|
[host] Fix memory allocation in preferences load() method (#10506)
|
2025-09-03 14:26:43 +12:00 |
|
J. Nick Koston
|
d2752b38c9
|
[core] Fix preference storage to account for device_id (#10333)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
2025-08-25 12:22:16 +12:00 |
|
J. Nick Koston
|
9f02575287
|
[test] Add integration test for light effect memory corruption fix (#10417)
|
2025-08-25 08:58:46 +12:00 |
|
J. Nick Koston
|
61a5023888
|
[script] Fix parallel mode scripts with delays cancelling each other (#10324)
|
2025-08-25 08:49:52 +12:00 |
|
Jesse Hills
|
0b50ef227b
|
[helper] Make crc8 function more flexible to avoid reimplementation in individual components (#10201)
|
2025-08-20 14:27:08 +12:00 |
|
J. Nick Koston
|
6818439109
|
[core] Fix scheduler race condition where cancelled items still execute (#10268)
|
2025-08-18 11:14:41 -04:00 |
|
Jesse Hills
|
6a8722f33e
|
[entity] Allow `device_id` to be blank on entities (#10217)
|
2025-08-14 09:42:11 +12:00 |
|
Jesse Hills
|
c85eb448e4
|
[gpio_expander] Fix bank caching (#10077)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
|
2025-08-05 13:45:52 +12:00 |
|
J. Nick Koston
|
52634dac2a
|
[tests] Add datetime entities to host_mode_many_entities integration test (#10032)
|
2025-08-05 13:12:05 +12:00 |
|
J. Nick Koston
|
f13e742bd5
|
[ruff] Enable RET and fix all violations (#9929)
|
2025-08-01 02:10:56 +00:00 |
|
J. Nick Koston
|
59d466a6c8
|
[api] Remove unnecessary string copies from optional access (#9897)
|
2025-07-29 08:55:41 +12:00 |
|
J. Nick Koston
|
85435e6b5f
|
[scheduler] Eliminate more runtime string allocations from retry (#9930)
|
2025-07-29 08:54:16 +12:00 |
|
J. Nick Koston
|
1702356fc8
|
[api] Fix string lifetime issue in Home Assistant service calls with templated values (#9909)
|
2025-07-28 16:39:25 +12:00 |
|
J. Nick Koston
|
88ccde4ba1
|
[scheduler] Fix retry race condition on cancellation (#9788)
|
2025-07-25 08:14:15 -10:00 |
|
J. Nick Koston
|
fe1050a583
|
[tests] Fix flaky scheduler retry test timing (#9760)
|
2025-07-21 17:21:51 +12:00 |
|
J. Nick Koston
|
0d422bd74f
|
[scheduler] Add integration tests for set_retry functionality (#9644)
|
2025-07-19 00:26:54 +12:00 |
|
J. Nick Koston
|
f0f76066f3
|
[scheduler] Fix DelayAction cancellation in restart mode scripts (#9646)
|
2025-07-18 04:07:59 +00:00 |
|