Sfoglia il codice sorgente

Add new device ilife v20 vacuum

Device Management - Query Device Details

{
  "result": {
    "active_time": 1751207700,
    "bind_space_id": "6217918",
    "category": "sd",
    "create_time": 1751207700,
    "custom_name": "",
    "icon": "smart/icon/bay1681355577681asVz/a6308df0d4145f746cb8e249c751fd25.png",
    "id": "bf8a049e8a10b6644afw4y",
    "ip": "",
    "is_online": true,
    "lat": "53.29",
    "local_key": "",
    "lon": "17.96",
    "model": "V20",
    "name": "V20",
    "product_id": "mphbe14dfodk8cz2",
    "product_name": "ILIFE-V20 -ilife-RU",
    "sub": false,
    "time_zone": "+02:00",
    "update_time": 1757341543,
    "uuid": "zf1160675edd211b88fb"
  },
  "success": true,
  "t": 1757343903830,
  "tid": "32c822228cc511f08e5dda57e8f5d0ed"
}

Device Management - Get Update Information

{
  "result": [
    {
      "channel": 0,
      "control_type": 0,
      "current_version": "2.4.3",
      "dev_type": 0,
      "firmware_key": "keykf743qh4nqt8x",
      "last_upgrade_time": 1751207729,
      "timeout": 0,
      "type": 0,
      "type_desc": "Moduł główny",
      "upgrade_status": 0
    },
    {
      "channel": 9,
      "control_type": 0,
      "current_version": "2.4.3",
      "dev_type": 0,
      "firmware_key": "",
      "last_upgrade_time": 0,
      "timeout": 0,
      "type": 9,
      "type_desc": "Moduł MCU",
      "upgrade_status": 0
    }
  ],
  "success": true,
  "t": 1757344051953,
  "tid": "8b1cd3eb8cc511f0805d96c8b66247b7"
}

Device Control - Query Properties

