added move_up and move_down

fixes #1
This commit is contained in:
Rocka84
2024-06-06 00:03:11 +02:00
parent c6e2220214
commit 7bed131dd9
5 changed files with 34 additions and 1 deletions

View File

@@ -33,7 +33,7 @@ pin | function
#### RJ45
Untested and only for reference!
**Untested** and only for reference!
pin | function
----|---------
@@ -147,6 +147,8 @@ button | description
--------------|---------------------------
raise | raise desk by one step (~14mm)
lower | lower desk by one step (~14mm)
move_up | move up
move_down | move down
stop | stop movement of desk
position1 | move to 1st stored height
position2 | move to 2nd stored height
@@ -160,6 +162,8 @@ lambda method | description
----------------------------------|---------------------------
`id(my_desk).raise()` | raise desk by one step (~14mm)
`id(my_desk).lower()` | lower desk by one step (~14mm)
`id(my_desk).move_up(height)` | move up
`id(my_desk).move_down(height)` | move down
`id(my_desk).stop()` | stop movement of desk
`id(my_desk).goto_position(pos)` | move to stored height `pos`
`id(my_desk).save_position(pos)` | save current height to position `pos`
@@ -173,3 +177,4 @@ You can find a 3D-printable case in the [stl folder](stl/) or on [onshape](https
Thanks to [phord/Jarvis](https://github.com/phord/Jarvis) for reverse engineering the UART interface and most control messages!
Thanks to [OkhammahkO](https://github.com/OkhammahkO) for collecting the scattered information at [pimp-my-desk/desk-control](https://gitlab.com/pimp-my-desk/desk-control) and for his work in the home assistant community!

View File

@@ -29,6 +29,8 @@ CONF_POSITION2 = "position2"
CONF_POSITION3 = "position3"
CONF_POSITION4 = "position4"
CONF_SAVE_POSITION = "save_position"
CONF_MOVE_UP = "move_up"
CONF_MOVE_DOWN = "move_down"
button_constants = {}
@@ -40,6 +42,8 @@ button_constants[CONF_POSITION2] = 4
button_constants[CONF_POSITION3] = 5
button_constants[CONF_POSITION4] = 6
button_constants[CONF_SAVE_POSITION] = 7
button_constants[CONF_MOVE_UP] = 8
button_constants[CONF_MOVE_DOWN] = 9
number_constants = {}
number_constants[CONF_HEIGHT] = 0
@@ -105,6 +109,8 @@ CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
cv.Optional(CONF_POSITION3): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION4): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_SAVE_POSITION): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_MOVE_UP): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_MOVE_DOWN): button.BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
}),
}).extend(uart.UART_DEVICE_SCHEMA)

View File

@@ -66,6 +66,10 @@ jiecang_desk_controller:
name: "Position 4"
save_position:
name: "Save Position"
move_up:
name: "Move up"
move_down:
name: "Move down"
numbers:
height:
name: "Height"

View File

@@ -201,6 +201,14 @@ namespace esphome {
write_array({ 0xF1, 0xF1, cmd, 0x02, high_byte, low_byte, checksum, 0x7E });
}
void JiecangDeskController::move_up() {
goto_height(limit_max);
}
void JiecangDeskController::move_down() {
goto_height(limit_min);
}
void JiecangDeskController::request_physical_limits() {
send_simple_command(0x0C);
}
@@ -226,6 +234,12 @@ namespace esphome {
stop();
save_position_mode = false;
break;
case BUTTON_MOVE_UP:
move_up();
break;
case BUTTON_MOVE_DOWN:
move_down();
break;
case BUTTON_POSITION1:
if (save_position_mode) {
save_position_mode = false;

View File

@@ -17,6 +17,8 @@
#define BUTTON_POSITION3 5
#define BUTTON_POSITION4 6
#define BUTTON_SAVE_POSITION 7
#define BUTTON_MOVE_UP 8
#define BUTTON_MOVE_DOWN 9
#define NUMBER_HEIGHT 0
#define NUMBER_HEIGHT_PCT 1
@@ -61,6 +63,8 @@ namespace esphome {
void goto_position(int pos);
void save_position(int pos);
void goto_height(float height);
void move_up();
void move_down();
void request_physical_limits();
void request_limits();