added stop command and button

This commit is contained in:
Rocka84
2024-06-01 13:58:30 +02:00
parent 902df4e618
commit 31d70b3746
4 changed files with 23 additions and 10 deletions

View File

@@ -130,6 +130,7 @@ button | lambda method | description
-----------|--------------------------------|---------------------------
raise | `id(my_desk).raise()` | raise desk by one step (~14mm)
lower | `id(my_desk).raise()` | lower desk by one step (~14mm)
stop | `id(my_desk).stop()` | stop movement of desk
position1 | `id(my_desk).goto_position(1)` | move to 1st stored height
position2 | `id(my_desk).goto_position(2)` | move to 2nd stored height
position3 | `id(my_desk).goto_position(3)` | move to 3rd stored height

View File

@@ -16,6 +16,9 @@ JiecangDeskButton = jiecang_desk_controller_ns.class_('JiecangDeskButton', butto
CONF_SENSORS = "sensors"
CONF_BUTTONS = "buttons"
CONF_UNIT = "unit"
CONF_RAISE = "raise"
CONF_LOWER = "lower"
CONF_STOP = "stop"
CONF_HEIGHT_MIN = "height_min"
CONF_HEIGHT_MAX = "height_max"
CONF_HEIGHT_PCT = "height_pct"
@@ -23,17 +26,16 @@ CONF_POSITION1 = "position1"
CONF_POSITION2 = "position2"
CONF_POSITION3 = "position3"
CONF_POSITION4 = "position4"
CONF_RAISE = "raise"
CONF_LOWER = "lower"
button_constants = {}
button_constants[CONF_RAISE] = 0
button_constants[CONF_LOWER] = 1
button_constants[CONF_POSITION1] = 2
button_constants[CONF_POSITION2] = 3
button_constants[CONF_POSITION3] = 4
button_constants[CONF_POSITION4] = 5
button_constants[CONF_STOP] = 2
button_constants[CONF_POSITION1] = 3
button_constants[CONF_POSITION2] = 4
button_constants[CONF_POSITION3] = 5
button_constants[CONF_POSITION4] = 6
CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskController),
@@ -77,6 +79,7 @@ CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
cv.Optional(CONF_BUTTONS): cv.Schema({
cv.Optional(CONF_RAISE): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_LOWER): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_STOP): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION1): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION2): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION3): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),

View File

@@ -146,6 +146,10 @@ namespace esphome {
send_simple_command(0x02);
}
void JiecangDeskController::stop() {
send_simple_command(0x2B);
}
void JiecangDeskController::goto_position(int pos) {
switch (pos) {
case 1:
@@ -184,6 +188,9 @@ namespace esphome {
case BUTTON_LOWER:
lower();
break;
case BUTTON_STOP:
stop();
break;
case BUTTON_POSITION1:
goto_position(1);
break;

View File

@@ -10,10 +10,11 @@
#define BUTTON_RAISE 0
#define BUTTON_LOWER 1
#define BUTTON_POSITION1 2
#define BUTTON_POSITION2 3
#define BUTTON_POSITION3 4
#define BUTTON_POSITION4 5
#define BUTTON_STOP 2
#define BUTTON_POSITION1 3
#define BUTTON_POSITION2 4
#define BUTTON_POSITION3 5
#define BUTTON_POSITION4 6
namespace esphome {
namespace jiecang_desk_controller {
@@ -48,6 +49,7 @@ namespace esphome {
void raise();
void lower();
void stop();
void goto_position(int pos);
void request_physical_limits();