Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request support for Lumary Smart Ceiling Fan Light A1 - added mostly working config #3023

Open
jldg opened this issue Mar 1, 2025 · 2 comments
Labels
full_info All info needed was provided new device Unsupported device

Comments

@jldg
Copy link

jldg commented Mar 1, 2025

Log message

2025-02-28 20:40:12.090 WARNING (MainThread) [custom_components.tuya_local.config_flow] Adding Lumary Smart Ceiling Fan Light A1 device with product id ujya7f5twjovh1kf
2025-02-28 20:40:12.381 WARNING (MainThread) [custom_components.tuya_local.config_flow] Device specification:
[{"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": "{}", "enumMap": {}}, {"id": 26, "name": "countdown", "type": "Integer", "format": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}", "enumMap": {}}, {"id": 34, "name": "do_not_disturb", "type": "Boolean", "format": "{}", "enumMap": {}}, {"id": 60, "name": "fan_switch", "type": "Boolean", "format": "{}", "enumMap": {}}, {"id": 61, "name": "fan_mode", "type": "Enum", "format": "{\"range\":[\"fresh\",\"nature\"]}", "enumMap": {}}, {"id": 62, "name": "fan_speed", "type": "Integer", "format": "{\"min\":1,\"max\":100,\"scale\":0,\"step\":1}", "enumMap": {}}, {"id": 63, "name": "fan_direction", "type": "Enum", "format": "{\"range\":[\"forward\",\"reverse\"]}", "enumMap": {}}, {"id": 64, "name": "fan_countdown_left", "type": "Integer", "format": "{\"unit\":\"min\",\"min\":0,\"max\":540,\"scale\":0,\"step\":1}", "enumMap": {}}, {"id": 66, "name": "fan_beep", "type": "Boolean", "format": "{}", "enumMap": {}}]
2025-02-28 20:40:12.381 WARNING (MainThread) [custom_components.tuya_local.config_flow] Device matches amari_ceiling_fanlight with quality of 47%. DPS: {"updated_at": 1740793198.2162201, "20": false, "21": "white", "22": 749, "23": 0, "24": "000003E803E8", "26": 0, "34": false, "60": false, "61": "fresh", "62": 50, "63": "forward", "64": 0, "103": true, "106": false, "107": false, "108": false, "110": 0, "111": 68, "119": false}
2025-02-28 20:40:12.381 WARNING (MainThread) [custom_components.tuya_local.config_flow] Include the previous log messages with any new device request to https://github.com/make-all/tuya-local/issues/

Product ID

ujya7f5twjovh1kf

Product Name

Lumary Smart Ceiling Fan Light A1- Model L-CFL18A1

DPS information

