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) raise | `id(my_desk).raise()` | raise desk by one step (~14mm)
lower | `id(my_desk).raise()` | lower 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 position1 | `id(my_desk).goto_position(1)` | move to 1st stored height
position2 | `id(my_desk).goto_position(2)` | move to 2nd 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 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_SENSORS = "sensors"
CONF_BUTTONS = "buttons" CONF_BUTTONS = "buttons"
CONF_UNIT = "unit" CONF_UNIT = "unit"
CONF_RAISE = "raise"
CONF_LOWER = "lower"
CONF_STOP = "stop"
CONF_HEIGHT_MIN = "height_min" CONF_HEIGHT_MIN = "height_min"
CONF_HEIGHT_MAX = "height_max" CONF_HEIGHT_MAX = "height_max"
CONF_HEIGHT_PCT = "height_pct" CONF_HEIGHT_PCT = "height_pct"
@@ -23,17 +26,16 @@ CONF_POSITION1 = "position1"
CONF_POSITION2 = "position2" CONF_POSITION2 = "position2"
CONF_POSITION3 = "position3" CONF_POSITION3 = "position3"
CONF_POSITION4 = "position4" CONF_POSITION4 = "position4"
CONF_RAISE = "raise"
CONF_LOWER = "lower"
button_constants = {} button_constants = {}
button_constants[CONF_RAISE] = 0 button_constants[CONF_RAISE] = 0
button_constants[CONF_LOWER] = 1 button_constants[CONF_LOWER] = 1
button_constants[CONF_POSITION1] = 2 button_constants[CONF_STOP] = 2
button_constants[CONF_POSITION2] = 3 button_constants[CONF_POSITION1] = 3
button_constants[CONF_POSITION3] = 4 button_constants[CONF_POSITION2] = 4
button_constants[CONF_POSITION4] = 5 button_constants[CONF_POSITION3] = 5
button_constants[CONF_POSITION4] = 6
CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({ CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskController), 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_BUTTONS): cv.Schema({
cv.Optional(CONF_RAISE): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}), 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_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_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_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)}), 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); send_simple_command(0x02);
} }
void JiecangDeskController::stop() {
send_simple_command(0x2B);
}
void JiecangDeskController::goto_position(int pos) { void JiecangDeskController::goto_position(int pos) {
switch (pos) { switch (pos) {
case 1: case 1:
@@ -184,6 +188,9 @@ namespace esphome {
case BUTTON_LOWER: case BUTTON_LOWER:
lower(); lower();
break; break;
case BUTTON_STOP:
stop();
break;
case BUTTON_POSITION1: case BUTTON_POSITION1:
goto_position(1); goto_position(1);
break; break;

View File

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