Files
2024-06-06 22:22:58 +02:00

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: