129 lines
2.8 KiB
YAML
129 lines
2.8 KiB
YAML
esphome:
|
|
name: jiecang-desk-controller
|
|
friendly_name: Jiecang Desk Controller
|
|
on_boot:
|
|
# This script is required to initialize the following sensors:
|
|
# height_pct, height_min, height_max, position1 - position4
|
|
# You can skip this if you don't use those.
|
|
priority: 0 # when mostly everything else is done
|
|
then:
|
|
- lambda: "id(my_desk).request_physical_limits();"
|
|
- delay: 0.1s # give controller a chance to handle the response before sending the next command
|
|
- lambda: "id(my_desk).request_limits();"
|
|
- delay: 0.1s
|
|
- lambda: "id(my_desk).request_settings();"
|
|
|
|
external_components:
|
|
- source:
|
|
type: local
|
|
path: rocka84_esphome_components/components/
|
|
# type: git
|
|
# url: https://github.com/Rocka84/esphome_components/
|
|
components: [ jiecang_desk_controller ]
|
|
|
|
uart:
|
|
id: uart_bus
|
|
tx_pin: TX
|
|
rx_pin: RX
|
|
baud_rate: 9600
|
|
|
|
logger:
|
|
baud_rate: 0 # disable logging over uart, required when using the RX/TX pins for the controller
|
|
|
|
jiecang_desk_controller:
|
|
id: my_desk
|
|
sensors:
|
|
height:
|
|
name: "Height"
|
|
height_min:
|
|
name: "Height Min"
|
|
height_max:
|
|
name: "Height Max"
|
|
height_pct:
|
|
name: "Height Percent"
|
|
position1:
|
|
name: "Position 1"
|
|
position2:
|
|
name: "Position 2"
|
|
position3:
|
|
name: "Position 3"
|
|
position4:
|
|
name: "Position 4"
|
|
buttons:
|
|
move_up:
|
|
name: "Move up"
|
|
move_down:
|
|
name: "Move down"
|
|
stop:
|
|
name: "Stop"
|
|
step_up:
|
|
name: "Step up"
|
|
step_down:
|
|
name: "Step down"
|
|
position1:
|
|
name: "Position 1"
|
|
position2:
|
|
name: "Position 2"
|
|
position3:
|
|
name: "Position 3"
|
|
position4:
|
|
name: "Position 4"
|
|
save_position:
|
|
name: "Save Position"
|
|
move_up:
|
|
name: "Move up"
|
|
move_down:
|
|
name: "Move down"
|
|
numbers:
|
|
height:
|
|
name: "Height"
|
|
height_pct:
|
|
name: "Height Percent"
|
|
|
|
## lambda usage
|
|
# button:
|
|
# - platform: template
|
|
# name: "Step up"
|
|
# on_press:
|
|
# lambda: "id(my_desk).step_up();"
|
|
# - platform: template
|
|
# name: "Step down"
|
|
# on_press:
|
|
# lambda: "id(my_desk).step_down();"
|
|
# - platform: template
|
|
# name: "Stop"
|
|
# on_press:
|
|
# lambda: "id(my_desk).stop();"
|
|
# - platform: template
|
|
# name: "Position 2"
|
|
# on_press:
|
|
# lambda: "id(my_desk).goto_position(2);"
|
|
# - platform: template
|
|
# name: "Save Position 4"
|
|
# on_press:
|
|
# lambda: "id(my_desk).save_position(4);"
|
|
# - platform: template
|
|
# name: "Go to 100cm"
|
|
# on_press:
|
|
# lambda: "id(my_desk).goto_height(100);"
|
|
|
|
|
|
# the usual stuff
|
|
|
|
esp8266:
|
|
board: esp01_1m
|
|
|
|
wifi:
|
|
ssid: !secret wifi_ssid
|
|
password: !secret wifi_password
|
|
ap:
|
|
ssid: "esphome-desk"
|
|
password: "9ebc6eac0b4e0e26b8d3b955ec660557"
|
|
|
|
captive_portal:
|
|
api:
|
|
encryption:
|
|
key: !secret encryption_key
|
|
ota:
|
|
|