{
  "result": {
    "model": "{\"modelId\":\"e91954\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[{\"abilityId\":20,\"accessMode\":\"rw\",\"code\":\"switch_led\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power\",\"attribute\":\"1667\"},\"name\":\"灯开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":21,\"accessMode\":\"rw\",\"code\":\"work_mode\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"1664\"},\"name\":\"灯光模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}},{\"abilityId\":22,\"accessMode\":\"rw\",\"code\":\"bright_value\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-liangdu1\",\"attribute\":\"1664\"},\"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\":\"1664\"},\"name\":\"灯光色温\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":0,\"scale\":0,\"step\":1}},{\"abilityId\":24,\"accessMode\":\"rw\",\"code\":\"colour_data\",\"description\":\"用于调节彩光颜色、亮度、饱和度\",\"extensions\":{\"iconName\":\"icon-yanse\",\"attribute\":\"1664\"},\"name\":\"彩光\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},{\"abilityId\":26,\"accessMode\":\"rw\",\"code\":\"countdown\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_nav_timer\",\"attribute\":\"1664\"},\"name\":\"倒计时\",\"typeSpec\":{\"type\":\"value\",\"max\":86400,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"s\"}},{\"abilityId\":27,\"accessMode\":\"wr\",\"code\":\"music_data\",\"description\":\"音乐律动\",\"extensions\":{\"iconName\":\"icon-deng\",\"attribute\":\"128\"},\"name\":\"音乐灯\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},{\"abilityId\":28,\"accessMode\":\"wr\",\"code\":\"control_data\",\"description\":\"用于实时下发数据实现实时预览效果\",\"extensions\":{\"iconName\":\"icon-dp_box2\",\"attribute\":\"1664\"},\"name\":\"调节\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}},{\"abilityId\":33,\"accessMode\":\"rw\",\"code\":\"power_memory\",\"description\":\"断电之前状态保存\",\"extensions\":{\"iconName\":\"icon-Trigger\",\"attribute\":\"128\"},\"name\":\"断电记忆\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":34,\"accessMode\":\"rw\",\"code\":\"do_not_disturb\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"128\"},\"name\":\"勿扰模式\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":35,\"accessMode\":\"rw\",\"code\":\"switch_gradient\",\"description\":\"开启和关闭时灯的渐变速度\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"128\"},\"name\":\"开关渐变\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":51,\"accessMode\":\"rw\",\"code\":\"mix_rgbcw\",\"description\":\"支持白光彩光混光\",\"extensions\":{\"iconName\":\"icon-deng\",\"attribute\":\"640\"},\"name\":\"混光\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":60,\"accessMode\":\"rw\",\"code\":\"fan_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power2\",\"attribute\":\"1668\"},\"name\":\"风扇开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":61,\"accessMode\":\"rw\",\"code\":\"fan_mode\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_mode_fan\",\"attribute\":\"1664\"},\"name\":\"风扇模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"fresh\",\"nature\"]}},{\"abilityId\":62,\"accessMode\":\"rw\",\"code\":\"fan_speed\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-FanSpeed\",\"attribute\":\"1668\"},\"name\":\"风速\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":1,\"scale\":0,\"step\":1}},{\"abilityId\":63,\"accessMode\":\"rw\",\"code\":\"fan_direction\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"1664\"},\"name\":\"风向\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"forward\",\"reverse\"]}},{\"abilityId\":64,\"accessMode\":\"rw\",\"code\":\"fan_countdown_left\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_time3\",\"attribute\":\"1664\"},\"name\":\"风扇倒计时\",\"typeSpec\":{\"type\":\"value\",\"max\":540,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"min\"}},{\"abilityId\":66,\"accessMode\":\"rw\",\"code\":\"fan_beep\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_voice\",\"attribute\":\"1152\"},\"name\":\"声音\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":101,\"accessMode\":\"rw\",\"code\":\"segment_dimming\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"4096\"},\"name\":\"分段调光\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":103,\"accessMode\":\"rw\",\"code\":\"fan_beep1\",\"description\":\"\",\"extensions\":{\"attribute\":\"4\"},\"name\":\"蜂鸣器\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":106,\"accessMode\":\"rw\",\"code\":\"fan_shake\",\"description\":\"\",\"name\":\"摇风\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":107,\"accessMode\":\"rw\",\"code\":\"white_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power2\"},\"name\":\"白光开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":108,\"accessMode\":\"rw\",\"code\":\"color_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-power\",\"attribute\":\"4\"},\"name\":\"彩光开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":109,\"accessMode\":\"rw\",\"code\":\"dream_scene\",\"description\":\"\",\"name\":\"幻彩场景\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":110,\"accessMode\":\"rw\",\"code\":\"dream_strip_turn\",\"description\":\"\",\"name\":\"线序调节\",\"typeSpec\":{\"type\":\"value\",\"max\":5,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},{\"abilityId\":111,\"accessMode\":\"rw\",\"code\":\"dream_pxiels_num\",\"description\":\"\",\"name\":\"点数设置\",\"typeSpec\":{\"type\":\"value\",\"max\":130,\"min\":10,\"scale\":1,\"step\":1,\"unit\":\"\"}},{\"abilityId\":112,\"accessMode\":\"rw\",\"code\":\"countdown1\",\"description\":\"\",\"name\":\"倒计时\",\"typeSpec\":{\"type\":\"value\",\"max\":86400,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"s\"}},{\"abilityId\":119,\"accessMode\":\"rw\",\"code\":\"main_switch\",\"description\":\"\",\"name\":\"总开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":121,\"accessMode\":\"wr\",\"code\":\"music_data1\",\"description\":\"\",\"name\":\"APP音乐律动\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}}]}]}"
  },
  "success": true,
  "t": 1740789002142,
  "tid": "506c0ffff63411efa24016d34f0eda72"
}

Information about how the device functions

Product info
https://www.amazon.com/dp/B0C6ZSYPPH?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_1

