Add read_only selectors to Filter Options Flow (#145526)

This commit is contained in:
karwosts 2025-05-26 12:08:30 -07:00 committed by GitHub
parent fd4dafaac5
commit 848eb797e0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 82 additions and 25 deletions

View File

@ -105,9 +105,18 @@ DATA_SCHEMA_SETUP = vol.Schema(
) )
BASE_OPTIONS_SCHEMA = { BASE_OPTIONS_SCHEMA = {
vol.Optional(CONF_ENTITY_ID): EntitySelector(EntitySelectorConfig(read_only=True)),
vol.Optional(CONF_FILTER_NAME): SelectSelector(
SelectSelectorConfig(
options=FILTERS,
mode=SelectSelectorMode.DROPDOWN,
translation_key=CONF_FILTER_NAME,
read_only=True,
)
),
vol.Optional(CONF_FILTER_PRECISION, default=DEFAULT_PRECISION): NumberSelector( vol.Optional(CONF_FILTER_PRECISION, default=DEFAULT_PRECISION): NumberSelector(
NumberSelectorConfig(min=0, step=1, mode=NumberSelectorMode.BOX) NumberSelectorConfig(min=0, step=1, mode=NumberSelectorMode.BOX)
) ),
} }
OUTLIER_SCHEMA = vol.Schema( OUTLIER_SCHEMA = vol.Schema(

View File

@ -23,12 +23,16 @@
"data": { "data": {
"window_size": "Window size", "window_size": "Window size",
"precision": "Precision", "precision": "Precision",
"radius": "Radius" "radius": "Radius",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "Size of the window of previous states.", "window_size": "Size of the window of previous states.",
"precision": "Defines the number of decimal places of the calculated sensor value.", "precision": "Defines the number of decimal places of the calculated sensor value.",
"radius": "Band radius from median of previous states." "radius": "Band radius from median of previous states.",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"lowpass": { "lowpass": {
@ -36,12 +40,16 @@
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"time_constant": "Time constant" "time_constant": "Time constant",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"time_constant": "Loosely relates to the amount of time it takes for a state to influence the output." "time_constant": "Loosely relates to the amount of time it takes for a state to influence the output.",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"range": { "range": {
@ -49,12 +57,16 @@
"data": { "data": {
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"lower_bound": "Lower bound", "lower_bound": "Lower bound",
"upper_bound": "Upper bound" "upper_bound": "Upper bound",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"lower_bound": "Lower bound for filter range.", "lower_bound": "Lower bound for filter range.",
"upper_bound": "Upper bound for filter range." "upper_bound": "Upper bound for filter range.",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"time_simple_moving_average": { "time_simple_moving_average": {
@ -62,34 +74,46 @@
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"type": "Type" "type": "Type",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"type": "Defines the type of Simple Moving Average." "type": "Defines the type of Simple Moving Average.",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"throttle": { "throttle": {
"description": "[%key:component::filter::config::step::outlier::description%]", "description": "[%key:component::filter::config::step::outlier::description%]",
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]" "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]" "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"time_throttle": { "time_throttle": {
"description": "[%key:component::filter::config::step::outlier::description%]", "description": "[%key:component::filter::config::step::outlier::description%]",
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]" "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]" "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
} }
} }
@ -104,12 +128,16 @@
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"radius": "[%key:component::filter::config::step::outlier::data::radius%]" "radius": "[%key:component::filter::config::step::outlier::data::radius%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"radius": "[%key:component::filter::config::step::outlier::data_description::radius%]" "radius": "[%key:component::filter::config::step::outlier::data_description::radius%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"lowpass": { "lowpass": {
@ -117,12 +145,16 @@
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"time_constant": "[%key:component::filter::config::step::lowpass::data::time_constant%]" "time_constant": "[%key:component::filter::config::step::lowpass::data::time_constant%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"time_constant": "[%key:component::filter::config::step::lowpass::data_description::time_constant%]" "time_constant": "[%key:component::filter::config::step::lowpass::data_description::time_constant%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"range": { "range": {
@ -130,12 +162,16 @@
"data": { "data": {
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"lower_bound": "[%key:component::filter::config::step::range::data::lower_bound%]", "lower_bound": "[%key:component::filter::config::step::range::data::lower_bound%]",
"upper_bound": "[%key:component::filter::config::step::range::data::upper_bound%]" "upper_bound": "[%key:component::filter::config::step::range::data::upper_bound%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"lower_bound": "[%key:component::filter::config::step::range::data_description::lower_bound%]", "lower_bound": "[%key:component::filter::config::step::range::data_description::lower_bound%]",
"upper_bound": "[%key:component::filter::config::step::range::data_description::upper_bound%]" "upper_bound": "[%key:component::filter::config::step::range::data_description::upper_bound%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"time_simple_moving_average": { "time_simple_moving_average": {
@ -143,34 +179,46 @@
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"type": "[%key:component::filter::config::step::time_simple_moving_average::data::type%]" "type": "[%key:component::filter::config::step::time_simple_moving_average::data::type%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"type": "[%key:component::filter::config::step::time_simple_moving_average::data_description::type%]" "type": "[%key:component::filter::config::step::time_simple_moving_average::data_description::type%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"throttle": { "throttle": {
"description": "[%key:component::filter::config::step::outlier::description%]", "description": "[%key:component::filter::config::step::outlier::description%]",
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]" "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]" "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
}, },
"time_throttle": { "time_throttle": {
"description": "[%key:component::filter::config::step::outlier::description%]", "description": "[%key:component::filter::config::step::outlier::description%]",
"data": { "data": {
"window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data::precision%]" "precision": "[%key:component::filter::config::step::outlier::data::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data::filter%]"
}, },
"data_description": { "data_description": {
"window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]",
"precision": "[%key:component::filter::config::step::outlier::data_description::precision%]" "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]",
"entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]",
"filter": "[%key:component::filter::config::step::user::data_description::filter%]"
} }
} }
} }