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
+4 -3
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))
@@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskButton::dump_config()
{
LOG_BUTTON("", "Maidsite Desk Button", this);
delay(10);
}
void MaidsiteDeskButton::press_action()
@@ -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
+3 -2
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))
@@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskNumber::dump_config()
{
LOG_NUMBER("", "Maidsite Desk Number", this);
delay(10);
}
void MaidsiteDeskNumber::control(float value)
@@ -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
+3 -1
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))
@@ -11,6 +11,7 @@ namespace esphome
void MaidsiteDeskSensor::dump_config()
{
LOG_SENSOR("", "Maidsite Desk Sensor", this);
delay(10);
}
} // namespace maidsite_desk
} // namespace esphome