diff --git a/esphome/components/ld2412/button/__init__.py b/esphome/components/ld2412/button/__init__.py index c1737a494de..63c2d697230 100644 --- a/esphome/components/ld2412/button/__init__.py +++ b/esphome/components/ld2412/button/__init__.py @@ -16,38 +16,32 @@ from esphome.const import ( ) from esphome.types import ConfigType -from .. import CONF_LD2412_ID, LD2412_ns, LD2412Component +from .. import CONF_LD2412_ID, LD2412Component -FactoryResetButton = LD2412_ns.class_("FactoryResetButton", button.Button) -QueryButton = LD2412_ns.class_("QueryButton", button.Button) -RestartButton = LD2412_ns.class_("RestartButton", button.Button) -StartDynamicBackgroundCorrectionButton = LD2412_ns.class_( - "StartDynamicBackgroundCorrectionButton", button.Button -) CONF_START_DYNAMIC_BACKGROUND_CORRECTION = "start_dynamic_background_correction" CONFIG_SCHEMA = { cv.GenerateID(CONF_ID): cv.declare_id(cg.EntityBase), cv.GenerateID(CONF_LD2412_ID): cv.use_id(LD2412Component), cv.Optional(CONF_FACTORY_RESET): button.button_schema( - FactoryResetButton, + button.ApplyButton, device_class=DEVICE_CLASS_RESTART, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_RESTART_ALERT, ), cv.Optional(CONF_QUERY_PARAMS): button.button_schema( - QueryButton, + button.ApplyButton, entity_category=ENTITY_CATEGORY_DIAGNOSTIC, icon=ICON_DATABASE, ), cv.Optional(CONF_RESTART): button.button_schema( - RestartButton, + button.ApplyButton, device_class=DEVICE_CLASS_RESTART, entity_category=ENTITY_CATEGORY_DIAGNOSTIC, icon=ICON_RESTART, ), cv.Optional(CONF_START_DYNAMIC_BACKGROUND_CORRECTION): button.button_schema( - StartDynamicBackgroundCorrectionButton, + button.ApplyButton, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_PULSE, ), @@ -57,10 +51,15 @@ CONFIG_SCHEMA = { async def to_code(config: ConfigType) -> None: hub = await cg.get_variable(config[CONF_LD2412_ID]) buttons = button.sub_buttons(config, parent=hub) - await buttons(CONF_FACTORY_RESET, hub.set_factory_reset_button) - await buttons(CONF_QUERY_PARAMS, hub.set_query_button) - await buttons(CONF_RESTART, hub.set_restart_button) + await buttons( + CONF_FACTORY_RESET, hub.set_factory_reset_button, apply="factory_reset()" + ) + await buttons(CONF_QUERY_PARAMS, hub.set_query_button, apply="read_all_info()") + await buttons( + CONF_RESTART, hub.set_restart_button, apply="restart_and_read_all_info()" + ) await buttons( CONF_START_DYNAMIC_BACKGROUND_CORRECTION, hub.set_start_dynamic_background_correction_button, + apply="start_dynamic_background_correction()", ) diff --git a/esphome/components/ld2412/button/factory_reset_button.cpp b/esphome/components/ld2412/button/factory_reset_button.cpp deleted file mode 100644 index e8fd891c0f1..00000000000 --- a/esphome/components/ld2412/button/factory_reset_button.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "factory_reset_button.h" - -namespace esphome::ld2412 { - -void FactoryResetButton::press_action() { this->parent_->factory_reset(); } - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/factory_reset_button.h b/esphome/components/ld2412/button/factory_reset_button.h deleted file mode 100644 index a6ea8f7365d..00000000000 --- a/esphome/components/ld2412/button/factory_reset_button.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "esphome/components/button/button.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class FactoryResetButton final : public button::Button, public Parented { - public: - FactoryResetButton() = default; - - protected: - void press_action() override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/query_button.cpp b/esphome/components/ld2412/button/query_button.cpp deleted file mode 100644 index 9affb265562..00000000000 --- a/esphome/components/ld2412/button/query_button.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "query_button.h" - -namespace esphome::ld2412 { - -void QueryButton::press_action() { this->parent_->read_all_info(); } - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/query_button.h b/esphome/components/ld2412/button/query_button.h deleted file mode 100644 index 71e2ab14e88..00000000000 --- a/esphome/components/ld2412/button/query_button.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "esphome/components/button/button.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class QueryButton final : public button::Button, public Parented { - public: - QueryButton() = default; - - protected: - void press_action() override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/restart_button.cpp b/esphome/components/ld2412/button/restart_button.cpp deleted file mode 100644 index 430f6c998f4..00000000000 --- a/esphome/components/ld2412/button/restart_button.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "restart_button.h" - -namespace esphome::ld2412 { - -void RestartButton::press_action() { this->parent_->restart_and_read_all_info(); } - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/restart_button.h b/esphome/components/ld2412/button/restart_button.h deleted file mode 100644 index 668ce1a8e6f..00000000000 --- a/esphome/components/ld2412/button/restart_button.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "esphome/components/button/button.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class RestartButton final : public button::Button, public Parented { - public: - RestartButton() = default; - - protected: - void press_action() override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/start_dynamic_background_correction_button.cpp b/esphome/components/ld2412/button/start_dynamic_background_correction_button.cpp deleted file mode 100644 index 8ba41a03fbc..00000000000 --- a/esphome/components/ld2412/button/start_dynamic_background_correction_button.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "start_dynamic_background_correction_button.h" - -#include "restart_button.h" - -namespace esphome::ld2412 { - -void StartDynamicBackgroundCorrectionButton::press_action() { this->parent_->start_dynamic_background_correction(); } - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/button/start_dynamic_background_correction_button.h b/esphome/components/ld2412/button/start_dynamic_background_correction_button.h deleted file mode 100644 index 3b24f5dcf8b..00000000000 --- a/esphome/components/ld2412/button/start_dynamic_background_correction_button.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "esphome/components/button/button.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class StartDynamicBackgroundCorrectionButton final : public button::Button, public Parented { - public: - StartDynamicBackgroundCorrectionButton() = default; - - protected: - void press_action() override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/__init__.py b/esphome/components/ld2412/number/__init__.py index 0c0c01c69cc..fdc7f56aed5 100644 --- a/esphome/components/ld2412/number/__init__.py +++ b/esphome/components/ld2412/number/__init__.py @@ -1,3 +1,5 @@ +from functools import partial + import esphome.codegen as cg from esphome.components import number import esphome.config_validation as cv @@ -18,11 +20,7 @@ from esphome.const import ( ) from esphome.types import ConfigType -from .. import CONF_LD2412_ID, LD2412_ns, LD2412Component - -GateThresholdNumber = LD2412_ns.class_("GateThresholdNumber", number.Number) -LightThresholdNumber = LD2412_ns.class_("LightThresholdNumber", number.Number) -MaxDistanceTimeoutNumber = LD2412_ns.class_("MaxDistanceTimeoutNumber", number.Number) +from .. import CONF_LD2412_ID, LD2412Component CONF_LIGHT_THRESHOLD = "light_threshold" CONF_MAX_DISTANCE_GATE = "max_distance_gate" @@ -35,25 +33,25 @@ CONFIG_SCHEMA = cv.Schema( cv.GenerateID(CONF_ID): cv.declare_id(cg.EntityBase), cv.GenerateID(CONF_LD2412_ID): cv.use_id(LD2412Component), cv.Optional(CONF_LIGHT_THRESHOLD): number.number_schema( - LightThresholdNumber, + number.ApplyNumber, device_class=DEVICE_CLASS_ILLUMINANCE, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_LIGHTBULB, ), cv.Optional(CONF_MAX_DISTANCE_GATE): number.number_schema( - MaxDistanceTimeoutNumber, + number.ApplyNumber, device_class=DEVICE_CLASS_DISTANCE, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_MOTION_SENSOR, ), cv.Optional(CONF_MIN_DISTANCE_GATE): number.number_schema( - MaxDistanceTimeoutNumber, + number.ApplyNumber, device_class=DEVICE_CLASS_DISTANCE, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_MOTION_SENSOR, ), cv.Optional(CONF_TIMEOUT): number.number_schema( - MaxDistanceTimeoutNumber, + number.ApplyNumber, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_TIMELAPSE, unit_of_measurement=UNIT_SECOND, @@ -66,14 +64,14 @@ CONFIG_SCHEMA = CONFIG_SCHEMA.extend( cv.Optional(f"gate_{x}"): ( { cv.Required(CONF_MOVE_THRESHOLD): number.number_schema( - GateThresholdNumber, + number.ApplyNumber, device_class=DEVICE_CLASS_SIGNAL_STRENGTH, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_MOTION_SENSOR, unit_of_measurement=UNIT_PERCENT, ), cv.Required(CONF_STILL_THRESHOLD): number.number_schema( - GateThresholdNumber, + number.ApplyNumber, device_class=DEVICE_CLASS_SIGNAL_STRENGTH, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_MOTION_SENSOR, @@ -95,13 +93,17 @@ async def to_code(config: ConfigType) -> None: min_value=0, max_value=255, step=1, + apply="set_light_out_control()", + publish="before", ) + basic = {"apply": "set_basic_config()", "publish": "before"} await numbers( CONF_MAX_DISTANCE_GATE, hub.set_max_distance_gate_number, min_value=2, max_value=13, step=1, + **basic, ) await numbers( CONF_MIN_DISTANCE_GATE, @@ -109,23 +111,33 @@ async def to_code(config: ConfigType) -> None: min_value=1, max_value=12, step=1, + **basic, ) + threshold = { + "min_value": 0, + "max_value": 100, + "step": 1, + "apply": "set_gate_threshold(entity)", + "publish": "before", + } for x in range(14): if gate_conf := config.get(f"gate_{x}"): - move_config = gate_conf[CONF_MOVE_THRESHOLD] - n = await number.new_number(move_config, min_value=0, max_value=100, step=1) - await cg.register_parented(n, hub) - cg.add(hub.set_gate_move_threshold_number(x, n)) - still_config = gate_conf[CONF_STILL_THRESHOLD] - n = await number.new_number( - still_config, min_value=0, max_value=100, step=1 + gate = number.sub_numbers(gate_conf, parent=hub) + await gate( + CONF_MOVE_THRESHOLD, + partial(hub.set_gate_move_threshold_number, x), + **threshold, + ) + await gate( + CONF_STILL_THRESHOLD, + partial(hub.set_gate_still_threshold_number, x), + **threshold, ) - await cg.register_parented(n, hub) - cg.add(hub.set_gate_still_threshold_number(x, n)) await numbers( CONF_TIMEOUT, hub.set_timeout_number, min_value=0, max_value=900, step=1, + **basic, ) diff --git a/esphome/components/ld2412/number/gate_threshold_number.cpp b/esphome/components/ld2412/number/gate_threshold_number.cpp deleted file mode 100644 index 1af7b1e7f20..00000000000 --- a/esphome/components/ld2412/number/gate_threshold_number.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gate_threshold_number.h" - -namespace esphome::ld2412 { - -void GateThresholdNumber::control(float value) { - this->publish_state(value); - this->parent_->set_gate_threshold(this); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/gate_threshold_number.h b/esphome/components/ld2412/number/gate_threshold_number.h deleted file mode 100644 index 308da43a34d..00000000000 --- a/esphome/components/ld2412/number/gate_threshold_number.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/number/number.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class GateThresholdNumber final : public number::Number, public Parented { - public: - // Not "= default": that makes new(p) T() zero-fill the object at every codegen site before the ctor runs. - GateThresholdNumber() {} - - protected: - void control(float value) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/light_threshold_number.cpp b/esphome/components/ld2412/number/light_threshold_number.cpp deleted file mode 100644 index 81e668e7798..00000000000 --- a/esphome/components/ld2412/number/light_threshold_number.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "light_threshold_number.h" - -namespace esphome::ld2412 { - -void LightThresholdNumber::control(float value) { - this->publish_state(value); - this->parent_->set_light_out_control(); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/light_threshold_number.h b/esphome/components/ld2412/number/light_threshold_number.h deleted file mode 100644 index 710b47957c1..00000000000 --- a/esphome/components/ld2412/number/light_threshold_number.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/number/number.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class LightThresholdNumber final : public number::Number, public Parented { - public: - // User provided, not "= default": `new(p) LightThresholdNumber()` would zero-fill .bss that is already zero. - LightThresholdNumber() {} - - protected: - void control(float value) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/max_distance_timeout_number.cpp b/esphome/components/ld2412/number/max_distance_timeout_number.cpp deleted file mode 100644 index 0d156fbc00e..00000000000 --- a/esphome/components/ld2412/number/max_distance_timeout_number.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "max_distance_timeout_number.h" - -namespace esphome::ld2412 { - -void MaxDistanceTimeoutNumber::control(float value) { - this->publish_state(value); - this->parent_->set_basic_config(); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/number/max_distance_timeout_number.h b/esphome/components/ld2412/number/max_distance_timeout_number.h deleted file mode 100644 index 4a3478d48a1..00000000000 --- a/esphome/components/ld2412/number/max_distance_timeout_number.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "esphome/components/number/number.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class MaxDistanceTimeoutNumber final : public number::Number, public Parented { - public: - MaxDistanceTimeoutNumber() = default; - - protected: - void control(float value) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/__init__.py b/esphome/components/ld2412/select/__init__.py index 5249e9b97a6..46eee6e2fe1 100644 --- a/esphome/components/ld2412/select/__init__.py +++ b/esphome/components/ld2412/select/__init__.py @@ -13,11 +13,7 @@ from esphome.const import ( ) from esphome.types import ConfigType -from .. import CONF_LD2412_ID, LD2412_ns, LD2412Component - -BaudRateSelect = LD2412_ns.class_("BaudRateSelect", select.Select) -DistanceResolutionSelect = LD2412_ns.class_("DistanceResolutionSelect", select.Select) -LightOutControlSelect = LD2412_ns.class_("LightOutControlSelect", select.Select) +from .. import CONF_LD2412_ID, LD2412Component CONF_DISTANCE_RESOLUTION = "distance_resolution" CONF_LIGHT_FUNCTION = "light_function" @@ -27,22 +23,22 @@ CONFIG_SCHEMA = { cv.GenerateID(CONF_ID): cv.declare_id(cg.EntityBase), cv.GenerateID(CONF_LD2412_ID): cv.use_id(LD2412Component), cv.Optional(CONF_BAUD_RATE): select.select_schema( - BaudRateSelect, + select.ApplySelect, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_THERMOMETER, ), cv.Optional(CONF_DISTANCE_RESOLUTION): select.select_schema( - DistanceResolutionSelect, + select.ApplySelect, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_RULER, ), cv.Optional(CONF_LIGHT_FUNCTION): select.select_schema( - LightOutControlSelect, + select.ApplySelect, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_LIGHTBULB, ), cv.Optional(CONF_OUT_PIN_LEVEL): select.select_schema( - LightOutControlSelect, + select.ApplySelect, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_SCALE, ), @@ -65,19 +61,26 @@ async def to_code(config: ConfigType) -> None: "256000", "460800", ], + apply="set_baud_rate(entity->option_at(index))", + publish="before", ) await selects( CONF_DISTANCE_RESOLUTION, hub.set_distance_resolution_select, options=["0.2m", "0.5m", "0.75m"], + apply="set_distance_resolution(entity->option_at(index))", + publish="before", ) + light = {"apply": "set_light_out_control()", "publish": "before"} await selects( CONF_LIGHT_FUNCTION, hub.set_light_function_select, options=["off", "below", "above"], + **light, ) await selects( CONF_OUT_PIN_LEVEL, hub.set_out_pin_level_select, options=["low", "high"], + **light, ) diff --git a/esphome/components/ld2412/select/baud_rate_select.cpp b/esphome/components/ld2412/select/baud_rate_select.cpp deleted file mode 100644 index 8e351a65415..00000000000 --- a/esphome/components/ld2412/select/baud_rate_select.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "baud_rate_select.h" - -namespace esphome::ld2412 { - -void BaudRateSelect::control(size_t index) { - this->publish_state(index); - this->parent_->set_baud_rate(this->option_at(index)); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/baud_rate_select.h b/esphome/components/ld2412/select/baud_rate_select.h deleted file mode 100644 index 527b1a1e934..00000000000 --- a/esphome/components/ld2412/select/baud_rate_select.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/select/select.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class BaudRateSelect final : public select::Select, public Parented { - public: - // User provided, not "= default": `new(p) BaudRateSelect()` would zero-fill .bss that is already zero. - BaudRateSelect() {} - - protected: - void control(size_t index) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/distance_resolution_select.cpp b/esphome/components/ld2412/select/distance_resolution_select.cpp deleted file mode 100644 index 95b80f87fba..00000000000 --- a/esphome/components/ld2412/select/distance_resolution_select.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "distance_resolution_select.h" - -namespace esphome::ld2412 { - -void DistanceResolutionSelect::control(size_t index) { - this->publish_state(index); - this->parent_->set_distance_resolution(this->option_at(index)); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/distance_resolution_select.h b/esphome/components/ld2412/select/distance_resolution_select.h deleted file mode 100644 index d1bc15dea93..00000000000 --- a/esphome/components/ld2412/select/distance_resolution_select.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/select/select.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class DistanceResolutionSelect final : public select::Select, public Parented { - public: - // User provided, not "= default": `new(p) DistanceResolutionSelect()` would zero-fill .bss that is already zero. - DistanceResolutionSelect() {} - - protected: - void control(size_t index) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/light_out_control_select.cpp b/esphome/components/ld2412/select/light_out_control_select.cpp deleted file mode 100644 index bdfb78d6876..00000000000 --- a/esphome/components/ld2412/select/light_out_control_select.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "light_out_control_select.h" - -namespace esphome::ld2412 { - -void LightOutControlSelect::control(size_t index) { - this->publish_state(index); - this->parent_->set_light_out_control(); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/select/light_out_control_select.h b/esphome/components/ld2412/select/light_out_control_select.h deleted file mode 100644 index 0867f3b1c2e..00000000000 --- a/esphome/components/ld2412/select/light_out_control_select.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/select/select.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class LightOutControlSelect final : public select::Select, public Parented { - public: - // User provided, not "= default": `new(p) LightOutControlSelect()` would zero-fill .bss that is already zero. - LightOutControlSelect() {} - - protected: - void control(size_t index) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/switch/__init__.py b/esphome/components/ld2412/switch/__init__.py index d0643055972..2c56ced5fc6 100644 --- a/esphome/components/ld2412/switch/__init__.py +++ b/esphome/components/ld2412/switch/__init__.py @@ -11,10 +11,7 @@ from esphome.const import ( ) from esphome.types import ConfigType -from .. import CONF_LD2412_ID, LD2412_ns, LD2412Component - -BluetoothSwitch = LD2412_ns.class_("BluetoothSwitch", switch.Switch) -EngineeringModeSwitch = LD2412_ns.class_("EngineeringModeSwitch", switch.Switch) +from .. import CONF_LD2412_ID, LD2412Component CONF_ENGINEERING_MODE = "engineering_mode" @@ -22,13 +19,13 @@ CONFIG_SCHEMA = { cv.GenerateID(CONF_ID): cv.declare_id(cg.EntityBase), cv.GenerateID(CONF_LD2412_ID): cv.use_id(LD2412Component), cv.Optional(CONF_BLUETOOTH): switch.switch_schema( - BluetoothSwitch, + switch.ApplySwitch, device_class=DEVICE_CLASS_SWITCH, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_BLUETOOTH, ), cv.Optional(CONF_ENGINEERING_MODE): switch.switch_schema( - EngineeringModeSwitch, + switch.ApplySwitch, device_class=DEVICE_CLASS_SWITCH, entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_PULSE, @@ -39,5 +36,15 @@ CONFIG_SCHEMA = { async def to_code(config: ConfigType) -> None: hub = await cg.get_variable(config[CONF_LD2412_ID]) switches = switch.sub_switches(config, parent=hub) - await switches(CONF_BLUETOOTH, hub.set_bluetooth_switch) - await switches(CONF_ENGINEERING_MODE, hub.set_engineering_mode_switch) + await switches( + CONF_BLUETOOTH, + hub.set_bluetooth_switch, + apply="set_bluetooth(state)", + publish="before", + ) + await switches( + CONF_ENGINEERING_MODE, + hub.set_engineering_mode_switch, + apply="set_engineering_mode(state)", + publish="before", + ) diff --git a/esphome/components/ld2412/switch/bluetooth_switch.cpp b/esphome/components/ld2412/switch/bluetooth_switch.cpp deleted file mode 100644 index e5f49a819a1..00000000000 --- a/esphome/components/ld2412/switch/bluetooth_switch.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "bluetooth_switch.h" - -namespace esphome::ld2412 { - -void BluetoothSwitch::write_state(bool state) { - this->publish_state(state); - this->parent_->set_bluetooth(state); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/switch/bluetooth_switch.h b/esphome/components/ld2412/switch/bluetooth_switch.h deleted file mode 100644 index e753613cdfa..00000000000 --- a/esphome/components/ld2412/switch/bluetooth_switch.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/switch/switch.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class BluetoothSwitch final : public switch_::Switch, public Parented { - public: - // User provided, not "= default": `new(p) BluetoothSwitch()` would zero-fill .bss that is already zero. - BluetoothSwitch() {} - - protected: - void write_state(bool state) override; -}; - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/switch/engineering_mode_switch.cpp b/esphome/components/ld2412/switch/engineering_mode_switch.cpp deleted file mode 100644 index 28b4e5d9e6a..00000000000 --- a/esphome/components/ld2412/switch/engineering_mode_switch.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "engineering_mode_switch.h" - -namespace esphome::ld2412 { - -void EngineeringModeSwitch::write_state(bool state) { - this->publish_state(state); - this->parent_->set_engineering_mode(state); -} - -} // namespace esphome::ld2412 diff --git a/esphome/components/ld2412/switch/engineering_mode_switch.h b/esphome/components/ld2412/switch/engineering_mode_switch.h deleted file mode 100644 index 279128ddbc5..00000000000 --- a/esphome/components/ld2412/switch/engineering_mode_switch.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "esphome/components/switch/switch.h" -#include "../ld2412.h" - -namespace esphome::ld2412 { - -class EngineeringModeSwitch final : public switch_::Switch, public Parented { - public: - // User provided, not "= default": `new(p) EngineeringModeSwitch()` would zero-fill .bss that is already zero. - EngineeringModeSwitch() {} - - protected: - void write_state(bool state) override; -}; - -} // namespace esphome::ld2412