devices.esphome.io
Etekcity Smart Outdoor WiFi Outlet Plug ESO15-TB
Etekcity Smart Outdoor WiFi Outlet Plug ESO15-TB
Device Type: plugElectrical Standard: usBoard: esp8266
Converted from Tasmota.
Flashing
Remove the four phillips head screws and remove the plastic clamshell.
Then, remove a few more screws to remove the circuitry from the plastic enclosure.
The Rx, Tx, 3.3v, and Ground solder pads will then be visible to use.
GPIO0 (Pin 8) must be grounded on boot to place the device into boot loader mode.
GPIO0 also has a test pad which could be labeled "TI0" that is on the far right (looking at the board where test pads for power is on the left, GND near center, and TX/RX the right) side near the RX/TX test pads.
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO4 | Relay 1 | 
| GPIO5 | Relay 2 | 
| GPIO9 | Led 1 | 
| GPIO12 | HLW8012 CF1 | 
| GPIO13 | HLW8012 CF | 
| GPIO14 | Button 1 | 
| GPIO15 | HLW8012 SEL | 
| GPIO16 | Led 2 | 
Basic Configuration
# Etekcity Smart Outdoor WiFi Outlet Plug (ESO15-TB)substitutions:  device_name: eso15_tb  device_description: ESO15 TB Outlet 1  friendly_name: Outdoor Outlet 1  voltage_divider: "1980"  current_resistor: "0.001"
esphome:  name: ${device_name}  comment: ${device_description}  platform: ESP8266  board: esp01_1m
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  fast_connect: True
  # Enable fallback hotspot (captive portal) in case wifi connection fails  ap:      ssid: ${device_name} Fallback Hotspot      password: !secret ap_password
captive_portal:
# Enable Home Assistant APIapi:  encryption:    key: !secret encryption_key  ota:    password: !secret api_ota_password
# Enable logginglogger:
sensor:  - platform: hlw8012    sel_pin: GPIO15    cf_pin: GPIO13    cf1_pin: GPIO12    current_resistor: ${current_resistor}    voltage_divider: ${voltage_divider}    current:      name: "${friendly_name} Current"    voltage:      name: "${friendly_name} Voltage"    power:      name: "${friendly_name} Power"    energy:      name: "${friendly_name} Energy"  - platform: wifi_signal    name: "${friendly_name} WiFi signal"    update_interval: 60s  - platform: uptime    name: "${friendly_name} Uptime"    update_interval: 60s
binary_sensor:  - platform: gpio    pin:      number: 14      mode: INPUT_PULLUP      inverted: true    id: button1    on_multi_click:      - timing:          - ON for at most 1s          - OFF for at least 0.5s        then:          - logger.log: "Single Clicked"          - switch.toggle: outlet_a      - timing:          - ON for at most 1s          - OFF for at most 1s          - ON for at most 1s          - OFF for at least 0.2s        then:          - logger.log: "Double Clicked"          - switch.toggle: outlet_b  - platform: status    name: "${friendly_name} Status"
switch:  - platform: gpio    pin: GPIO4    name: "${friendly_name} Outlet A"    id: outlet_a    on_turn_on:      - output.turn_on: led1_output    on_turn_off:      - output.turn_off: led1_output  - platform: gpio    pin: GPIO5    name: "${friendly_name} Outlet B"    id: outlet_b
output:  - id: led1_output    platform: gpio    pin: GPIO9
status_led:  pin:    number: GPIO16