Home Assistant

Home Assistant: tích hợp máy lọc không khí Xiaomi

Máy lọc không khí Xiaomi

Tích hợp các máy lọc không khí của Xiaomi vào Home Assistant với đầy đủ cảm biến và tính năng

23 phút để đọc hết nội dung

Trên ảnh là máy lọc không khí Xiaomi Air Purifier 2S dành cho căn phòng nhỏ như phòng ngủ. Có giá khoảng 2.8 triệu giao tận nhà, máy lọc này tuy hoạt động êm ái nhưng cũng rất hiệu quả ở chức năng chính là làm sạch không khí. Xiaomi Air Purifier 2S đi kèm cảm biến laser đo chính xác nồng độ bụi mịn đến 0.3μm và cảm biến nhiệt độ/độ ẩm không khí. Tất cả thông tin được hiển thị trên màn hình OLED cực đẹp hoặc ứng dụng Mi Home trên điện thoại, bao gồm nồng độ bụi mịn (PM 2.5) AQI, thông số không khí trong phòng và các chế độ hoạt động của máy.

Tích hợp các máy lọc không khí của Xiaomi vào Home Assistant sẽ giúp bạn tận dụng được tất cả cảm biến có trên máy cũng như điều khiển được tương tự như sử dụng ứng dụng Mi Home. Bạn cũng có thể lên lịch và tự động hoá trên Hass mà không bị gò bó như dịch vụ của Xiaomi. Liên kết vào Hass cũng không làm ảnh hưởng đến kết nối và tính năng điều khiển qua cloud của Xiaomi.

Với một số gia đình đang sử dụng song song nhiều thiết bị Xiaomi cả bản nội địa và quốc tế thì liên kết vào Hass cũng giúp xử lý sự bất tiện khi phải chuyển qua lại giữa các tài khoản mỗi lần muốn điều khiển hay thiết lập thiết bị.

Xiaomi Air Purifier Card
Air Purifier Card

Thông số kĩ thuật

  • Kích thước: 240 x 240 x 520mm
  • Cân nặng: 4.5kg
  • Đường kính bộ lọc: 200mm
  • Chiều cao bộ lọc: 293mm
  • Nguồn điện: AC100V – 220V
  • Tần số định mức: 50/60 Hz
  • Công suất định mức: 29W
  • Công suất nghỉ: 2W
  • Hiệu suất làm sạch: 310m3/h
  • Diện tích làm sạch: 21 – 37m2
  • Cảm biến: laser

Máy lọc này được tích hợp vào Home Assistant thông qua giao thức miIO, hoạt động trong mạng nội bộ (LAN), không phụ thuộc vào Internet hay dịch vụ Cloud của Xiaomi. Tuy nhiên, bạn sẽ cần mã truy cập – access token của thiết bị để kết nối được vào Home Assistant.
Cách lấy mã được hướng dẫn ở Bước 1 của bài này.

Danh sách các thiết bị hỗ trợ miIO của Xiaomi bao gồm:

  • Air Purifiers (1, 2, 3 và Pro)
  • Mi Humidifier
  • Mi Smart Socket Plug và Power Strips
  • Mi Robot Vacuum (V1 và V2)
  • Mi Smart Home Gateway (Aqara) và các thiết bị công tắc, cảm biến v.v.. đi kèm
  • Philips Light Bulb và Eyecare Lamp
  • Đèn Yeelights (White Bulb, Color Bulb, Desk Lamp và Strip)

Lấy access token

Mỗi thiết bị hỗ trợ miIO sẽ có một mã khác nhau. Mã này chỉ có khi đã kết nối thiết bị thành công vào dịch vụ cloud của Xiaomi sử dụng ứng dụng Mi Home của Xiaomi trên iOS/Android.