Manuals
https://m.media-amazon.com/images/I/C1MceAmdrvL.pdf
https://m.media-amazon.com/images/I/817IERLaliL.pdf

@jldg jldg added the new device Unsupported device label Mar 1, 2025
@make-all make-all added the full_info All info needed was provided label Mar 1, 2025
@make-all make-all moved this to 🔖 Ready in Tuya Local Mar 1, 2025
@jldg
Copy link
Author

jldg commented Mar 9, 2025

This is my first attempt at creating a configuration file, so I'm not sure if it is completely correct. Everything seems to be working except I can't figure out how to turn on/off the rgb lights seperately from the color temp ones.
`name: Ceiling fan
products:

  • id: ujya7f5twjovh1kf
    manufacturer: Lumary
    model: Lumary Smart Ceiling Fan Light A1
    entities:
  • entity: light
    dps:
    • id: 20
      type: boolean
      name: switch
    • id: 21
      type: string
      name: color_mode
      mapping:
      • dps_val: white
        value: color_temp
      • dps_val: colour
        value: hs
      • dps_val: scene
        value: Scene
      • dps_val: music
        value: Music
    • id: 22
      type: integer
      name: brightness
      range:
      min: 10
      max: 1000
    • id: 23
      type: integer
      name: color_temp
      range:
      min: 0
      max: 1000
      mapping:
      • target_range:
        min: 2700
        max: 6500
    • id: 24
      name: rgbhsv
      optional: true
      type: hex
      format:
      • name: h
        bytes: 2
        range:
        min: 0
        max: 360
      • name: s
        bytes: 2
        range:
        min: 0
        max: 1000
      • name: v
        bytes: 2
        range:
        min: 0
        max: 1000
  • entity: number
    name: Light Timer
    translation_key: timer
    category: config
    dps:
    • id: 26
      type: integer
      optional: true
      name: value
      unit: min
      range:
      min: 0
      max: 86400
      mapping:
      • scale: 60
        step: 60
  • entity: switch
    name: Do Not Disturb
    dps:
    • id: 34
      type: boolean
      name: switch
  • entity: fan
    translation_only_key: fan_with_presets
    dps:
    • id: 60
      type: boolean
      name: switch
    • id: 61
      type: string
      name: preset_mode
      mapping:
      • dps_val: Nature
        value: nature
      • dps_val: Fresh
        value: fresh
    • id: 62
      type: integer
      optional: true
      name: speed
      range:
      min: 1
      max: 100
    • id: 63
      type: string
      optional: true
      name: direction
  • entity: number
    name: Fan Timer
    translation_key: timer
    category: config
    icon: "mdi:fan-clock"
    dps:
    • id: 64
      type: integer
      optional: true
      name: value
      unit: min
      range:
      min: 0
      max: 540
  • entity: switch
    name: Fan Beep
    dps:
    • id: 66
      type: boolean
      name: switch
      `

@jldg
Copy link
Author

jldg commented Mar 9, 2025

