Commit Graph
3317 Commits
Author SHA1 Message Date
J. Nick Koston 0ea2a3e5cc Merge remote-tracking branch 'upstream/light-control-action-compact' into integration 2026-03-23 19:49:04 -10:00
J. Nick Koston 57c8ab861e [light] Use compact per-field union storage in LightControlAction
Replace 14 TemplatableValue fields with a per-field union that stores
either a constant value or a callable pointer in the same 4 bytes
(on 32-bit targets). A 2-bit-per-field type tag in a uint32_t tracks
field state (unset/constant/stateless lambda/stateful lambda).

Reduces LightControlAction from 128 to 76 bytes per instance on ESP32.
For a config with 8 light actions, this saves 416 bytes of RAM and
476 bytes of flash (from eliminated TemplatableValue template
instantiations).
2026-03-23 19:48:44 -10:00
J. Nick Koston 14ae11e0de Merge remote-tracking branch 'upstream/add-w5100-ethernet-support' into integration 2026-03-23 18:23:53 -10:00
J. Nick Koston 739bd93191 [ethernet] Add W5100 support for RP2040
Add support for the WIZnet W5100/W5100S SPI Ethernet controller
on RP2040 platforms, using the arduino-pico lwIP_w5100 library.

Tested on W5100S-EVB-Pico hardware.
2026-03-23 18:08:02 -10:00
J. Nick Koston 51de1ad0b9 Merge remote-tracking branch 'upstream/precompute-tag-forced-varint-fields' into integration
# Conflicts:
#	esphome/components/api/api_pb2_dump.cpp
#	esphome/components/sensor/sensor.h
2026-03-23 15:28:13 -10:00
Javier PeletierandJ. Nick Koston df4318505f [substitutions] refactor substitute() as a pure function (package refactor part 3) (#15031)
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-03-23 14:28:04 -10:00
J. Nick Koston a0d0516b22 [benchmark] Add noise handshake benchmark (#15039) 2026-03-23 13:40:41 -10:00
J. Nick Koston 0fb31726f6 [esp32] Add sram1_as_iram option and bootloader version detection (#14874) 2026-03-23 13:39:29 -10:00
J. Nick Koston e63105b023 Merge remote-tracking branch 'upstream/wifi-esp8266-roam-scan-dwell' into integration 2026-03-23 13:14:26 -10:00
Clyde Stubbs e6a73cab8f [number] Add sensor platform (#15125) 2026-03-24 12:04:53 +13:00
bf6000ef3d [substitutions] substitutions pass and !include redesign (package refactor part 2b) (#14918)
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-23 12:50:28 -10:00
J. Nick Koston 04032914e9 Merge remote-tracking branch 'upstream/dev' into integration
# Conflicts:
#	esphome/components/ethernet/__init__.py
#	esphome/components/ethernet/ethernet_component_esp32.cpp
2026-03-23 12:45:25 -10:00
Clyde Stubbs 6956bf7e53 [text] Add text_sensor for read-only view of text component (#15090) 2026-03-24 10:24:25 +13:00
Daniel KentandJonathan Swoboda 11b829dda1 [spa06_spi] Add SPA06-003 Temperature and Pressure Sensor - SPI support (Part 3 of 3) (#14523)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-23 15:59:17 -04:00
J. Nick Koston 1e16b30380 [ethernet] Add ENC28J60 SPI Ethernet support (#14945) 2026-03-23 19:18:58 +00:00
J. Nick Koston f744568689 Merge remote-tracking branch 'upstream/component-8byte-optimization' into integration 2026-03-22 21:40:00 -10:00
J. Nick Koston bd7bdc0e2d Merge remote-tracking branch 'upstream/devirtualize-decode' into integration 2026-03-22 21:39:51 -10:00
J. Nick Koston 099bea00f6 Add test for _generate_source_table_code empty input 2026-03-22 21:30:22 -10:00
J. Nick Koston a92281f899 Add tests for register_component_source, remove redundant index check
- Test empty name returns 0
- Test deduplication returns same index
- Test overflow warns and returns 0
- Remove duplicate index==0 check in get_component_log_str() since
  component_source_lookup() already handles it
2026-03-22 21:24:13 -10:00
J. Nick Koston 0ec2a288a3 Merge branch 'dev' into component-8byte-optimization 2026-03-22 21:16:55 -10:00
J. Nick Koston 33bb87b813 Simplify to uint8_t index, add friend declarations, fix tests
- Drop 9-bit index scheme in favor of plain uint8_t (max 255 unique
  source names, overflow warns in Python and returns 0)
- Add friend declarations for setup()/original_setup() so generated
  code can call protected set_component_source_()
- Move get_component_log_str() out of line
- Fix test mocks to provide CORE.data dict
2026-03-22 21:16:18 -10:00
J. Nick Koston 5560c9eef7 [test] Fix flakey ld2412 integration test race condition (#15100) 2026-03-22 21:10:51 -10:00
Keith BurzinskiandClaude Sonnet 4.6 225330413a [uart] Rename FlushResult to UARTFlushResult with UART_FLUSH_RESULT_ prefix (#15101)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 01:55:14 -05:00
J. Nick Koston 801b16f3fd Merge remote-tracking branch 'upstream/dev' into integration 2026-03-22 18:46:46 -10:00
J. Nick Koston 597bb18543 [benchmark] Add binary sensor publish and sensor filter benchmarks (#15035) 2026-03-23 16:30:57 +13:00
J. Nick Koston 8a3b5a8def [core] Fix placement new storage name for templated types (#15096) 2026-03-23 16:09:23 +13:00
J. Nick Koston 6992219e34 [core] Attribute placement new storage symbols to components (#15092) 2026-03-22 16:27:07 -10:00
J. Nick Koston 20420d0016 Merge remote-tracking branch 'upstream/analyze-memory-pstorage-attribution' into integration 2026-03-22 15:05:20 -10:00
J. Nick Koston 2d10f8abd3 [analyze-memory] Attribute placement new storage symbols to components
Embed component namespace in storage variable names so analyze-memory
can reliably attribute them. Display as "storage for {id}" in reports
and always show regardless of size threshold.
2026-03-22 15:03:36 -10:00
cd05462e9f [core] Use placement new allocation for Pvariables (#15079)
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-22 14:42:04 -10:00
J. Nick Koston d60ab8e20f Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 14:19:43 -10:00
J. Nick Koston 5b1b285220 Merge branch 'kamilcuk/use-placement-new' of https://github.com/Kamilcuk/esphome into kamilcuk/use-placement-new 2026-03-22 14:19:29 -10:00
J. Nick Koston 2d47c31fbf nits 2026-03-22 14:19:22 -10:00
J. Nick Koston e564114787 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 14:06:12 -10:00
J. Nick KostonandClaude Opus 4.6 e85065b1c4 [logger] Fix dummy_main.cpp Logger constructor for clang-tidy (#15088)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:06:00 -10:00
J. Nick Koston 76cd51beb9 Merge remote-tracking branch 'upstream/fix-dummy-main-logger-constructor' into integration 2026-03-22 14:02:18 -10:00
J. Nick Koston 58b6d7a0df revert fix -- moved to another pr 2026-03-22 14:01:48 -10:00
J. Nick Koston 1dde810db8 revert fix -- moved to another pr 2026-03-22 14:01:32 -10:00
J. Nick Koston 280ea52002 Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 13:58:24 -10:00
J. Nick Koston 3eb0f1affd Merge branch 'kamilcuk/use-placement-new' of https://github.com/Kamilcuk/esphome into kamilcuk/use-placement-new 2026-03-22 13:54:09 -10:00
J. Nick Koston 8b89f5e036 avoid template overhead 2026-03-22 13:54:00 -10:00
J. Nick Koston 7bd4cde012 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 13:47:53 -10:00
J. Nick KostonandClaude Opus 4.6 67add9b9b6 [logger] Fix dummy_main.cpp Logger constructor for clang-tidy
The Logger constructor requires a task_log_buffer_size argument when
USE_ESPHOME_TASK_LOG_BUFFER is defined, which is the case in defines.h
used by clang-tidy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:44:39 -10:00
J. Nick Koston bccaee8d79 fix test 2026-03-22 13:38:43 -10:00
J. Nick Koston f70f012dc2 fix test 2026-03-22 13:38:25 -10:00
J. Nick Koston cf27eca8fc Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 13:14:10 -10:00
J. Nick Koston 4a2ff62d68 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-22 12:58:13 -10:00
J. Nick Koston 2c06464f7b [packet_transport] Use FixedVector and parent pointer to enable inline Callback storage (#14946) 2026-03-22 12:41:54 -10:00
J. Nick Koston 08df8e15f1 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 12:33:56 -10:00
J. Nick Koston 4d09eb2cec [tests] Fix flaky ld24xx integration tests by disabling API batching (#15050) 2026-03-22 12:29:28 -10:00