From cc40f0857411d8764acb9ac74cb095d76c701538 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 28 Nov 2025 13:02:37 -0600 Subject: [PATCH] use TimeoutFilterBase --- esphome/components/sensor/__init__.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/esphome/components/sensor/__init__.py b/esphome/components/sensor/__init__.py index ca6cd49090..f83226d10f 100644 --- a/esphome/components/sensor/__init__.py +++ b/esphome/components/sensor/__init__.py @@ -270,10 +270,9 @@ ThrottleFilter = sensor_ns.class_("ThrottleFilter", Filter) ThrottleWithPriorityFilter = sensor_ns.class_( "ThrottleWithPriorityFilter", ValueListFilter ) -TimeoutFilterLast = sensor_ns.class_("TimeoutFilterLast", Filter, cg.Component) -TimeoutFilterConfigured = sensor_ns.class_( - "TimeoutFilterConfigured", Filter, cg.Component -) +TimeoutFilterBase = sensor_ns.class_("TimeoutFilterBase", Filter, cg.Component) +TimeoutFilterLast = sensor_ns.class_("TimeoutFilterLast", TimeoutFilterBase) +TimeoutFilterConfigured = sensor_ns.class_("TimeoutFilterConfigured", TimeoutFilterBase) DebounceFilter = sensor_ns.class_("DebounceFilter", Filter, cg.Component) HeartbeatFilter = sensor_ns.class_("HeartbeatFilter", Filter, cg.Component) DeltaFilter = sensor_ns.class_("DeltaFilter", Filter) @@ -684,17 +683,18 @@ TIMEOUT_SCHEMA = cv.maybe_simple_value( ) -@FILTER_REGISTRY.register("timeout", Filter, TIMEOUT_SCHEMA) +@FILTER_REGISTRY.register("timeout", TimeoutFilterBase, TIMEOUT_SCHEMA) async def timeout_filter_to_code(config, filter_id): + filter_id = filter_id.copy() if config[CONF_VALUE] == "last": # Use TimeoutFilterLast for "last" mode (smaller, more common - LD2450, LD2412, etc.) - rhs = TimeoutFilterLast.new(config[CONF_TIMEOUT]) - var = cg.Pvariable(filter_id, rhs, TimeoutFilterLast) + filter_id.type = TimeoutFilterLast + var = cg.new_Pvariable(filter_id, config[CONF_TIMEOUT]) else: # Use TimeoutFilterConfigured for configured value mode + filter_id.type = TimeoutFilterConfigured template_ = await cg.templatable(config[CONF_VALUE], [], float) - rhs = TimeoutFilterConfigured.new(config[CONF_TIMEOUT], template_) - var = cg.Pvariable(filter_id, rhs, TimeoutFilterConfigured) + var = cg.new_Pvariable(filter_id, config[CONF_TIMEOUT], template_) await cg.register_component(var, {}) return var