Bladeren bron

Added support for the Zedar R600 robot vacuum

Arjan Lankhaar 1 jaar geleden
bovenliggende
commit
524c6f1900
2 gewijzigde bestanden met toevoegingen van 353 en 0 verwijderingen
  1. 1 0
      DEVICES.md
  2. 352 0
      custom_components/tuya_local/devices/zedar_r600_vacuum.yaml

+ 1 - 0
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
 

+ 352 - 0
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