devices.esphome.io
LEDVANCE SMART+ TABLE FRAME MULTICOLOR
LEDVANCE SMART+ TABLE FRAME MULTICOLOR
Device Type: lightElectrical Standard: globalBoard: bk72xx
LEDVANCE SMART+ TABLE FRAME MULTICOLOR
Product Details
- SMART+ Wifi Frame Table Powerbank USB RGB + W
- GTIN/EAN 4058075564466
GPIO Pinout
Pin | Function |
---|---|
GPIO7 | White Led PWM |
GPIO8 | Red Led PWM |
GPIO24 | Green Led PWM |
GPIO26 | Blue Led PWM |
Flashing Instructions
- Unknown if this light can be flashed without disassembly.
- Diffuser is glued/caulked in place, can be cleanly removed by clamping the base in a vise and applying force.
- cb3l module can be removed from base PCB for flashing using ltchiptool. See flashing instructions at libretiny.
Basic Configuration
substitutions: device_name: light-table-frame
esphome: name: ${device_name} friendly_name: ${device_name} min_version: 2024.7.0
bk72xx: board: cb3l
logger:
api:
ota:
wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap:
captive_portal:
# Custom PWM lookup table to allow for dimming at lowest level# Every 1% increment is mapped to 10-bit pwm value.globals: - id: pwm_lookup type: "std::vector<int>" initial_value: >- {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 21,22,23,25,27,29,31,33,35,37,39,41,43,45,48,51,54,57, 60,63,66,69,73,77,81,85,89,94,99,104,109,114,120,126, 132,138,145,152,159,167,175,183,192,201,211,221,231,242, 253,265,277,290,304,318,333,348,364,381,399,417,436,456, 477,499,522,546,571,597,624,653,683,714,747,781,817,854, 893,934,977,1023}
# Define PWM output channelsoutput: - platform: template type: float id: output_white write_action: - lambda: |- float clamped_state = std::max(0.0f, std::min(1.0f, state)); // Clamp between 0 and 1 int index = static_cast<int>(roundf(clamped_state * 100)); // Scale and round to nearest integer int pwm_value = id(pwm_lookup)[index]; // Get mapped value analogWriteResolution(10); analogWriteFrequency(1000); analogWrite(7, pwm_value); // Directly write raw PWM value - platform: template type: float id: output_red write_action: - lambda: |- float clamped_state = std::max(0.0f, std::min(1.0f, state)); // Clamp between 0 and 1 int index = static_cast<int>(roundf(clamped_state * 100)); // Scale and round to nearest integer int pwm_value = id(pwm_lookup)[index]; // Get mapped value analogWriteResolution(10); analogWriteFrequency(1000); analogWrite(8, pwm_value); // Directly write raw PWM value - platform: template type: float id: output_green write_action: - lambda: |- float clamped_state = std::max(0.0f, std::min(1.0f, state)); // Clamp between 0 and 1 int index = static_cast<int>(roundf(clamped_state * 100)); // Scale and round to nearest integer int pwm_value = id(pwm_lookup)[index]; // Get mapped value analogWriteResolution(10); analogWriteFrequency(1000); analogWrite(24, pwm_value); // Directly write raw PWM value - platform: template type: float id: output_blue write_action: - lambda: |- float clamped_state = std::max(0.0f, std::min(1.0f, state)); // Clamp between 0 and 1 int index = static_cast<int>(roundf(clamped_state * 100)); // Scale and round to nearest integer int pwm_value = id(pwm_lookup)[index]; // Get mapped value analogWriteResolution(10); analogWriteFrequency(1000); analogWrite(26, pwm_value); // Directly write raw PWM value
light: - platform: rgbw name: "Light" red: output_red green: output_green blue: output_blue white: output_white restore_mode: RESTORE_AND_ON color_interlock: True gamma_correct: 1.0 # this is handled by custom lookup table