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 Klarstein Amazonia (dishwasher) #2433

Open
Smandurlo opened this issue Oct 24, 2024 · 6 comments
Open

Request support for Klarstein Amazonia (dishwasher) #2433

Smandurlo opened this issue Oct 24, 2024 · 6 comments
Labels
awaiting confirmation Wating for confirmation the issue is solved device improvement Improvement to an existing device config unreleased Will be in next release

Comments

@Smandurlo
Copy link

Smandurlo commented Oct 24, 2024

Log message

2024-10-24 22:12:33.140 DEBUG (MainThread) [custom_components.tuya_local.device] Remote control received {"1": false, "2": false, "6": 0, "7": "neutral", "8": 0, "12": 0, "16": "unwash", "17": 23, "101": false, "102": false, "103": true, "104": false, "105": false, "106": false, "107": false, "108": "none", "109": "alt", "110": false, "111": "2", "112": "2", "full_poll": true}
2024-10-24 22:12:33.149 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values
2024-10-24 22:12:33.150 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values
2024-10-24 22:13:04.782 DEBUG (MainThread) [custom_components.tuya_local.device] Remote control received {"1": false, "2": false, "6": 0, "7": "neutral", "8": 0, "12": 0, "16": "unwash", "17": 23, "101": false, "102": false, "103": true, "104": false, "105": false, "106": false, "107": false, "108": "none", "109": "alt", "110": false, "111": "2", "112": "2", "full_poll": true}
2024-10-24 22:13:04.789 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values
2024-10-24 22:13:04.790 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values
2024-10-24 22:13:36.321 DEBUG (MainThread) [custom_components.tuya_local.device] Remote control received {"1": false, "2": false, "6": 0, "7": "neutral", "8": 0, "12": 0, "16": "unwash", "17": 23, "101": false, "102": false, "103": true, "104": false, "105": false, "106": false, "107": false, "108": "none", "109": "alt", "110": false, "111": "2", "112": "2", "full_poll": true}
2024-10-24 22:13:36.328 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values
2024-10-24 22:13:36.330 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 7 (sensor), unable to determine valid values

VM125:40 {"1":"Switch","2":"Start","6":"Appointment Time","7":"Work Mode","8":"Remain Time","12":"Fault","16":"Clean State","17":"Temp Current","101":"Child Lock","102":"Timer","103":"Door","104":"Rinse","105":"Salt light","106":"Faucet","107":"Pause","108":"Function","109":"Alt Function","110":"Auto Open","111":"Water softener setting","112":"Brightening Setting"}

DPS information