{
  "result": {
    "properties": [
      {
        "code": "switch_go",
        "custom_name": "",
        "dp_id": 1,
        "time": 1757341602806,
        "type": "bool",
        "value": false
      },
      {
        "code": "pause",
        "custom_name": "",
        "dp_id": 2,
        "time": 1757227547413,
        "type": "bool",
        "value": false
      },
      {
        "code": "switch_charge",
        "custom_name": "",
        "dp_id": 3,
        "time": 1757341622396,
        "type": "bool",
        "value": false
      },
      {
        "code": "mode",
        "custom_name": "",
        "dp_id": 4,
        "time": 1757341602806,
        "type": "enum",
        "value": "goto_charge"
      },
      {
        "code": "status",
        "custom_name": "",
        "dp_id": 5,
        "time": 1757341625376,
        "type": "enum",
        "value": "charge_done"
      },
      {
        "code": "clean_time",
        "custom_name": "",
        "dp_id": 6,
        "time": 1757227547413,
        "type": "value",
        "value": 0
      },
      {
        "code": "clean_area",
        "custom_name": "",
        "dp_id": 7,
        "time": 1757227547413,
        "type": "value",
        "value": 0
      },
      {
        "code": "battery_percentage",
        "custom_name": "",
        "dp_id": 8,
        "time": 1757245407753,
        "type": "value",
        "value": 100
      },
      {
        "code": "suction",
        "custom_name": "",
        "dp_id": 9,
        "time": 1757227547413,
        "type": "enum",
        "value": "strong"
      },
      {
        "code": "cistern",
        "custom_name": "",
        "dp_id": 10,
        "time": 1757227547413,
        "type": "enum",
        "value": "middle"
      },
      {
        "code": "seek",
        "custom_name": "",
        "dp_id": 11,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "direction_control",
        "custom_name": "",
        "dp_id": 12,
        "time": 1751207700013,
        "type": "enum",
        "value": "forward"
      },
      {
        "code": "map_reset",
        "custom_name": "",
        "dp_id": 13,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "path_data",
        "custom_name": "",
        "dp_id": 14,
        "time": 1751207700013,
        "type": "raw"
      },
      {
        "code": "command_trans",
        "custom_name": "",
        "dp_id": 15,
        "time": 1757227548095,
        "type": "raw",
        "value": "qgABFxc="
      },
      {
        "code": "request",
        "custom_name": "",
        "dp_id": 16,
        "time": 1751207700013,
        "type": "enum",
        "value": "get_map"
      },
      {
        "code": "edge_brush_life",
        "custom_name": "",
        "dp_id": 17,
        "time": 1757227547413,
        "type": "value",
        "value": 8534
      },
      {
        "code": "edge_brush_life_reset",
        "custom_name": "",
        "dp_id": 18,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "roll_brush_life",
        "custom_name": "",
        "dp_id": 19,
        "time": 1757227547413,
        "type": "value",
        "value": 17567
      },
      {
        "code": "roll_brush_life_reset",
        "custom_name": "",
        "dp_id": 20,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "filter_life",
        "custom_name": "",
        "dp_id": 21,
        "time": 1757227547413,
        "type": "value",
        "value": 8586
      },
      {
        "code": "filter_reset",
        "custom_name": "",
        "dp_id": 22,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "rag_life",
        "custom_name": "",
        "dp_id": 23,
        "time": 1757227547413,
        "type": "value",
        "value": 9000
      },
      {
        "code": "rag_life_reset",
        "custom_name": "",
        "dp_id": 24,
        "time": 1751207700013,
        "type": "bool",
        "value": false
      },
      {
        "code": "do_not_disturb",
        "custom_name": "",
        "dp_id": 25,
        "time": 1757227547413,
        "type": "bool",
        "value": true
      },
      {
        "code": "volume_set",
        "custom_name": "",
        "dp_id": 26,
        "time": 1757227547413,
        "type": "value",
        "value": 89
      },
      {
        "code": "break_clean",
        "custom_name": "",
        "dp_id": 27,
        "time": 1757227547413,
        "type": "bool",
        "value": false
      },
      {
        "code": "fault",
        "custom_name": "",
        "dp_id": 28,
        "time": 1757227547413,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "clean_area_total",
        "custom_name": "",
        "dp_id": 29,
        "time": 1757227547413,
        "type": "value",
        "value": 235
      },
      {
        "code": "clean_count_total",
        "custom_name": "",
        "dp_id": 30,
        "time": 1757227547413,
        "type": "value",
        "value": 12
      },
      {
        "code": "clean_time_total",
        "custom_name": "",
        "dp_id": 31,
        "time": 1757227547413,
        "type": "value",
        "value": 390
      },
      {
        "code": "device_timer",
        "custom_name": "",
        "dp_id": 32,
        "time": 1757227547840,
        "type": "raw",
        "value": "qgADMQIAMw=="
      },
      {
        "code": "disturb_time_set",
        "custom_name": "",
        "dp_id": 33,
        "time": 1757227547793,
        "type": "raw",
        "value": "qgAIMwIWAAAHAABS"
      },
      {
        "code": "device_info",
        "custom_name": "",
        "dp_id": 34,
        "time": 1757227547921,
        "type": "raw",
        "value": "eyJEZXZpY2VfU04iOiJJRlYyMDI0MDkxODAxMDMyNSIsIkZpcm13YXJlX1ZlcnNpb24iOiIyLjQuMyIsIklQIjoiMTkyLjE2OC4xLjIwMiIsIk1DVV9WZXJzaW9uIjoiMC4zMTQxLjEzIiwiTWFjIjoiRjg6MTY6MEM6MzE6RTY6MjQiLCJNb2R1bGVfVVVJRCI6InpmMTE2MDY3NWVkZDIxMWI4OGZiIiwiUlNTSSI6Ii01NSIsIldpRmlfTmFtZSI6Ik9wZW5XcnQifQ=="
      },
      {
        "code": "voice_data",
        "custom_name": "",
        "dp_id": 35,
        "time": 1757227547958,
        "type": "raw",
        "value": "qwAAAAAHNQAAAAYDZKI="
      },
      {
        "code": "language",
        "custom_name": "",
        "dp_id": 36,
        "time": 1751207700013,
        "type": "enum",
        "value": "chinese_simplified"
      },
      {
        "code": "customize_mode_switch",
        "custom_name": "",
        "dp_id": 39,
        "time": 1757227547413,
        "type": "bool",
        "value": false
      },
      {
        "code": "mop_state",
        "custom_name": "",
        "dp_id": 40,
        "time": 1757227547413,
        "type": "enum",
        "value": "none"
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 41,
        "time": 1757341599142,
        "type": "enum",
        "value": "only_sweep"
      },
      {
        "code": "auto_boost",
        "custom_name": "",
        "dp_id": 45,
        "time": 1757227547413,
        "type": "bool",
        "value": true
      },
      {
        "code": "fault_extend_1_unseen",
        "custom_name": "",
        "dp_id": 101,
        "time": 1757227547667,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "message_report_unseen",
        "custom_name": "",
        "dp_id": 128,
        "time": 1757341598393,
        "type": "enum",
        "value": "normal"
      }
    ]
  },
  "success": true,
  "t": 1757344138523,
  "tid": "bebbf2ce8cc511f08e5dda57e8f5d0ed"
}
blackscreener 6 mesi fa
parent
commit
6de651b766
1 ha cambiato i file con 571 aggiunte e 0 eliminazioni
  1. 571 0
      custom_components/tuya_local/devices/ilife_v20_vacuum.yaml

