Costco Feit Dual Outlet Outdoor Smart Plug

Tags: #<Tag:0x00007f73b4e75c28>

Just wanted to share some info on on getting ESPHome running on these fairly inexpensive relays from Costco (Model: BPPLUG/WIFI/WP/2 UPC: 017801722086):
s-l500

Here is the process and my YAML used for flashing these devices:

  1. Compile the ESPHome YAML configuration below after changing the names and wifi information / API passwords
substitutions:
  deviceName: general_switch_1
  prettyDeviceName: General Switch 1

esphome:
  name: $deviceName
  platform: ESP8266
  board: esp8285

wifi:
  ssid: "SSID"
  password: "Password"
  
  # Connect without wifi scanning, needed for hidden networks, forces connection to first AP
  fast_connect: on

  # 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: "Password"

# Enable Home Assistant API
api:
  password: "Password"

# Enable logging
logger:
  baud_rate: 9600

# Status LED
status_led:
  pin:
    number: GPIO4
    inverted: yes

binary_sensor:
  - platform: gpio  
    id: button
    pin:
      number: GPIO13
      mode: INPUT_PULLUP
      inverted: True
    on_press:
      - switch.toggle: $deviceName

output:
  - platform: gpio
    id: relay_status
    pin: GPIO5
    inverted: yes
    
switch:
  - platform: gpio
    id: $deviceName
    name: $prettyDeviceName
    pin: GPIO12
    on_turn_on:
      - output.turn_on: relay_status
    on_turn_off:
      - output.turn_off: relay_status    
  1. Remove the three screw from the rear of the device

  2. Using an FTDI cable (3.3V logic, not 5V), connect it to the header according to the silk screen, remember to connect the FTDI TX to RX and the FTDI RX to TX on the board. Also, connect a jumper between the near by Ground (GND) to the IO0 pin as this will put the ESP into flash mode when power is applied by the the FTDI cable. Lastly connect the 3V supply from the FTDI cable (shown as dark red cable in picture below to power the ESP into flash mode.

  3. Flash the device using either esphome or esptool.py

  4. Profit.

3 Likes

Thank you. People might get a better idea what these are from here,

https://www.costco.com/feit-electric-wi-fi-smart-outdoor-plug%2C-2-pack.product.100515906.html

Can you add this to esphome-configs.io please?

I’m a newbie to trying a flash like this, so can you share your brand of ftdi cable that you used? Are all of the jumpers from one cable or is there a second involved?

Thanks!

I personally have a TTL232R-3v3-WE but really any 3v TTL UART cable would work. Looks like Digikey still sells the one I have: https://www.digikey.com/product-detail/en/ftdi-future-technology-devices-international-ltd/TTL-232R-3V3-WE/768-1016-ND/1836394

This worked great! Thank you for posting.

At @mickelj I didn’t have an FTDI cable. I flashed using a separate ESP32 as passthrough UART. Big thanks to the group on esphome discord for helping me with this!

From the ESP32 to the outdoor plug: plug 3v to 3v, tx to tx (different from this guide), rx to rx (different from this guide), and ground to ground, then the jumper from IO0 to ground. When you go to flash to esphome hold down the EN button on your ESP32 THE WHOLE TIME you’re flashing.

Thanks for both replies. I since opened up the device and these at Costco are no longer ESP chips. Debating what to do…

I ordered directly from the link nickrout posted above and got the correct ones with ESP chips. Also looks like they are $10 off right now until the 9/27! I was just able to price adjust right from costco.com! Saved me $10 and I may get a couple more!

The outdoor plug has two outlets… shouldn’t there be two switches in the esphome config? One for each switch? What am I missing here?

The outlets are not controlled independently. Either both are on or both are off (and this is the case whether ESPHome/Tasmota are used or if the stock firmware is used - it’s how the hardware is set up).

Makes sense. Thank you!

Could someone walk me through the YAML, having a bit of a hard time understanding whats happening.

Status_LED, gives you a status of all components, got it.
binary_sensor is to detect the state of the physical button and toggle the relay on or off

Output I dont fully understand, its looking at GPIO5 as the actual relay on/off?
but at the switch entry there is GPIO12 thats also getting turned on?

edit i understand, this device has two status LEDS… got it.

I got a two pack that was BPPLUG/WIFI/WP/2 which is what the OP has and they flashed just fine, i picked up two individuals that look exactly exactly the same and even have the same headers but will not flash, perhaps another chipset?

These are labeled PLUG/WIFI/WP

It looks like they did board revision. If you look at the other side of the PCB, you’ll find that the TX, RX, IO0, and GND pins are all now on the ground plane (they are fake now). there is a different RX and TX soldermask on the back side. I’m going to try to flash with those shortly

I just bought the two-pack yesterday and could not get them to flash either. If anyone is successful with getting these flashed I would be grateful to hear how you did it.

How did it go? Any luck?

The two pack should still be functioning if they are labeled WP/2, did you make sure you didnt get your TX/RX configuration mixed up? If you use a regular FTDI you should go TX - RX and RX-TX

No luck. I have flashed plenty of other devices, even ones with much harder to find pins. These ones are all labeled and you can just pop a jumper in, but I cannot get it to flash. Is there some trick or something to it?

No luck flashing these. They are using a Beken 7231, a pretty detailed thread is here: Unknown Tuya Chip. Looks like they aren’t ESP anymore.

Important note: The item number on my plug is BPPLUG/WIFI/WP/2. The FCC ID is SYM-PLUGWFBTWP

Buyer beware.

It looks like there is plenty of room to pull the MCU off and swap to ESP… but I don’t know if I have the drive to do that.

I’m thinking my next option is to use my pfSense firewall to quarantine these devices so they can’t see any other devices on the LAN and just use the tuya component in HA