Trong bài viết này, ta sẽ sử dụng Zigbee2mqtt trên phần cứng là module CC2531. Ưu điểm của phương pháp này bao gồm:

  • Kết nối trực tiếp đến máy chủ Hass và tích hợp sâu trong Hass
  • Giá rẻ và hoạt động ổn định
  • Hỗ trợ nhiều thiết bị Zigbee, dễ dàng hỗ trợ thêm các thiết bị mới
  • Vùng phủ sóng tương đương với một WiFi AP thông thường và có thể mở rộng gần như không giới hạn
CC2531 3D Printed Enclosure
Module CC2531 với anten rời
! Yêu cầu tối thiểu/khuyến nghị
  1. Máy chủ Hass hoạt động bình thường, có Hassio Supervisor. Nếu bạn đang sử dụng duy nhất Home Assistant Core, bạn sẽ phải chạy Zigbee2mqtt độc lập và cài đặt trong Hass phức tạp hơn một chút. Chúng tôi sẽ có bài viết riêng với trường hợp này.
  2. MQTT broker và Hass được cấu hình kết nối thành công qua giao thức mqtt. Thông thường với Hass, ta sử dụng addon chính thức Mosquitto broker để vận hành và quản lý MQTT.
    Bạn có thể xem thêm về Home Assistant: MQTT.
  3. Module CC2531 đã được flash firmware Zigbee2mqtt coordinator. Bạn có thể tìm hiểu về các thiết bị phần cứng CC253X hỗ trợ Zigbee2mqtt và cách flash firmware tại đây.
  4. Thiết bị Zigbee như cảm biến, công tắc v.v… được hỗ trợ bởi Zigbee2mqtt. Trong bài này chúng ta sẽ thử với cảm biến cửa Xiaomi Aqara mã MCCGQ01LM.
Cảm biến Zigbee Xiaomi Aqara Door MCCGQ01LM
Cảm biến Zigbee Xiaomi Aqara Door MCCGQ01LM

Ta sẽ có 3 bước để cài đặt, cấu hình và kết nối thiết bị Zigbee vào Hass. 2 bước đầu chỉ cần thực hiện 1 lần duy nhất, bước thứ 3 cần thực hiện lại mỗi khi thêm thiết bị mới.

  1. Cài đặt và cấu hình addon Zigbee2mqtt
  2. Cấu hình Zigbee2mqtt trong Hass
  3. Thêm thiết bị Zigbee vào mạng và Hass

1. CÀI ĐẶT VÀ CẤU HÌNH ADDON ZIGBEE2MQTT

Để cài đặt Zigbee2mqtt, trên giao diện web của Hass, bạn vào mục Supervisor trên thanh bên – sidebar. Mở mục ADD-ON STORE rồi thêm địa chỉ sau vào ô Add new repository by URL.
https://github.com/danielwelch/hassio-zigbee2mqtt

Thêm repo của addon Zigbee2mqtt vào Hass
Thêm repo của addon Zigbee2mqtt vào Hass
update Retina Cập nhật ngày 24/05/2020
THAY ĐỔI GIAO DIỆN SUPERVISOR

Supervisor trong phiên bản Hass 0.110 có sự thay đổi trong giao diện. Để thêm địa chỉ repository mới, bạn thực hiện như ảnh dưới.

Hass Supervisor Thêm Repo
Thêm repo trong Supervisor

Sau khi bấm nút ADD để thêm, hãy gõ Zigbee vào ô tìm kiếm ngay bên dưới để tìm addon Zigbee2mqtt. Bấm vào addon vừa tìm được rồi ấn INSTALL để cài đặt. Sẽ phải mất vài phút để addon cài đặt xong tuỳ vào tốc độ mạng và tốc độ của máy chủ Hass.
Ngoài addon Zigbee2mqtt chính, còn một addon thứ hai có tên Zigbee2mqtt-edge là phiên bản đang được phát triển, có thể chứa lỗi và cả sửa lỗi mới. Bạn cũng có thể cài đặt phiên bản này nếu cần các tính năng hoặc sửa lỗi đang phát triển.

