[seeed_mr24hpc1] Use the sub_* helpers for optional child entities (#19798)

This commit is contained in:
J. Nick Koston
2026-09-28 00:57:43 +02:00
committed by GitHub
parent 5f518e70f4
commit d0e1e026d8
7 changed files with 134 additions and 192 deletions
@@ -15,7 +15,6 @@ CONFIG_SCHEMA = {
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if has_target_config := config.get(CONF_HAS_TARGET):
sens = await binary_sensor.new_binary_sensor(has_target_config)
cg.add(mr24hpc1_component.set_has_target_binary_sensor(sens))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
binary_sensors = binary_sensor.sub_binary_sensors(config)
await binary_sensors(CONF_HAS_TARGET, hub.set_has_target_binary_sensor)
@@ -33,12 +33,7 @@ CONFIG_SCHEMA = {
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if restart_config := config.get(CONF_RESTART):
b = await button.new_button(restart_config)
await cg.register_parented(b, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_restart_button(b))
if custom_set_end_config := config.get(CONF_CUSTOM_SET_END):
b = await button.new_button(custom_set_end_config)
await cg.register_parented(b, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_custom_set_end_button(b))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
buttons = button.sub_buttons(config, parent=hub)
await buttons(CONF_RESTART, hub.set_restart_button)
await buttons(CONF_CUSTOM_SET_END, hub.set_custom_set_end_button)
@@ -65,67 +65,46 @@ CONFIG_SCHEMA = cv.Schema(
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if sensitivity_config := config.get(CONF_SENSITIVITY):
n = await number.new_number(
sensitivity_config,
min_value=0,
max_value=3,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_sensitivity_number(n))
if custom_mode_config := config.get(CONF_CUSTOM_MODE):
n = await number.new_number(
custom_mode_config,
min_value=0,
max_value=4,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_custom_mode_number(n))
if existence_threshold_config := config.get(CONF_EXISTENCE_THRESHOLD):
n = await number.new_number(
existence_threshold_config,
min_value=0,
max_value=250,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_existence_threshold_number(n))
if motion_threshold_config := config.get(CONF_MOTION_THRESHOLD):
n = await number.new_number(
motion_threshold_config,
min_value=0,
max_value=250,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_motion_threshold_number(n))
if motion_trigger_config := config.get(CONF_MOTION_TRIGGER):
n = await number.new_number(
motion_trigger_config,
min_value=0,
max_value=150,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_motion_trigger_number(n))
if motion_to_rest_config := config.get(CONF_MOTION_TO_REST):
n = await number.new_number(
motion_to_rest_config,
min_value=0,
max_value=3000,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_motion_to_rest_number(n))
if custom_unman_time_config := config.get(CONF_CUSTOM_UNMAN_TIME):
n = await number.new_number(
custom_unman_time_config,
min_value=0,
max_value=3600,
step=1,
)
await cg.register_parented(n, mr24hpc1_component)
cg.add(mr24hpc1_component.set_custom_unman_time_number(n))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
numbers = number.sub_numbers(config, parent=hub)
await numbers(
CONF_SENSITIVITY, hub.set_sensitivity_number, min_value=0, max_value=3, step=1
)
await numbers(
CONF_CUSTOM_MODE, hub.set_custom_mode_number, min_value=0, max_value=4, step=1
)
await numbers(
CONF_EXISTENCE_THRESHOLD,
hub.set_existence_threshold_number,
min_value=0,
max_value=250,
step=1,
)
await numbers(
CONF_MOTION_THRESHOLD,
hub.set_motion_threshold_number,
min_value=0,
max_value=250,
step=1,
)
await numbers(
CONF_MOTION_TRIGGER,
hub.set_motion_trigger_number,
min_value=0,
max_value=150,
step=1,
)
await numbers(
CONF_MOTION_TO_REST,
hub.set_motion_to_rest_number,
min_value=0,
max_value=3000,
step=1,
)
await numbers(
CONF_CUSTOM_UNMAN_TIME,
hub.set_custom_unman_time_number,
min_value=0,
max_value=3600,
step=1,
)
@@ -40,64 +40,57 @@ CONFIG_SCHEMA = {
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if scenemode_config := config.get(CONF_SCENE_MODE):
s = await select.new_select(
scenemode_config,
options=["None", "Living Room", "Bedroom", "Washroom", "Area Detection"],
)
await cg.register_parented(s, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_scene_mode_select(s))
if unmantime_config := config.get(CONF_UNMAN_TIME):
s = await select.new_select(
unmantime_config,
options=[
"None",
"10s",
"30s",
"1min",
"2min",
"5min",
"10min",
"30min",
"60min",
],
)
await cg.register_parented(s, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_unman_time_select(s))
if existence_boundary_config := config.get(CONF_EXISTENCE_BOUNDARY):
s = await select.new_select(
existence_boundary_config,
options=[
"0.5m",
"1.0m",
"1.5m",
"2.0m",
"2.5m",
"3.0m",
"3.5m",
"4.0m",
"4.5m",
"5.0m",
],
)
await cg.register_parented(s, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_existence_boundary_select(s))
if motion_boundary_config := config.get(CONF_MOTION_BOUNDARY):
s = await select.new_select(
motion_boundary_config,
options=[
"0.5m",
"1.0m",
"1.5m",
"2.0m",
"2.5m",
"3.0m",
"3.5m",
"4.0m",
"4.5m",
"5.0m",
],
)
await cg.register_parented(s, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_motion_boundary_select(s))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
selects = select.sub_selects(config, parent=hub)
await selects(
CONF_SCENE_MODE,
hub.set_scene_mode_select,
options=["None", "Living Room", "Bedroom", "Washroom", "Area Detection"],
)
await selects(
CONF_UNMAN_TIME,
hub.set_unman_time_select,
options=[
"None",
"10s",
"30s",
"1min",
"2min",
"5min",
"10min",
"30min",
"60min",
],
)
await selects(
CONF_EXISTENCE_BOUNDARY,
hub.set_existence_boundary_select,
options=[
"0.5m",
"1.0m",
"1.5m",
"2.0m",
"2.5m",
"3.0m",
"3.5m",
"4.0m",
"4.5m",
"5.0m",
],
)
await selects(
CONF_MOTION_BOUNDARY,
hub.set_motion_boundary_select,
options=[
"0.5m",
"1.0m",
"1.5m",
"2.0m",
"2.5m",
"3.0m",
"3.5m",
"4.0m",
"4.5m",
"5.0m",
],
)
+15 -24
View File
@@ -62,27 +62,18 @@ CONFIG_SCHEMA = cv.Schema(
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if custompresenceofdetection_config := config.get(
CONF_CUSTOM_PRESENCE_OF_DETECTION
):
sens = await sensor.new_sensor(custompresenceofdetection_config)
cg.add(mr24hpc1_component.set_custom_presence_of_detection_sensor(sens))
if movementsigns_config := config.get(CONF_MOVEMENT_SIGNS):
sens = await sensor.new_sensor(movementsigns_config)
cg.add(mr24hpc1_component.set_movement_signs_sensor(sens))
if custommotiondistance_config := config.get(CONF_CUSTOM_MOTION_DISTANCE):
sens = await sensor.new_sensor(custommotiondistance_config)
cg.add(mr24hpc1_component.set_custom_motion_distance_sensor(sens))
if customspatialstaticvalue_config := config.get(CONF_CUSTOM_SPATIAL_STATIC_VALUE):
sens = await sensor.new_sensor(customspatialstaticvalue_config)
cg.add(mr24hpc1_component.set_custom_spatial_static_value_sensor(sens))
if customspatialmotionvalue_config := config.get(CONF_CUSTOM_SPATIAL_MOTION_VALUE):
sens = await sensor.new_sensor(customspatialmotionvalue_config)
cg.add(mr24hpc1_component.set_custom_spatial_motion_value_sensor(sens))
if custommotionspeed_config := config.get(CONF_CUSTOM_MOTION_SPEED):
sens = await sensor.new_sensor(custommotionspeed_config)
cg.add(mr24hpc1_component.set_custom_motion_speed_sensor(sens))
if custommodenum_config := config.get(CONF_CUSTOM_MODE_NUM):
sens = await sensor.new_sensor(custommodenum_config)
cg.add(mr24hpc1_component.set_custom_mode_num_sensor(sens))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
sensors = sensor.sub_sensors(config)
await sensors(
CONF_CUSTOM_PRESENCE_OF_DETECTION, hub.set_custom_presence_of_detection_sensor
)
await sensors(CONF_MOVEMENT_SIGNS, hub.set_movement_signs_sensor)
await sensors(CONF_CUSTOM_MOTION_DISTANCE, hub.set_custom_motion_distance_sensor)
await sensors(
CONF_CUSTOM_SPATIAL_STATIC_VALUE, hub.set_custom_spatial_static_value_sensor
)
await sensors(
CONF_CUSTOM_SPATIAL_MOTION_VALUE, hub.set_custom_spatial_motion_value_sensor
)
await sensors(CONF_CUSTOM_MOTION_SPEED, hub.set_custom_motion_speed_sensor)
await sensors(CONF_CUSTOM_MODE_NUM, hub.set_custom_mode_num_sensor)
@@ -24,8 +24,8 @@ CONFIG_SCHEMA = {
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if underlying_open_function_config := config.get(CONF_UNDERLYING_OPEN_FUNCTION):
s = await switch.new_switch(underlying_open_function_config)
await cg.register_parented(s, config[CONF_MR24HPC1_ID])
cg.add(mr24hpc1_component.set_underlying_open_function_switch(s))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
switches = switch.sub_switches(config, parent=hub)
await switches(
CONF_UNDERLYING_OPEN_FUNCTION, hub.set_underlying_open_function_switch
)
@@ -49,28 +49,13 @@ CONFIG_SCHEMA = {
async def to_code(config: ConfigType) -> None:
mr24hpc1_component = await cg.get_variable(config[CONF_MR24HPC1_ID])
if heartbeat_config := config.get(CONF_HEART_BEAT):
sens = await text_sensor.new_text_sensor(heartbeat_config)
cg.add(mr24hpc1_component.set_heartbeat_state_text_sensor(sens))
if productmodel_config := config.get(CONF_PRODUCT_MODEL):
sens = await text_sensor.new_text_sensor(productmodel_config)
cg.add(mr24hpc1_component.set_product_model_text_sensor(sens))
if productid_config := config.get(CONF_PRODUCT_ID):
sens = await text_sensor.new_text_sensor(productid_config)
cg.add(mr24hpc1_component.set_product_id_text_sensor(sens))
if hardwaremodel_config := config.get(CONF_HARDWARE_MODEL):
sens = await text_sensor.new_text_sensor(hardwaremodel_config)
cg.add(mr24hpc1_component.set_hardware_model_text_sensor(sens))
if firwareversion_config := config.get(CONF_HARDWARE_VERSION):
sens = await text_sensor.new_text_sensor(firwareversion_config)
cg.add(mr24hpc1_component.set_firware_version_text_sensor(sens))
if keepaway_config := config.get(CONF_KEEP_AWAY):
sens = await text_sensor.new_text_sensor(keepaway_config)
cg.add(mr24hpc1_component.set_keep_away_text_sensor(sens))
if motionstatus_config := config.get(CONF_MOTION_STATUS):
sens = await text_sensor.new_text_sensor(motionstatus_config)
cg.add(mr24hpc1_component.set_motion_status_text_sensor(sens))
if custommodeend_config := config.get(CONF_CUSTOM_MODE_END):
sens = await text_sensor.new_text_sensor(custommodeend_config)
cg.add(mr24hpc1_component.set_custom_mode_end_text_sensor(sens))
hub = await cg.get_variable(config[CONF_MR24HPC1_ID])
text_sensors = text_sensor.sub_text_sensors(config)
await text_sensors(CONF_HEART_BEAT, hub.set_heartbeat_state_text_sensor)
await text_sensors(CONF_PRODUCT_MODEL, hub.set_product_model_text_sensor)
await text_sensors(CONF_PRODUCT_ID, hub.set_product_id_text_sensor)
await text_sensors(CONF_HARDWARE_MODEL, hub.set_hardware_model_text_sensor)
await text_sensors(CONF_HARDWARE_VERSION, hub.set_firware_version_text_sensor)
await text_sensors(CONF_KEEP_AWAY, hub.set_keep_away_text_sensor)
await text_sensors(CONF_MOTION_STATUS, hub.set_motion_status_text_sensor)
await text_sensors(CONF_CUSTOM_MODE_END, hub.set_custom_mode_end_text_sensor)