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 Climative DH-20S Cube ION #2831

Closed
lewiatanx opened this issue Jan 21, 2025 · 7 comments
Closed

Request support for Climative DH-20S Cube ION #2831

lewiatanx opened this issue Jan 21, 2025 · 7 comments

Comments

@lewiatanx
Copy link

lewiatanx commented Jan 21, 2025

Log message

Device matches dry_pury_evo_dehumidifier with quality of 64%. DPS: {"updated_at": 1737501960.7607532, "1": false, "2": 55, "4": "low", "5": "dehumidify", "6": 76, "7": 20, "10": true, "16": false, "17": "cancel", "19": 0, "20": false, "23": 100, "24": "c", "102": 68}

Product ID

balkdhywva6asvis

Product Name

Climative DH-20S Cube ION

DPS information

{
  "result": {
    "model": "{\"modelId\":\"dyhy4k\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[
{\"abilityId\":1,\"accessMode\":\"rw\",\"code\":\"switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power\",\"attribute\":\"1\"},\"name\":\"开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":2,\"accessMode\":\"rw\",\"code\":\"dehumidify_set_value\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-shidu\"},\"name\":\"湿度设置\",\"typeSpec\":{\"type\":\"value\",\"max\":80,\"min\":30,\"scale\":0,\"step\":5,\"unit\":\"%\"}},
{\"abilityId\":4,\"accessMode\":\"rw\",\"code\":\"fan_speed_enum\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_fan_med\"},\"name\":\"风速\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"low\",\"high\"]}},
{\"abilityId\":5,\"accessMode\":\"rw\",\"code\":\"mode\",\"description\":\"除湿、干衣、睡眠\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"1024\"},\"name\":\"工作模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"dehumidify\",\"drying\",\"sleep\"]}},
{\"abilityId\":6,\"accessMode\":\"ro\",\"code\":\"humidity_indoor\",\"description\":\"\",\"name\":\"室内湿度\",\"typeSpec\":{\"type\":\"value\",\"max\":90,\"min\":20,\"scale\":0,\"step\":1,\"unit\":\"%\"}},
{\"abilityId\":7,\"accessMode\":\"ro\",\"code\":\"temp_indoor\",\"description\":\"\",\"name\":\"室内温度\",\"typeSpec\":{\"type\":\"value\",\"max\":38,\"min\":5,\"scale\":0,\"step\":1,\"unit\":\"℃\"}},
{\"abilityId\":10,\"accessMode\":\"rw\",\"code\":\"anion\",\"description\":\"ion\",\"extensions\":{\"iconName\":\"icon-dp_power2\",\"attribute\":\"1024\"},\"name\":\"负离子\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":16,\"accessMode\":\"rw\",\"code\":\"child_lock\",\"description\":\"lock\",\"extensions\":{\"iconName\":\"icon-dp_power2\",\"attribute\":\"1024\"},\"name\":\"童锁\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":17,\"accessMode\":\"rw\",\"code\":\"countdown_set\",\"description\":\"cancel=0h\",\"extensions\":{\"iconName\":\"icon-dp_time2\",\"attribute\":\"1024\"},\"name\":\"倒计时\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"cancel\",\"1h\",\"2h\",\"3h\",\"4h\",\"5h\",\"6h\",\"7h\",\"8h\",\"9h\",\"10h\",\"11h\",\"12h\",\"13h\",\"14h\",\"15h\",\"16h\",\"17h\",\"18h\",\"19h\",\"20h\",\"21h\",\"22h\",\"23h\",\"24h\"]}},
{\"abilityId\":19,\"accessMode\":\"ro\",\"code\":\"fault\",\"description\":\"传感器故障、低温、高温、低湿、水满、滤网提醒\",\"extensions\":{\"scope\":\"fault\"},\"name\":\"故障告警\",\"typeSpec\":{\"type\":\"bitmap\",\"label\":[\"E1\",\"CL\",\"CH\",\"LO\",\"FL\",\"Cleaning\"],\"maxlen\":6}},
{\"abilityId\":20,\"accessMode\":\"rw\",\"code\":\"filter_reset\",\"description\":\"配合滤网寿命使用\",\"extensions\":{\"iconName\":\"icon-dp_loop\",\"attribute\":\"1152\"},\"name\":\"滤芯复位\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":23,\"accessMode\":\"ro\",\"code\":\"filter_life\",\"description\":\"倒计时至0时,按滤芯复位键清零,重新计时。\",\"extensions\":{\"iconName\":\"icon-dp_time2\",\"attribute\":\"1152\"},\"name\":\"滤网寿命\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"%\"}},
{\"abilityId\":24,\"accessMode\":\"rw\",\"code\":\"temp_unit_convert\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"1152\"},\"name\":\"温标\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"c\",\"f\"]}},
{\"abilityId\":28,\"accessMode\":\"rw\",\"code\":\"runtime_total_reset\",\"description\":\"\",\"extensions\":{\"attribute\":\"1152\"},\"name\":\"重置(工作时间)\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":101,\"accessMode\":\"ro\",\"code\":\"number\",\"description\":\"\",\"name\":\"客户机型\",\"typeSpec\":{\"type\":\"value\",\"max\":99,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":102,\"accessMode\":\"ro\",\"code\":\"type\",\"description\":\"\",\"name\":\"设备类型\",\"typeSpec\":{\"type\":\"value\",\"max\":99,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}}]}]}"
  },
  "success": true,
  "t": 1737498844867,
  "tid": "d1dd52a8d84711ef9e5f9e9247cde4aa"
}
Properties:

{
  "result": {
    "properties": [
      {
        "code": "switch",
        "custom_name": "",
        "dp_id": 1,
        "time": 1737392637606,
        "type": "bool",
        "value": false
      },
      {
        "code": "dehumidify_set_value",
        "custom_name": "",
        "dp_id": 2,
        "time": 1734975902941,
        "type": "value",
        "value": 55
      },
      {
        "code": "fan_speed_enum",
        "custom_name": "",
        "dp_id": 4,
        "time": 1734975266990,
        "type": "enum",
        "value": "low"
      },
      {
        "code": "mode",
        "custom_name": "",
        "dp_id": 5,
        "time": 1734965072053,
        "type": "enum",
        "value": "dehumidify"
      },
      {
        "code": "humidity_indoor",
        "custom_name": "",
        "dp_id": 6,
        "time": 1737500259465,
        "type": "value",
        "value": 72
      },
      {
        "code": "temp_indoor",
        "custom_name": "",
        "dp_id": 7,
        "time": 1737496887662,
        "type": "value",
        "value": 20
      },
      {
        "code": "anion",
        "custom_name": "",
        "dp_id": 10,
        "time": 1734965067147,
        "type": "bool",
        "value": true
      },
      {
        "code": "child_lock",
        "custom_name": "",
        "dp_id": 16,
        "time": 1732362163936,
        "type": "bool",
        "value": false
      },
      {
        "code": "countdown_set",
        "custom_name": "",
        "dp_id": 17,
        "time": 1732362164021,
        "type": "enum",
        "value": "cancel"
      },
      {
        "code": "fault",
        "custom_name": "",
        "dp_id": 19,
        "time": 1737287592815,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "filter_reset",
        "custom_name": "",
        "dp_id": 20,
        "time": 1732362164261,
        "type": "bool",
        "value": false
      },
      {
        "code": "filter_life",
        "custom_name": "",
        "dp_id": 23,
        "time": 1733993530227,
        "type": "value",
        "value": 100
      },
      {
        "code": "temp_unit_convert",
        "custom_name": "",
        "dp_id": 24,
        "time": 1732362164432,
        "type": "enum",
        "value": "c"
      },
      {
        "code": "runtime_total_reset",
        "custom_name": "",
        "dp_id": 28,
        "time": 1698334665465,
        "type": "bool",
        "value": false
      },
      {
        "code": "number",
        "custom_name": "",
        "dp_id": 101,
        "time": 1698334665465,
        "type": "value",
        "value": 0
      },
      {
        "code": "type",
        "custom_name": "",
        "dp_id": 102,
        "time": 1732362164520,
        "type": "value",
        "value": 68
      }
    ]
  },
  "success": true,
  "t": 1737500260531,
  "tid": "1dbb00d7d84b11ef9e5f9e9247cde4aa"
}



Instruction set:

{
  "result": {
    "category": "cs",
    "functions": [
      {
        "code": "switch",
        "desc": "switch",
        "name": "switch",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "dehumidify_set_value",
        "desc": "dehumidify set value",
        "name": "dehumidify set value",
        "type": "Integer",
        "values": "{\"unit\":\"%\",\"min\":30,\"max\":80,\"scale\":0,\"step\":5}"
      },
      {
        "code": "fan_speed_enum",
        "desc": "fan speed enum",
        "name": "fan speed enum",
        "type": "Enum",
        "values": "{\"range\":[\"low\",\"high\"]}"
      },
      {
        "code": "mode",
        "desc": "mode",
        "name": "mode",
        "type": "Enum",
        "values": "{\"range\":[\"dehumidify\",\"drying\"]}"
      },
      {
        "code": "anion",
        "desc": "anion",
        "name": "anion",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "child_lock",
        "desc": "child lock",
        "name": "child lock",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "countdown_set",
        "desc": "countdown set",
        "name": "countdown set",
        "type": "Enum",
        "values": "{\"range\":[\"cancel\",\"1h\",\"2h\",\"3h\"]}"
      },
      {
        "code": "filter_reset",
        "desc": "filter reset",
        "name": "filter reset",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "temp_unit_convert",
        "desc": "temp unit convert",
        "name": "temp unit convert",
        "type": "Enum",
        "values": "{\"range\":[\"c\",\"f\"]}"
      },
      {
        "code": "runtime_total_reset",
        "desc": "runtime total reset",
        "name": "runtime total reset",
        "type": "Boolean",
        "values": "{}"
      }
    ]
  },
  "success": true,
  "t": 1737500408556,
  "tid": "75e10073d84b11ef9e5f9e9247cde4aa"
}

Information about how the device functions

Product page: https://wentsystem.com/product-pol-26330-Osuszacz-powietrza-Climative-DH-20-Cube-ION-20L.html
Product manual in Polish: https://wentsystem.com/data/include/cms/produkty/Climative/DH-20-Cube-ION/DH20S-CUBE-ION-Instrukcja1.pdf

The following example configuration for this dehumidifier, when I replaced it with another existing dehumidifier in the tuya-local configuration, worked correctly in version 2024.11.2.

name: "Climative Cube"
products:

  • id: balkdhywva6asvis
    name: Climative DH-20S Cube ION
    primary_entity:
    entity: humidifier
    class: dehumidifier
    dps:
    • id: 1
      name: switch
      type: boolean
    • id: 2
      name: humidity
      type: integer
      range:
      min: 30
      max: 80
      mapping:
      • step: 5
    • id: 5
      name: mode
      type: string
      mapping:
      • dps_val: dehumidify
        value: comfort
      • dps_val: drying
        value: laundry
      • dps_val: sleep
        value: sleep
    • id: 6
      name: current_humidity
      type: integer
    • id: 19
      type: bitfield
      name: fault_code
      secondary_entities:
  • entity: fan
    dps:
    • id: 1
      name: switch
      type: boolean
    • id: 5
      name: dehumidifier_mode
      type: string
      hidden: true
    • id: 4
      name: speed
      type: string
      mapping:
      • dps_val: low
        value: 50
        constraint: dehumidifier_mode
        conditions:
        • dps_val: drying
          invalid: true
      • dps_val: high
        value: 100
        constraint: dehumidifier_mode
        conditions:
        • dps_val: sleep
          invalid: true
  • entity: sensor
    class: humidity
    dps:
    • id: 6
      name: sensor
      type: integer
      unit: " %"
      class: measurement
  • entity: sensor
    class: temperature
    dps:
    • id: 7
      name: sensor
      type: integer
      unit: C
      class: measurement
  • entity: switch
    translation_key: ionizer
    category: config
    dps:
    • id: 10
      type: boolean
      name: switch
  • entity: lock
    translation_key: child_lock
    category: config
    dps:
    • id: 16
      type: boolean
      name: lock
  • entity: binary_sensor
    translation_key: tank_full
    category: diagnostic
    dps:
    • id: 19
      type: bitfield
      name: sensor
      mapping:
      • dps_val: 16
        value: true
      • value: false
  • entity: binary_sensor
    category: diagnostic
    translation_key: errors
    dps:
    • id: 19
      type: bitfield
      name: sensor
      mapping:
      • dps_val: 0
        value: false
      • dps_val: 16
        value: false
      • dps_val: 32
        value: false
      • dps_val: null
        value: false
      • value: true
@lewiatanx lewiatanx added the new device Unsupported device label Jan 21, 2025
@make-all make-all added the full_info All info needed was provided label Jan 22, 2025
@make-all make-all moved this to 🔖 Ready in Tuya Local Jan 22, 2025
make-all added a commit that referenced this issue Feb 1, 2025
@make-all make-all added awaiting confirmation Wating for confirmation the issue is solved unreleased Will be in next release and removed full_info All info needed was provided labels Feb 1, 2025
@make-all make-all moved this from 🔖 Ready to ✅ Done in Tuya Local Feb 1, 2025
@lewiatanx
Copy link
Author

Why is the file name climative dh 30s dehumidifier.yaml used and inside the code the correct device name is dh20s?
is this a mistake or an intentional act?

@make-all
Copy link
Owner

make-all commented Feb 1, 2025

Good catch, it is a typo.

make-all added a commit that referenced this issue Feb 1, 2025
@lewiatanx
Copy link
Author

Hi,
I added a configuration file to my TuyaLocal instance, the configuration went fine, but the device is disabled :(
There is a message: Device type is disabled by the configuration entry.
Is there anything else I need to unlock the device that is not officially added to TuyaLocal yet?

@make-all
Copy link
Owner

make-all commented Feb 4, 2025

I don't recognize this message. The config does not mark any entities as disabled, and the integration does not mark devices as disabled ever. I think it is referring to your local configuration entry, maybe something you have done accidentally, perhaps in a previous attempt at adding the same device, has disabled the config entry.

@lewiatanx
Copy link
Author

lewiatanx commented Feb 4, 2025

Yes, my mistake. Indeed, in previous attempts on the old version there were old entries. After cleaning and adding a new device, everything works correctly .
Regards and thank you for the great work!

I will test it all day and let you know if everything is OK.

@make-all make-all removed new device Unsupported device awaiting confirmation Wating for confirmation the issue is solved unreleased Will be in next release labels Feb 11, 2025
@lewiatanx
Copy link
Author

Hi make-all
Could you add one more sensor to the configuration:

  • entity: sensor
    class: humidity
    dps:
    - id: 6
    name: sensor
    type: integer
    unit: " %"
    class: measurement

This will allow easy use of the humidity sensor in automation. It works better and I use it.

I am also checking the timer, it probably only works on physical buttons, and "Filter remaining" which unfortunately does not apply to this dehumidifier.

When I check it thoroughly, I will let you know.

At this time, the most important thing for me is the additional humidity sensor.

best regards
lewiatanx

@make-all
Copy link
Owner

Humidity is already available on the humidifier entity, there is no need to add another sensor for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

2 participants