ElVit-esphome_components/components/maidsite_desk_controller/example_full.yaml

139 lines
3.0 KiB
YAML

esphome:
name: maidsite-desk-controller
friendly_name: Maidsite Desk Controller
on_boot:
# This script is required to initialize the following sensors:
# height_pct, height_min, height_max, position_m1 - position_m4
# 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: esphome_components/components/
# type: git
# url: https://github.com/ElVit/esphome_components/
components: [ maidsite_desk_controller ]
uart:
- id: uart_bus
tx_pin: $pin_tx
rx_pin: $pin_rx
baud_rate: 9600
# debug:
# direction: BOTH
# after:
# bytes: 9
# sequence:
# - lambda: UARTDebug::log_hex(direction, bytes, ',');
maidsite_desk_controller:
id: my_desk
sensors:
height_abs:
name: "Height absolut"
height_pct:
name: "Height percent"
height_min:
name: "Height Min"
height_max:
name: "Height Max"
position_m1:
name: "Position M1"
position_m2:
name: "Position M2"
position_m3:
name: "Position M3"
position_m4:
name: "Position M4"
buttons:
stop:
name: "Stop"
step_up:
name: "Step up"
step_down:
name: "Step down"
goto_max:
name: "Move to MAX"
goto_min:
name: "Move to MIN"
goto_m1:
name: "Move to M1"
goto_m2:
name: "Move to M2"
goto_m3:
name: "Move to M3"
goto_m4:
name: "Move to M4"
save_m1:
name: "Save M1"
save_m2:
name: "Save M2"
save_m3:
name: "Save M3"
save_m4:
name: "Save M4"
numbers:
height_abs:
name: "Height absolut"
mode: SLIDER
height_pct:
name: "Height percent"
mode: SLIDER
## 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_mem_position(2);"
# - platform: template
# name: "Save Position 4"
# on_press:
# lambda: "id(my_desk).save_mem_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:
logger: