Home Assistant

Home Assistant: Robot hút bụi Xiaomi

Hướng dẫn Robot hút bụi Xiaomi Home Assistant

Tích hợp robot hút bụi Xiaomi Vacuum vào Home Assistant, chọn vùng để vệ sinh trên bản đồ

Photo: konnectED.vn
33 phút để đọc hết nội dung

Tiếp theo máy lọc không khí Xiaomi, hôm nay ta sẽ tiếp tục đưa robot hút bụi – còn được gọi vui là “con sen 4.0” – Xiaomi Robot Vacuum vào Home Assistant. Sau khi đưa robot hút bụi Xiaomi vào Home Assistant thành công, ta cũng sẽ tạo giao diện để điều khiển, hiển thị trạng thái và chọn Zone – vùng dọn vệ sinh trên bản đồ – map, tương tự như trên ứng dụng MiHome đi kèm.

Các mẫu Robot hút bụi Xiaomi được biết là hỗ trợ phương thức tích hợp vào Home Assistant trong bài hướng dẫn này: Xiaomi Mi Robot Vacuum V1, S5, M1S, S6.

Trên ảnh bìa là robot Xiaomi Roborock S5 phiên bản màu hường nam tính.

Lưu ý rằng bài này rất dài và tương đối phức tạp ở phần Bản đồ. Vì vậy bạn cần theo dõi chậm và hiểu rõ mình đang ở bước nào. Để hỗ trợ, bạn luôn có thể hiển thị Mục lục và vị trí hiện tại bằng các bấm vào icon Fixed TOC icon dưới bên phải bài viết.

Tuỳ theo model mà một hoặc một vài tính năng của robot sẽ chưa được hỗ trợ trong phiên bản Home Assistant hiện tại (0.111 vào thời điểm viết bài này).

! Yêu cầu tối thiểu/khuyến nghị
  • Robot hút bụi Xiaomi đã được kết nối thành công vào mạng qua app MiHome
  • Robot hút bụi Xiaomi đã được cố định địa chỉ IP và bạn cần biết địa chỉ IP này (cách cố định IP tuỳ theo model Router bạn đang sử dụng, cần tham khảo hướng dẫn tương ứng)
  • Robot hút bụi Xiaomi phải cùng mạng nội bộ với máy chủ Hass, cùng lớp mạng (nếu không, bạn cần cấu hình mạng sao cho cả hai có thể giao tiếp với nhau)

Cấu hình Xiaomi Vacuum trong Home Assistant

Bên dưới là cấu hình mẫu để thêm Robot hút bụi Xiaomi vào Home Assistant, bạn copy/paste vào file cấu hình chính của Home Assistant tại /config/configuration.yaml rồi thay đổi cho phù hợp.

vacuum:
  - platform: xiaomi_miio
    host: 192.168.1.20
    token: 53354d656ne233743423327542314f5765
    name: Xiaomi Vacuum Cleaner

Trong đó,

tuỳ chọn:

  • name: đặt tên cho robot này trong Hass
Xiaomi Robo Vacuum trong Home Assistant

Sau khi cấu hình xong, bạn khởi động lại Home Assistant để áp dụng cấu hình mới. Lúc này trong Hass sẽ xuất hiện thực thể mới với entity_id dạng vacuum.xiaomi_vacuum_cleaner có trạng thái là chế độ hiện tại của Robot (docked, cleaning, error v…) và các attributes như trong ảnh.

Một số bài viết liên quan đến Xiaomi

KTS. Hà Quang Hùng
Chia sẻ trải nghiệm thực tế của TS. KTS Hà Quang Hùng về hành trình xây dựng SmartHome cho chính mình
Xem Ngay
Thêm cảm biến Bluetooth Xiaomi vào Home Assistant
Thêm các cảm biến nhiệt độ, độ ẩm Xiaomi (Mijia) BLE trực tiếp vào Hass mà không cần hub
Xem Ngay
Hướng dẫn Robot hút bụi Xiaomi Home Assistant
Tích hợp robot hút bụi Xiaomi Vacuum vào Home Assistant, chọn vùng để vệ sinh trên bản đồ
Xem Ngay

Đưa Robot hút bụi Xiaomi ra giao diện Lovelace

