From 524c6f1900617bbf947bd8b9b0026002c7bf2c04 Mon Sep 17 00:00:00 2001 From: Arjan Lankhaar Date: Mon, 8 Jul 2024 22:27:20 +0200 Subject: [PATCH] Added support for the Zedar R600 robot vacuum --- DEVICES.md | 1 + .../tuya_local/devices/zedar_r600_vacuum.yaml | 352 ++++++++++++++++++ 2 files changed, 353 insertions(+) create mode 100644 custom_components/tuya_local/devices/zedar_r600_vacuum.yaml diff --git a/DEVICES.md b/DEVICES.md index 43d5604a9c..37b26bc31c 100644 --- a/DEVICES.md +++ b/DEVICES.md @@ -594,6 +594,7 @@ of device. - Tesvor S6 vacuum cleaner with mop - TTEC Robi Pro vacuum cleaner - Ultenic T10 vacuum cleaner +- Zedar R600 ### Lawnmowers diff --git a/custom_components/tuya_local/devices/zedar_r600_vacuum.yaml b/custom_components/tuya_local/devices/zedar_r600_vacuum.yaml new file mode 100644 index 0000000000..db2c017936 --- /dev/null +++ b/custom_components/tuya_local/devices/zedar_r600_vacuum.yaml @@ -0,0 +1,352 @@ +name: Robot vacuum +products: + - id: yiarxtixzkmnegxk + name: Zedar R600 +primary_entity: + entity: vacuum + dps: + - id: 1 + type: boolean + optional: true + name: activate + mapping: + - dps_val: false + constraint: pause + conditions: + - dps_val: true + value: false + - dps_val: false + value: false + hidden: true + - dps_val: null + value: false + hidden: true + - dps_val: true + constraint: pause + conditions: + - dps_val: false + value: true + - dps_val: true + value: true + hidden: true + - dps_val: null + value: true + hidden: true + - dps_val: null + value: false + hidden: true + - id: 2 + type: boolean + optional: true + name: pause + - id: 3 + name: return_to_base + type: boolean + optional: true + - id: 4 + type: string + name: command + mapping: + - dps_val: smart + value: smart + - dps_val: chargego + value: return_to_base + - dps_val: zone + value: zone + - dps_val: pose + value: go_to_position + - dps_val: selectroom + value: room + - id: 5 + type: string + name: status + mapping: + - dps_val: standby + value: standby + - dps_val: smart + value: cleaning + - dps_val: smart_clean + value: cleaning + - dps_val: zone_clean + value: cleaning + - dps_val: part_clean + value: cleaning + - dps_val: cleaning + value: cleaning + - dps_val: paused + value: paused + - dps_val: goto_pos + value: going_to_location + - dps_val: pos_arrived + value: on_location + - dps_val: pos_unarrive + value: cannot_find_location + - dps_val: goto_charge + value: returning + - dps_val: charging + value: charging + - dps_val: charge_done + value: charged + - dps_val: sleep + value: sleep + - dps_val: select_room + value: select_room + - dps_val: wall_follow + value: wall_follow + - dps_val: direction_control + value: direction_control + - id: 9 + type: string + name: fan_speed + mapping: + - dps_val: turnoff + value: "Off" + - dps_val: gentle + value: Low + - dps_val: normal + value: Medium + - dps_val: strong + value: High + - id: 11 + type: boolean + optional: true + name: locate + - id: 12 + type: string + optional: true + name: direction_control + mapping: + - dps_val: forward + value: forward + - dps_val: backward + value: reverse + - dps_val: turn_left + value: left + - dps_val: turn_right + value: right + - dps_val: stop + value: stop + - id: 14 + type: string + optional: true + name: path_data + - id: 15 + type: base64 + optional: true + name: complex_command + - id: 16 + type: string + optional: true + name: request + mapping: + - dps_val: get_map + value: Get map + - dps_val: get_path + value: Get path + - dps_val: get_both + value: Get both + - id: 28 + type: bitfield + name: error + mapping: + - dps_val: 2 + value: left_wheel_hang + - dps_val: 4 + value: main_brush_stuck + - dps_val: 8 + value: right_wheel_hang + - dps_val: 16 + value: left_wheel_stuck + - dps_val: 32 + value: right_wheel_stuck + - dps_val: 64 + value: cliff + - dps_val: 128 + value: side_brush_stuck + - dps_val: 512 + value: collision + - dps_val: 1024 + value: dust_box_stuck + - dps_val: 4096 + value: ground_check_failure + - dps_val: 32768 + value: vacuum_motor_stuck + - dps_val: 65536 + value: high_current + - dps_val: 131072 + value: charge_port_closed + - id: 32 + type: string + optional: true + name: device_timer + - id: 33 + type: string + optional: true + name: disturb_time_set + - id: 34 + type: string + optional: true + name: device_info + - id: 35 + type: string + optional: true + name: voice_data + - id: 36 + name: language + type: string + optional: true +secondary_entities: + - entity: sensor + name: Cleaning time + class: duration + category: diagnostic + dps: + - id: 6 + type: integer + name: sensor + unit: min + class: measurement + - entity: sensor + name: Cleaned area + category: diagnostic + icon: "mdi:floor-plan" + dps: + - id: 7 + type: integer + name: sensor + unit: m2 + - entity: sensor + class: battery + dps: + - id: 8 + type: integer + name: sensor + unit: "%" + class: measurement + - entity: select + name: Mopping + icon: "mdi:cup-water" + category: config + dps: + - id: 10 + type: string + name: option + optional: true + mapping: + - dps_val: closed + value: "Off" + - dps_val: low + value: Low + - dps_val: middle + value: Medium + - dps_val: high + value: High + - dps_val: null + value: "Off" + hidden: true + - entity: button + name: Reset map + category: config + dps: + - id: 13 + type: boolean + name: button + optional: true + - entity: sensor + name: Edge brush life + class: duration + category: diagnostic + dps: + - id: 17 + type: integer + name: sensor + unit: min + - entity: button + name: Edge brush reset + class: restart + category: config + dps: + - id: 18 + type: boolean + name: button + optional: true + - entity: sensor + name: Roll brush life + class: duration + category: diagnostic + dps: + - id: 19 + type: integer + name: sensor + unit: min + - entity: button + name: Roll brush reset + class: restart + category: config + dps: + - id: 20 + type: boolean + name: button + optional: true + - entity: sensor + name: Filter life + class: duration + category: diagnostic + dps: + - id: 21 + type: integer + name: sensor + unit: min + - entity: button + name: Filter reset + class: restart + category: config + dps: + - id: 22 + type: boolean + name: button + optional: true + - entity: sensor + name: Mop life + class: duration + category: diagnostic + dps: + - id: 23 + type: integer + name: sensor + unit: min + - entity: button + name: Mop reset + class: restart + category: config + dps: + - id: 24 + type: boolean + name: button + optional: true + - entity: switch + name: Do not disturb + category: config + dps: + - id: 25 + type: boolean + name: switch + optional: true + mapping: + - dps_val: null + value: false + hidden: true + - entity: number + name: Volume + category: config + icon: "mdi:volume-high" + dps: + - id: 26 + type: integer + name: value + range: + min: 0 + max: 10 + unit: "%" + mapping: + - scale: 0.1