J. Nick Koston ed3acd582e [scheduler] Make core timer ID collisions impossible with type-safe internal IDs
Previously, PollingComponent used the string "update" and DelayAction
used "delay" as scheduler names. If a component subclassing
PollingComponent or using DelayAction also happened to use these same
strings for its own timers, the core timer would be silently cancelled
— a subtle bug that would be extremely hard to track down.

This introduces InternalSchedulerID, a type-safe wrapper that routes
through a new NUMERIC_ID_INTERNAL NameType. Since the scheduler
matches by (component, name_type, id, type), internal IDs can never
collide with component-level NUMERIC_ID or string-based names, even
if the underlying uint32_t values overlap.

Also migrates binary_sensor filters, MultiClickTrigger, and sensor
filters from string-based to uint32_t scheduler IDs. Each filter is
its own Component instance so IDs are scoped per-instance with no
collision risk.
2026-02-09 05:50:41 -06:00
2023-06-12 17:00:34 +12:00
2022-09-06 15:48:01 +12:00
2025-12-21 09:26:03 -05:00
2024-03-28 10:20:51 +13:00
2025-07-17 22:40:28 +12:00
2025-12-08 14:37:45 -05:00
2026-01-14 09:19:45 -05:00
2025-07-17 22:40:28 +12:00
2025-12-05 08:48:04 -05:00
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme Multiple Licenses 375 MiB
Languages
C++ 64.2%
Python 35.5%
C 0.2%