Bạn có thể thể hiện Robot này trên giao diện Lovelace với nhiều card khác nhau, bất cứ card nào có khả năng nhận dữ liệu là entity đều có thể sử dụng được.

Tuy nhiên, để cho đẹp và tiện điều khiển thì ta sẽ sử dụng 2 cách sau.

! Về custom componentcustom card

Là các component hay Lovelace card/module được phát triển bởi cộng đồng nhưng không/chưa được thông qua chính thức bởi nhóm phát triển Home Assistant. Việc cập nhật hay hỗ trợ hoàn toàn phụ thuộc vào tác giả và cộng đồng người dùng.
Bạn cũng sẽ phải tự chịu trách nhiệm và tự quản lý các custom component/custom card này.

Chúng tôi khuyến nghị bạn chỉ cài đặt những component hay card thực sự cần thiết để tránh lỗi, giảm nguy cơ bảo mật và đảm bảo hiệu suất máy chủ Hass. Trên một số thiết bị hay trình duyệt, các custom card có thể gây lỗi hoặc làm chậm đáng kể hiệu suất tải giao diện.
Hãy thận trọng khi cài đặt một custom mới trên máy chủ Hass chính của bạn vì có thể gây ra lỗi nghiêm trọng làm gián đoạn hoạt động bình thường của máy chủ và các thiết bị khác.

Tạo bản đồ tương tự như app MiHome

Việc này chỉ cần thiết khi bạn muốn:

  • Trên Home Assistant, chỉ chọn một, hai vùng để làm sạch thay vì cho robot chạy toàn bộ diện tích
  • Tạo các phòng để cho robot dọn nhanh hoặc tạo automation vì thực tế là có những phòng như bếp hay khu vực trẻ con cần được hút bụi thường xuyên hơn các khu vực khác trong nhà

Do vậy nếu không có nhu cầu này mà chỉ cần xem thông tin và điều khiển các thao tác căn bản, bạn hãy chuyển xuống phần Custom Vacuum Card.

Chuẩn bị bản đồ

Trước tiên bạn sẽ cần bản đồ hay bản vẽ mặt bằng của khu vực mà robot hút bụi Xiaomi sẽ vệ sinh. Đây có thể là bản vẽ thiết kế hoặc hình ảnh với tỉ lệ chuẩn do bạn tự vẽ. Nếu bạn có thực hiện floor-plan trên Home Assistant, có thể sử dụng luôn hình ảnh 2D đó.

Tuy nhiên để cho nhanh, ở đây ta sẽ sử dụng bản đồ do robot “dựng” bằng cách cho robot hút bụi làm vệ sinh toàn bộ diện tích một lượt rồi lấy bản đồ từ app MiHome.

Chụp lại bản đồ trong app MiHome

Sau khi robot hoàn tất vệ sinh và quay về dock sạc. Bạn mở app Mi Home, vào mục quản lý của robot hút bụi Xiaomi, sẽ thấy bản đồ đã được dựng. Bạn cố gắng phóng to hết mức bản đồ sao cho phủ kín màn hình điện thoại nhưng không bị thiếu phần diện tích nào. Sau đó sử dụng nút Share như ảnh dưới để chuyển hình ảnh hoặc “chụp màn hình” điện thoại rồi chuyển sang máy tính.

🧸 Trên iPhone & iPad, bạn bấm đồng thời nút Home và nút Power để chụp màn hình
🧸 Trên điện thoại Android, thông thường có thể chụp màn hình bằng nút Power + Giảm âm lượng

Nút Share trên ứng dụng MiHome
Nút Share trên ứng dụng MiHome
Cắt gọn – crop hình ảnh trên máy tính

Sau khi lấy được hình ảnh từ ứng dụng MiHome lên máy tính, bạn cắt bớt hình ảnh sao cho chỉ còn lại bản đồ để tiện sử dụng trong Home Assistant (tuỳ sở thích của bạn).

Trên MacOS, bạn có thể cắt bằng ứng dụng Preview. Trên Windows có thể sử dụng ứng dụng Windows Photo Editor có sẵn.

Bạn cũng cần resize (giảm kích thước) ảnh này để tải nhanh hơn trên giao diện Lovelace của Home Assistant. Kích thước ảnh tốt sẽ vào khoảng 800pixel chiều rộng, chiều dài tuỳ ý theo tỉ lệ diện tích của bạn nhưng nếu ảnh quá dài thì bạn nên xoay ảnh một góc 90° hoặc -90° sao cho thuận mắt.

