|
|
|
#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 "";'
|