{
"result": {
"model": "{"modelId":"000002ru9r","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[
{"abilityId":1,"accessMode":"rw","code":"switch","description":"","name":"开关","typeSpec":{"type":"bool"}},
{"abilityId":2,"accessMode":"rw","code":"start","description":"启动:启动当前洗涤程序-0x03\n退出:退出当前洗涤程序-0x01","name":"启动","typeSpec":{"type":"bool"}},
{"abilityId":6,"accessMode":"rw","code":"appointment_time","description":"【非必选】可选预约功能","name":"预约时间","typeSpec":{"type":"value","max":1440,"min":0,"scale":0,"step":1,"unit":"min"}},
{"abilityId":7,"accessMode":"rw","code":"work_mode","description":"洗涤程序选择\nneutral:空档","name":"工作模式","typeSpec":{"type":"enum","range":["neutral","eco","90min","glass","rapid","auto","intensive","hygiene","universal","soak","self_cleanling","party","babycare","58min","allinone","autoheavy","silence","autodaily","autoglass","fruit"]}},
{"abilityId":8,"accessMode":"ro","code":"remain_time","description":"","name":"剩余时间","typeSpec":{"type":"value","max":1440,"min":0,"scale":0,"step":1,"unit":"分钟"}},
{"abilityId":12,"accessMode":"ro","code":"fault","description":"0x01(进水故障)\n0x02(排水故障)\n0x03(加热故障)\n0x04(溢流故障)\n0x05(通信故障)\n0x06(温度传感器故障)\n0x07(压力开关报警)\n0x08(分水阀定位故障,本机型不涉及)\n0x0c(BLDC故障)\n0x0e(盖板电机故障)","extensions":{"scope":"fault"},"name":"故障告警","typeSpec":{"type":"bitmap","label":["01","02","03","04","05","06","07","08","0c","0e"],"maxlen":10}},
{"abilityId":16,"accessMode":"ro","code":"clean_state","description":"unwash:未洗涤\npre_wash:预洗\nwash:主洗\nrinse:漂洗\ndrying:干燥\nend:结束\nstandby:待机","name":"洗涤状态","typeSpec":{"type":"enum","range":["unwash","pre_wash","wash","rinse","drying","end","standby"]}},
{"abilityId":17,"accessMode":"ro","code":"temp_current","description":"","name":"当前温度","typeSpec":{"type":"value","max":255,"min":0,"scale":0,"step":1,"unit":"℃"}},
{"abilityId":101,"accessMode":"rw","code":"child_lock","description":"","name":"童锁","typeSpec":{"type":"bool"}},
{"abilityId":102,"accessMode":"rw","code":"appointment","description":"","name":"预约开关","typeSpec":{"type":"bool"}},
{"abilityId":103,"accessMode":"ro","code":"door","description":"","name":"门开关","typeSpec":{"type":"bool"}},
{"abilityId":104,"accessMode":"ro","code":"rinse_light","description":"不缺/缺亮碟剂","name":"亮碟剂","typeSpec":{"type":"bool"}},
{"abilityId":105,"accessMode":"ro","code":"salt_light","description":"不缺/缺盐","name":"盐灯","typeSpec":{"type":"bool"}},
{"abilityId":106,"accessMode":"ro","code":"water_failure","description":"熄灭水龙头图标/点亮图标","name":"水龙头","typeSpec":{"type":"bool"}},
{"abilityId":107,"accessMode":"rw","code":"pause","description":"暂停:运行中的程序暂停;value=true\n继续:运行中的程序暂停状态到暂停; value=false","name":"暂停","typeSpec":{"type":"bool"}},
{"abilityId":108,"accessMode":"rw","code":"function","description":"","name":"附加功能","typeSpec":{"type":"enum","range":["extra_cleaning","extra_drying","turbo_speed","express","none"]}},
{"abilityId":109,"accessMode":"rw","code":"alt_function","description":"","name":"Alt功能","typeSpec":{"type":"enum","range":["alt","upper","lower"]}},
{"abilityId":110,"accessMode":"rw","code":"auto_open","description":"","name":"自动开关","typeSpec":{"type":"bool"}},
{"abilityId":111,"accessMode":"rw","code":"water_setting","description":"","name":"软水档位","typeSpec":{"type":"enum","range":["1","2","3","4","5","6"]}},
{"abilityId":112,"accessMode":"rw","code":"rinse_setting","description":"","name":"亮碟剂档位","typeSpec":{"type":"enum","range":["1","2","3","4","5"]}}]}]}"
},
"success": true,
"t": 1729813941837,
"tid": "02c23915926311ef894136243096d294"
}

Product ID

No response

Product Name

Klarstein Amazonia Smart dishwasher

Information about how the device functions

online manual https://res.cloudinary.com/chal-tec/image/upload/bbg/10028325/bda/10028325_BDA_DE-EN-ES-FR-IT.pdf

@Smandurlo Smandurlo added the new device Unsupported device label Oct 24, 2024
@make-all make-all added the log provided Log of dps has been provided, though it is short of full info, so some guessing is needed label Oct 24, 2024
@make-all make-all moved this to 📋 Backlog in Tuya Local Oct 24, 2024
@make-all
Copy link
Owner

Just dp ids and names is not enough info to make a config. It would have to be read-only sensors only, as there is no information on the range or possible values that can be set.

@Smandurlo
Copy link
Author

I am sorry, it is my first attempt in asking for support. I followed the instructions to retrieve the dp ids. How should I search for them? I have noticed that my subscription ended, I asked for a renewal, maybe it is related to it?

@Smandurlo
Copy link
Author