Cài đặt addon Zigbee2mqtt trên Hass Supervisor
Bấm vào INSTALL để cài đặt addon

Một khi Zigbee2mqtt addon đã cài đặt xong, bạn hãy truy cập vào trang quản lý của addon này để tiến hành cấu hình nó trước khi chạy. Quay lại mục DASHBOARD, bấm vào addon Zigbee2mqtt rồi kéo xuống gần dưới cùng đến mục Cấu hình.

Cấu hình Zigbee2mqtt addon

Cấu hình Zigbee2mqtt, bạn cần lưu ý mấy điểm chính sau:

– groups: groups.yaml là tên file chứa cấu hình cho group của Hass. Nếu đã thay đổi tên file này trong /config/configuration.yaml, đổi lại ở đây cho phù hợp.
– mqtt: nhập các mục tương ứng với cấu hình MQTT của bạn. Cấu hình mặc định sử dụng cho addon chính thức Mosquitto broker với username và password đã được khai báo trong cấu hình addon Mosquito broker. Tuy nhiên bất cứ mqtt broker nào khác cũng có thể hoạt động được.
– disable_led: nhập true nếu bạn muốn tắt đèn led trên module CC2531, xoá dòng này hoặc để false nếu muốn mở lại (mặc định mở).
– network_key: danh sách gồm 16 số, mỗi số từ 0 – 15 tạo thành khoá mã hoá – encrypt key cho toàn bộ mạng Zigbee tạo bởi module CC2531. Bạn cố gắng thay đổi ít nhất là một vài số trong cấu hình mặc định để tăng tính bảo mật cho mạng Zigbee của mình.

! Lưu ý
  1. Thay đổi các cài đặt channel và network_key sẽ buộc bạn phải reset và pair – kết nối lại toàn bộ thiết bị zigbee hiện tại trong mạng.
    Xem thêm về Zigbee channel và can nhiễu sóng.
  2. Có thể bạn sẽ phải thay đổi cài đặt serial: port: cho phù hợp. Tìm port chính xác của module CC2531 trong máy chủ Hass bằng cách cắm module vào cổng USB của máy chủ Hass, chờ vài giây rồi vào mục Supervisor > System > Hardware rồi tìm ở mục serial:. Mặc định là /dev/ttyACM0.
CC2531 bên trong máy chủ Hass
CC2531 nhận diện bởi máy chủ Hass

Sau khi hoàn tất cấu hình, nhớ bấm SAVE để lưu cấu hình này. Sau đó bạn có thể kéo lên trên và bấm START để khởi động addon Zigbee2mqtt với cấu hình vừa tạo. Sau đó kéo đến cuối cùng để tìm mục Log, bấm REFRESH để xem log của addon này. Nếu ổn cả, bạn sẽ thấy tương tự như ảnh dưới.

Zigbee2mqtt Log
Zigbee2mqtt Log

2. CẤU HÌNH ZIGBEE2MQTT TRONG HASS

Sau khi cài đặt và cấu hình thành công addon Zigbee2mqtt, ta sẽ cấu hình Hass để:

  • Tự nhận các thiết bị Zigbee được thêm vào thông qua tính năng MQTT Discovery
  • Xem tình trạng và quản lý module CC2531 trên Hass
  • Cài đặt và cấu hình component zigbee2mqtt Networkmap để hiện thị bản đồ các thiết bị trong mạng
MQTT DISCOVERY

Thêm discovery: true vào cấu hình mqtt: hiện tại của bạn (nằm trong /config/configuration.yaml hoặc file riêng). Thêm cả các dòng phía dưới, bắt đầu bằng birth_message: nếu bạn muốn Zigbee2mqtt trả lại trạng thái tạm lưu của các thiết bị khi Hass khởi động lại. Nếu không, trạng thái các thiết bị sẽ là unknown.

/config/configuration.yaml

Lưu ý giữ nguyên các lựa chọn khác hiện có nếu không phát sinh lỗi. Nếu bạn đang để tuỳ chọn discovery_prefix: khác, cần chuyển về homeassistant hoặc cấu hình lại addon Zigbee2mqtt sang giá trị mới.