Ảnh mẫu bản đồ do robot hút bụi Xiaomi tạo
Đây là một ảnh mẫu bản đồ sau khi đã cắt bớt

Cài đặt và cấu hình Xiaomi Vacuum Map card

Trước khi cài đặt và cấu hình Map card trong Lovelace, bạn hãy chép ảnh đã tạo ở bước trên vào thư mục /config/www của máy chủ Hass. Ví dụ sau khi chép, ảnh trên sẽ nằm tại:

/config/www/xiaomi_vacuum_map.jpg

Bạn có thể thử truy cập ảnh này qua địa chỉ:
https://domain:port/local/xiaomi_vacuum_map.jpg

Cài đặt và cấu hình Lovelace Xiaomi Vacuum Map Card

Bạn có thể cài đặt card này qua HACS (xem Hướng dẫn Cách cài đặt và sử dụng Home Assistant Community Store) hoặc cài đặt thủ công theo hướng dẫn của tác giả PiotrMachowski tại github.

Sau khi cài đặt, bạn vào giao diện Lovelace, chọn Cấu hình giao diện rồi chọn icon Thêm Add icon để thêm một card Manual mới. Copy cấu hình mẫu bên dưới rồi thay vào cấu hình hiện có.

type: 'custom:xiaomi-vacuum-map-card'
debug: true
entity: vacuum.xiaomi_vacuum_cleaner
map_image: /local/xiaomi_vacuum_map.jpg
calibration_points:
  - map:
      x: 906
      'y': 933
    vacuum:
      x: 25500
      'y': 25500
  - map:
      x: 897
      'y': 794
    vacuum:
      x: 25500
      'y': 26500
  - map:
      x: 1018
      'y': 794
    vacuum:
      x: 26250
      'y': 26500
default_mode: zoned_cleanup
zones:
  - - 20313
    - 27004
    - 22372
    - 28357
    - 1

Trong đó,

  • entity_id: là entity_id của Robot hút bụi Xiaomi mà bạn đã thêm vào Hass
  • map_image: đường dẫn đến file bản đồ trong Home Assistant
  • calibration_points: danh sách 3 điểm mốc toạ độ trên ảnh bản đồ, ta sẽ tạo chính xác 3 điểm này ở bước kế tiếp
  • debug: chế độ “phát triển”, tạm thời ta bật chế độ này lên để phục vụ việc cấu hình
  • zones: danh sách các vùng- zone do bạn định nghĩa, quy định bởi toạ độ. Ta sẽ tạo danh sách này cuối cùng.
  • default_mode: thao tác mặc định của Robot khi bấm nút start trên card, bao gồm: zoned_cleanup – làm sạch vùng chọn trên map, go_to_target – đi đến một vị trí, predefined_zones – làm sạch một vùng định nghĩa trước.
Cân chỉnh bản đồ

Khi Xiaomi Vacuum Map Card đang ở chế độ debug, ta sẽ cân chỉnh bản đồ này cho khớp với toạ độ mà robot hút bụi Xiaomi nhận biết được như sau.

Mở Developer Tools

Bạn hãy mở thêm một tab hoặc cửa sổ trình duyệt mới, truy cập đến Công cụ nhà phát triểnDeveloper Tools của Home Assistant. Vào mục Dịch vụServices và chọn dịch vụ vacuum.send_command, chọn tiếp Thực thểentity là robot hút bụi Xiaomi.

Gọi dịch vụ vacuum.send_command để điều khiển robot
Gọi dịch vụ vacuum.send_command

Dịch vụ này để làm gì? Ở đây ta cần gọi dịch vụ này để điều khiển Robot hút bụi Xiaomi đi đến một vị trí quy định bởi hai toạ độ [ngang, dọc] (x và y), dựa trên vị trí thực tế, ta sẽ cân chỉnh bản đồ hình ảnh.

Ấn CALL SERVICE và chờ robot hút bụi Xiaomi hoàn tất việc đi đến vị trí cần thiết.

Bạn đừng tắt tab Developer Tools này.

Ý nghĩa của toạ độ Robot

Thông thường, vị trí [25500, 25500] sẽ rất gần Dock (bệ sạc) của Robot. Mỗi 1,000 đơn vị toạ độ sẽ tương ứng với 1m (1 mét) trên thực tế.

