Added delays. Added missing component references/includes. Added member 'id_' to button, number and sensor classes.

This commit is contained in:
ElVit 2025-02-20 11:23:54 +01:00
parent 1e31028b62
commit 35fed8e40f
8 changed files with 19 additions and 8 deletions

View File

@ -37,7 +37,7 @@ TYPES = [
CONF_SAVE_M4,
]
MaidsiteDeskButton = maidsite_desk_ns.class_("MaidsiteDeskButton", button.Button)
MaidsiteDeskButton = maidsite_desk_ns.class_("MaidsiteDeskButton", button.Button, cg.Component)
CONFIG_SCHEMA = cv.Schema(
{
@ -87,13 +87,14 @@ CONFIG_SCHEMA = cv.Schema(
entity_category=ENTITY_CATEGORY_CONFIG,
),
}
)
).extend(cv.COMPONENT_SCHEMA)
async def to_code(config):
hub = await cg.get_variable(config[CONF_MAIDSITE_DESK_ID])
for key in TYPES:
for index, key in enumerate(TYPES):
if child_config := config.get(key):
var = await button.new_button(child_config)
await cg.register_component(var, child_config)
await cg.register_parented(var, config[CONF_MAIDSITE_DESK_ID])
cg.add(getattr(hub, f"set_{key}_button")(var))
cg.add(var.set_id(index))

View File

@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskButton::dump_config()
{
LOG_BUTTON("", "Maidsite Desk Button", this);
delay(10);
}
void MaidsiteDeskButton::press_action()

View File

@ -8,14 +8,16 @@ namespace esphome
{
namespace maidsite_desk
{
class MaidsiteDeskButton : public button::Button, public Parented<MaidsiteDeskComponent>
class MaidsiteDeskButton : public button::Button, public Component, public Parented<MaidsiteDeskComponent>
{
public:
MaidsiteDeskButton() = default;
void dump_config() override;
void set_id(int id) { this->id_ = id; }
protected:
void press_action() override;
int id_;
};
} // namespace maidsite_desk
} // namespace esphome

View File

@ -21,7 +21,7 @@ CONF_NUMBERS = [
[ 0, 100, .1, ],
]
MaidsiteDeskNumber = maidsite_desk_ns.class_("MaidsiteDeskNumber", number.Number)
MaidsiteDeskNumber = maidsite_desk_ns.class_("MaidsiteDeskNumber", number.Number, cg.Component)
CONFIG_SCHEMA = cv.Schema(
{
@ -36,7 +36,7 @@ CONFIG_SCHEMA = cv.Schema(
unit_of_measurement=UNIT_PERCENT,
),
}
)
).extend(cv.COMPONENT_SCHEMA)
async def to_code(config):
hub = await cg.get_variable(config[CONF_MAIDSITE_DESK_ID])
@ -51,3 +51,4 @@ async def to_code(config):
await cg.register_component(var, child_config)
await cg.register_parented(var, config[CONF_MAIDSITE_DESK_ID])
cg.add(getattr(hub, f"set_{key}_number")(var))
cg.add(var.set_id(index))

View File

@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskNumber::dump_config()
{
LOG_NUMBER("", "Maidsite Desk Number", this);
delay(10);
}
void MaidsiteDeskNumber::control(float value)

View File

@ -8,14 +8,16 @@ namespace esphome
{
namespace maidsite_desk
{
class MaidsiteDeskNumber : public number::Number, public Parented<MaidsiteDeskComponent>
class MaidsiteDeskNumber : public number::Number, public Component, public Parented<MaidsiteDeskComponent>
{
public:
MaidsiteDeskNumber() = default;
void dump_config() override;
void set_id(int id) { this->id_ = id; }
protected:
void control(float value) override;
int id_;
};
} // namespace maidsite_desk
} // namespace esphome

View File

@ -5,7 +5,7 @@ from esphome.const import (
UNIT_CENTIMETER,
UNIT_PERCENT,
)
from . import CONF_MAIDSITE_DESK_ID, MaidsiteDeskComponent, maidsite_desk_ns
from .. import CONF_MAIDSITE_DESK_ID, MaidsiteDeskComponent, maidsite_desk_ns
CONF_UNIT = "unit"
CONF_HEIGHT_ABS = "height_abs"
@ -85,4 +85,6 @@ async def to_code(config):
for key in TYPES:
if child_config := config.get(key):
var = await sensor.new_sensor(child_config)
await cg.register_component(var, child_config)
await cg.register_parented(var, config[CONF_MAIDSITE_DESK_ID])
cg.add(getattr(hub, f"set_{key}_sensor")(var))

View File

@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskSensor::dump_config()
{
LOG_SENSOR("", "Maidsite Desk Sensor", this);
delay(10);
}
} // namespace maidsite_desk
} // namespace esphome