ok, I think I found it:
{
"result": {
"model": "{"modelId":"000002ru9r","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","name":"开关","typeSpec":{"type":"bool"}},{"abilityId":2,"accessMode":"rw","code":"start","description":"启动:启动当前洗涤程序-0x03\n退出:退出当前洗涤程序-0x01","name":"启动","typeSpec":{"type":"bool"}},{"abilityId":6,"accessMode":"rw","code":"appointment_time","description":"【非必选】可选预约功能","name":"预约时间","typeSpec":{"type":"value","max":1440,"min":0,"scale":0,"step":1,"unit":"min"}},{"abilityId":7,"accessMode":"rw","code":"work_mode","description":"洗涤程序选择\nneutral:空档","name":"工作模式","typeSpec":{"type":"enum","range":["neutral","eco","90min","glass","rapid","auto","intensive","hygiene","universal","soak","self_cleanling","party","babycare","58min","allinone","autoheavy","silence","autodaily","autoglass","fruit"]}},{"abilityId":8,"accessMode":"ro","code":"remain_time","description":"","name":"剩余时间","typeSpec":{"type":"value","max":1440,"min":0,"scale":0,"step":1,"unit":"分钟"}},{"abilityId":12,"accessMode":"ro","code":"fault","description":"0x01(进水故障)\n0x02(排水故障)\n0x03(加热故障)\n0x04(溢流故障)\n0x05(通信故障)\n0x06(温度传感器故障)\n0x07(压力开关报警)\n0x08(分水阀定位故障,本机型不涉及)\n0x0c(BLDC故障)\n0x0e(盖板电机故障)","extensions":{"scope":"fault"},"name":"故障告警","typeSpec":{"type":"bitmap","label":["01","02","03","04","05","06","07","08","0c","0e"],"maxlen":10}},{"abilityId":16,"accessMode":"ro","code":"clean_state","description":"unwash:未洗涤\npre_wash:预洗\nwash:主洗\nrinse:漂洗\ndrying:干燥\nend:结束\nstandby:待机","name":"洗涤状态","typeSpec":{"type":"enum","range":["unwash","pre_wash","wash","rinse","drying","end","standby"]}},{"abilityId":17,"accessMode":"ro","code":"temp_current","description":"","name":"当前温度","typeSpec":{"type":"value","max":255,"min":0,"scale":0,"step":1,"unit":"℃"}},{"abilityId":101,"accessMode":"rw","code":"child_lock","description":"","name":"童锁","typeSpec":{"type":"bool"}},{"abilityId":102,"accessMode":"rw","code":"appointment","description":"","name":"预约开关","typeSpec":{"type":"bool"}},{"abilityId":103,"accessMode":"ro","code":"door","description":"","name":"门开关","typeSpec":{"type":"bool"}},{"abilityId":104,"accessMode":"ro","code":"rinse_light","description":"不缺/缺亮碟剂","name":"亮碟剂","typeSpec":{"type":"bool"}},{"abilityId":105,"accessMode":"ro","code":"salt_light","description":"不缺/缺盐","name":"盐灯","typeSpec":{"type":"bool"}},{"abilityId":106,"accessMode":"ro","code":"water_failure","description":"熄灭水龙头图标/点亮图标","name":"水龙头","typeSpec":{"type":"bool"}},{"abilityId":107,"accessMode":"rw","code":"pause","description":"暂停:运行中的程序暂停;value=true\n继续:运行中的程序暂停状态到暂停; value=false","name":"暂停","typeSpec":{"type":"bool"}},{"abilityId":108,"accessMode":"rw","code":"function","description":"","name":"附加功能","typeSpec":{"type":"enum","range":["extra_cleaning","extra_drying","turbo_speed","express","none"]}},{"abilityId":109,"accessMode":"rw","code":"alt_function","description":"","name":"Alt功能","typeSpec":{"type":"enum","range":["alt","upper","lower"]}},{"abilityId":110,"accessMode":"rw","code":"auto_open","description":"","name":"自动开关","typeSpec":{"type":"bool"}},{"abilityId":111,"accessMode":"rw","code":"water_setting","description":"","name":"软水档位","typeSpec":{"type":"enum","range":["1","2","3","4","5","6"]}},{"abilityId":112,"accessMode":"rw","code":"rinse_setting","description":"","name":"亮碟剂档位","typeSpec":{"type":"enum","range":["1","2","3","4","5"]}}]}]}"
},
"success": true,
"t": 1729813941837,
"tid": "02c23915926311ef894136243096d294"
}

