mirror of
https://github.com/esphome/esphome.git
synced 2026-02-18 15:35:59 -07:00
Merge branch 'timeout_filter_scheduler_churn_fix' into integration
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user