devices.esphome.io

Gosund SW9

Gosund SW9

Device Type: switch
Electrical Standard: eu
Board: esp8266

Product Image Gosund SW9 internals

Flashing

Use a USB to serial adapter, and solder wires onto the pads marked TX, RX, 3.3V and GND. Hold "K2" button when connecting 3.3V to enter flash mode. Tuya Convert may work as well.

GPIO Pinout

PinFunction
GPIO0Button 1
GPIO2State (red) LED 1 (Inverted: true)
GPIO4State (red) LED 2 (Inverted: true)
GPIO5Button 2
GPIO12Relay 2
GPIO13Status (green) LED
GPIO14Relay 1

Basic Configuration

substitutions:
name: "gosund-sw9"
entity_name_1: "Light 1"
entity_id_1: "light_1"
entity_name_2: "Light 2"
entity_id_2: "light_2"
esphome:
name: $name
platform: ESP8266
board: esp01_1m
on_boot:
then:
- light.turn_on: switch_1_led_state
- light.turn_on: switch_2_led_state
api:
encryption:
key: !secret encryption_key
ota:
password: "PASSWORD"
wifi:
ssid: "WIFI_SSID"
password: "WIFI_PASSWORD"
power_save_mode: HIGH # for ESP8266 LOW/HIGH are mixed up, esphome/issues/issues/1532
ap:
ssid: "${name} Fallback"
password: "FALLBACK_PASSWD"
logger:
status_led:
pin:
number: GPIO013
inverted: true # remove this to keep switch illuminated with green LEDs
light:
- platform: status_led
name: "Switch 1 state LED"
pin: GPIO2
id: switch_1_led_state
- platform: status_led
name: "Switch 2 state LED"
pin: GPIO4
id: switch_2_led_state
- platform: binary
id: $entity_id_1
name: $entity_name_1
output: relay1
on_turn_on:
then:
- light.turn_off:
id: switch_1_led_state
on_turn_off:
then:
- light.turn_on:
id: switch_1_led_state
- platform: binary
id: $entity_id_2
name: $entity_name_2
output: relay2
on_turn_on:
then:
- light.turn_off:
id: switch_2_led_state
on_turn_off:
then:
- light.turn_on:
id: switch_2_led_state
binary_sensor:
- platform: gpio
id: button1
name: "Button 1"
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: true
filters:
- delayed_on: 10ms
- delayed_off: 10ms
on_press:
then:
- light.toggle: $entity_id_1
- platform: gpio
name: "Button 2"
id: button2
pin:
number: GPIO5
mode: INPUT_PULLUP
inverted: true
filters:
- delayed_on: 10ms
- delayed_off: 10ms
on_press:
then:
- light.toggle: $entity_id_2
- platform: status
name: "$name status"
output:
- platform: gpio
id: relay1
pin: GPIO14
- platform: gpio
id: relay2
pin: GPIO12
sensor:
- platform: wifi_signal
name: "$name WiFi signal"
update_interval: 60s
- platform: uptime
name: "$name uptime"
Edit this page on GitHub