Bạn cũng có thể thêm thủ công các thiết bị bằng cách cấu hình theo platform mqtt. Bạn có thể xem trang này để lấy cấu hình mẫu tương ứng với từng model thiết bị: Zigbee2mqtt supported devices.

THÊM CẤU HÌNH QUẢN LÝ ZIGBEE2MQTT

Bước này sẽ giúp bạn thêm vào giao diện Lovelace một card giúp quản lý Zigbee2mqtt coordinator trên Hass. Bạn cũng có thể bỏ qua bước này, khi đó bạn sẽ tự quản lý trạng thái cho phép tham gia mạng – join của Zigbee2mqtt bằng cách thay đổi cấu hình rồi restart addon.

Card quản lý Zigbee2mqtt coordinator trên Lovelace
Card quản lý Zigbee2mqtt coordinator

Ở đây ta thêm toàn bộ vào file configuration.yaml tuy nhiên nếu bạn chia cấu hình thành nhiều file riêng rẽ, bạn chuyển phần cấu hình tương ứng về file thích hợp. Ta có 3 entity cần khai báo thuộc về 3 domain: input_booleantimer và sensor.

/config/configuration.yaml

Thêm vào các automation hỗ trợ chức năng cho phép kết nối – join vào mạng Zigbee tạo bởi Zigbee2mqtt:

/config/automations.yaml

Sau khi thêm vào, bạn khởi động lại Hass để khởi tạo các thành phần đã thêm. Sau đó trên giao diện Lovelace, chọn chỉnh sửa giao diện rồi thêm vào một card mới dạng Manual rồi copy và paste đoạn cấu hình bên dưới.

Lovelace UI

Bạn nên đặt card này trong một Dashboard hay View riêng chỉ dành cho tài khoản quản trị – Admin.

CÀI ĐẶT CUSTOM_COMPONENT ZIGBEE2MQTT NETWORKMAP

zigbee2mqtt Networkmap giúp tạo một bản đồ – map trực quan thể hiện toàn bộ thiết bị trong mạng lưới Zigbee của bạn bao gồm coordinator, các router cũng như thiết bị và kết nối giữa chúng (như thiết bị nào kết nối đến router nào). Như dưới đây:

Zigbee map including coordinator, routers and clients. Photos: Hans Oischinger
Zigbee map, màu đỏ là coordinator, màu xanh là router, còn lại là thiết bị

Đây là bước tuỳ chọn, bạn có thể bỏ qua nếu không có nhu cầu xem bản đồ này.

Zigbee2mqtt Networkmap integrations

Để thêm zigbee2mqtt Networkmap, bạn có thể cài đặt thủ công theo hướng dẫn tại github của tác giả rgruebel tại đây hoặc cài đặt qua HACS bằng cách tìm zigbee trong mục INTEGRATIONS.

Sau khi cài đặt, bạn cần khởi động lại Hass trước rồi thêm cấu hình sau vào configuration.yaml và khởi động lại lần nữa để khởi tạo zigbee2mqtt Networkmap.

/config/configuration.yaml

3. THÊM THIẾT BỊ ZIGBEE VÀO HASS

Sau khi hoàn tất các bước trên, ta có thể thử thêm một thiết bị Zigbee được hỗ trợ bởi Zigbee2mqtt vào Hass. Ở đây ta sẽ thêm cảm biến cửa Zigbee Xiaomi Aqara MCCGQ01LM. Cảm biến này gồm 2 phần, sẽ có trạng thái ‘off’ khi hai phần ở gần nhau và ‘on’ khi 2 phần bị tách rời (cửa mở), khoảng cách tương đối khoảng 2cm.

Zigbee Xiaomi Aqara MCCGQ01LM Door Sensor Reset Hole
Zigbee Xiaomi Aqara MCCGQ01LM Door Sensor

Trước tiên ta cần kiểm tra pin của cảm biến đã được lắp vào vị trí chưa bằng cách tách nắp sau từ phía dưới. Sau đó tháo niêm phong pin rồi lắp lại. Trước khi kết nối vào mạng Zigbee tạo bởi Zigbee2mqtt, ta cần reset bằng cách dùng que chọc sim hoặc bất cứ dụng cụ nào đủ cứng và nhỏ để chọc vừa lỗ reset.

