LSC smart plug 2578685

bk72xx eu Comes with ESPHome plug
LSC smart plug 2578685 - lsc-plug-2578685.jpg
LSC smart plug 2578685 - lsc-plug-no-box2578685.jpg

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

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