Tuya “Dreamlight” Pixel LEDs — Decode, Headers, Defaults, and Custom Palettes (Home Assistant + LocalTuya)
Tested on both:
- Genio RGB Pixel LED Curved Floor Lamp (FR-S1399-RGB-WF I006156)
- Genio 30 cm Twin Bar Light (I005282)
What to use where
- Dreamlight Music → Jazz (custom) = backlight (behind TV, reflecting off wall). Jazz respects custom band colours.
- Dreamlight Music → Spectrum (custom) = direct-view (you see the strip). Center-out analyser. Set placeholder to
00 00 00.
- Custom Dreamlight Scenes (dp51) = backlight. (behind TV, reflecting off wall) Smooth, non-reactive ambience.
How to send patterns in Home Assistant (LocalTuya)
LocalTuya set_dp takes only: device_id, dp, value.
Use entity_id only for light.turn_on.
Send pattern: the reliable sequence
- Turn the light on (brightness here, not in the body):
service: light.turn_on
data:
entity_id: light.YOUR_ENTITY
brightness: 180
- Select mode (
dp: 21) — "music" or "scene":
service: localtuya.set_dp
data:
device_id: "INSERT_YOUR_TUYA_DEVICE_ID"
dp: 21
value: music
- Wait ~300 ms (important).
- Send the body —
dp: 52 (Music) or dp: 51 (Scene):
# Example: Music → Jazz Smooth Rainbow
service: localtuya.set_dp
data:
device_id: "INSERT_YOUR_TUYA_DEVICE_ID"
dp: 52
value: AQEAAmRkAAAAZAAAZAA8ZAB4ZAC0ZADwZAEsZAAAAA==
Placement-ready examples
Music → Jazz (backlight voice mode)
service: light.turn_on
data: { entity_id: light.YOUR_ENTITY, brightness: 180 }
service: localtuya.set_dp
data: { device_id: "INSERT_YOUR_TUYA_DEVICE_ID", dp: 21, value: music }
service: localtuya.set_dp
data:
device_id: "INSERT_YOUR_TUYA_DEVICE_ID"
dp: 52
value: AQEAAmRkAAAAZAAAZAA8ZAB4ZAC0ZADwZAEsZAAAAA== # Jazz Smooth Rainbow
Music → Spectrum (direct-view; placeholder fix required)
service: light.turn_on
data: { entity_id: light.YOUR_ENTITY, brightness: 220 }
service: localtuya.set_dp
data: { device_id: "INSERT_YOUR_TUYA_DEVICE_ID", dp: 21, value: music }
service: localtuya.set_dp
data:
device_id: "INSERT_YOUR_TUYA_DEVICE_ID"
dp: 52
value: AQEDEGRkAAAAZAAAZAA8ZAB4ZAC0ZADwZAEsZAAAAA==
# └── after header, the 3-byte placeholder must be 00 00 00 → base64 "AAAA"
Scene → Follow (smooth rainbow backlight)
service: light.turn_on
data: { entity_id: light.YOUR_ENTITY, brightness: 140 }
service: localtuya.set_dp
data: { device_id: "INSERT_YOUR_TUYA_DEVICE_ID", dp: 21, value: scene }
service: localtuya.set_dp
data:
device_id: "INSERT_YOUR_TUYA_DEVICE_ID"
dp: 51
value: AckIMjIAAABkAChkAFBkAHhkAKBkAMhkAPBkARhkAUBk
Decode (short and plain)
Dreamlight Music body (dp52)
[Header ×6] [Placeholder ×3] [7 bands × (Sat, Hue_hi, Hue_lo)] [optional 0x00]
- Sat = 0–100. Hue = 0–359° (big-endian: hi, lo).
Known music headers (first 6 bytes → base64):
- Rock
01 01 00 03 64 64 → AQEAA2Rk
- Jazz
01 01 00 02 64 64 → AQEAAmRk ← uses your colours
- Classic
01 01 00 12 64 64 → AQEAEmRk
- Scroll
01 01 01 02 64 64 → AQEBAmRk
- Energy
01 01 02 00 64 64 → AQECAGRk
- Spectrum
01 01 03 10 64 64 → AQEDEGRk ← center-out analyser
Spectrum quirk (do this or colours get ignored):
The 3-byte placeholder after the header must be 00 00 00.
In base64 for Spectrum:
- Header
01 01 03 10 64 64 = AQEDEGRk
- Placeholder bad
01 00 00 = AQAA
- Placeholder good
00 00 00 = AAAA
So your dp52 should start like:
AQEDEGRkAAAA… (not AQEDEGRkAQAA…)
Dreamlight Scene body (dp51)
[01 C9 <style> 32 32 00] + 9 × [Hue_hi, Hue_lo, Sat]
- Sat = 0–100. Hue = 0–359° (big-endian).
Scene styles (header → base64):
- Gradient
01 C9 01 32 32 00 → AckBMjIA
- Follow
01 C9 08 32 32 00 → AckIMjIA
- Flowing
01 C9 0A 32 32 00 → AckKMjIA
- Rainbow
01 C9 0B 32 32 00 → AckLMjIA
- Switch
01 C9 10 32 32 00 → AckQMjIA
Defaults (reference)
Music (dp52) — set dp21 to "music" then dp52
Rock AQEAA2RkAAAAZAAAZAB4ZADwZAA8ZAC0ZAEsZAAAAA==
Jazz AQEAAmRkAAAAZAAAUAB4UADwUAA8UAC0UAEsUAAAAA==
Classic AQEAEmRkAAAAZAAAZAB4ZADwZAA8ZAC0ZAEsZAAAAA==
Scroll AQEBAmRkAQAAZAAAZAB4ZADwZAA8ZAC0ZAEsZAAAAA==
Energy AQECAGRkAQAAZAAAZAB4ZADwZAA8ZAC0ZAEsZA==
Spectrum AQEDEGRkAQAAZAAAZAB4ZADwZAA8ZAC0ZAEsZAAAAA==
Scene (dp51) — set dp21 to "scene" then dp51
Iceland Blue ARUKUlLgAABkAMFhALQwALVSAMRj
Glacier Express ARYKZGRgAABkAJJfAMZg
Sea of Clouds ARcDXl5gAABkADgvAB5cANVFARpk
Fireworks at Sea ARgCZGTgAABkALI5AQpkAS1kAT9k
Hut in the Snow ARkKVFRgAABkALEsAMBk
Firefly Night ARoDS0vgAABkAOA5AQlT
Northland ARsDX19gAABkAK45AMRdAPlk
Grassland ARwKWlrgAABSAJ1kAI5k
Northern Lights AR0DUlLgAABkAK5kAKZkAMFkAMxk
Late Autumn AR4KUlLgAABkABlkACJeACxbABRkAAxk
Dream Meteor AUcFTU0AAABkAQNFAMFD
Early Spring AUoIMjIAAABkAPdQAClPAQ04AKMn
Spring Outing AUkHDg4AAABkANo3AVJBAFw3
Night Service AUoIMjIAAABkAPdQAClPAQ04AKMn
Wind Chime AUsJMjIAAABkAQNFAEE6ACVLAF5C
City Lights AUwMMjIAAABkANhNAMFDAQNFAFw3
Colour Marbles AU0NMjIAAABkAChkAF5CAMFkAP9Q
Summer Train AU4OMjIAAABkAD5fAL5c
Christmas Eve AU8PGRkAAABkALxkAC1OAABkAGQ8
Dream Sea AVAQMjIAAABkAOZHAGQ8ARlNALg5
Game AR8CX19gAABkARBkANJkAK1kAItk
Holiday ASAKVVVgAABkAMJYAT4zAP9GAR1k
Work ASEDPDxgAABkAL8YAQQX
Party ASIEZGRgAABkANdcALxTADceACw/AWE/
Trend ASMCZGRgAABkAQhLALEvAM1X
Sports ASQKS0tgAABkALwmANZVARhkAPlN
Meditation ASUDQ0NgAABkALc1AJtUAM1h
Dating ASYBWVngAABkARlHAUk9AM1hACZk
Christmas ASkCYWHgAABkAAtkANlkACtkAJFkALlk
Valentines Day ASoBZGRgAABkARVkAQVkAUVkAS9k
Halloween ASsDWlrgAABkAABXARZkANpkALNkAJVk
Thanksgiving Day ASwKSEhgAABkAD1kAQxbALpJABdh
Forest Day AS0CWVlgAABkAJxjALxiAHtg
Mother's Day AS4DWlpgAABkAT42AQxWAR8j
Father's Day AS8CZGTgAABkANxCALZKAOFN
Football Day ATACXl5gAABkAABkAHhkALtk
Summer Idyll ATMDUlJgAABkAIhQANI5APsn
Dream of the Sea ATQDXV1gAABkAPc2ATUrAMY0AJEp
Love and Dream ATUDUlJgAABNARJiATBd
Spring Fishing ATYCSUlgAABkAGY8ADxJAB5k
Neon World ATcKWlpgAABkADNYABhkAQBFAONeAKww
Dreamland ATgCV1fgAABkAQxkARpBAUdZABVkADw4
Summer Wind ATkDSEjgAABkAFlkALNH
Planet Journey AToCXV3gAABNALReARxkAOhJAMZf
Spectrum Rainbow AckLMjIAAABkAABkAChkADxkAHhkALRkAPBkAQ5kASxk
Spectrum Flowing AckKMjIAAABkAABkAChkADxkAHhkALRkAPBkAQ5kASxk
Spectrum Follow AckIMjIAAABkAABkAChkADxkAHhkALRkAPBkAQ5kASxk
Spectrum Gradient AckBMjIAAABkAABkAChkADxkAHhkALRkAPBkAQ5kASxk
Spectrum Switch AckQMjIAAABkAABkAChkADxkAHhkALRkAPBkAQ5kASxk
My custom palettes (drop-in)
Scene (dp51)
Dense Rainbow AckIMjIAAKBkAKpkALRkAL5kAMhkANJkANxkAOZkAPBk
Pastel Rainbow AckIMjIAAAA8AB48ADw8AFo8AHg8AJY8ALQ8ANI8APA8
Warm Ember AckIMjIAAABkAApfABRaAB5VAChQADJLADxGADJLAChV
Ocean Teal AckIMjIAAKBkAKpkALRkAL5kAMhkANJkANxkAOZkAPBk
Neon Synthwave AckIMjIAASxkAUBkAVRkAABkABRkAChkADxkALRkAPBk
Theatre AckIMjIAAAAoADwoAHgoALQoAPAoASwoAAAoADwoAHgo
Fire and Ice AckIMjIAAABkANJkAB5kALRkADxkAJZkAFpkAHhkAABk
Smooth Rainbow AckIMjIAAABkAChkAFBkAHhkAKBkAMhkAPBkARhkAUBk
Aurora Sweep AckIMjIAAIJkAIxkAJZkAKBkAKpkALRkAL5kAMhkANJk
Cinematic Sunset AckIMjIAAABkAApfABRaAB5VAChQADJLAChGABlBAAo8
Pink Peach Sunset AckIMjIAAUpkAVRfAV5aAABVAApQABRLAB5GABRQAApa
Party Pop AckIMjIAAABkAHhkAPBkADxkALRkASxkAB5kANJkAFpk
Forest Canopy AckIMjIAAABkAHhkAPBkADxkALRkASxkAB5kANJkAFpk
Firestorm AckIMjIAAABkAApfABRaAB5VAChQADJLADxGAB5QAABk
Abyssal Fade AckIMjIAAKBkAKpfALRaAL5VAMhQANJLANxGAOY8APAy
Music – Jazz (dp52; best for backlight voice)
Smooth Rainbow Jazz AQEAAmRkAAAAZAAAZAA8ZAB4ZAC0ZADwZAEsZAAAAA==
Warm Beat Jazz AQEAAmRkAAAAZAAAXwAPWgAeVQAtWgAeXwAPZAAAAA==
Cool Blues Jazz AQEAAmRkAAAARgC0SwC+UADIVQDSUADcSwDmRgDwAA==
Pastel Rainbow Jazz AQEAAmRkAAAAMgAAMgA8MgB4MgC0MgDwMgEsMgAAAA==
Red Blue Jazz AQEAAmRkAAAAZAAAZADwZAAAZADwZAAAZADwZAAAAA==
Cyan Teal Jazz AQEAAmRkAAAAZAC0ZAC0ZAC0ZAC0ZAC0ZAC0ZAC0AA==
Cyan Magenta Jazz AQEAAmRkAAAAZAC0ZADSZADwZAEOZAEsZAFKZAAAAA==
Low-sat whites Jazz AQEAAmRkAAAACgAAFAAAHgAAKAAAHgAAFAAACgAAAA==
Music – Spectrum (dp52; direct-view; placeholder fixed)
Smooth Rainbow Spectrum AQEDEGRkAAAAZAAAZAA8ZAB4ZAC0ZADwZAEsZAAAAA==
Warm Beat Spectrum AQEDEGRkAAAAZAAAXwAPWgAeVQAtWgAeXwAPZAAAAA==
Cool Blues Spectrum AQEDEGRkAAAARgC0SwC+UADIVQDSUADcSwDmRgDwAA==
Pastel Rainbow Spectrum AQEDEGRkAAAAMgAAMgA8MgB4MgC0MgDwMgEsMgAAAA==
Red Blue Spectrum AQEDEGRkAAAAZAAAZADwZAAAZADwZAAAZADwZAAAAA==
Cyan Teal Spectrum AQEDEGRkAAAAZAC0ZAC0ZAC0ZAC0ZAC0ZAC0ZAC0AA==
Cyan Magenta Spectrum AQEDEGRkAAAAZAC0ZADSZADwZAEOZAEsZAFKZAAAAA==
Low-sat whites Spectrum AQEDEGRkAAAACgAAFAAAHgAAKAAAHgAAFAAACgAAAA==
Whites (dp24)
Warm White 002302bc03e8
Cool White 00dc000003e8
Example NodeRED Flow
Gotchas (read this)
- Always:
light.turn_on → dp:21 → ~300 ms delay → dp:52/51.
- Brightness: set with
light.turn_on (not in dp51/dp52).
That’s it. Copy the YAML blocks, replace light.YOUR_ENTITY and "INSERT_YOUR_TUYA_DEVICE_ID", and you’re off.