@make-all make-all added full_info All info needed was provided and removed log provided Log of dps has been provided, though it is short of full info, so some guessing is needed labels Oct 25, 2024
@make-all make-all moved this from 📋 Backlog to 🔖 Ready in Tuya Local Oct 25, 2024
@make-all make-all added log provided Log of dps has been provided, though it is short of full info, so some guessing is needed and removed full_info All info needed was provided labels Oct 30, 2024
@make-all make-all moved this from 🔖 Ready to 📋 Backlog in Tuya Local Oct 30, 2024
@make-all make-all added full_info All info needed was provided and removed log provided Log of dps has been provided, though it is short of full info, so some guessing is needed labels Oct 30, 2024
@make-all make-all moved this from 📋 Backlog to 🔖 Ready in Tuya Local Oct 30, 2024
@make-all make-all changed the title Request support for Amazonia Smart (dishwasher) Request support for Klarstein Amazonia (dishwasher) Oct 30, 2024
make-all added a commit that referenced this issue Oct 31, 2024
@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 Oct 31, 2024
@make-all make-all moved this from 🔖 Ready to ✅ Done in Tuya Local Oct 31, 2024
@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 Nov 3, 2024
@make-all make-all closed this as completed Nov 3, 2024
@Smandurlo
Copy link
Author

It works, but there are a lot of not usable options, switches, programs ecc... I commented them out.

The door_open sensor works inverted, the Celsius symbol is °C. I did the changes in the code.

The pre_wash has a wrong value. I didn't change it, maybe there is a correct way to do it to make it possible to translate it and I don't know it. It is actually prewash.

The pause switch is actually weird... you pause the dishwasher turning it OFF, because it stays ON the whole time when the dishwasher is on

name: Dishwasher
products:
  - id: UNKNOWN
    name: Klarstein Amazonia
primary_entity:
  entity: switch
  icon: "mdi:dishwasher"
  dps:
    - id: 1
      type: boolean
      name: switch
secondary_entities:
  - entity: button
    name: Start
    icon: "mdi:play"
    dps:
      - id: 2
        type: boolean
        name: button
  - entity: button
    name: Stop
    icon: "mdi:stop"
    dps:
      - id: 2
        type: boolean
        name: button
        mapping:
          - dps_val: true
            value: false
          - dps_val: false
            value: true
  - entity: number
    translation_key: timer
    category: config
    dps:
      - id: 6
        type: integer
        name: value
        unit: min
        range:
          min: 0
          max: 1440
  - entity: select
    name: Mode
    icon: "mdi:dishwasher"
    category: config
    dps:
      - id: 7
        type: string
        name: option
        mapping:
#          - dps_val: neutral
#            value: neutral
          - dps_val: eco
            value: eco
          - dps_val: "90min"
            value: "90_minute"
          - dps_val: glass
            value: glass
          - dps_val: rapid
            value: rapid
#          - dps_val: auto
#            value: auto
          - dps_val: intensive
            value: intensive
#          - dps_val: hygiene
#            value: hygiene
          - dps_val: universal
            value: universal
#          - dps_val: soak
#            value: soak
#          - dps_val: self_cleaning
#            value: self_cleaning
#          - dps_val: party
#            value: party
          - dps_val: babycare
            value: babycare
#          - dps_val: "58min"
#            value: "58_minute"
#          - dps_val: allinone
#            value: all_in_one
#          - dps_val: autoheavy
#            value: auto_heavy
#          - dps_val: silence
#            value: silence
#          - dps_val: autodaily
#            value: auto_daily
#          - dps_val: autoglass
#            value: auto_glass
#          - dps_val: fruit
#            value: fruit
  - entity: sensor
    translation_key: time_remaining
    class: duration
    category: diagnostic
    dps:
      - id: 8
        type: integer
        name: sensor
        unit: min
        class: measurement
  - entity: binary_sensor
    class: problem
    category: diagnostic
    dps:
      - id: 12
        type: bitfield
        name: sensor
        mapping:
          - dps_val: 0
            value: false
          - value: true
      - id: 12
        type: bitfield
        name: fault_code
  - entity: sensor
    translation_key: status
    class: enum
    category: diagnostic
    dps:
      - id: 16
        type: string
        name: sensor
        mapping:
          - dps_val: unwash
            value: unwashed
          - dps_val: pre_wash
            value: pre_rinsing ## why? It is actually prewash
          - dps_val: wash
            value: washing
          - dps_val: rinse
            value: rinsing
          - dps_val: drying
            value: drying
          - dps_val: end
            value: done
          - dps_val: standby
            value: standby
  - entity: sensor
    class: temperature
    dps:
      - id: 17
        type: integer
        name: sensor
        unit: °C
        class: measurement
