J. Nick Koston
fd6bd7fb67
Merge branch 'ld2412_batch_read' into integration
2026-02-06 23:40:15 +01:00
J. Nick Koston
6d1281301f
[ld2412] Batch UART reads to reduce loop overhead
...
Read all available bytes in batches via read_array() instead of
byte-at-a-time read() calls. Each read() internally chains through
read_byte -> read_array(1) -> check_read_timeout_ -> available(),
resulting in 3 UART calls per byte. Batching reduces this
significantly.
2026-02-06 23:36:01 +01:00
J. Nick Koston
3478c68af7
Merge branch 'cse7766_batch_read' into integration
2026-02-06 23:12:14 +01:00
J. Nick Koston
67e7ba4812
handle unlikely
2026-02-06 23:12:00 +01:00
J. Nick Koston
981c132cf4
Merge branch 'cse7766_batch_read' into integration
2026-02-06 23:07:21 +01:00
J. Nick Koston
572376091e
loop
2026-02-06 23:07:02 +01:00
J. Nick Koston
803e73fdec
Merge branch 'cse7766_batch_read' into integration
2026-02-06 22:59:59 +01:00
J. Nick Koston
e7c9808b87
[cse7766] Batch UART reads to reduce loop overhead
2026-02-06 22:53:31 +01:00
J. Nick Koston
82eb8e3492
Merge branch 'ssd1306-progmem-tables' into integration
2026-02-06 21:39:50 +01:00
J. Nick Koston
21a5c2891e
Merge branch 'i2c-arduino-cswtch' into integration
2026-02-06 21:39:46 +01:00
J. Nick Koston
96289775f2
[i2c] Replace switch with if-else to avoid CSWTCH table in RAM
...
Replace the Wire status-to-ErrorCode switch with if-else to prevent
the compiler from generating a 6-byte lookup table in DRAM on ESP8266.
2026-02-06 21:38:41 +01:00
J. Nick Koston
3e4269d32a
Address review: add SSD1306_MODEL_COUNT sentinel and bounds checks
...
- Add SSD1306_MODEL_COUNT sentinel to enum for compile-time table size validation
- Replace 14 individual static_asserts with table size checks against SSD1306_MODEL_COUNT
- Add bounds checks in get_height_internal()/get_width_internal() to preserve default return 0
2026-02-06 21:37:51 +01:00
J. Nick Koston
bd6d43de52
Merge branch 'ssd1306-progmem-tables' into integration
2026-02-06 21:28:11 +01:00
J. Nick Koston
8da986d41a
[ssd1306_base] Move switch tables to PROGMEM with lookup tables
...
Replace three compiler-generated switch tables (CSWTCH) with PROGMEM
lookup tables, saving 84 bytes of DRAM on ESP8266.
- model_str_(): 56B string pointer table → PROGMEM_STRING_TABLE
- get_height_internal(): 14B byte table → PROGMEM struct array
- get_width_internal(): 14B byte table → PROGMEM struct array
Width and height use a single ModelDimensions struct array for
maintainability. All 14 enum values verified with static_assert.
2026-02-06 21:26:10 +01:00
tronikos
eb7aa3420f
Add target_temperature to the template water heater ( #13661 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-02-06 21:23:42 +01:00
J. Nick Koston
4fb851954b
Merge branch 'debug_progmem' into integration
2026-02-06 21:10:55 +01:00
J. Nick Koston
d1399d9145
[debug] Move ESP8266 switch tables to flash with PROGMEM_STRING_TABLE
2026-02-06 21:10:23 +01:00
J. Nick Koston
ba40fbc53d
Merge remote-tracking branch 'origin/mqtt-custom-topic-no-alloc' into integration
2026-02-06 21:01:53 +01:00
J. Nick Koston
c8d4d870e8
[mqtt] Use .c_str() for StringRef payloads to match non-allocating publish overload
2026-02-06 21:00:53 +01:00
J. Nick Koston
fcb458e449
Merge branch 'mqtt-discovery-topic-no-alloc' into integration
2026-02-06 20:57:47 +01:00
J. Nick Koston
48a8f753f5
Merge branch 'mqtt-custom-topic-no-alloc' into integration
2026-02-06 20:57:40 +01:00
J. Nick Koston
6293f3110c
Merge branch 'mqtt-friendly-name-const-ref' into integration
2026-02-06 20:57:35 +01:00
J. Nick Koston
ce34b37e02
Merge branch 'mqtt-on-log-no-heap' into integration
2026-02-06 20:57:29 +01:00
J. Nick Koston
b454cac1dc
[mqtt] Use stack buffer for discovery topic to avoid heap allocation
2026-02-06 20:48:18 +01:00
J. Nick Koston
a9a943b858
[mqtt] Add zero-allocation topic getters to MQTT_COMPONENT_CUSTOM_TOPIC macro
...
Add _to() variants that write into a stack buffer and return StringRef,
avoiding heap allocation on every publish. Update publish_state() in
climate (11 allocations eliminated), fan (3), cover (2), and valve (1)
to use the new stack-based getters.
The allocating getters are retained for setup-time paths (subscribe,
send_discovery, dump_config) where the allocation is one-time.
2026-02-06 20:41:51 +01:00
J. Nick Koston
85c1660edf
[mqtt] Return friendly_name_() by const reference to avoid string copies
2026-02-06 20:38:33 +01:00
J. Nick Koston
664baac09e
[mqtt] Avoid heap allocation in on_log by using const char* publish overload
...
The on_log callback was constructing a temporary MQTTMessage struct which
copied the log_message_ topic string and created a new std::string from
the message buffer on every log line. This is called frequently at runtime
and contributes to heap fragmentation.
Use the const char* publish overload directly to avoid both allocations.
2026-02-06 20:32:04 +01:00
J. Nick Koston
b247e4a213
Merge remote-tracking branch 'upstream/dev' into integration
2026-02-06 20:12:59 +01:00
J. Nick Koston
86f91eed2f
[mqtt] Move switch string tables to PROGMEM_STRING_TABLE ( #13802 )
...
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>
2026-02-06 19:30:05 +01:00
J. Nick Koston
ea7aeb2507
Merge branch 'uart_partity' into integration
2026-02-06 19:25:08 +01:00
J. Nick Koston
61b2416a7c
Merge branch 'bmp_progmem' into integration
2026-02-06 19:24:52 +01:00
J. Nick Koston
41cecbfb0f
[template] Convert alarm sensor type to PROGMEM_STRING_TABLE and narrow enum to uint8_t ( #13804 )
2026-02-06 18:22:26 +00:00
J. Nick Koston
e3b547b1b0
[bmp3xx_base/bmp581_base] Convert oversampling and IIR filter strings to PROGMEM_STRING_TABLE
2026-02-06 19:22:11 +01:00
J. Nick Koston
93dd8d0e4f
Merge branch 'rtttl_progmem' into integration
2026-02-06 19:19:07 +01:00
J. Nick Koston
12b3e95ed3
[rtttl] Convert state_to_string to PROGMEM_STRING_TABLE
2026-02-06 19:18:27 +01:00
J. Nick Koston
a94c0f745f
Merge branch 'sprinkler_progmem' into integration
2026-02-06 19:16:49 +01:00
J. Nick Koston
7fc3b1ddfe
[sprinkler] Convert state and request origin strings to PROGMEM_STRING_TABLE
2026-02-06 19:16:13 +01:00
J. Nick Koston
ca33d4111b
[uart] Convert parity_to_str to PROGMEM_STRING_TABLE
2026-02-06 19:11:10 +01:00
Jonathan Swoboda
9315da79bc
[core] Add missing requests dependency to requirements.txt ( #13803 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 13:03:16 -05:00
J. Nick Koston
4325c86b0a
Merge branch 'template_alarm_progmem' into integration
2026-02-06 19:01:49 +01:00
J. Nick Koston
e3b9c9362d
[template] Convert alarm sensor type to PROGMEM_STRING_TABLE and narrow enum to uint8_t
2026-02-06 18:58:19 +01:00
J. Nick Koston
11882bc6fa
Merge branch 'mqtt_progmem_table' into integration
2026-02-06 18:54:52 +01:00
PolarGoose
155447f541
[dsmr] Fix issue with parsing lines like 1-0:0.2.0((ER11)) ( #13780 )
2026-02-06 12:53:59 -05:00
J. Nick Koston
b908d6ad04
[mqtt] Move switch string tables to PROGMEM_STRING_TABLE
2026-02-06 18:53:33 +01:00
J. Nick Koston
238e40966f
[light] Move CSWTCH lookup table to PROGMEM in get_suitable_color_modes_mask_ ( #13801 )
2026-02-06 17:33:26 +00:00
J. Nick Koston
29e73ef317
Merge remote-tracking branch 'upstream/dev' into integration
2026-02-06 18:25:47 +01:00
J. Nick Koston
f9192b5f75
[wifi] Avoid jump tables in LOG_STR switch statements to save ESP8266 RAM ( #13799 )
2026-02-06 18:20:46 +01:00
J. Nick Koston
2917057da8
[analyze-memory] Trace CSWTCH switch table symbols to source components ( #13798 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-06 18:08:30 +01:00
J. Nick Koston
6464fcbc14
Merge branch 'light_cswitch' into integration
2026-02-06 18:03:40 +01:00
J. Nick Koston
305e0172f3
[light] Move CSWTCH lookup table to PROGMEM in get_suitable_color_modes_mask_
2026-02-06 17:58:30 +01:00