devices.esphome.io

Reafoo 9W A26 Bulb

Reafoo 9W A26 Bulb

Device Type: light
Electrical Standard: us
Board: esp8266

5-channel PWM RGBWW smart light bulb, A26 shape, E26 base, 2700k-6500k tunable white with RGB colors, 100-240V AC 50/60Hz, natively Tuya/Smart Life, works with Tuya-convert to flash to ESPHome. FCC-ID is 2AJK8-LZ803.

GPIO Pinout

PinFunction
GPIO4Warm White channel
GPIO5Green channel
GPIO12Blue channel
GPIO14Cold White channel
GPIO15Red channel

Basic Configuration

#Reafoo smart bulb, https://amzn.to/3fhC2ib
#https://fccid.io/2AJK8-LZ803
#https://blakadder.github.io/templates/reafoo_A26.html
substitutions:
device_name: reafoo
friendly_name: REAFOO Smart Bulb
esphome:
name: ${device_name}
esp8266:
board: esp01_1m
# OTA flashing
ota:
- platform: esphome
wifi: # Your Wifi network details
# Enable fallback hotspot in case wifi connection fails
ap:
# Enabling the logging component
logger:
baud_rate: 0 #disable UART logging since we aren't connected to GPIO1 TX
# Enable Home Assistant API
api:
# Enable the captive portal
captive_portal:
# Enable the Web Server component
webserver:
binary_sensor:
# Reports if this device is Connected or not
- platform: status
name: ${friendly_name} Status
output:
- platform: esp8266_pwm
id: red
pin: GPIO15
inverted: False
- platform: esp8266_pwm
id: green
pin: GPIO5
inverted: False
- platform: esp8266_pwm
id: blue
pin: GPIO12
inverted: False
- platform: esp8266_pwm
id: cold_white
pin: GPIO14
inverted: False
- platform: esp8266_pwm
id: warm_white
pin: GPIO4
inverted: False
light:
- platform: rgbww
name: ${friendly_name}
red: red
green: green
blue: blue
cold_white: cold_white
warm_white: warm_white
cold_white_color_temperature: 6500 K
warm_white_color_temperature: 2700 K
id: thelight
restore_mode: ALWAYS_ON #Start with light on after reboot/power-loss event, so that it works from a dumb lightswitch
effects:
- random:
- strobe:
- flicker:
alpha: 50% #The percentage that the last color value should affect the light. More or less the “forget-factor” of an exponential moving average. Defaults to 95%.
intensity: 50% #The intensity of the flickering, basically the maximum amplitude of the random offsets. Defaults to 1.5%.
- lambda:
name: Throb
update_interval: 1s
lambda: |-
static int state = 0;
auto call = id(thelight).turn_on();
// Transtion of 1000ms = 1s
call.set_transition_length(1000);
if (state == 0) {
call.set_brightness(1.0);
} else {
call.set_brightness(0.01);
}
call.perform();
state += 1;
if (state == 2)
state = 0;
# Blink the light if we aren't connected to WiFi.
interval:
- interval: 500ms
then:
- if:
condition:
not:
wifi.connected:
then:
- light.turn_on:
id: thelight
brightness: 50%
transition_length: 0s
- delay: 250ms
- light.turn_off:
id: thelight
transition_length: 250ms

Split Configuration

If you have several of these bulbs, you may prefer to keep the shared code in one file and only put the device-specific code in the files for each bulb.

In reafoo_common.yaml:

# Common code for REAFOO bulbs
#Reafoo smart bulb, https://amzn.to/3fhC2ib
#https://fccid.io/2AJK8-LZ803
#https://blakadder.github.io/templates/reafoo_A26.html
esphome:
name: ${device_name}
esp8266:
board: esp01_1m
# OTA flashing
ota:
- platform: esphome
wifi: # Your Wifi network details
# Enable fallback hotspot in case wifi connection fails
ap:
# Enabling the logging component
logger:
baud_rate: 0 #disable UART logging since we aren't connected to GPIO1 TX
# Enable Home Assistant API
api:
# Enable the captive portal
captive_portal:
# Enable the Web Server component
webserver:
binary_sensor:
# Reports if this device is Connected or not
- platform: status
name: ${friendly_name} Status
output:
- platform: esp8266_pwm
id: red
pin: GPIO15
inverted: False
- platform: esp8266_pwm
id: green
pin: GPIO5
inverted: False
- platform: esp8266_pwm
id: blue
pin: GPIO12
inverted: False
- platform: esp8266_pwm
id: cold_white
pin: GPIO14
inverted: False
- platform: esp8266_pwm
id: warm_white
pin: GPIO4
inverted: False
light:
- platform: rgbww
name: ${friendly_name}
red: red
green: green
blue: blue
cold_white: cold_white
warm_white: warm_white
cold_white_color_temperature: 6500 K
warm_white_color_temperature: 2700 K
id: thelight
restore_mode: ALWAYS_ON #Start with light on after reboot/power-loss event, so that it works from a dumb lightswitch
effects:
- random:
- strobe:
- flicker:
alpha: 50% #The percentage that the last color value should affect the light. More or less the “forget-factor” of an exponential moving average. Defaults to 95%.
intensity: 50% #The intensity of the flickering, basically the maximum amplitude of the random offsets. Defaults to 1.5%.
- lambda:
name: Throb
update_interval: 1s
lambda: |-
static int state = 0;
auto call = id(thelight).turn_on();
// Transtion of 1000ms = 1s
call.set_transition_length(1000);
if (state == 0) {
call.set_brightness(1.0);
} else {
call.set_brightness(0.01);
}
call.perform();
state += 1;
if (state == 2)
state = 0;
# Blink the light if we aren't connected to WiFi.
interval:
- interval: 500ms
then:
- if:
condition:
not:
wifi.connected:
then:
- light.turn_on:
id: thelight
brightness: 50%
transition_length: 0s
- delay: 250ms
- light.turn_off:
id: thelight
transition_length: 250ms

Then in each bulb's yaml:

substitutions:
device_name: bulb1
friendly_name: Bulb 1
<<: !include reafoo_common.yaml
Edit this page on GitHub