Có thể ban đầu bạn sẽ hơi bối rối không phân biệt được hướng ngang dọc, tới lui. Nếu vậy, bạn hãy gọi dịch vụ trên vài lần với các thay đổi khác nhau mỗi lần 1,000 đơn vị và chỉ thay đổi một chiều (ví dụ [26500, 25500] rồi [26500, 24500]) để phân biệt được hướng thực sự của robot.

Nếu robot thông báo không thể đi đến vị trí bạn muốn (“could not reach the target“) thì có nghĩa là vị trí bạn chọn nằm ngoài bản đồ hoặc vướng chướng ngại vật.

Đối chiếu toạ độ trên ảnh và toạ độ robot

Giả sử lúc này robot đang ở vị trí [25500, 25500].
Bạn còn nhớ ảnh bản đồ đã copy vào Home Assistant chứ.

Giờ hãy truy cập vào trang web sau: https://yangcha.github.io/iview/iview.html.

Đây là một công cụ rất tốt để tìm toạ độ một điểm trong ảnh. Bạn bấm nút Choose file rồi tải lên cùng ảnh bản đồ đã copy vào Home Assistant. Phải cùng một ảnh đấy nhé.

Yancha tools
Công cụ Yangcha

Bây giờ, dựa trên vị trí thực tế của robot hút bụi Xiaomi, bạn di chuột đến vị trí ước lượng của robot trên ảnh (định vị robot bằng vị trí cảm biến LIDAR bên trên robot hoặc ngay chính giữa robot) rồi nhớ 2 toạ độ [x, y] ở thanh bên dưới cùng của công cụ yangcha.
Ghi lại toạ độ này cùng với toạ độ của robot, ví dụ:

[908, 934] : [25500, 25500]

Đây chính là toạ độ của điểm cân chỉnh thứ 1. Tiếp theo, bạn quay lại công cụ Developer Tools của Home Assistant, cho robot đi đến một vị trí mới, chờ nó hoàn tất và lần nữa, lấy toạ độ của điểm cân chỉnh thứ 2 này. Lặp lại lần nữa để lấy toạ độ của điểm cân chỉnh thứ 3.

Lưu ý:

  • Toạ độ toàn bộ bản đồ sẽ được nội suy ra từ 3 điểm cân chỉnh, do vậy bạn cần chọn sao cho 3 điểm tạo nên một tam giác (vuông, cân, tròn, méo loại gì cũng được miễn là tam giác)
  • Nếu một điểm nào đó quá khó để định vị trên ảnh, bạn hãy tiếp tục cho robot “nhích” đến một điểm khác thật dễ nhận dạng hay đo đếm (ví dụ điểm cạnh chướng ngại vật trên bản đồ)
  • 3 điểm cân chỉnh này nên cách xa nhau tương đối, ít nhất là 1m – tương ứng 1,000 điểm toạ độ
  • Đừng chọn các điểm quá gần mép bản đồ hoặc các bức tường
Cấu hình lại Xiaomi Vacuum Map Card với toạ độ cân chỉnh

Bây giờ khi đã có 3 bộ toạ độ tương ứng giữa ảnh map và toạ độ thực của robot hút bụi Xiaomi, bạn nhập các toạ độ này vào thay thế các giá trị có sẵn trong phần cấu hình calibration_points của Xiaomi Vacuum Map Card.

Các cấu hình khác vẫn để nguyên. Lưu lại card này.

Kiểm tra toạ độ trên Xiaomi Vacuum Map Card

Nếu bạn làm đúng thì card trên vẫn đang trong chế độ debug.

Bây giờ hãy chuyển chế độ hoạt động của robot trên card sang Go to target. Trên bản đồ, bạn bấm vào một vị trí nào đó dễ nhận biết trên thực tế (điểm màu xanh nhạt trong ảnh dưới) gần với vị trí [25500, 25500] để chọn rồi ấn START.

Kiểm tra toạ độ bản đồ Xiaomi Vacuum Map
Chọn một điểm dễ nhận biết ngoài thực tế

Lúc này một thông báo sẽ xuất hiện với giá trị toạ độ tính toán được của điểm đã chọn. Bạn có thể ước lượng hoặc lấy thước đo vị trí của điểm này so với vị trí [25500, 25500] để xem có chính xác hay không. Nếu không thì cần kiểm tra lại các bước trên.