I don't know if any of this information is useful, device specification attribute:
`{
"result": {
"category": "fsd",
"functions": [
{
"code": "switch_led",
"dp_id": 20,
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"dp_id": 21,
"type": "Enum",
"values": "{"range":["white","colour","scene","music"]}"
},
{
"code": "bright_value",
"dp_id": 22,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "temp_value",
"dp_id": 23,
"type": "Integer",
"values": "{"min":0,"max":1000,"scale":0,"step":1}"
},
{
"code": "colour_data",
"dp_id": 24,
"type": "Json",
"values": "{}"
},
{
"code": "countdown",
"dp_id": 26,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "music_data",
"dp_id": 27,
"type": "String",
"values": "{"maxlen":255}"
},
{
"code": "control_data",
"dp_id": 28,
"type": "String",
"values": "{"maxlen":255}"
},
{
"code": "do_not_disturb",
"dp_id": 34,
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_switch",
"dp_id": 60,
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_mode",
"dp_id": 61,
"type": "Enum",
"values": "{"range":["fresh","nature"]}"
},
{
"code": "fan_speed",
"dp_id": 62,
"type": "Integer",
"values": "{"min":1,"max":100,"scale":0,"step":1}"
},
{
"code": "fan_direction",
"dp_id": 63,
"type": "Enum",
"values": "{"range":["forward","reverse"]}"
},
{
"code": "countdown_left_fan",
"dp_id": 64,
"type": "Integer",
"values": "{"unit":"min","min":0,"max":540,"scale":0,"step":1}"
},
{
"code": "fan_beep",
"dp_id": 66,
"type": "Boolean",
"values": "{}"
}
],
"lang_config": {},
"status": [
{
"code": "switch_led",
"dp_id": 20,
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"dp_id": 21,
"type": "Enum",
"values": "{"range":["white","colour","scene","music"]}"
},
{
"code": "bright_value",
"dp_id": 22,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "temp_value",
"dp_id": 23,
"type": "Integer",
"values": "{"min":0,"max":1000,"scale":0,"step":1}"
},
{
"code": "colour_data",
"dp_id": 24,
"type": "Json",
"values": "{}"
},
{
"code": "countdown",
"dp_id": 26,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "do_not_disturb",
"dp_id": 34,
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_switch",
"dp_id": 60,
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_mode",
"dp_id": 61,
"type": "Enum",
"values": "{"range":["fresh","nature"]}"
},
{
"code": "fan_speed",
"dp_id": 62,
"type": "Integer",
"values": "{"min":1,"max":100,"scale":0,"step":1}"
},
{
"code": "fan_direction",
"dp_id": 63,
"type": "Enum",
"values": "{"range":["forward","reverse"]}"
},
{
"code": "countdown_left_fan",
"dp_id": 64,
"type": "Integer",
"values": "{"unit":"min","min":0,"max":540,"scale":0,"step":1}"
},
{
"code": "fan_beep",
"dp_id": 66,
"type": "Boolean",
"values": "{}"
}
]
},
"success": true,
"t": 1740620423346,
"tid": "cfb3552af4ab11efa4a752139f6582df"
}'

Instruction set supported by device
'{
"result": {
"category": "fsd",
"functions": [
{
"code": "switch_led",
"desc": "switch led",
"name": "switch led",
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"desc": "work mode",
"name": "work mode",
"type": "Enum",
"values": "{"range":["white","colour","scene","music"]}"
},
{
"code": "bright_value",
"desc": "bright value",
"name": "bright value",
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "temp_value",
"desc": "temp value",
"name": "temp value",
"type": "Integer",
"values": "{"min":0,"max":1000,"scale":0,"step":1}"
},
{
"code": "colour_data",
"desc": "colour data",
"name": "colour data",
"type": "Json",
"values": "{}"
},
{
"code": "countdown",
"desc": "countdown",
"name": "countdown",
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "music_data",
"desc": "music data",
"name": "music data",
"type": "String",
"values": "{"maxlen":255}"
},
{
"code": "control_data",
"desc": "control data",
"name": "control data",
"type": "String",
"values": "{"maxlen":255}"
},
{
"code": "do_not_disturb",
"desc": "do not disturb",
"name": "do not disturb",
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_switch",
"desc": "fan switch",
"name": "fan switch",
"type": "Boolean",
"values": "{}"
},
{
"code": "fan_mode",
"desc": "fan mode",
"name": "fan mode",
"type": "Enum",
"values": "{"range":["fresh","nature"]}"
},
{
"code": "fan_speed",
"desc": "fan speed",
"name": "fan speed",
"type": "Integer",
"values": "{"min":1,"max":100,"scale":0,"step":1}"
},
{
"code": "fan_direction",
"desc": "fan direction",
"name": "fan direction",
"type": "Enum",
"values": "{"range":["forward","reverse"]}"
},
{
"code": "countdown_left_fan",
"desc": "countdown left fan",
"name": "countdown left fan",
"type": "Integer",
"values": "{"unit":"min","min":0,"max":540,"scale":0,"step":1}"
},
{
"code": "fan_beep",
"desc": "fan beep",
"name": "fan beep",
"type": "Boolean",
"values": "{}"
}
]
},
"success": true,
"t": 1740620263787,
"tid": "70972100f4ab11efbc93467cdf35819b"
}`

@jldg jldg changed the title Request support for Lumary Smart Ceiling Fan Light A1 Request support for Lumary Smart Ceiling Fan Light A1 - added mostly working config Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
full_info All info needed was provided new device Unsupported device
Projects
Status: 🔖 Ready
Development

No branches or pull requests

2 participants