Zigbee Xiaomi Aqara MCCGQ01LM Door Sensor Reset Hole

Lỗ Reset và khe mở nắp sau. Bạn lưu ý đừng dùng các dụng cụ quá mềm và có khả năng gãy hay mắc kẹt ở lỗ. Cũng đừng nhầm lẫn với vị trí đèn thông báo. Thông thường người viết dùng tăm (rất) cứng.

Trước khi reset, bạn hãy truy cập giao diện của Hass, tìm thẻ quản lý Zigbee2mqtt đã tạo ở bước 2 rồi ấn nút Allow devices to join để kích hoạt chế độ cho phép thiết bị mới tham gia mạng lưới. Chế độ này sẽ tự động vô hiệu hoá sau 600 giây – 10 phút, đếm ngược bởi timer tạo ở bước 2.

Zigbee2mqtt Lovelace Allow Joining
Cho phép thiết bị tham gia mạng Zigbee
! Lưu ý về bảo mật mạng Zigbee

Đừng bao giờ để mạng Zigbee ở chế độ cho phép thiết bị mới tham gia mọi lúc. Khi đó bất cứ ai cũng có thể thêm thiết bị vào để điều khiển hoặc tệ hơn là lấy khoá mã hoá – network transport encrypt key của bạn.

Đừng sử dụng khoá mã hoá – network transport encrypted key mặc định trong cấu hình, luôn thay đổi nó.

Bây giờ bạn hãy Reset cảm biến Aqara bằng cách chọc vào lỗ Reset và giữ yên trong vài giây đến khi đèn báo hiệu chớp xanh vài lần. Sau đó hãy vào mục Configuration (Cấu hình) > Integrations (Các tích hợp) của Hass. Chọn tích hợp MQTT: Mosquitto Broker để xem cảm biến mới có tham gia mạng thành công và được tự động nhận biết bởi Hass hay không.

Hass Zigbee2mqtt Successfully Add New Device
Thêm thành công cảm biến Xiaomi

Bạn có thể thấy cảm biến được tự động phát hiện và thêm vào Hass. Từ trái sang:
friendly_name/ Nhà sản xuất/ Mẫu – model/ Khu vực/ Tích hợp/ Mức Pin

Bây giờ bạn có thể ấn vào thiết bị được phát hiện để thay đổi tên và entity_id. Việc thay đổi entity_id sẽ giúp giảm phiền hà khi sử dụng entity của cảm biến vào automation hay thể hiện ra giao diện, cũng như khi thay đổi thiết bị cảm biến mới.

Hass MQTT Integration Device Management
Giao diện quản lý thiết bị – device của Hass
Hass Device Name and Entity Change
Sửa lại cả tên – name và entity_id cho dễ quản lý hơn

Sau khi hoàn tất, bạn có thể bấm ADD TO LOVELACE để thêm tất cả entity của cảm biến này vào giao diện Lovelace.

Hass Lovelace Door Sensor
Tất cả thông tin liên quan đến cảm biến thể hiện trên Lovelace
Door Sensor on Zigbee Map
Thiết bị mới cũng xuất hiện trong Zigbee map tạo bởi zigbee2mqtt Networkmap

Giờ thì bạn có thể dán cảm biến này lên cửa ra vào, cửa sổ (hoặc cửa gió máy lạnh 😉 – lưu ý là sẽ rất tốn pin ở các vị trí xảy ra đóng mở liên tục) và bắt đầu thêm các automation dựa trên cảm biến này như báo động, thông báo qua điện thoại, mở và tắt hệ thống điều hoà không khí, đèn v.v..

Lưu ý là bạn có thể làm gọn giao diện Lovelace bằng cách chỉ hiển thị trạng thái của cảm biến mà không cần hiển thị mức pin hay độ mạnh sóng, sau đó có thể tạo một card riêng để hiển thị chỉ các cảm biến sắp hết pin, sóng quá yếu hoặc hoàn toàn mất kết nối.
Bạn hãy tham khảo bài viết sau: Home Assistant – auto-entities card.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *