139 lines
3.0 KiB
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:
|