+ 571 - 0
custom_components/tuya_local/devices/ilife_v20_vacuum.yaml

@@ -0,0 +1,571 @@
+name: Robot vacuum
+products:
+  - id: mphbe14dfodk8cz2
+    manufacturer: ILIFE
+    model: V20
+entities:
+  - entity: vacuum
+    dps:
+
+      - id: 1
+        type: boolean
+        name: activate
+        optional: true
+        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
+        hidden: true
+
+      - id: 4
+        type: string
+        name: command
+        optional: true
+        mapping:
+          - dps_val: smart
+            value: smart
+          - dps_val: goto_charge
+            value: return_to_base
+          - dps_val: zone
+            value: zone
+          - dps_val: pose
+            value: clean_spot
+          - dps_val: part
+            value: partial
+          - dps_val: select_room
+            value: select_room
+      - id: 5
+        type: string
+        name: status
+        mapping:
+          - dps_val: standby
+            value: standby
+          - dps_val: smart
+            value: smart
+          - dps_val: zone_clean
+            value: zone
+          - dps_val: part_clean
+            value: partial
+          - dps_val: cleaning
+            value: cleaning
+          - dps_val: paused
+            value: paused
+          - dps_val: goto_pos
+            value: seeking_spot
+          - dps_val: pos_arrived
+            value: located spot
+          - dps_val: pos_unarrive
+            value: left_spot
+          - 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: selecting_room
+          - dps_val: seek_dust_bucket
+            value: seek_dust_bucket
+          - dps_val: collecting_dust
+            value: collecting_dust
+          - dps_val: in_trouble
+            value: in_trouble
+          - dps_val: shutdown
+            value: shutdown
+          - dps_val: self_clean
+            value: self_clean
+          - dps_val: mapping
+            value: mapping
+          - dps_val: mapping_done
+            value: mapping_done
+          - dps_val: in_positioning
+            value: in_positioning
+
+      - id: 9
+        type: string
+        name: fan_speed
+        mapping:
+          - dps_val: closed
+            value: "Off"
+          - dps_val: gentle
+            value: Low
+          - dps_val: normal
+            value: Medium
+          - dps_val: strong
+            value: High
+          - dps_val: max
+            value: Max
+      - id: 11
+        type: boolean
+        name: locate
+        optional: true
+      - id: 12
+        type: string
+        name: direction_control
+        optional: true
+        mapping:
+          - dps_val: forward
+            value: forward
+          - dps_val: not_use
+            value: not use
+          - dps_val: turn_left
+            value: left
+          - dps_val: turn_right
+            value: right
+          - dps_val: stop
+            value: stop
+          - dps_val: exit
+            value: exit
+      - id: 14
+        type: string
+        optional: true
+        name: path_data
+      - id: 15
+        type: string
+        optional: true
+        name: command_trans
+      - id: 28
+        type: bitfield
+        name: error
+        hidden: true
+      - 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
+
+  - entity: switch
+    name: Charge
+    icon: "mdi:battery-charging"
+    category: config
+    dps:
+      - id: 3
+        type: boolean
+        optional: true
+        name: switch
+  - entity: sensor
+    name: Cleaning time
+    icon: "mdi:progress-clock"
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 6
+        type: integer
+        name: sensor
+        unit: min
+  - entity: sensor
+    name: Cleaning area
+    class: area
+    category: diagnostic
+    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
+    translation_key: mopping
+    category: config
+    dps:
+      - id: 10
+        type: string
+        name: option
+        mapping:
+          - dps_val: closed
+            value: "off"
+          - dps_val: low
+            value: low
+          - dps_val: middle
+            value: medium
+          - dps_val: high
+            value: high
+  - entity: select
+    #translation_key: 
+    category: config
+    name: Mode
+    dps:
+      - id: 4
+        type: string
+        name: option
+        mapping:
+          - dps_val: smart
+            value: smart
+          - dps_val: goto_charge
+            value: goto_charge
+          - dps_val: zone
+            value: zone
+          - dps_val: pose
+            value: pose
+          - dps_val: part
+            value: part
+          - dps_val: select_room
+            value: select_room
+
+
+  - entity: select
+    name: Fetch request
+    icon: "mdi:message-question"
+    category: config
+    dps:
+      - id: 16
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: get_map
+            value: Map
+          - dps_val: get_path
+            value: Path
+          - dps_val: get_both
+            value: Both
+  - entity: sensor
+    name: Edge brush lifetime
+    category: diagnostic
+    class: duration
+    dps:
+      - id: 17
+        type: integer
+        name: sensor
+        unit: h
+  - entity: sensor
+    name: Rolling brush lifetime
+    category: diagnostic
+    class: duration
+    dps:
+      - id: 19
+        type: integer
+        name: sensor
+        unit: h
+  - entity: sensor
+    name: Filter lifetime
+    category: diagnostic
+    class: duration
+    dps:
+      - id: 21
+        type: integer
+        name: sensor
+        unit: h
+  - entity: sensor
+    name: Rag lifetime
+    category: diagnostic
+    class: duration
+    dps:
+      - id: 23
+        type: integer
+        name: sensor
+        unit: min
+        optional: true
+  - entity: number
+    name: Volume
+    category: config
+    icon: "mdi:volume-high"
+    dps:
+      - id: 26
+        type: integer
+        name: value
+        optional: true
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+  - entity: sensor
+    name: Total cleaning area
+    class: area
+    category: diagnostic
+    dps:
+      - id: 29
+        type: integer
+        name: sensor
+        unit: m2
+  - entity: sensor
+    name: Total cleaning times
+    icon: "mdi:counter"
+    category: diagnostic
+    dps:
+      - id: 30
+        type: integer
+        name: sensor
+  - entity: sensor
+    name: Total cleaning time
+    class: duration
+    icon: "mdi:history"
+    category: diagnostic
+    dps:
+      - id: 31
+        type: integer
+        name: sensor
+        unit: min
+
+  - entity: button
+    name: Reset map
+    icon: "mdi:map-marker-remove"
+    category: config
+    dps:
+      - id: 13
+        type: boolean
+        name: button
+        optional: true
+  - entity: button
+    name: Reset edge brush
+    class: restart
+    category: config
+    dps:
+      - id: 18
+        type: boolean
+        name: button
+        optional: true
+  - entity: button
+    name: Reset roll brush
+    class: restart
+    category: config
+    dps:
+      - id: 20
+        type: boolean
+        name: button
+        optional: true
+  - entity: button
+    name: Reset filter
+    icon: "mdi:air-filter"
+    category: config
+    dps:
+      - id: 22
+        type: boolean
+        name: button
+        optional: true
+  - entity: button
+    name: Reset rag life
+    #icon: "mdi:air-filter"
+    category: config
+    dps:
+      - id: 24
+        type: boolean
+        name: button
+        optional: true
+  - entity: switch
+    name: Do not disturb
+    icon: "mdi:minus-circle"
+    category: config
+    dps:
+      - id: 25
+        type: boolean
+        name: switch
+
+  - entity: switch
+    name: Intermittent cleaning
+    icon: "mdi:clock-star-four-points"
+    category: config
+    dps:
+      - id: 27
+        type: boolean
+        name: switch
+
+  - entity: select
+    translation_key: language
+    category: config
+    dps:
+      - id: 36
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: chinese_simplified
+            value: chinese
+          - dps_val: chinese_traditional
+            value: chinese_traditional
+          - dps_val: english
+            value: english
+          - dps_val: german
+            value: german
+          - dps_val: french
+            value: french
+          - dps_val: russian
+            value: russian
+          - dps_val: spanish
+            value: spanish
+          - dps_val: korean
+            value: korean
+          - dps_val: latin
+            value: latin
+          - dps_val: portuguese
+            value: portuguese
+          - dps_val: japanese
+            value: japanese
+          - dps_val: italian
+            value: italian
+          - dps_val: polish
+            value: polish
+  - entity: switch
+    name: Custom room
+    icon: "mdi:floor-plan"
+    category: config
+    dps:
+      - id: 39
+        type: boolean
+        optional: true
+        name: switch
+  - entity: binary_sensor
+    name: Mop installed
+    icon: "mdi:water-plus"
+    category: diagnostic
+    dps:
+      - id: 40
+        type: string
+        optional: true
+        name: sensor
+        mapping:
+          - dps_val: installed
+            value: true
+          - value: false
+            dps_val: none
+  - entity: select
+    name: Operation mode
+    icon: "mdi:robot-vacuum"
+    category: config
+    dps:
+      - id: 41
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: only_sweep
+            value: Sweep
+          - dps_val: only_mop
+            value: Mop
+          - dps_val: both_work
+            value: Both
+  - entity: switch
+    name: Auto boost
+    icon: "mdi:car-turbocharger"
+    category: config
+    dps:
+      - id: 45
+        type: boolean
+        optional: true
+        name: switch
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 28
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 28
+        type: bitfield
+        name: fault_code
+      - id: 28
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: OK
+          - dps_val: 1
+            value: low_power
+          - dps_val: 2
+            value: poweroff
+          - dps_val: 4
+            value: wheel_trap
+          - dps_val: 8
+            value: cannot_upgrade
+          - dps_val: 16
+            value: collision_stuck
+          - dps_val: 32
+            value: dust_station_full
+          - dps_val: 64
+            value: tile_error
+          - dps_val: 128
+            value: lidar_speed_err
+          - dps_val: 256
+            value: lidar_cover
+          - dps_val: 512
+            value: lidar_point_err
+          - dps_val: 1024
+            value: front_wall_dirty
+          - dps_val: 2048
+            value: psd_dirty
+          - dps_val: 4096
+            value: middle_sweep
+          - dps_val: 8192
+            value: side_sweep
+          - dps_val: 16384
+            value: fan_speed
+          - dps_val: 32768
+            value: dustbox_out
+          - dps_val: 65536
+            value: dustbox_full
+          - dps_val: 131072
+            value: no_dust_box
+          - dps_val: 262144
+            value: dustbox_fullout
+          - dps_val: 524288
+            value: trapped
+          - dps_val: 1048576
+            value: pick_up
+          - dps_val: 2097152
+            value: no_dust_water_box
+          - dps_val: 84194304
+            value: water_box_empty
+          - dps_val: 18388608
+            value: forbid_area
+          - dps_val: 16777216
+            value: land_check
+          - dps_val: 33554432
+            value: findcharge_fail
+          - dps_val: 67108864
+            value: battery_err
+          - dps_val: 134217728
+            value: kit_wheel
+          - dps_val: 268435456
+            value: kit_lidar
+          - dps_val: 53687091
+            value: kit_water_pump
+