devices.esphome.io
LEDVANCE SMART PLUS PLUG EU
LEDVANCE SMART PLUS PLUG EU
Device Type: plugElectrical Standard: euBoard: bk72xx
LEDVANCE SMART PLUS PLUG EU based on BK7231T chip (WB2S). Can be flashed with esphome kickstart via tuya-cloudcutter. On publish date you need to use ESP-Home beta to build bk72xx targets. voltage_divider and current_resistor are estimated.
Product Image
GPIO Pinout
Pin | Function |
---|---|
GPIO6 | Button |
GPIO7 | BL0937CF |
GPIO8 | BL0937CF1 |
GPIO10 | LED inverted |
GPIO24 | Relay |
GPIO26 | BBL0937SEL |
Basic Configuration
# LEDVANCE SMART+ PLUG EUsubstitutions: device_name: ledvance-smart-plug device_name_letters: ledvancesmartplug device_description: LEDVANCE SmartPlus Plug friendly_name: LEDVANCE SmartPlus Plug update_interval_seconds: "30s"
esphome: name: ${device_name} comment: ${device_description}
bk72xx: board: wb2s
# Enable logginglogger:
# Enable Home Assistant APIapi: encryption: key: ""
ota: password: ""
# Enable Web serverweb_server: port: 80
# Sync time with Home Assistanttime: - platform: homeassistant id: homeassistant_time
# WiFi connectionwifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: ssid: ${device_name}_fallback password: !secret ap_password ap_timeout: 1min use_address: ${device_name}.local
captive_portal:
text_sensor: - platform: wifi_info ip_address: name: ESP IP Address ssid: name: ESP Connected SSID bssid: name: ESP Connected BSSID mac_address: name: ESP Mac Wifi Address
light: - platform: status_led name: "led" internal: true id: led pin: number: P10 inverted: true
binary_sensor: - platform: gpio pin: number: P6 inverted: true id: button1 filters: - delayed_on: 10ms - delayed_off: 10ms on_click: - switch.toggle: outlet
- platform: status name: ${friendly_name} status
switch: - platform: gpio name: ${friendly_name} Outlet id: outlet pin: P24 icon: mdi:power-socket-eu on_turn_on: - light.turn_on: led on_turn_off: - light.turn_off: led # Switch to restart the plug - platform: restart name: ${friendly_name} Restart Switch
## power monitoring#sensor: # PC191HA includes a BL0937 chip for measuring power consumption # and BL0937 is a variation of hlw8012, but using inverted SEL pin functionality - platform: hlw8012 model: BL0937 # note that the model must be specified to use special calculation parameters sel_pin: # I believe that cf_pin reports either Voltage or Current depending on this select pin inverted: true # determine whether true reports Voltage number: P26 cf_pin: # current or voltage (ele_pin: 7) inverted: true # the logic of BL0937 is opposite from HLW8012 number: P7 cf1_pin: # Power (vi_pin: 8) inverted: true # the logic of BL0937 is opposite from HLW8012 number: P8 update_interval: $update_interval_seconds # How often to measure and report values
# PC191HA measures and returns Voltage OR Current according to the value of sel_pin, # but it can change the value of sel_pin periodically initial_mode: "VOLTAGE" # reports VOLTAGE or CURRENT change_mode_every: "4294967295" # do NOT swap between reporting Volts or Amps (well, swap after 4000 years) # reporting Voltage or Current. Note that the first value reported should be ignored as inaccurate
# Adjust according to the actual resistor values on board to calibrate the specific unit voltage_divider: "4456" # LOWER VALUE GIVES LOWER VOLTAGE current_resistor: "0.00045" # HIGHER VALUE GIVES LOWER WATTAGE
# how the power monitoring values are returned to ESPHome voltage: name: $friendly_name Voltage id: ${device_name_letters}_voltage unit_of_measurement: V accuracy_decimals: 1 filters: - skip_initial: 2 power: name: $friendly_name Power id: ${device_name_letters}_power unit_of_measurement: W accuracy_decimals: 2 filters: - skip_initial: 2
# power is simply current x voltage -- except that the pc191ha doesn't follow that formula. # Setting current_resistor to give an accurate Amperage does NOT also give the correct Wattage # my work-around is to calculate current from power / voltage - platform: template name: $friendly_name Current id: ${device_name_letters}_current unit_of_measurement: A accuracy_decimals: 2 update_interval: $update_interval_seconds lambda: |- return (id(${device_name_letters}_power).state / id(${device_name_letters}_voltage).state); filters: - skip_initial: 5 # give time for data to settle to avoid NaN
- platform: uptime name: ${friendly_name} Uptime unit_of_measurement: minutes filters: - lambda: return x / 60.0;
- platform: wifi_signal name: ${friendly_name} Signal update_interval: 60s