Tìm toạ độ các Zones – vùng

Tương tự như trên, chuyển chế độ hoạt động của robot trong Xiaomi Vacuum Card sang Zoned Cleanup. Sau đó bạn dùng chuột vẽ một khu vực mà mình muốn rồi ấn START để lấy toạ độ của khu vực đó.

Mỗi khu vực là một hình chữ nhật và được quy định bởi toạ độ của 2 điểm góc, dạng [[20229,27018,22551,28308,1]], trong đó 1 ở cuối là số lần vệ sinh lặp lại.

Bạn cũng có thể chọn các zone bao gồm nhiều hình chữ nhật bằng cách vẽ nhiều hình rồi bấm START để lấy toạ độ chung của tất cả các hình đã vẽ.

Thêm các vùng được định nghĩa trước vào card

Bạn lần lượt chọn các vùng mình muốn rồi ghi lại toạ độ thông báo bởi Xiaomi Vacuum Map Card.

Sau đó thêm các tổ hợp toạ độ này vào bên dưới tuỳ chọn zones của card, dạng như bên dưới (sau khi lưu, hình thức các toạ độ này sẽ thay đổi nhưng không sao cả).

zones:
  - [[20229,27018,22551,28308,1]]
  - [[22055,28743,27513,32158,1],[20782,25438,21743,27000,1]]
Chuyển Xiaomi Vacuum Card về chế độ hoạt động thông thường

Sau khi hoàn tất cân chỉnh toạ độ và định nghĩa trước các zone, bạn chuyển tuỳ chọn debug của card về false rồi lưu lại.

Các vùng đã được định nghĩa trước sẽ hiển thị khi bạn chọn chế độ hoạt động Zones trên card. Bấm vào một vùng để chọn trước khi bấm START để bắt đầu dọn vệ sinh vùng đó.

! Lưu ý về live-map

Cấu hình Xiaomi Vacuum Map card trên đây chỉ cho phép bạn chọn điểm/vùng cần vệ sinh trên map chứ không hiển thị vị trị hiện tại của robot trên map (như khi dùng app MiHome). Để sử dụng được live-map, bạn cần root robot Xiaomi và sử dụng một firmware khác.
Bạn có thể tham khảo liên kết này: Valetudo firmware
Riêng chúng tôi không khuyến khích bạn làm vậy vì không cần thiết. Việc này chỉ phù hợp với một số nhu cầu đặc biệt và dành cho người có khả năng và thời gian thực hiện.

Custom Vacuum Card

Vacuum Card là một custom- card để đưa các robot hút bụi dưới domain vacuum ra giao diện Lovelace của Home Assistant. Khác với card Xiaomi Vacuum Map ở trên, card này cho phép xem tình trạng các cảm biến của robot hút bụi Xiaomi cũng như cho phép chọn nhanh một vùng để thực hiện vệ sinh. Giao diện của card này như bên dưới.

Card Xiaomi Vacuum trong Home Assistant
Lovelace Vacuum Card

Cài đặt và cấu hình Vacuum card

Bạn cài card này qua HACS hoặc trực tiếp tại github của tác giả denysdovhan.

Sau khi cài đặt, bạn vào giao diện Lovelace, chọn Cấu hình giao diện rồi chọn icon Thêm Add icon để thêm một card Manual mới. Copy cấu hình mẫu bên dưới rồi thay vào cấu hình hiện có.

type: 'custom:vacuum-card'
entity: vacuum.xiaomi_vacuum_cleaner
image:
stats:
  cleaning:
    - attribute: cleaned_area
      subtitle: Cleaning area
      unit: m2
    - attribute: cleaning_time
      subtitle: Cleaning time
      unit: minutes
  default:
    - attribute: filter_left
      subtitle: Filter
      unit: hours
    - attribute: side_brush_left
      subtitle: Side brush
      unit: hours
    - attribute: main_brush_left
      subtitle: Main brush
      unit: hours
    - attribute: sensor_dirty_left
      subtitle: Sensors
      unit: hours