Bạn có thể lấy mã này:

  • Ngay trên ứng dụng Mi Home nếu thiết bị là Gateway/Hub hoặc liên kết qua Gateway bằng cách chọn Gateway trong app, chọn About (giới thiệu). Tiếp theo, ấn vào mục Version – phiên bản để kích hoạt chế độ Nhà phát triển, bên dưới mục Hub Info bạn sẽ tìm thấy token.
    Cách này có thể không áp dụng được khi có nhiều thiết bị.
  • Thiết bị iOS như iPhone, iPad bằng cách kết nối thiết bị vào ứng dụng Mi Home rồi tạo bản backup không mã hoá cho toàn bộ thiết bị trên máy tính. Sau đó dùng một ứng dụng để đọc bản backup này và lấy token.
    Chỉ sử dụng cách này khi bắt buộc. Cách làm cụ thể ở mục Tham khảo cuối bài viết.
  • Sử dụng ứng dụng Mi Home trên thiết bị Android như điện thoại, TV Box hoặc giả lập như Bluestack.
Lock iCon BẢO MẬT

Bản backup của thiết bị iOS sẽ bao gồm toàn bộ thông tin có trên điện thoại bao gồm cả thông tin các nhân. Không nên tạo các bản backup không mã hoá.

Trong bài viết này ta sẽ sử dụng cách lấy token từ ứng dụng Mi Home trên Android. Phiên bản Mi Home 5.4.49 được biết là phiên bản chính thức duy nhất có thể giúp ta lấy token. Để thực hiện, trước hết bạn cần tải về và cài đặt ứng dụng Mi Home 5.4.49 trên thiết bị của mình. Tải về:

Sau khi cài đặt, mở ứng dụng Mi Home rồi đăng nhập bằng tài khoản của bạn hoặc tạo một tài khoản mới. Tiếp theo, trên cùng ứng dụng Mi Home, thêm thiết bị của bạn vào tài khoản. Nếu bạn đã thêm và kết nối thiết bị thành công trước đây rồi thì không cần thêm nữa.

Chờ khoảng 1 phút cho ứng dụng Mi Home tải thành công tất cả thiết bị đang có trong tài khoản. Nếu do khác vùng, thiết bị không hiển thị trong bảng điều khiển (nhưng vẫn phải thêm thành công vào tài khoản Xiaomi) cũng không sao cả.

Sau khi ứng dụng Mi Home tải danh sách thành công, sử dụng ứng dụng quản lý File trên thiết bị Android, vào mục Bộ nhớ trong và tìm thư mục Smarthome như ảnh.

Xiaomi Mi Home Access Token Folder
Tìm thư mục SmartHome trên bộ nhớ trong

Bên trong thư mục SmartHome, bạn mở tiếp thư mục logs rồi thư mục plug_DeviceManager. Nếu bạn mới cài ứng dụng Mi Home, sẽ chỉ có 1 tập tin có phần mở rộng txt bên trong. Mở tập tin này và cuộn dần xuống dưới (hoặc tìm kiếm từ token) cho đến khi tìm thấy tên thiết bị tương ứng như trong ảnh dưới, ngay bên trên nó sẽ là token. Nếu có nhiều file bên trong thư mục plug_DeviceManager, bạn có thể phải tìm dần từ file mới nhất để lấy được token.

Mã token của thiết bị Xiaomi
Tên thiết bị Mi Air Purifier 2S

Bạn lưu lại chuỗi kí tự trong mục tokenmodel để sử dụng ở bước sau. Giờ bạn có thể xoá ứng dụng Mi Home 5.4.49 này đi để cài lại phiên bản mới nhất (tốt nhất là từ Play Store của Google).

! Lưu ý bảo mật

Các file trên chứa nhiều thông tin bảo mật quan trọng, bạn cần lưu giữ cẩn thận hoặc xoá đi sau khi đã lấy được token.

Cấu hình thiết bị Xiaomi Air Purifier trong Home Assistant

Cấu hình

Bạn sử dụng cấu hình mẫu bên dưới và hai thông tin token, model đã lấy ở trên để thêm vào file cấu hình chính /config/configuration.yaml của Hass.

fan:
  - platform: xiaomi_miio
    name: Bedroom Air Purifier
    host: 192.168.1.21
    token: a928129konnected
    model: zhimi.airpurifier.mc1

Trong đó,

  • host: địa chỉ IP của thiết bị. Bạn có thể thấy nó trong trang quản lý thiết bị của Router hoặc trong file lấy token.
    Nếu Router của bạn đổi IP của thiết bị mỗi lần kết nối, hãy cố định IP của máy lọc không khí.
  • model: không bắt buộc nhưng nếu bạn thường ngắt điện máy khi không hoạt động thì nên khai báo tuỳ chọn này.

