devices.esphome.io

UltraPro WFD4001 Light Switch

UltraPro WFD4001 Light Switch

Device Type: switch
Electrical Standard: us
Board: bk72xx
Difficulty: Plug-n-flash, 2/5

Product Image

GPIO Pinout

PinAlternate Pin NameFunctionActive
P6PWM0Reset ButtonLow
P8PWM2On ButtonLow
P9PWM3Off ButtonLow
P24PWM4Status LedHigh
P6PWM5RelayHigh

Tuya Cloudcutter

The board is easily flashed without disassembly using tuya-cloudcutter.

Basic Configuration

On and off will activate the relay. Holding the reset button for more than 5 seconds will reset the wifi password and revert the device to the captive portal.

# You should only need to modify the substitutions.
substitutions:
device_name: back-door-lights
friendly_name: Back Door Lights
# Nothing below should need modification.
esphome:
name: ${device_name}
friendly_name: ${friendly_name}
bk72xx:
board: wb3s
logger:
api:
captive_portal:
ota:
- platform: esphome
wifi: # Get the SSID and password from the captive portal.
ap:
output:
- platform: libretiny_pwm
id: output_blue_led
pin: PWM4
switch:
- platform: gpio
pin: PWM5
id: relay
name: None
restore_mode: RESTORE_DEFAULT_OFF
device_class: switch
on_turn_on:
then:
- light.turn_on: blue_led
on_turn_off:
then:
- light.turn_off: blue_led
button:
- platform: restart
id: do_restart
name: "Restart"
- platform: factory_reset
id: do_factory_reset
name: "Factory Reset to AP mode"
binary_sensor:
- platform: gpio
pin:
number: PWM2
inverted: True # The on button is active low.
id: input_on_button
on_press:
then:
- switch.turn_on: relay
- platform: gpio
pin:
number: PWM3
inverted: True # The off button is active low.
id: input_off_button
on_press:
then:
- switch.turn_off: relay
- platform: gpio
pin:
number: PWM0
inverted: True # The config button is active low.
id: input_config_button
on_press:
then:
- while:
condition:
- binary_sensor.is_on: input_config_button
then:
- light.toggle: blue_led
- delay: 250ms
on_release:
then:
- if:
condition:
- switch.is_on: relay
then:
- light.turn_on: blue_led
else:
- light.turn_off: blue_led
on_click:
- min_length: 5s
max_length: 100s
then:
- repeat:
count: 6
then:
- light.toggle: blue_led
- delay: 100ms
- button.press: do_factory_reset
light:
- platform: status_led
id: blue_led
name: Blue LED
output: output_blue_led
disabled_by_default: True
restore_mode: RESTORE_DEFAULT_OFF
Edit this page on GitHub