tuya-local icon indicating copy to clipboard operation
tuya-local copied to clipboard

Request support for Hombli Smart Ceiling Fan

Open ZorkaTheDog opened this issue 6 months ago • 5 comments

Log message

2025-06-18 10:14:41.447 WARNING (MainThread) [custom_components.tuya_local.config_flow] Adding Hombli Smart Ceiling Fan device with product id rdadbolinmhmxuss
2025-06-18 10:14:41.690 WARNING (MainThread) [custom_components.tuya_local.config_flow] Cloud device spec:
[{"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": 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-06-18 10:14:41.690 WARNING (MainThread) [custom_components.tuya_local.config_flow] Device matches hombli_smart_ceiling_fan with quality of 101%. DPS: {"updated_at": 1750234458.4562724, "20": false, "21": "white", "22": 483, "23": 38, "24": "007f03bf00c4", "26": 0, "34": false, "60": false, "63": "forward", "64": 0, "66": false, "71": "6"}
2025-06-18 10:14:41.690 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

rdadbolinmhmxuss

Product Name

Hombli Smart Ceiling Fan

DPS information

{
  "result": {
    "properties": [
      {
        "code": "switch_led",
        "custom_name": "",
        "dp_id": 20,
        "name": "Lichtschakelaar",
        "time": 1749760809704,
        "type": "bool",
        "value": false
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 21,
        "time": 1749491495909,
        "type": "enum",
        "value": "white"
      },
      {
        "code": "bright_value",
        "custom_name": "",
        "dp_id": 22,
        "time": 1749674366934,
        "type": "value",
        "value": 17
      },
      {
        "code": "temp_value",
        "custom_name": "",
        "dp_id": 23,
        "time": 1749598062924,
        "type": "value",
        "value": 0
      },
      {
        "code": "colour_data",
        "custom_name": "",
        "dp_id": 24,
        "time": 1749491492833,
        "type": "string",
        "value": "007803e803e8"
      },
      {
        "code": "countdown",
        "custom_name": "",
        "dp_id": 26,
        "time": 1749303888885,
        "type": "value",
        "value": 0
      },
      {
        "code": "control_data",
        "custom_name": "",
        "dp_id": 28,
        "time": 1749228570594,
        "type": "string",
        "value": ""
      },
      {
        "code": "power_memory",
        "custom_name": "",
        "dp_id": 33,
        "time": 1749303888920,
        "type": "raw",
        "value": "AAEAAAPoA+gD6APo"
      },
      {
        "code": "do_not_disturb",
        "custom_name": "",
        "dp_id": 34,
        "time": 1749303888885,
        "type": "bool",
        "value": true
      },
      {
        "code": "switch_gradient",
        "custom_name": "",
        "dp_id": 35,
        "time": 1749799741508,
        "type": "raw",
        "value": "AAAAAAAAAA=="
      },
      {
        "code": "fan_switch",
        "custom_name": "",
        "dp_id": 60,
        "time": 1749799790580,
        "type": "bool",
        "value": false
      },
      {
        "code": "fan_direction",
        "custom_name": "",
        "dp_id": 63,
        "time": 1749508300631,
        "type": "enum",
        "value": "forward"
      },
      {
        "code": "fan_countdown_left",
        "custom_name": "",
        "dp_id": 64,
        "time": 1749602719680,
        "type": "value",
        "value": 0
      },
      {
        "code": "fan_beep",
        "custom_name": "",
        "dp_id": 66,
        "time": 1749799741455,
        "type": "bool",
        "value": false
      },
      {
        "code": "fan_speed_enum",
        "custom_name": "",
        "dp_id": 71,
        "time": 1749799776064,
        "type": "enum",
        "value": "3"
      },
      {
        "code": "wifireconnected",
        "custom_name": "",
        "dp_id": 101,
        "time": 1749228570586,
        "type": "string",
        "value": ""
      }
    ]
  },
  "success": true,
  "t": 1749800828363,
  "tid": "9b7e24ad482a11f0bc424a7a32184703"
}

Information about how the device functions

Not sure why my previous request was closed as not planned. I added more info from the log this time. If still not enough, tell me what's missing. I asked for this new device, because with the last update, the file I created got deleted and I had to restore it from a backup.

Device : Hombli Smart Ceiling Fan

The yaml below works as expected. Fan on/off, fan speed, fan direction, light on/off, light intensitie, light color, beep on/off, ....

products:
  - id: rdadbolinmhmxuss
    manufacturer: Hombli
    model: HBCH

entities:
  - entity: fan
    name: Ceiling Fan
    icon: mdi:fan
  
    dps:
      - id: 60
        type: boolean
        name: switch
        
      - id: 71
        type: string
        optional: true
        
        mapping:
          - dps_val: '3'
            value: 16
          - dps_val: '4'
            value: 33
          - dps_val: '5'
            value: 50
          - dps_val: '6'
            value: 66
          - dps_val: '7'
            value: 83
          - dps_val: '8'
            value: 100
        name: speed

      - id: 63
        type: string
        name: direction
        optional: true
          
  - entity: switch
    name: Beep Sound
    icon: mdi:volume-off
    dps:
      - id: 66
        type: boolean
        name: switch

  - entity: number
    name: Countdown Timer
    icon: mdi:timer
    dps:
      - id: 64
        type: integer
        name: value
        range:
          min: 0
          max: 1440
        unit: min

  - entity: switch
    name: Do Not Disturb
    icon: mdi:bell-off
    dps:
      - id: 34
        type: boolean
        name: switch

  - entity: light
    name: Ceiling Light
    icon: mdi:lightbulb
    dps:
      - id: 20
        name: switch
        type: boolean

      - id: 21
        name: color_mode
        type: string
        mapping:
          - dps_val: "white"
            value: color_temp
          - dps_val: "colour"
            value: hs
          - dps_val: "music"
            value: music
          - dps_val: "scene"
            value: scene
          

      - id: 22
        name: brightness
        type: integer
        optional: true
        range:
          min: 10
          max: 1000
        mapping : 
          - target_range:
              min: 10
              max: 1000
              
      - id: 23
        name: color_temp
        type: integer
        range:
          min: 0
          max: 1000
        mapping:
          - target_range:
              min: 3000
              max: 6000 
              
      - 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: v
            bytes: 2
            range:
              min: 0
              max: 1000

      - id: 25
        type: hex
        name: scene_data`

ZorkaTheDog avatar Jun 18 '25 09:06 ZorkaTheDog

Log is showing the config already exists.

make-all avatar Jun 18 '25 10:06 make-all

Sorry, the presence of your own config file is confusing the situation. It appears that no exact match for the config exists, but the report is still missing detailed dps info, so I will be unable to correct any issues there are in the config.

make-all avatar Jun 18 '25 11:06 make-all

I'm not sure I understand what information is still missing. I have access to the Tuuya Developer Platform, so just tell me which info I need to gather....

{
  "result": {
    "active_time": 1749228570,
    "bind_space_id": "72612969",
    "category": "fsd",
    "create_time": 1749228570,
    "custom_name": "Hombli Smart Ceiling Fan",
    "icon": "smart/icon/ay1554288005676QBjh1/17466199995103c32ca89.png",
    "id": "bfa2c72955e2424fd1kx94",
...
    "model": "HBCH",
    "name": "Hombli Smart Ceiling Fan",
    "product_id": "rdadbolinmhmxuss",
    "product_name": "Hombli Smart Ceiling Fan",
    "sub": false,
    "time_zone": "+02:00",
    "update_time": 1750187284,
...
  },

Properties

{
  "result": {
    "properties": [
      {
        "code": "switch_led",
        "custom_name": "",
        "dp_id": 20,
        "name": "Lichtschakelaar",
        "time": 1750238706644,
        "type": "bool",
        "value": false
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 21,
        "time": 1750233355907,
        "type": "enum",
        "value": "white"
      },
      {
        "code": "bright_value",
        "custom_name": "",
        "dp_id": 22,
        "time": 1750238694052,
        "type": "value",
        "value": 149
      },
      {
        "code": "temp_value",
        "custom_name": "",
        "dp_id": 23,
        "time": 1750233355907,
        "type": "value",
        "value": 38
      },
      {
        "code": "colour_data",
        "custom_name": "",
        "dp_id": 24,
        "time": 1750233355907,
        "type": "string",
        "value": "007f03bf00c4"
      },
      {
        "code": "countdown",
        "custom_name": "",
        "dp_id": 26,
        "time": 1750233355907,
        "type": "value",
        "value": 0
      },
      {
        "code": "control_data",
        "custom_name": "",
        "dp_id": 28,
        "time": 1749228570594,
        "type": "string",
        "value": ""
      },
      {
        "code": "power_memory",
        "custom_name": "",
        "dp_id": 33,
        "time": 1750233355961,
        "type": "raw",
        "value": "AAEAAAPoA+gD6APo"
      },
      {
        "code": "do_not_disturb",
        "custom_name": "",
        "dp_id": 34,
        "time": 1750233355907,
        "type": "bool",
        "value": false
      },
      {
        "code": "switch_gradient",
        "custom_name": "",
        "dp_id": 35,
        "time": 1750233355935,
        "type": "raw",
        "value": "AAAAAAAAAA=="
      },
      {
        "code": "fan_switch",
        "custom_name": "",
        "dp_id": 60,
        "time": 1750249479403,
        "type": "bool",
        "value": true
      },
      {
        "code": "fan_direction",
        "custom_name": "",
        "dp_id": 63,
        "time": 1750238702342,
        "type": "enum",
        "value": "forward"
      },
      {
        "code": "fan_countdown_left",
        "custom_name": "",
        "dp_id": 64,
        "time": 1750233355907,
        "type": "value",
        "value": 0
      },
      {
        "code": "fan_beep",
        "custom_name": "",
        "dp_id": 66,
        "time": 1750233355907,
        "type": "bool",
        "value": false
      },
      {
        "code": "fan_speed_enum",
        "custom_name": "",
        "dp_id": 71,
        "time": 1750249480850,
        "type": "enum",
        "value": "3"
      },
      {
        "code": "wifireconnected",
        "custom_name": "",
        "dp_id": 101,
        "time": 1749228570586,
        "type": "string",
        "value": ""
      }
    ]
  },

Instruction Set

{
  "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": "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_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": "{}"
      }
    ]
  },

ZorkaTheDog avatar Jun 18 '25 13:06 ZorkaTheDog

If you have access to platform.tuya.com, then please include the result of the "Query Things Data Model" API call as mentioned on the New Device template. Other calls above are incomplete, and don't include anything in the way of documentation to explain the more complex fields.

make-all avatar Jun 18 '25 14:06 make-all

{
  "result": {
    "model": "{\"modelId\":\"e1kbdxs8\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"\",\"properties\":[{\"abilityId\":20,\"accessMode\":\"rw\",\"code\":\"switch_led\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-tcl_function_light\",\"attribute\":\"1686\"},\"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-lengnuan\",\"attribute\":\"1668\"},\"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\":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\":60,\"accessMode\":\"rw\",\"code\":\"fan_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power2\",\"attribute\":\"1665\"},\"name\":\"风扇开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":63,\"accessMode\":\"rw\",\"code\":\"fan_direction\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_clockwise\",\"attribute\":\"1668\"},\"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\":71,\"accessMode\":\"rw\",\"code\":\"fan_speed_enum\",\"description\":\"两路风扇灯是\\\"low\\\",\\\"middle\\\",\\\"high\\\";五路风扇灯是\\\"3\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\", 分别对应 1-6 档\",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1540\"},\"name\":\"风扇档位\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"3\",\"4\",\"5\",\"6\",\"7\",\"8\"]}},{\"abilityId\":101,\"accessMode\":\"ro\",\"code\":\"wifireconnected\",\"description\":\"\",\"name\":\"WIFI reconnected\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}}]}]}"
  },
  "success": true,
  "t": 1750261549989,
  "tid": "4efee08b4c5b11f0bc424a7a32184703"
}

ZorkaTheDog avatar Jun 18 '25 15:06 ZorkaTheDog