devices.esphome.io

Unbranded Smart Plug BSD01

Unbranded Smart Plug BSD01

Device Type: plug
Electrical Standard: globalus
Board: esp8266

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
Edit this page on GitHub