Desky Standing Desk (ESPHome) [Works with Desky, Uplift, Jiecang, Assmann & others]

Here’s the relevant excerpt from my config. Note the Purple wire needs to connected to a GPIO.


substitutions:
  #Use your own ESP pin values
  desky_request_height_pin: GPIO32 #Request desk height | white wire  
  desky_purple_pin: GPIO04 #purple wire  
  desky_down_pin: GPIO23 #Move desk down | yellow wire  
  desky_up_pin: GPIO05  #Move desk up | green wire  

output:
  - platform: gpio
    pin: ${desky_up_pin}
    id: up_green_wire
    inverted: true
  - platform: gpio
    pin: ${desky_down_pin}
    id: down_yellow_wire
    inverted: true
  - platform: gpio
    pin: ${desky_purple_pin}
    id: purple_wire
    inverted: true

button:
  # Combination Buttons
  - platform: template
    name: 1
    id: button_1
    on_press:
      then:
        - output.turn_on: up_green_wire
        - output.turn_on: down_yellow_wire
        - delay: 300ms
        - output.turn_off: down_yellow_wire
        - output.turn_off: up_green_wire
  - platform: output
    output: purple_wire
    name: 2
    id: button_2
    duration: 300ms
  - platform: template
    name: 3
    id: button_3
    on_press:
      then:
        - output.turn_on: purple_wire
        - output.turn_on: down_yellow_wire
        - delay: 300ms
        - output.turn_off: down_yellow_wire
        - output.turn_off: purple_wire
  - platform: template
    name: 4
    id: button_4
    on_press:
      then:
        - output.turn_on: purple_wire
        - output.turn_on: up_green_wire
        - delay: 300ms
        - output.turn_off: up_green_wire
        - output.turn_off: purple_wire
    
  # - platform: template
    # name: Set memory 3
    # id: set_memory_3
    # on_press:
      # then:
        # - uart.write:
            # id: desk_uart
            # data: [0xF1, 0xF1, 0x25, 0x00, 0x25, 0x7E]
              # - uart.write: [0xF1, 0xF1, 0x25, 0x00, 0x25, 0x7E]

```