mirror of
https://github.com/esphome/esphome.git
synced 2026-02-19 16:05:35 -07:00
ed3acd582e4a46c1fadcb2e01268ee5601dc3d28
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.
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%
