-
Notifications
You must be signed in to change notification settings - Fork 909
Description
Log message
[custom_components.tuya_local.config_flow] Device matches lytmi_hdmisync_backlight with quality of 82%. DPS: {"updated_at": 1756121708.136649, "20": false, "22": 1000, "23": 10, "24": "000000000386", "25": "82000000000000000000000000000000", "101": 1, "105": 0, "107": true, "108": 10, "109": false, "113": 100}
Product ID
9cgdcqpe9iqg9tjn
Product Name
FancyLEDS 3 HDMI 2.1 Fancy Sync Box
DPS information
{
"result": {
"model": "{\"modelId\":\"e1kj5m84\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"\",\"properties\":[
{\"abilityId\":20,\"accessMode\":\"rw\",\"code\":\"switch_led\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power\",\"attribute\":\"1027\"},\"name\":\"开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":21,\"accessMode\":\"rw\",\"code\":\"work_mode\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"1024\"},\"name\":\"模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}},
{\"abilityId\":22,\"accessMode\":\"rw\",\"code\":\"bright_value\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-liangdu1\",\"attribute\":\"1026\"},\"name\":\"亮度值\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":10,\"scale\":0,\"step\":1}},
{\"abilityId\":23,\"accessMode\":\"rw\",\"code\":\"temp_value\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_half\",\"attribute\":\"1154\"},\"name\":\"冷暖值\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":0,\"scale\":0,\"step\":1}},
{\"abilityId\":24,\"accessMode\":\"rw\",\"code\":\"colour_data\",\"description\":\"类型:字符;\\nValue: 000011112222;\\n0000:H(色度:0-360,0X0000-0X0168);\\n1111:S (饱和:0-1000, 0X0000-0X03E8);\\n2222:V (明度:0-1000,0X0000-0X03E8)\",\"extensions\":{\"iconName\":\"icon-yanse\",\"attribute\":\"1024\"},\"name\":\"彩光\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},
{\"abilityId\":25,\"accessMode\":\"rw\",\"code\":\"scene_data\",\"description\":\"类型:字符; \\nValue: 0011223344445555666677778888;\\n00:情景号;\\n11:单元切换间隔时间(0-100);\\n22:单元变化时间(0-100);\\n33:单元变化模式(0静态1跳变2渐变);\\n4444:H(色度:0-360,0X0000-0X0168);\\n5555:S (饱和:0-1000, 0X0000-0X03E8);\\n6666:V (明度:0-1000,0X0000-0X03E8);\\n7777:白光亮度(0-1000);\\n8888:色温值(0-1000);\\n注:数字1-8的标号对应有多少单元就有多少组\",\"extensions\":{\"iconName\":\"icon-shoucang\",\"attribute\":\"1024\"},\"name\":\"场景\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},
{\"abilityId\":26,\"accessMode\":\"rw\",\"code\":\"countdown\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_nav_timer\",\"attribute\":\"1026\"},\"name\":\"倒计时\",\"typeSpec\":{\"type\":\"value\",\"max\":86400,\"min\":0,\"scale\":0,\"step\":1}},
{\"abilityId\":27,\"accessMode\":\"wr\",\"code\":\"music_data\",\"description\":\"类型:字符串;\\nValue: 011112222333344445555;\\n0: 变化方式,0表示直接输出,1表示渐变;\\n1111:H(色度:0-360,0X0000-0X0168);\\n2222:S (饱和:0-1000, 0X0000-0X03E8);\\n3333:V (明度:0-1000,0X0000-0X03E8);\\n4444:白光亮度(0-1000);\\n5555:色温值(0-1000)\",\"extensions\":{\"iconName\":\"icon-dp_mic\",\"attribute\":\"1024\"},\"name\":\"音乐律动\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},
{\"abilityId\":28,\"accessMode\":\"wr\",\"code\":\"control_data\",\"description\":\"类型:字符串 ;\\nValue: 011112222333344445555 ;\\n0: 变化方式,0表示直接输出,1表示渐变;\\n1111:H(色度:0-360,0X0000-0X0168);\\n2222:S (饱和:0-1000, 0X0000-0X03E8);\\n3333:V (明度:0-1000,0X0000-0X03E8);\\n4444:白光亮度(0-1000);\\n5555:色温值(0-1000)\",\"extensions\":{\"iconName\":\"icon-dp_box2\",\"attribute\":\"1024\"},\"name\":\"调节\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},
{\"abilityId\":101,\"accessMode\":\"rw\",\"code\":\"r_l\",\"description\":\"0:左边安装,1: 右边安装\",\"name\":\"安装位置\",\"typeSpec\":{\"type\":\"value\",\"max\":1,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":102,\"accessMode\":\"rw\",\"code\":\"strip_bar\",\"description\":\"0:灯带,1: 灯柱\",\"name\":\"灯具类型\",\"typeSpec\":{\"type\":\"value\",\"max\":1,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":103,\"accessMode\":\"wr\",\"code\":\"control_r_l\",\"description\":\"0:进入安装位 置设置; 1:完 成并退出安装 位置设置 2:取 消并退出安装 位置设置\",\"name\":\"安装位置设置\",\"typeSpec\":{\"type\":\"value\",\"max\":2,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":104,\"accessMode\":\"wr\",\"code\":\"scen\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"情景\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"screen\",\"video\",\"game\",\"rainbow\",\"fire\",\"lighting\",\"firework\",\"star\",\"water\",\"particle\",\"fluid\",\"gravity\",\"newton\",\"breath\",\"static_color\",\"music_dimmer\",\"screen_rhythm\",\"music_yuedong\",\"music_freq\",\"music_elect\",\"music_smooth\"]}},
{\"abilityId\":105,\"accessMode\":\"rw\",\"code\":\"hdmi_switch\",\"description\":\"0-3:HDMI1-HDMI4\",\"name\":\"切换HDMI\",\"typeSpec\":{\"type\":\"value\",\"max\":3,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":106,\"accessMode\":\"rw\",\"code\":\"status_report\",\"description\":\"==============================================================\\n数据类型:raw类型\\n字节数:5\\n第零字节:HDMI输入状态及选中状态指示,\\n\\t第0~3位:分别表示输入0~3的HDMI通道插入状态;\\n\\t第4~5位:表示选中的输入通道\\n\\t如HDMI 通道0和通道2插入(且选中第1通道),则当前字节表示:0x15==>0b0001 0101\\n\\t\\n第一字节:HDMI输出插入状态识别指示,\\n\\t数值0:未能识别或未插入输出设备\\n\\t数值1:成功识别输出设备\\n\\n第二字节:HDR/SDR状态指示:\\n\\t数值0:SDR\\n\\t数值1:HDR\\n\\n第三字节:灯带第一通道的像素数\\n第四字节:灯带第二通道的像素数\",\"name\":\"接口状态提示\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},
{\"abilityId\":107,\"accessMode\":\"rw\",\"code\":\"hdmi_enable\",\"description\":\"\",\"name\":\"HDMI使能\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":108,\"accessMode\":\"rw\",\"code\":\"light_db\",\"description\":\"随屏模式下灯光的灵敏度(柔化程度)。 0:最低,1000:最高,画面实时跟随\",\"name\":\"灯光灵敏度\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":0,\"scale\":1,\"step\":10,\"unit\":\"\"}},
{\"abilityId\":109,\"accessMode\":\"rw\",\"code\":\"tv_sync_onoff\",\"description\":\"0:关闭,1:开启\",\"name\":\"TV同步开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":110,\"accessMode\":\"wr\",\"code\":\"tv\",\"description\":\"\",\"name\":\"TV控制\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"DIR_UP\",\"DIR_RIGHT\",\"DIR_DOWN\",\"DIR_LEFT\",\"FUNC_OK\",\"FUNC_BACK\",\"FUNC_HOME\",\"FUNC_POWER\",\"SOUND_ADD\",\"SOUND_SUB\",\"SOUND_OP\",\"SETTING\"]}},
{\"abilityId\":111,\"accessMode\":\"wr\",\"code\":\"hotkey\",\"description\":\"\",\"name\":\"快捷控制\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"HOTKEY0\",\"HOTKEY1\"]}},
{\"abilityId\":112,\"accessMode\":\"rw\",\"code\":\"hdr_auto\",\"description\":\"\",\"name\":\"hdr_auto\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":113,\"accessMode\":\"rw\",\"code\":\"color_enhance\",\"description\":\"在hdr自动识别关闭的时候,可手动调节hdr颜色增强程度\",\"name\":\"color_enhance\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}}]}]}"
},
"success": true,
"t": 1756140730022,
"tid": "d754a43b81d311f0a25e9ed280a40f39"
}
Details
[
{
"id":20,
"name":"switch_led",
"type":"Boolean",
"format":"{}",
"enumMap":{
}
},
{
"id":21,
"name":"work_mode",
"type":"Enum",
"format":"{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}",
"enumMap":{
}
},
{
"id":22,
"name":"bright_value",
"type":"Integer",
"format":"{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}",
"enumMap":{
}
},
{
"id":23,
"name":"temp_value",
"type":"Integer",
"format":"{\"min\":0,\"max\":1000,\"scale\":0,\"step\":1}",
"enumMap":{
}
},
{
"id":24,
"name":"colour_data",
"type":"Json",
"format":"{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}",
"enumMap":{
}
},
{
"id":25,
"name":"scene_data",
"type":"Json",
"format":"{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}",
"enumMap":{
}
},
{
"id":26,
"name":"countdown",
"type":"Integer",
"format":"{\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}",
"enumMap":{
}
}
]
Information about how the device functions
This is the updated HDMI 2.1 version of the already supported 2.0 device (listed as "Fancy LEDs screen sync light 2.0" in DEVICES.md)
My model has 3 HDMI ports (https://fancyleds.com/en-eu/products/3-hdmi-2-1-fancy-sync-box)
There is also a single HDMI port model, but I don't have one and can't say if there are differences.
As listed in the logs, the closest match the integration finds is "lytmi_hdmisync_backlight", which I believe is "Lytmi Fantasy/Neo 3 HDMI sync backlight" in DEVICES.md
After quite a bit of tinkering, I got it to work in a quite usable way using the lytmi device and protocol 3.4.
However, there are a few issues - here are my findings:
The native app supports choosing color temperature directly if the Scene "Calm" is selected (which corresponds to "Reading" in Tuya Local).
However, in HA we only have the standard RGB selection in all cases.
This is due to two reasons:
- dps 23 is not present (which controls the color temperature value)
- even if we had it, Tuya Local only reports one color mode back to HA, so it will always default to the rgbhsv DPS
One hacky workaround I found was to edit the file tuya_local/devices/lytmi_hdmisync_backlight.yaml and create a second light entity that exposes only the temperature control.
This creates two light entities (one with only a RGB color wheel and another with only a Temperature selector), and each one only works if we have the correct scene selected. It's a bit clunky, but it works.
Not sure what the cleanest way would be - if Tuya Local can report both mode color modes back to HA that would give us both sliders on the UI of the same light device, which would be nicer.
entities:
- entity: light
name: HDMI sync backlight RGB
dps:
- id: 20
name: switch
type: boolean
- id: 22
name: brightness
type: integer
range:
min: 10
max: 1000
- id: 24
name: rgbhsv
type: hex
format:
- name: h
bytes: 2
range:
min: 0
max: 360
- name: s
bytes: 2
range:
min: 0
max: 1000
- name: w
bytes: 2
range:
min: 0
max: 1000
- id: 107
type: boolean
name: unknown_107
- entity: light
name: HDMI sync backlight White
dps:
- id: 20
name: switch
type: boolean
- id: 22
name: brightness
type: integer
range:
min: 10
max: 1000
- id: 23
name: color_temp
type: integer
range:
min: 10
max: 1000
mapping:
- target_range:
min: 2700
max: 6500
- id: 107
type: boolean
name: unknown_107
Finally, the naming of things is different, even though there's an equivalent of almost everything. The "Scenes" are the master control of functionality, but in the app they are grouped in 3 sections/tabs: Sync, Sound & Scene
- "Sync" modes
- Movie = Low
- Leisure = Medium
- Gaming = High
- "Degree of diffusion" = "Speed of Diffusion"
- While one of these scenes is selected, color options on the main Light control do nothing
- "Sound" modes
- Classic = Standard
- Pop = Punk
- Rock = Rock
- Absolute = Ultimate
- Electror = Electro
- Ambient = Retro
- While one of these scenes is selected, color options on the main Light control do nothing
- "Scene" modes, but with NO color controls
- Rainbow = Rainbow
- Fire = Fire
- Firework = Fireworks
- "Scene" modes, but WITH color controls
- Reading = Calm
- On the app, this enables a color temperature selector and no RGB
- Star = Star
- Drip = Rain
- Practice = Atom
- Flow = Smooth
- Ball = Bounce
- Swing = Kinectic
- Breath = Breathe
- Pure = Color
- This last one is the only pure static color choice
- Reading = Calm
- "TV synchronization switch" = "Scene mode CEC"
- "Saturation" (for HDR and Dolby Vision) - could not find anything related to this. In the app it offers "Low", "Medium", "High"
If there's anything else I can provide, let me know
Metadata
Metadata
Assignees
Labels
Projects
Status