#SONOFF T1 EU/UK (3 buttons) #https://www.banggood.com/SONOFF-T1-EU-or-UK-AC-100-240V-1-or-2-or-3-Gang-TX-Series-WIFI-Wall-Switch-433Mhz-RF-Remote-Controlled-Wifi-Switch-Smart-Home-Switch-Works-With-Alexa-Google-Home-p-1470883.html?rmmds=myorder&cur_warehouse=UK&ID=6278514 esphome: name: lounge_switch platform: ESP8266 board: esp01_1m wifi: ssid: !secret wifi-ssid password: !secret wifi-password logger: api: ota: binary_sensor: - platform: gpio pin: number: GPIO0 mode: INPUT_PULLUP inverted: True filters: - delayed_on: 30ms - delayed_off: 30ms internal: True on_multi_click: # Single - timing: - ON for at most 1s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_1 state: !lambda 'return "single";' # Double - timing: - ON for at most 1s - OFF for at most 1s - ON for at most 1s - OFF for at least 0.2s then: - text_sensor.template.publish: id: louge_button_1 state: !lambda 'return "double";' # Hold - timing: - ON for 1s to 3s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_1 state: !lambda 'return "hold";' name: "Lounge Raw Touchpad 1" on_press: then: - output.turn_on: blue_led on_release: then: - output.turn_off: blue_led - platform: gpio pin: number: GPIO9 mode: INPUT_PULLUP inverted: True filters: - delayed_on: 30ms - delayed_off: 30ms internal: True on_multi_click: # Single - timing: - ON for at most 1s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_2 state: !lambda 'return "single";' # Double - timing: - ON for at most 1s - OFF for at most 1s - ON for at most 1s - OFF for at least 0.2s then: - text_sensor.template.publish: id: louge_button_2 state: !lambda 'return "double";' # Hold - timing: - ON for 1s to 3s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_2 state: !lambda 'return "hold";' name: "Lounge Raw Touchpad 2" on_press: then: - output.turn_on: blue_led on_release: then: - output.turn_off: blue_led - platform: gpio pin: number: GPIO10 mode: INPUT_PULLUP inverted: True name: "Lounge Raw Touchpad 3" filters: - delayed_on: 30ms - delayed_off: 30ms internal: True on_multi_click: # Single - timing: - ON for at most 1s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_3 state: !lambda 'return "single";' # Double - timing: - ON for at most 1s - OFF for at most 1s - ON for at most 1s - OFF for at least 0.2s then: - text_sensor.template.publish: id: louge_button_3 state: !lambda 'return "double";' # Hold - timing: - ON for 1s to 3s - OFF for at least 0.5s then: - text_sensor.template.publish: id: louge_button_3 state: !lambda 'return "hold";' on_press: then: - output.turn_on: blue_led on_release: then: - output.turn_off: blue_led # - platform: status # name: "Sonoff T1 UK 3 Gang Status" switch: - platform: gpio name: "Lounge Relay 1" pin: GPIO12 restore_mode: ALWAYS_OFF - platform: gpio name: "Lounge Relay 2" pin: GPIO5 restore_mode: ALWAYS_ON - platform: gpio name: "Lounge Relay 3" pin: GPIO4 restore_mode: ALWAYS_OFF output: # Register the blue LED as a dimmable output .... - platform: esp8266_pwm id: blue_led pin: GPIO13 inverted: True # This sensor is published to homeassistant with the value: # * single # * double # * hold # This can be used to trigger automations by type "state" text_sensor: - platform: template name: "Lounge Touchpad 1" id: louge_button_1 icon: "mdi:toggle-switch" on_value: then: - if: condition: text_sensor.state: id: louge_button_1 state: "" else: - delay: 20ms - text_sensor.template.publish: id: louge_button_1 state: !lambda 'return "";' - platform: template name: "Lounge Touchpad 2" id: louge_button_2 icon: "mdi:toggle-switch" on_value: then: - if: condition: text_sensor.state: id: louge_button_2 state: "" else: - delay: 20ms - text_sensor.template.publish: id: louge_button_2 state: !lambda 'return "";' - platform: template name: "Lounge Touchpad 3" id: louge_button_3 icon: "mdi:toggle-switch" on_value: then: - if: condition: text_sensor.state: id: louge_button_3 state: "" else: - delay: 20ms - text_sensor.template.publish: id: louge_button_3 state: !lambda 'return "";'