I have already flashed the old ESP based versions of the Feit outdoor plugs, but don’t like that both outlets are controlled by one relay. I have also confirmed that the current version of this plug are no longer ESP based. Original post here: Costco Feit Dual Outlet Outdoor Smart Plug
@ideal2545 posted this writeup for flashing the Teckin SS31. I thought that looked great, but I could not find the SS31 anywhere: Teckin SS31 Outdoor Wifi Plug
Insert the SS33. Looks like it replaced the SS31 and has 3 outlets. I do not think that this will be flashable for long, though, as it appears they are straying away from ESP boards at some point. GPIO #'s and hint of future non-ESP based boards here: Teckin SS33
I was able to successfully flash this device using @ideal2545 post on the SS31. The pins to solder the wires to are exactly the same.
My FTDI adapter only has 1 ground pin, so I connected the two grounds from the ESP board together. Also, as @ideal2545 noted, make sure to reveres RX and TX.
My config file notes the GPIO pins for the relays. I also have the conditions set to have the output light be on if any of the 3 outlets are turned on.
substitutions:
deviceName: ss33_outdoor_plug
prettyDeviceName: SS33 Outdoor Plug
esphome:
name: $deviceName
platform: ESP8266
board: esp8285
wifi:
ssid: "ssid"
password: "password"
manual_ip:
static_ip: X.X.X.X
gateway: X.X.X.X
subnet: X.X.X.X
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "${prettyDeviceName} Fallback"
password: "password"
captive_portal:
# Enable Over the Air updates
ota:
password: "XXXX"
# Enable Home Assistant API
api:
password: "XXXX"
# Enable logging
logger:
baud_rate: 9600
status_led:
pin:
number: GPIO4
inverted: True
output:
- platform: gpio
id: relay_status
pin: GPIO5
inverted: True
switch:
- platform: gpio
name: ${prettyDeviceName} Switch 1
pin: GPIO12
id: relay_1
on_turn_on:
then:
- if:
condition:
and:
- switch.is_off: relay_2
- switch.is_off: relay_3
then:
- output.turn_on: relay_status
on_turn_off:
then:
- if:
condition:
and:
- switch.is_off: relay_2
- switch.is_off: relay_3
then:
- output.turn_off: relay_status
- platform: gpio
name: ${prettyDeviceName} Switch 2
pin: GPIO14
id: relay_2
on_turn_on:
then:
- if:
condition:
and:
- switch.is_off: relay_1
- switch.is_off: relay_3
then:
- output.turn_on: relay_status
on_turn_off:
then:
- if:
condition:
and:
- switch.is_off: relay_1
- switch.is_off: relay_3
then:
- output.turn_off: relay_status
- platform: gpio
name: ${prettyDeviceName} Switch 3
pin: GPIO3
id: relay_3
on_turn_on:
then:
- if:
condition:
and:
- switch.is_off: relay_1
- switch.is_off: relay_2
then:
- output.turn_on: relay_status
on_turn_off:
then:
- if:
condition:
and:
- switch.is_off: relay_1
- switch.is_off: relay_2
then:
- output.turn_off: relay_status
binary_sensor:
- platform: gpio
id: button
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: True
on_press:
- switch.toggle: relay_1
- switch.toggle: relay_2
- switch.toggle: relay_3
name: ${prettyDeviceName} Button