#   - entity: lock
#     translation_key: child_lock
#     category: config
#     dps:
#       - id: 101
#         type: boolean
#         name: lock
  - entity: switch
    name: Timer set
    icon: "mdi:clock-check"
    category: config
    dps:
      - id: 102
        type: boolean
        name: switch
  - entity: binary_sensor
    class: door
    category: diagnostic
    dps:
      - id: 103
        type: boolean
        name: sensor
        mapping:
          - dps_val: true
            value: false
          - dps_val: false
            value: true
  - entity: binary_sensor
    name: Rinse aid level
    class: problem
    category: diagnostic
    dps:
      - id: 104
        type: boolean
        name: sensor
  - entity: binary_sensor
    name: Salt level
    class: problem
    category: diagnostic
    dps:
      - id: 105
        type: boolean
        name: sensor
  - entity: binary_sensor
    name: Water flow
    class: problem
    category: diagnostic
    dps:
      - id: 106
        type: boolean
        name: sensor
  - entity: switch
    name: Pause
    icon: "mdi:play-pause"
    category: config
    dps:
      - id: 107
        type: boolean
        name: switch
#   - entity: select
#     name: Extra
#     icon: "mdi:cog"
#     category: config
#     dps:
#       - id: 108
#         type: string
#         name: option
#         mapping:
#           - dps_val: extra_cleaning
#             value: extra_clean
#           - dps_val: extra_drying
#             value: extra_dry
#           - dps_val: turbo_speed
#             value: turbo_speed
#           - dps_val: express
#             value: express
#           - dps_val: none
#             value: none
#   - entity: select
#     name: Alternate function
#     icon: "mdi:cog-transfer"
#     category: config
#     dps:
#       - id: 109
#         type: string
#         name: option
#         mapping:
#           - dps_val: alt
#             value: alt
#           - dps_val: upper
#             value: upper
#           - dps_val: lower
#             value: lower
#   - entity: switch
#     name: Auto open
#     icon: "mdi:window-shutter-auto"
#     category: config
#     dps:
#       - id: 110
#         type: boolean
#         name: switch
  - entity: select
    name: Water hardness
    icon: "mdi:water-opacity"
    category: config
    dps:
      - id: 111
        type: string
        name: option
        mapping:
          - dps_val: "1"
            value: "1"
          - dps_val: "2"
            value: "2"
          - dps_val: "3"
            value: "3"
          - dps_val: "4"
            value: "4"
          - dps_val: "5"
            value: "5"
          - dps_val: "6"
            value: "6"
#   - entity: select
#     name: Rinse aid amount
#     icon: "mdi:shimmer"
#     category: config
#     dps:
#       - id: 112
#         type: string
#         name: option
#         mapping:
#           - dps_val: "1"
#             value: "1"
#           - dps_val: "2"
#             value: "2"
#           - dps_val: "3"
#             value: "3"
#           - dps_val: "4"
#             value: "4"
#           - dps_val: "5"
#             value: "5"

@make-all make-all added the device improvement Improvement to an existing device config label Nov 4, 2024
@make-all make-all reopened this Nov 4, 2024
@github-project-automation github-project-automation bot moved this from ✅ Done to 📋 Backlog in Tuya Local Nov 4, 2024
@make-all make-all moved this from 📋 Backlog to 🔖 Ready in Tuya Local Nov 4, 2024
@make-all
Copy link
Owner

make-all commented Nov 5, 2024

I'm not sure about this change. There appear to be several models of Amazonia dishwasher, supporting slightly different functions. I guess they have made a single Tuya firmware to support all of them. If there is some way to identify the model within the protocol, we can use feature flags to selectively enable the option values and entities rather than commenting them out.

make-all added a commit that referenced this issue Nov 5, 2024
Door sensor logic is reversed from HA expectation.

Issue #2433
@Smandurlo
Copy link
Author

afaik there are some Amazonia, but there is only 1 with wifi: Amazonia SMART

https://www.klarstein.it/Grandi-elettrodomestici/Lavastoviglie/?&followSearch=9323&navigation=true&listorderby=oxv_oxarticles_3_it.cttopseller&listorder=asc

Not sure if they sell other wifi models in different markets/countries

@make-all make-all added awaiting confirmation Wating for confirmation the issue is solved unreleased Will be in next release labels Nov 18, 2024
@make-all make-all moved this from 🔖 Ready to ✅ Done in Tuya Local Nov 18, 2024
make-all added a commit that referenced this issue Nov 18, 2024
Apparently they over-specified the protocol as documented on Tuya
portal. Some features/modes documented are not actually implemented.

Issue #2433
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting confirmation Wating for confirmation the issue is solved device improvement Improvement to an existing device config unreleased Will be in next release
Projects
Status: ✅ Done
Development

No branches or pull requests

2 participants