actions:
  - icon: 'mdi:sofa'
    name: Clean living room
    service: script.xiaomi_vacuum_living_room_cleaning
  - icon: 'mdi:bed-empty'
    name: Clean bedroom
    service: script.xiaomi_vacuum_bedroom_cleaning
  - icon: 'mdi:silverware-fork-knife'
    name: Clean kitchen
    service: script.xiaomi_vacuum_kitchen_cleaning

Trong đó,

  • entity: entity_id của robot hút bụi Xiaomi đã thêm vào Home Assistant
  • image: đường dẫn đến file ảnh trên Home Assistant (/local/…) nếu bạn muốn thay hình ảnh mặc định
  • stats: các thông số (attributes) của máy hút bụi mà bạn muốn thể hiện trên card khi robot trong các chế độ khác nhau (trong cấu hình mẫu là chế độ cleaningdefault – mặc định)
  • actions: danh sách các hành động chọn nhanh hiển thị ở thanh dưới cùng, bao gồm icon, name và service. Bạn có thể gọi bất cứ service nào cùng data của nó nhưng ở đây ta sẽ gọi các kịch bản để dọn vệ sinh nhanh một vùng (phòng) chọn trước.

Tạo các script – kịch bản cho Robot Hút bụi Xiaomi trong Home Assistant

Ta sẽ tạo các script để điều khiển robot dọn vệ sinh một khu vực cụ thể. Các scripts này sẽ được sử dụng trong mục actions của card hoặc trong các automation.

Cấu hình mẫu của một script bên dưới. Bạn cũng có thể tạo script bằng giao diện – UI nhưng sẽ phải nhớ id ngẫu nhiên của script thay vì id tự tạo dễ nhớ hơn. Trong cấu hình mặc định, các scripts được chứa tại /config/scripts.yaml.

xiaomi_vacuum_bedroom_cleaning:
  alias: Xiaomi Vacuum Bedroom Cleaning
  sequence:
  - data:
      repeats: 1
      zone:
      - [22036,28689,27573,32103]
    entity_id: vacuum.xiaomi_vacuum_cleaner
    service: xiaomi_miio.vacuum_clean_zone

Trong đó,

  • service: xiaomi_miio.vacuum_clean_zone là dịch vụ điều khiển robot hút bụi Xiaomi vệ sinh một khu vực
  • entity_id: entity_id của robot trong Home Assistant
  • repeats: số lần vệ sinh lặp lại
  • zone: danh sách toạ độ các vùng sẽ được vệ sinh, bạn có thể ước lượng các toạ độ này hoặc sử dụng Xiaomi Vacuum Map card ở trên để lấy.

Bạn có thể tạo nhiều script cho nhiều phòng và nhiều mục đích khác nhau. Các script này cần phải khác nhau ở id: và id nên dễ nhớ, bạn cũng không được sử dụng chữ cái viết Hoa cho id.

Sau khi cấu hình script, trên Home Assistant, bạn vào mục Cấu hình, Điều khiển máy chủ, Tải lại kịch bản để khởi tạo các script mà không cần khởi động lại Home Assistant. Sau khi tạo script, bạn thay đổi lại cấu hình actions của Vacuum card cho phù hợp.

Sử dụng kết hợp Vacuum card và Map

Nếu đã tạo cả 2 card, bạn có thể thể hiện cả 2 card trên trên cùng một giao diện Lovelace. Tuy nhiên, để cho gọn, đỡ rối mắt, ta sẽ chỉ hiển thị/ẩn Map card khi cần thiết bằng nút ấn trên Vacuum card.

Home Assistant Xiaomi Vacuum Card
Nút hiển thị/ẩn Map card

Tạo input_boolean.vacuum_map

Ta cần tạo một input_boolean để quyết định việc ẩn hay hiển thị Map card. Bạn thêm cấu hình input_boolean này vào file cấu hình /config/configuration.yaml của Home Assistant như bên dưới.

input_boolean:
  vacuum_map:
    initial: false
    name: 'Show Vacuum Map card'

Sau khi cấu hình, cần khởi động lại Home Assistant để khởi tạo input_boolean này.

Tạo nút điều khiển trên Vacuum Card

Trong cấu hình của Vacuum card, bạn thêm một action vào cấu hình actions của card như sau.

! Chi tiết về Mã nguồn mở

Đến đây thì mình tin rằng các bạn đã nắm rõ được các thao tác thông dụng trên Home Assistant, do vậy các bước sẽ được mô tả ngắn gọn chứ không chi tiết như bên trên. Nếu không rõ, bạn cần xem lại các bước liên quan bên trên.

actions:
  - icon: 'mdi:map'
    name: Zone Cleanup
    service: input_boolean.toggle
    service_data:
      entity_id: input_boolean.vacuum_map

Đây chính là action có hình bản đồ trong ảnh minh hoạ ở trên.

Đưa Map card vào trong Conditional card

Tiếp theo cần đưa Xiaomi Vacuum Map card đã tạo vào bên trong conditional-card. Cách làm trên giao diện Lovelace như sau.

Bạn chọn Chỉnh sửa giao diện, chọn Map card đã tạo, chọn Chỉnh sửa. Tiếp theo chọn Sửa mã nguồn rồi copy toàn bộ cấu hình hiện tại của card. Chọn Huỷ bỏ để đóng card này lại.

Trên giao diện Lovelace, chọn Thêm Add icon rồi chọn Conditional. Chọn cấu hình card Conditional này như trong ảnh dưới.

Conditional card trong Home Assistant
Lưu ý các thông số

Sau đó chuyển sang tab Thẻ. Kéo xuống dưới cùng, chọn thẻ Manual rồi paste/chép đè toàn bộ cấu hình card Xiaomi Vacuum Map đã copy ở trên vào. Cuối cùng chọn Lưu để lưu lại card Conditional này.

Sử dụng kết hợp Vacuum card và Map card

Sau khi tạo thành công card Conditional chứa Map card, bạn bấm vào nút mũi tên lên/xuống để di chuyển card này lại ngay bên dưới hoặc bên cạnh Vacuum Card.

Lúc này bạn có thể bấm thử nút Map trên Vacuum card để ẩn hoặc hiện Map card.

Một số automation với Robot hút bụi Xiaomi

Dọn vệ sinh toàn bộ nhà vào một giờ hẹn trước

Bên dưới là automation để robot dọn vệ sinh toàn bộ nhà vào lúc 9g sáng thứ 2, 4, 6 khi không có ai ở nhà. Đồng thời Home Assistant cũng gửi thông báo qua Telegram khi bắt đầu thực hiện vệ sinh.

Cách cấu hình Home Assistant thông báo qua Telegram bạn xem ở đây.

Bạn cũng có thể thay đổi mục action trong cấu hình để chỉ dọn một vài khu vực nhất định.

- id: '15920310342323633'
  alias: Xiaomi Vacuum Clean House at 09AM
  description: Dọn vệ sinh cả nhà vào lúc 09 giờ khi không có ai ở nhà
  trigger:
  - at: 09:00:00
    platform: time
  condition:
  - condition: state
    entity_id: group.family_member
    state: not_home
  - condition: time
    weekday:
    - mon
    - wed
    - fri
  action:
  - data: {}
    entity_id: vacuum.xiaomi_vacuum_cleaner
    service: vacuum.start
  - data_template:
      message: 'Bắt đầu dọn vệ sinh theo lịch định trước'
      title: 'Home Assistant: Xiaomi Vacuum CLEANING!'
    service: telegram_bot.send_message

Hoặc bạn cũng có thể tạo các lịch phức tạp hơn rất nhiều như trong bài viết: Sử dụng lịch Google Calendar.

Thông báo khi robot hút bụi Xiaomi gặp lỗi

Nếu Robot hút bụi Xiaomi gặp lỗi trong quá trình hoạt động, automation bên dưới trong Home Assistant sẽ tự động gửi thông báo qua Telegram về nguyên nhân lỗi. Các nguyên nhân thường gặp là không tìm được đường, không thể di chuyển.

- id: '159203202134562'
  alias: ' Xiaomi Vacuum Error Notify'
  description: Thông báo khi robot hút bụi Xiaomi gặp lỗi
  trigger:
  - entity_id: vacuum.xiaomi_vacuum_cleaner
    platform: state
    from: cleaning
    to: error
  condition: []
  action:
  - data_template:
      message: >
        Robot hút bụi Xiaomi gặp lỗi khi đang hoạt động. Lỗi: {{state_attr(trigger.entity_id,'error')}}.
      title: 'Home Assistant: Xiaomi Vacuum ERROR!'
    service: telegram_bot.send_message

