Unbranded Smart Plug BSD01

esp8266 globalus Comes with ESPHome plug

Overview

This device did not have a serial number, brand name or FCC ID. Bought from AliExpress. The plugs I received did not respond to tuya-convert so a hard flash was necessary. The plug uses a wifi module with ID ajw-02_8285. Not much online but enough to figure out the pin pads for a hard flash. A couple of users have gone before me and desoldered the module from the main board but I chose to solder DuPont cables to the pin pads and then use a pik tool to trigger flash mode via GPIO0. If I can figure out how to upload images here I’ll do that later. The GPIO pinout was learned from Blakadder Tasmota documentation and adapted through trial and error.

GPIO Pinout

PinFunction
GPIO1Status LED - Red
GPIO12Relay
GPIO13Button (inverted)
GPIO14Status LED - Blue (inverted)

Basic Configuration

# Type BSD01 plug (AliExpress x 5)
esphome:
  name: ${lower_devicename}
  platform: ESP8266
  board: esp01_1m
logger:
wifi:
  manual_ip:
    static_ip: ${static_ip}
    gateway: 192.168.10.1
    subnet: 255.255.255.0
    dns1: 192.168.10.1
    dns2: 0.0.0.0
  ap:
    ssid: Fallback-${lower_devicename}
    password: ""
    ap_timeout: 1min
  domain: .local
  reboot_timeout: 5min
  power_save_mode: NONE
  fast_connect: false
  output_power: 20.0
  networks:
    - ssid: !secret wifi_ssid
      password: !secret wifi_password
      priority: 0.0
  use_address: ${static_ip}
captive_portal:
api:
  port: 6053
  reboot_timeout: 15min
  encryption:
    key: !secret api_encryption_key
ota:
  password: !secret ota_password
  safe_mode: true
  port: 8266
binary_sensor:
  - platform: status
    name: ${upper_short_devicename} Status
    device_class: connectivity
  - platform: gpio
    id: button
    internal: true
    pin:
      number: 13
      mode: INPUT
      inverted: true
    on_press:
      - then:
          - switch.toggle:
              id: ${id_devicename}_relay
    name: button
switch:
  - platform: gpio
    name: ${upper_short_devicename}
    id: ${id_devicename}_relay
    pin:
      number: 12
      mode: OUTPUT
      inverted: false
    on_turn_on:
      - then:
          - light.turn_off:
              id: status_led_red
              state: false
          - light.turn_on:
              id: status_led_blue
              state: true
    on_turn_off:
      - then:
          - light.turn_off:
              id: status_led_blue
              state: false
          - light.turn_on:
              id: status_led_red
              state: true
    restore_mode: RESTORE_DEFAULT_OFF
    interlock_wait_time: 0ms
  - platform: restart
    name: ${upper_short_devicename} Restart
output:
  - platform: gpio
    id: led_blue
    pin:
      number: 14
      inverted: false
      mode: OUTPUT
  - platform: gpio
    id: led_red
    pin:
      number: 1
      inverted: false
      mode: OUTPUT
light:
  - platform: binary
    name: Status LED Blue
    id: status_led_blue
    internal: true
    output: led_blue
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    name: Status LED Red
    id: status_led_red
    internal: true
    output: led_red
    restore_mode: RESTORE_DEFAULT_ON
sensor:
  - platform: wifi_signal
    name: ${upper_short_devicename} Wifi Signal
    id: ${id_devicename}_wifi_signal
    update_interval: 15s
    force_update: false
    unit_of_measurement: dB
    icon: mdi:wifi
    accuracy_decimals: 0
text_sensor:
  - platform: wifi_info
    mac_address:
      name: ${upper_short_devicename} Mac Address
      icon: mdi:network