cleanups per review

This commit is contained in:
J. Nick Koston
2025-11-28 12:56:13 -06:00
parent 2c6500511f
commit 087ed48dba
3 changed files with 11 additions and 12 deletions

View File

@@ -270,7 +270,7 @@ ThrottleFilter = sensor_ns.class_("ThrottleFilter", Filter)
ThrottleWithPriorityFilter = sensor_ns.class_(
"ThrottleWithPriorityFilter", ValueListFilter
)
TimeoutFilter = sensor_ns.class_("TimeoutFilter", Filter, cg.Component)
TimeoutFilterLast = sensor_ns.class_("TimeoutFilterLast", Filter, cg.Component)
TimeoutFilterConfigured = sensor_ns.class_(
"TimeoutFilterConfigured", Filter, cg.Component
)
@@ -684,18 +684,17 @@ TIMEOUT_SCHEMA = cv.maybe_simple_value(
)
@FILTER_REGISTRY.register("timeout", TimeoutFilter, TIMEOUT_SCHEMA)
@FILTER_REGISTRY.register("timeout", Filter, TIMEOUT_SCHEMA)
async def timeout_filter_to_code(config, filter_id):
if config[CONF_VALUE] == "last":
# Use TimeoutFilter for "last" mode (smaller, more common - LD2450, LD2412, etc.)
var = cg.new_Pvariable(filter_id, config[CONF_TIMEOUT])
# Use TimeoutFilterLast for "last" mode (smaller, more common - LD2450, LD2412, etc.)
rhs = TimeoutFilterLast.new(config[CONF_TIMEOUT])
var = cg.Pvariable(filter_id, rhs, TimeoutFilterLast)
else:
# Use TimeoutFilterConfigured for configured value mode
# Change the type to TimeoutFilterConfigured (similar to stateless lambda pattern)
filter_id = filter_id.copy()
filter_id.type = TimeoutFilterConfigured
template_ = await cg.templatable(config[CONF_VALUE], [], float)
var = cg.new_Pvariable(filter_id, config[CONF_TIMEOUT], template_)
rhs = TimeoutFilterConfigured.new(config[CONF_TIMEOUT], template_)
var = cg.Pvariable(filter_id, rhs, TimeoutFilterConfigured)
await cg.register_component(var, {})
return var

View File

@@ -355,8 +355,8 @@ void TimeoutFilterBase::loop() {
float TimeoutFilterBase::get_setup_priority() const { return setup_priority::HARDWARE; }
// TimeoutFilter - "last" mode implementation
optional<float> TimeoutFilter::new_value(float value) {
// TimeoutFilterLast - "last" mode implementation
optional<float> TimeoutFilterLast::new_value(float value) {
// Store the value to output when timeout fires
this->pending_value_ = value;

View File

@@ -396,9 +396,9 @@ class TimeoutFilterBase : public Filter, public Component {
};
// Timeout filter for "last" mode - outputs the last received value after timeout
class TimeoutFilter : public TimeoutFilterBase {
class TimeoutFilterLast : public TimeoutFilterBase {
public:
explicit TimeoutFilter(uint32_t time_period) : TimeoutFilterBase(time_period) {}
explicit TimeoutFilterLast(uint32_t time_period) : TimeoutFilterBase(time_period) {}
optional<float> new_value(float value) override;