Sau khi khai báo, bạn khởi động lại Home Assistant để cấu hình có hiệu lực. Sau khi khởi động lại, máy lọc không khí Xiaomi sẽ xuất hiện bên trong Home Assistant dưới entity_id dạng fan.name với trạng thái và các thông số như ảnh dưới.

Entity máy lọc không khí Xiaomi trong Home Assistant
Entity của máy lọc không khí Xiaomi trong Home Assistant

Các dịch vụ

Bảng bên dưới là một số dịch vụ chủ yếu trong Home Assistant liên quan đến máy lọc không khí Xiaomi. Các dịch vụ này có chung dataentity_id: fan.ten_may_loc. Không phải mọi phiên bản – model máy lọc không khí Xiaomi đều hỗ trợ tất cả dịch vụ, sẽ có 1 hoặc 2 dịch vụ dưới đây không có tác dụng với một mẫu nhất định.

Riêng mẫu Xiaomi Air Purifier 2S như trong ảnh đầu bài hỗ trợ tất cả dịch vụ bên dưới.

DỊCH VỤCÔNG DỤNG
FAN.SET_SPEED
XIAOMI_MIIO.FAN_SET_FAN_LEVEL
Cài đặt tốc độ quạt của máy lọc
XIAOMI_MIIO.FAN_SET_CHILD_LOCK_ONKích hoạt chế độ khoá trẻ em
XIAOMI_MIIO.FAN_SET_CHILD_LOCK_OFFVô hiệu hoá chế độ khoá trẻ em
XIAOMI_MIIO.FAN_SET_FAVORITE_LEVELCài đặt tốc độ quạt trong chế độ favorite – ưa thích
XIAOMI_MIIO.FAN_SET_BUZZER_ONCho phép thông báo bằng loa đi kèm
XIAOMI_MIIO.FAN_SET_BUZZER_OFFVô hiệu hoá loa đi kèm
Bảng I.1 (list of services)

Giao diện Lovelace điều khiển máy lọc không khí Xiaomi

Với entity của máy lọc không khí như trên, bạn có thể đưa nó vào giao diện Lovelace dưới một entity card hoặc gộp chung vào các card khác như thông thường. Lúc này bạn có thể bật, tắt và chuyển chế độ hoạt động cũng như xem các thông số tương tự như ảnh trên.

Nếu bạn có ít thiết bị (1-2 cái) và muốn điều khiển cũng như xem các thông số trực quan hơn, bạn có thể làm theo 1 trong 2 cách bên dưới.

Giao diện máy lọc không khí trực quan

Với cách này thì ta sẽ sử dụng custom card Air Purifier để điều khiển máy lọc không khí trên giao diện Lovelace của Home Assistant.

Bạn có thể cài đặt card này sử dụng HACS (Home Assistant Community Store) bằng cách vào HACS, chọn Frontend, chọn thêm mới Add icon rồi tìm Air Purifier và cài đặt.

Hoặc bạn cũng có thể tải và thêm vào Hass trực tiếp từ github của tác giả fineemb.

! 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.

Sau khi cài đặt, bạn vào giao diện Lovelace, chọn Cấu hình giao diện rồi thêm một card loại Custom: Air purifier.

Cấu hình Air Purifier Card
Cấu hình card, chọn đúng entity của máy lọc không khí

Mặc định card dành cho máy lọc có 3 chế độ hoạt động auto, silentstrong. Nếu máy của bạn khác, chọn Sửa mã nguồn – Raw editor của card và sửa lại danh sách trong tuỳ chọn modes: cho phù hợp. Để xem các chế độ mà máy lọc không khí của bạn hỗ trợ, vào mục Developer Tools – Công cụ nhà phát triển, tìm máy lọc không khí của bạn và xem attributes speed_list của nó.

Đưa tất cả thông số và nút điều khiển ra Lovelace

Khác với cách trên, ở đây ta sẽ đưa toàn bộ thông số và các chức năng điều khiển của máy lọc không khí này ra ngoài giao diện để dễ điều khiển.

