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: