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 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 đó,
host:
là địa chỉ IP của Robot hút bụi Xiaomitoken:
mã xác thực
Để lấy mã này bạn xem phần đầu của bài viết Tích hợp máy lọc khí Xiaomi vào Home Assistant.
Và tuỳ chọn:
name:
đặt tên cho robot này trong Hass
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
Đư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 component và custom 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
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.
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 để 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 Hassmap_image:
đường dẫn đến file bản đồ trong Home Assistantcalibration_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ếpdebug:
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ìnhzones:
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ển – Developer 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.
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é.
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.
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.
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 để 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ế độ cleaning và default – 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ựcentity_id:
entity_id của robot trong Home Assistantrepeats:
số lần vệ sinh lặp lạizone:
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.
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 rồi chọn Conditional. Chọn cấu hình card Conditional này như trong ảnh dưới.
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.