J. Nick Koston
eb83c85a08
[ci] Add lint check to prevent powf in core and base entity platforms
...
Add a ci-custom.py check that prevents powf() from being introduced
into esphome/core/ and base entity platform components (sensor, light,
climate, etc.). These files are linked into every build, and powf
pulls in __ieee754_powf (~2.3KB flash).
Existing legitimate uses of powf with non-integer exponents (gamma
correction in helpers.cpp) are excluded. New uses can opt out with
// NOLINT if truly necessary.
2026-02-19 15:56:19 -06:00
J. Nick Koston
6a8844e2fc
[sensor] Replace powf with pow10_int in sensor filters
...
Add shared pow10_int() helper to helpers.h that computes 10^exp
using iterative multiplication/division instead of powf.
Replace powf(10, exp) calls in:
- sensor/filter.cpp: ValueListFilter and RoundFilter
- helpers.cpp: normalize_accuracy_decimals (refactored to use
pow10_int for the general case, keeping -1/-2 fast paths)
Eliminates powf/__ieee754_powf from builds where sensor filters
are the only remaining powf call site.
2026-02-19 15:28:12 -06:00
J. Nick Koston
d2b7d40716
Clamp accuracy_decimals to -9 to prevent uint32_t overflow
2026-02-19 12:17:19 -06:00
J. Nick Koston
2bb077cb1f
[core] Replace powf with integer math in normalize_accuracy_decimals
...
Replace powf(10.0f, accuracy_decimals) with integer divisor computation
to avoid pulling in __ieee754_powf (~2.2KB) on builds where this is
the only powf call site.
Tested on ESP8266 with web_server: -3.1KB flash, -16 bytes RAM.
2026-02-19 12:10:51 -06:00
Jonathan Swoboda
bd50b80882
[opentherm] Remove deprecated opentherm_version config option ( #14103 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 11:34:40 -05:00
Kevin Ahrendt
b11ad26c4f
[audio] Support decoding audio directly from flash ( #14098 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-19 11:20:19 -05:00
J. Nick Koston
f7459670d3
[core] Optimize WarnIfComponentBlockingGuard::finish() hot path ( #14040 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 16:10:22 +00:00
Jonathan Swoboda
5304750215
[socket] Fix IPv6 compilation error on host platform ( #14101 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 16:00:34 +00:00
J. Nick Koston
a8171da003
[web_server] Reduce set_json_id flash and stack usage ( #14029 )
2026-02-19 09:38:57 -06:00
J. Nick Koston
916cf0d8b7
[e131] Replace std::map with std::vector for universe tracking ( #14087 )
2026-02-19 09:28:00 -06:00
J. Nick Koston
0484b2852d
[e131] Fix E1.31 on ESP8266 and RP2040 by restoring WiFiUDP support ( #14086 )
2026-02-19 09:27:05 -06:00
J. Nick Koston
b5a8e1c94c
[ci] Update lint message to recommend constexpr over static const ( #14099 )
2026-02-19 09:06:46 -06:00
dependabot[bot]
01a46f665f
Bump esptool from 5.1.0 to 5.2.0 ( #14058 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-19 09:42:22 -05:00
J. Nick Koston
535980b9bd
[cse7761] Use constexpr for compile-time constants ( #14081 )
2026-02-19 08:40:41 -06:00
J. Nick Koston
b0085e21f7
[core] Devirtualize call_loop() and mark_failed() in Component ( #14083 )
2026-02-19 08:40:23 -06:00
J. Nick Koston
6daca09794
[logger] Replace LogListener virtual interface with LogCallback struct ( #14084 )
2026-02-19 08:40:08 -06:00
J. Nick Koston
7b53a98950
[socket] Log error when UDP socket requested on LWIP TCP-only platforms ( #14089 )
2026-02-19 08:39:44 -06:00
Rodrigo Martín
4cc1e6a910
[esp32_ble_server] add test for lambda characteristic ( #14091 )
2026-02-19 09:23:22 -05:00
Marc Hörsken
4d05e4d576
[esp32_camera] Add support for sensors without JPEG support ( #9496 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-02-18 21:52:38 -06:00
Kevin Ahrendt
eefad194d0
[audio, speaker] Add support for decoding Ogg Opus files ( #13967 )
2026-02-18 21:51:33 -06:00
Kevin Ahrendt
ba7134ee3f
[mdns] add Sendspin advertisement support ( #14013 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-02-18 21:51:16 -06:00
Kevin Ahrendt
264c8faedd
[media_player] Add more commands to support Sendspin ( #12258 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-02-18 21:51:01 -06:00
Kevin Ahrendt
3c227eeca4
[audio] Add support for sinking via an arbitrary callback ( #14035 )
2026-02-18 21:50:39 -06:00
J. Nick Koston
c8598fe620
[bluetooth_proxy] Use constexpr for remaining compile-time constants ( #14080 )
2026-02-18 21:34:25 -06:00
J. Nick Koston
2f9b76f129
[pn7160] Use constexpr for compile-time constants ( #14078 )
2026-02-18 21:33:39 -06:00
J. Nick Koston
9a8b00a428
[nfc] Use constexpr for compile-time constants ( #14077 )
2026-02-18 21:33:23 -06:00
J. Nick Koston
eaf0d03a37
[ld2420] Use constexpr for compile-time constants ( #14079 )
2026-02-18 21:32:37 -06:00
J. Nick Koston
e7f2021864
[http_request] Replace std::map with std::vector in action template ( #14026 )
2026-02-18 21:32:24 -06:00
J. Nick Koston
dff9780d3a
[core] Use constexpr for compile-time constants ( #14071 )
2026-02-19 03:19:48 +00:00
J. Nick Koston
20239d1bb3
[remote_base] Use constexpr for compile-time constants ( #14076 )
2026-02-19 03:16:09 +00:00
J. Nick Koston
ee7d63f73a
[packet_transport] Use constexpr for compile-time constants ( #14074 )
2026-02-18 21:09:49 -06:00
J. Nick Koston
76c151c6e6
[api] Use constexpr for compile-time constant ( #14072 )
2026-02-18 21:07:38 -06:00
J. Nick Koston
9c9365c146
[bluetooth_proxy][esp32_ble_client][esp32_ble_server] Use constexpr for compile-time constants ( #14073 )
2026-02-18 21:07:06 -06:00
J. Nick Koston
7e118178b3
[web_server] Fix water_heater JSON key names and move traits to DETAIL_ALL ( #14064 )
2026-02-18 21:00:24 -06:00
J. Nick Koston
66d2ac8cb9
[web_server] Move climate static traits to DETAIL_ALL only ( #14066 )
2026-02-18 21:00:09 -06:00
J. Nick Koston
e4c233b6ce
[mqtt] Use constexpr for compile-time constants ( #14075 )
2026-02-18 20:59:31 -06:00
J. Nick Koston
be853afc24
[core] Conditionally compile setup_priority override infrastructure ( #14057 )
2026-02-18 20:57:56 -06:00
J. Nick Koston
565443b710
[pulse_counter] Fix compilation on ESP32-C6/C5/H2/P4 ( #14070 )
2026-02-18 19:08:53 -06:00
J. Nick Koston
3b869f1720
[web_server] Double socket allocation to prevent connection exhaustion ( #14067 )
2026-02-18 19:01:37 -06:00
J. Nick Koston
5f82017a31
[udp] Register socket consumption for CONFIG_LWIP_MAX_SOCKETS ( #14068 )
2026-02-18 19:01:00 -06:00
J. Nick Koston
bd055e75b9
[core] Shrink Application::dump_config_at_ from size_t to uint16_t ( #14053 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 16:49:37 -06:00
J. Nick Koston
d90754dc0a
[http_request] Replace heavy STL containers with std::vector for headers ( #14024 )
2026-02-18 16:49:19 -06:00
J. Nick Koston
387f615dae
[api] Add handshake timeout to prevent connection slot exhaustion ( #14050 )
2026-02-18 16:48:30 -06:00
J. Nick Koston
02e310f2c9
[core] Remove unnecessary IRAM_ATTR from yield(), delay(), feed_wdt(), and arch_feed_wdt() ( #14063 )
2026-02-18 16:48:13 -06:00
Jesse Hills
d83738df87
Merge branch 'release' into dev
2026-02-19 11:43:58 +13:00
Jesse Hills
6b61edce92
Merge pull request #14062 from esphome/bump-2026.2.0
...
2026.2.0
2026.2.0
2026-02-19 11:36:00 +13:00
J. Nick Koston
09fc028895
[core] Remove dead global_state variable ( #14060 )
2026-02-18 15:16:26 -06:00
J. Nick Koston
82cfa00a97
[tlc59208f] Make mode constants inline constexpr ( #14043 )
2026-02-18 15:04:30 -06:00
J. Nick Koston
4a038978d2
[pca9685] Make mode constants inline constexpr ( #14042 )
2026-02-18 15:04:14 -06:00
Jesse Hills
2c89cded4b
Bump version to 2026.2.0
2026-02-19 09:30:04 +13:00