Để tạo giao diện trên, trước tiên ta sẽ cần tạo ra các sensor từ giá trị attributes của entity fan.bedroom_air_purifier (đây là tên ví dụ, tuy nhiên bạn cần nhớ rõ tên này để thuận tiện theo dõi các nội dung bên dưới).

Ta cũng cần tạo ra các input.number & input.select để điều chỉnh tốc độ quạt cũng như chế độ hoạt động. Cũng cần các switch để gọi các dịch vụ tương ứng đã được liệt kê trong bảng I.1.

Cuối cùng là các automation để điều khiển thiết bị, phục vụ cho các thao tác chọn tốc độ quạt và chế độ hoạt động.

Ở đây chúng tôi đã tạo sẵn tất cả các thành phần trên trong một file có tên xiaomi_bedroom_airpurifier.yaml mà bạn có thể copy nội dung hoặc tải về theo liên kết bên dưới.

ZIPxiaomi_bedroom_airpurifier.zip
hoặc tải về từ github của konnectED.

© Bản quyền / Credit

Code nguyên gốc trước khi sửa chữa bởi chúng tôi được chia sẻ bởi thành viên MickL từ cộng đồng Home Assistant.

Sử dụng file đã tải về

Trong file tải về, bạn sẽ thấy có cấu hình riêng rẽ cho mỗi thành phần như sensor, switch v.v.. Trước tiên bạn cần thay đổi toàn bộ cụm kí tự bedroom_air_purifier bằng tên entity tương ứng với máy lọc không khí của mình trong Home Assistant. Ví dụ nếu bạn cấu hình máy lọc không khí của mình có entity_id là fan.phong_ngu_loc_khong_khi thì bạn phải thay toàn bộ cụm bedroom_air_purifier bằng phong_ngu_loc_khong_khi. Lưu ý không có dấu cách – space hay bất cứ kí tự gì trước và sau cụm bedroom_air_purifier.

Tiếp theo, bạn có thể tìm mục automation: và đổi tên – alias các automation này từ bắt đầu bằng ‘Bedroom Air Purifier‘ thành tên bạn thích.

Bạn có thể tìm và thay thế toàn bộ sử dụng tính năng search and replace all thường thấy trong các trình soạn thảo văn bản đơn giản hoặc chuyên dụng cho sửa mã.

Home Assistant File Editor Find and Replace
Hoặc sử dụng addon File Editor tìm và thay thế, chú ý đừng để sót!

Sau khi thay thế, bạn có thể copy từng đoạn cấu hình tương ứng với một loại entity (domain) như sensor, automation rồi paste – dán vào mục tương ứng trong file cấu hình chính tại /config/configuration.yaml của Hass.

Hoặc bạn cũng có thể sử dụng cách quản lý cấu hình kiểu package của Home Assistant bằng cách:

  1. Lưu file xiaomi_bedroom_airpurifier.yaml đã sửa chữa vào bên trong thư mục /config/packages của Hass. Nếu chưa có thư mục packages, bạn tạo mới thư mục này. Như vậy ta có file /config/package/xiaomi_bedroom_airpurifier.yaml.
  2. Trong file cấu hình chính /config/configuration.yaml, bên dưới mục cấu hình homeassistant: bạn thêm vào như mẫu sau:
homeassistant:
  packages: !include_dir_named packages

Sử dụng package tránh cho bạn việc phải copy từng cấu hình vào các phần khác nhau của Home Assistant nhưng cũng có nhược điểm là bạn phải khởi động lại Home Assistant mỗi lần thay đổi trong các file này và không thể sửa – edit automation, script v.v.. đi kèm trong package qua giao diện – UI.

Sau khi cấu hình, bạn khởi động lại Home Assistant để khởi tạo các thành phần cần thiết.

Thêm card vào Lovelace

Trên giao diện Lovelace, chọn Cấu hình giao diện rồi thêm một card mới loại Manual. Copy và thay thế nội dung có sẵn của card bằng cấu hình mẫu bên dưới.
Lưu ý, lần nữa hãy thay thế tất cả các cụm kí tự bedroom_air_purifier bằng tên entity tương ứng với máy lọc không khí của mình trong Home Assistant.

