devices.esphome.io
Milfra Smart Dimmer Switch
Milfra Smart Dimmer Switch
Device Type: dimmerElectrical Standard: globalBoard: bk72xxDifficulty: Soldering required, 4/5
      
  
        
        
Overall description
Milfra dimmers are another type of in-wall, brightness-only light dimming devices with Tuya-Smart application support, and support 3+ way installations.
Technical details
The device is using Tuya-compatible application structure with two main components:
- application-specific MCU, responsible for controlling light output, and
 - a Tuya CBU module that contains application level logic.
- external switch input GPIO is connected to secondary MCU,
 - communication to dimming MCU is bidirectional, currently haven't determined what data the MCU is requesting from Tuya that causes an unknown command 0x34 error
 
 
Programming
First programming was done over USB-serial. The module needs disassembled (pretty easy) and moderate soldering skills are required to attach USB-RS232 converter cables. Did not test if CloudCutter or other methods would work.
Need to solder cables Rx, Tx, Gnd, Vcc (3V3) and CEN pin. Preferred flashing software is ltchiptool from LibreTiny project. Start programming like:
ltchiptool flash write <firmware.uf2>then short CEN pin to ground for a moment to initiate progrmming mode on the module.
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO10 | UART RX | 
| GPIO11 | UART TX | 
Basic configuration
substitutions:  device_name: dimmer1  icon: "mdi:light-switch"  update_interval_wifi: "60s"
esphome:  name: ${device_name}  friendly_name: dimmer1
bk72xx:  board: cbu
# Enable logginglogger:
# Enable Home Assistant APIapi:  encryption:    key: CHANGEME
ota:  password: CHANGEME
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails  ap:    ssid: "dimmer1"    password: !secret wifi_password  use_address: xxx.xxx.xxx.xxx
captive_portal:
sensor:  - platform: uptime    name: Uptime
uart:  rx_pin: GPIO10  tx_pin: GPIO11  baud_rate: 115200
tuya:
light:  - platform: tuya    name: dimmer    dimmer_datapoint: 2    min_value_datapoint: 3    switch_datapoint: 1    min_value: 200    max_value: 1000
select:  - platform: tuya    enum_datapoint: 13    name: Work Mode    optimistic: true    options:      0: Light_White  - platform: tuya    enum_datapoint: 14    name: Relay Status    optimistic: true    options:      0: "Off"      1: "On"      2: Memory
text_sensor:  - platform: wifi_info    ip_address:      name: "IP"      icon: "mdi:ip-outline"      update_interval: ${update_interval_wifi}    ssid:      name: "SSID"      icon: "mdi:wifi-settings"      update_interval: ${update_interval_wifi}    bssid:      name: "BSSID"      icon: "mdi:wifi-settings"      update_interval: ${update_interval_wifi}    mac_address:      name: "MAC"      icon: "mdi:network-outline"    scan_results:      name: "Wifi Scan"      icon: "mdi:wifi-refresh"      update_interval: ${update_interval_wifi}      disabled_by_default: true  - platform: libretiny    version:      name: LibreTiny Version