devices.esphome.io

LSC smart plug 2578685

LSC smart plug 2578685

Device Type: plug
Electrical Standard: eu
Board: bk72xx

Warning

The latest LSC smart plug 2578685 devices use the Tuya BK7231N module, which is not compatible with ESPHome!

Notice

  • This smart plug is flashable using the latest tuya-cloudcutter with a compiled ESPHome binary. I recommend following this Youtube Video.
  • There is a version with BK7231N and a version with BK7231T. Both should work but you need to make sure to use the right version. I recommend to use the the configuration gererated by ltchiptool and esphome-kickstart as shown in the video instead of this configuration, because it might change.
  • The second configuration is the version that worked for me (Version 1.1.8 in the App and with BK7231N)

Product Images

plug with box plug

GPIO Pinout

Pinout for Version with BK7231T

PinFunction
P7Switch button
P26Blue LED
P6Red LED
P8Relay

Pinout for Version with BK7231N (Relay and LED Swapped)

PinFunction
P7Switch button
P26Blue LED
P8Red LED
P6Relay

Basic configuration

Version for BK7231T:

substitutions:
name: lsc-switch-01
friendly_name: lsc-switch-01
esphome:
name: ${name}
friendly_name: ${friendly_name}
libretuya:
board: generic-bk7231t-qfn32-tuya
framework:
version: dev
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption_key
ota:
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot in case wifi connection fails
ap:
ssid: "Lsc-Switch-01 Fallback Hotspot"
password: ""
#web_server:
# port: 80
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
- platform: uptime
name: Uptime Sensor
id: uptime_sensor
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
text_sensor:
- platform: template
name: Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
- platform: wifi_info
ip_address:
name: IP Address
entity_category: diagnostic
binary_sensor:
- platform: status
name: Status
entity_category: diagnostic
- platform: gpio
pin:
number: P7
mode:
input: true
pullup: true
inverted: true
name: "Power Button"
on_press:
- switch.toggle: relay
switch:
- platform: gpio
# RED
id: led_1
pin:
number: P6
inverted: false
- platform: gpio
# BLUE
id: led_2
pin:
number: P26
inverted: false
- platform: gpio
name: Switch
pin: P8
id: relay
# Turn off red LED to show blue when turned on
on_turn_on:
- switch.turn_on: led_2
- switch.turn_off: led_1
# Turns on the red LED once the plug is turned off
on_turn_off:
- switch.turn_off: led_2
- switch.turn_on: led_1
button:
- platform: restart
id: restart_button
name: Restart
entity_category: diagnostic

Version for BK7231N:

esphome:
name: lsc-plug-1
bk72xx:
board: generic-bk7231n-qfn32-tuya
logger:
web_server:
captive_portal:
api:
encryption:
key: !secret encryption_key
ota:
password: !secret ota_password_new
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "lsc_plug_1 Hotspot"
password: "12345678"
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
status_led:
pin: P26
binary_sensor:
- platform: status
name: lsc-plug-1_status
- platform: gpio
pin:
number: P7
mode: INPUT_PULLUP
inverted: true
name: lsc-plug-1_button
internal: true
on_press:
- switch.toggle: relay
output:
- platform: gpio
id: relay_led
pin: P8
switch:
- platform: gpio
id: relay
name: lsc-plug-1_relay
pin: P6
on_turn_on:
- output.turn_on: relay_led
on_turn_off:
- output.turn_off: relay_led
Edit this page on GitHub