type: horizontal-stack
cards:
  - type: entities
    title: Bedroom Air Purifier
    show_header_toggle: false
    entities:
      - entity: fan.bedroom_air_purifier
        name: Power
      - entity: input_select.bedroom_air_purifier_mode
      - entity: input_number.bedroom_air_purifier_favorite_level
        name: Fav Level
      - entity: switch.bedroom_air_purifier_child_lock
      - entity: switch.bedroom_air_purifier_led
      - entity: switch.bedroom_air_purifier_buzzer
      - entity: sensor.bedroom_air_purifier_speed
      - entity: sensor.bedroom_air_purifier_filter_remaining
  - type: vertical-stack
    cards:
      - entities:
          - entity: sensor.bedroom_air_purifier_air_quality_pm25
          - entity: sensor.bedroom_air_purifier_temp
          - entity: sensor.bedroom_air_purifier_humidity
        show_header_toggle: false
        theme: default
        title: Environment
        type: entities
      - entities:
          - sensor.bedroom_air_purifier_air_quality_pm25
        hours_to_show: 48
        refresh_interval: 60
        title: Air quality
        type: history-graph

Automation với máy lọc không khí

Bật và tắt theo giờ

- id: '15914324182184740'
  alias: Bedroom Air Purifier On Off on Time
  description: Bật tắt máy lọc không khí theo giờ
  trigger:
  - at: '20:00:00'
    platform: time
  - at: 07:00:00
    platform: time
  condition: []
  action:
  - data: {}
    entity_id: fan.bedroom_air_purifier
    service_template: >
      {% if trigger.now.hour == 20 %}
      fan.turn_on
      {% else %}
      fan.turn_off
      {% endif %}

Gửi cảnh báo khi chỉ số AQI cao hơn 80 và tự khởi động nếu cửa phòng đang đóng

- id: '1591183075585'
  alias: Bedroom Air Purifier AQI over 80 Notify
  description: Gửi thông báo đến Telegram khi chỉ số AQI trong phòng vượt quá 80
  trigger:
  - platform: template
    value_template: '{{ state_attr(''fan.bedroom_air_purifier'',''aqi'')|int > 80 }}'
  condition: []
  action:
  - data_template:
      message: 'Nồng độ bụi trong phòng ngủ quá cao, AQI = {{state_attr(''fan.bedroom_air_purifier'',''aqi'')}}'
      title: '♨️ Home Assistant: AQI phòng ngủ quá cao'
    service: telegram_bot.send_message
  - condition: state
    entity_id: binary_sensor.cua_phong_ngu
    state: 'off'
  - data: {}
    entity_id: fan.bedroom_air_purifier
    service: fan.turn_on

Thông báo khi lõi lọc gần hết thời gian sử dụng

- id: '1591183684060'
  alias: Bedroom Air Purifier Low Filter Life Notify
  description: Thông báo khi lõi lọc không khí phòng ngủ còn dưới 10%
  trigger:
  - platform: template
    value_template: '{{ state_attr(''fan.bedroom_air_purifier'',''filter_life_remaining'')|int < 11 and state_attr(''fan.bedroom_air_purifier'',''filter_life_remaining'')|int > 0 }}'
  condition: []
  action:
  - data_template:
      message: >-
        Lõi lọc {{state_attr(trigger.entity_id,'friendly_name')}} chỉ còn lại {{state_attr(trigger.entity_id,'filter_life_remaining')}}%
      title: 'Home Assistant: Lõi lọc không khí gần hết hạn'
    service: telegram_bot.send_message

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

konnectED Team.

Like page để nhận cập nhật

Mời bạn thích – Like facebook page của chúng tôi để cập nhật nhanh chóng các bài viết hay tin tức SmartHome, IOT và công nghệ mới.

Có phải hướng dẫn này chỉ áp dụng cho Xiaomi Air Purifier 2S?

Không, hầu hết các mẫu máy lọc không khí Xiaomi đều có thể tích hợp vào Home Assistant theo hướng dẫn này.

Các thiết bị Xiaomi khác có tích hợp vào Home Assistant được không?

Rất nhiều thiết bị đến từ Xiaomi có thể tích hợp được. Mỗi loại thiết bị có thể sử dụng các cách khác nhau. Hãy bấm vào tag – thẻ Xiaomi để xem tất cả bài viết liên quan đến Xiaomi trên konnected.vn.

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).