devices.esphome.io
Generic Glass Touch Switch with 1, 2, 3 pole variants
Generic Glass Touch Switch with 1, 2, 3 pole variants
Device Type: switchElectrical Standard: usBoard: esp8266
General Notes
This config was created based on the 3 pole switch that I had. I'm not sure what the pins for the 4 pole variant would be, but it would not be hard to figure it out if you have the unit.
There is another variant to these switches with LEDs on the buttons. These are called out below.
I labeled the switch as Top/Middle/Bottom as the L1-L4 ports on the rear are actually inverted when installed (L4 on top, L1 on bottom).
Product Images
Front of 3 pole switch
      
  
        
Rear of 3 pole switch
      
  
        
Wiring of switch
      
  
        
GPIO Pinout (Per top to bottom when installed)
| Pin | Function | 
|---|---|
| GPIO3 | Button, Top | 
| GPIO4 | Relay, Top (Labeled L4) | 
| GPIO5 | Button, Middle | 
| GPIO12 | Button, Bottom | 
| GPIO13 | Relay, Bottom (Labeled L2) | 
| GPIO15 | Relay, Middle (Labeled L3) | 
| GPIO16 | Status LED | 
| GPIO0 | Status LED (alternative, some switches) | 
| GPIO14 | LED, Top (some switches) | 
| GPIO1 | LED, Middle (some switches) | 
| GPIO14 | LED, Bottom (some switches) | 
Basic Configuration
substitutions:  platform: ESP8266  board: esp01_1m  device_name: esphome_dining_room_switch  friendly_name: "Dining Room Switch"  reboot_timeout_wifi: 900s  reboot_timeout_api: 1800s  output_power: 17dB
#################################
esphome:  platform: ${platform}  board: ${board}  name: ${device_name}  esp8266_restore_from_flash: true
wifi:  ssid: !secret wifi_iot_ssid  password: !secret wifi_iot_pwd  fast_connect: on  reboot_timeout: ${reboot_timeout_wifi}  output_power: ${output_power}  ap:    ssid: "AP_${friendly_name}"    password: !secret wifi_backup_pwd
api:  reboot_timeout: ${reboot_timeout_api}
ota:
web_server:  port: 80
logger:
#################################
binary_sensor:  - platform: gpio    pin:      number: GPIO14      inverted: True    name: "${friendly_name} Top Button"    id: button_top    on_press:      then:        - if:            condition:              light.is_on: light_top            then:              - light.turn_off: light_top            else:              - light.turn_on: light_top  - platform: gpio    pin:      number: GPIO5      inverted: True    name: "${friendly_name} Middle Button"    id: button_middle    on_press:      then:        - if:            condition:              light.is_on: light_middle            then:              - light.turn_off: light_middle            else:              - light.turn_on: light_middle  - platform: gpio    pin:      number: GPIO12      inverted: True    name: "${friendly_name} Bottom Button"    id: button_bottom    on_press:      then:        - if:            condition:              light.is_on: light_bottom            then:              - light.turn_off: light_bottom            else:              - light.turn_on: light_bottom
output:  - platform: gpio    id: relay_top    pin: GPIO4  - platform: gpio    id: relay_middle    pin: GPIO15  - platform: gpio    id: relay_bottom    pin: GPIO13  - platform: esp8266_pwm    id: status_led    pin:      number: GPIO16      inverted: True
switch:  - platform: restart    name: "Front Door REBOOT"
light:  - platform: binary    output: relay_top    id: light_top    restore_mode: ALWAYS_OFF    name: "${friendly_name} Top"  - platform: binary    output: relay_middle    id: light_middle    restore_mode: ALWAYS_OFF    name: "${friendly_name} Middle"  - platform: binary    output: relay_bottom    id: light_bottom    restore_mode: ALWAYS_OFF    name: "${friendly_name} Bottom"    # icon: "mdi:ceiling-light"
  - platform: monochromatic    name: "${friendly_name} Status LED"    output: status_ledConfig for alternative variant
substitutions:  platform: ESP8266  board: esp01_1m  device_name: esphome_dining_room_switch  friendly_name: "Living Room Switch"  reboot_timeout_wifi: 900s  reboot_timeout_api: 1800s  output_power: 17dB
#################################
esphome:  platform: ${platform}  board: ${board}  name: ${device_name}  esp8266_restore_from_flash: true
wifi:  ssid: !secret wifi_iot_ssid  password: !secret wifi_iot_pwd  fast_connect: on  reboot_timeout: ${reboot_timeout_wifi}  output_power: ${output_power}  ap:    ssid: "AP_${friendly_name}"    password: !secret wifi_backup_pwd
api:  reboot_timeout: ${reboot_timeout_api}
ota:
web_server:  port: 80
logger:
#################################
status_led:  pin:    number: GPIO0    inverted: true
binary_sensor:  - platform: gpio    pin: GPIO12    name: "l1 switch"    id: switch_1    internal: true    filters:      - invert:    on_press:      - light.toggle:          id: lightsw_1
  - platform: gpio    pin: GPIO05    name: "l2 switch"    id: switch_2    internal: true    filters:      - invert:    on_press:      - light.toggle:          id: lightsw_2
  - platform: gpio    pin: GPIO3    name: "l3 switch"    id: switch_3    internal: true    filters:      - invert:    on_press:      - light.toggle:          id: lightsw_3
output:  - platform: gpio    pin: GPIO13    id: relay_1  - platform: gpio    pin: GPIO15    id: relay_2  - platform: gpio    pin: GPIO04    id: relay_3
  - platform: gpio    pin: GPIO16    id: led_1    inverted: true  - platform: gpio    pin: GPIO01    id: led_2    inverted: true  - platform: gpio    pin: GPIO14    id: led_3    inverted: true
light:  - platform: binary    name: "${friendly_name} Top"    id: lightsw_1    output: relay_1  - platform: binary    name: "${friendly_name} Middle"    id: lightsw_2    output: relay_2  - platform: binary    name: "${friendly_name} Bottom"    id: lightsw_3    output: relay_3