Thông báo vệ sinh hộc chứa bụi

Automation bên dưới sẽ gửi thông báo đến Telegram và phát yêu cầu ra loa khi đến hạn vệ sinh hộc chứa bụi của robot. Hạn quy định được tính là sau mỗi 150m vuông đã được vệ sinh, bạn thay đổi cho phù hợp với tình trạng thực tế của gia đình mình.

Vì thông tin tổng số diện tích đã vệ sinh chỉ được cập nhật khi robot thay đổi trạng thái (từ cleaning sang docked hay idle), ta sẽ cần thêm input_number để lưu trữ tổng diện tích từ lần vệ sinh trước đó của robot.

input_number:
  xiaomi_vacuum_last_area:
    name: 'Xiaomi Vacuum Total Cleaned Area From Last Operation'
    min: 0
    max: 20000000

Sau khi cấu hình, bạn khởi động lại Home Assistant để khởi tạo input_number.xiaomi_vacuum_last_area.

- id: '1592031833845'
  alias: "Xiaomi Vacuum Dust Bin Clean Notify"
  description: Thông báo vệ sinh hộc chứa bụi robot Xiaomi
  trigger:
  - platform: state
    entity_id: vacuum.xiaomi_vacuum_cleaner
    from: cleaning
  condition:
  - condition: template
    value_template: "{{ state_attr(trigger.entity_id,'total_cleaned_area') - states('input_number.xiaomi_vacuum_last_area')|float > 150 }}"
  action:
  - service: input_number.set_value
    data_template:
      value: "{{state_attr(trigger.entity_id,'total_cleaned_area')}}"
      entity_id: input_number.xiaomi_vacuum_last_area
  - data_template:
      message: Xiaomi Vacuum Robot đã vệ sinh 150m2 từ lần vệ sinh hộc bụi cuối cùng.
        Vui lòng làm vệ sinh.
      title: 'Hass: Xiaomi Vacuum Maintenance'
    service: telegram_bot.send_message
  - data_template:
      language: 'vi'
      entity_id: media_player.living_room_speaker
      message: 'Thông báo: Xiaomi Vacuum Robot đã vệ sinh 150m2 từ lần vệ sinh hộc bụi cuối cùng. Vui lòng làm vệ sinh.'
    service: tts.google_say

Các thông báo bảo trì khác

Automation dưới sẽ tự động thông báo bảo trì đến Telegram khi các thiết bị như chổi chính, chổi hông, cảm biến đến thời hạn bảo trì, thay thế.

Automation này tương đối phức tạp, bạn cần thay thế tất cả (3 vị trí) cụm vacuum.xiaomi_vacuum_cleaner bằng entity_id tương ứng của robot hút bụi Xiaomi trong Home Assistant.

- id: '1592090367272969'
  alias: Xiaomi Vacuum Maintenance Notify
  description: Thông báo bảo trì thay thế hoặc vệ sinh robot Xiaomi Vacuum
  trigger:
  - entity_id: vacuum.xiaomi_vacuum_cleaner
    platform: state
    to: docked
  condition:
  - condition: template
    value_template: >
      {% set notify = namespace(message='') %}
      {%- for attrs in trigger.to_state.attributes|list %}
      {%- if ('left' in attrs or 'battery_level' in attrs) and state_attr(trigger.entity_id,attrs)|int < 10 %}
      {% set notify.message = notify.message + attrs %}
      {%- endif %}
      {%- endfor %}
      {{ notify.message|length > 0 }}
  action:
  - data_template:
      title: 'Home Assistant: Xiaomi Vacuum cần bảo trì'
      parse_mode: html
      message: >-
        Robot hút bụi Xiaomi cần bảo trì thay thế/vệ sinh thiết bị:
        {%- for attrs in trigger.to_state.attributes|list %}
          {%- if ('left' in attrs or 'battery_level' in attrs) and state_attr(trigger.entity_id,attrs)|int < 10 %}
           {{attrs}}: {{state_attr(trigger.entity_id,attrs)}}
          {%- endif %}
        {%- endfor %}
    service: telegram_bot.send_message
! Một Lovelace card khác gọn hơn

Nếu 2 Lovelace card trên vẫn quá phức tạp, bạn có thể sử dụng Lovelace Xiaomi Vacuum Card thay thế.
Xem thêm tại đây: github.

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).