Mặc dù thường có giá cao hơn, các thiết bị Zigbee, đặc biệt là cảm biến, ngày càng phổ biến do những ưu thế riêng của Zigbee. Các thiết bị này rất phong phú về chủng loại như cảm biến, công tắc, đèn thông minh với rất nhiều nhà sản xuất như Xiaomi, Tuya, Philips. Để tích hợp các thiết bị Zigbee vào Home Assistant, thông thường có 2 cách: tích hợp thông qua Hub của hãng (như Aqara hoặc IKEA TRÅDFRI hub) và tích hợp trực tiếp thông qua các universal hub như deCONZ hoặc Zigbee2mqtt.
Ưu điểm khi tích hợp trực tiếp qua zigbee2mqtt
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
Yêu cầu tối thiểu/khuyến nghị
- 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.
- MQTT broker và Home Assistant đượ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. - 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.
- 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
AqaraMijia mã 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 Home Assistant. 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.
- Cài đặt và cấu hình addon Zigbee2mqtt
- Cấu hình Zigbee2mqtt trong Hass
- Thêm thiết bị Zigbee vào mạng và Hass
Cài đặt và cấu hình addon Zigbee2mqtt
Cài đặt 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
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
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.
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ấu hình Zigbee2mqtt
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, 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 Zigbee. Zigbee2mqtt có hỗ trợ group và bạn có thể chỉnh sửa thủ công file này (trong /share/zigbee2mqtt) để tuỳ chỉnh các group.
– mqtt:
nhập các mục tương ứng với cấu hình MQTT trong Hasscủ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 ý
- 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. - 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.
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.
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). Thay đổi username
và password
nếu cần thiết.
Thêm cả các dòng dưới cùng, 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.
Cập nhật trên Home Assistant 0.115
Từ Home Assistant 0.115, tất cả các cấu hình bên dưới đều có thể được cấu hình sử dụng giao diện cấu hình khi thêm mới/cấu hình lại tích hợp MQTT. Để cấu hình lại tích hợp MQTT, chọn Cấu hình > Các bộ tích hợp > tìm MQTT > Cấu hình > Cấu hình lại.
mqtt: broker: core-mosquitto username: mqtt-username password: mqtt-password discovery: true discovery_prefix: homeassistant birth_message: topic: 'homeassistant/status' payload: 'online' will_message: topic: 'homeassistant/status' payload: 'offline'
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 Home Assistant. 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.
Thêm các component cần thiết
Cập nhật tính năng quản lý mới sẵn có trên add-on Zigbee2mqtt
Từ ngày 27/09/2020, add-on Zigbee2mqtt phiên bản thử nghiệm – edge version
đã tích hợp tính năng quản lý, bao gồm cả bản đồ thiết bị Zigbee. Bạn có thể không cần các bước dưới đây để quản lý cho phép kết nối thiết bị mới và xem bản đồ (tuy nhiên vẫn thêm cũng không sao cả). Một khi hoàn thiện, tính năng quản lý này sẽ sớm được bổ sung vào phiên bản Zigbee2mqtt chính thức.
Ở đâ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_boolean, timer và sensor.
input_boolean: zigbee_permit_join: name: Zigbee cho phép kết nối thiết bị mới initial: off icon: mdi:cellphone-wireless timer: zigbee_permit_join: name: Zigbee thời gian còn lại duration: 600 # Updated this to the number of seconds you wish sensor: - platform: mqtt name: Zigbee bridge state state_topic: "zigbee2mqtt/bridge/state" icon: mdi:router-wireless
Thêm automation quản lý
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:
#Zigbee2mqtt BEGIN<-- - id: enable_zigbee_join alias: Enable Zigbee joining description: Zigbee2mqtt cho phép thiết bị mới kết nối trigger: platform: state entity_id: input_boolean.zigbee_permit_join to: 'on' action: - service: mqtt.publish data: topic: zigbee2mqtt/bridge/config/permit_join payload: 'true' - service: timer.start data: entity_id: timer.zigbee_permit_join - id: disable_zigbee_join alias: Disable Zigbee joining description: Zigbee2mqtt ngừng cho phép thiết bị mới kết nối trigger: - entity_id: input_boolean.zigbee_permit_join platform: state to: 'off' action: - data: payload: 'false' topic: zigbee2mqtt/bridge/config/permit_join service: mqtt.publish - data: entity_id: timer.zigbee_permit_join service: timer.cancel - id: disable_zigbee_join_timer alias: Disable Zigbee joining by timer description: Zigbee2mqtt hết hạn cho phép thiết bị mới kết nối trigger: - platform: event event_type: timer.finished event_data: entity_id: timer.zigbee_permit_join action: - service: mqtt.publish data: topic: zigbee2mqtt/bridge/config/permit_join payload: 'false' - service: input_boolean.turn_off data: entity_id: input_boolean.zigbee_permit_join #-->END Zigbee2mqtt
Thêm vào Lovelace
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.
entities: - entity: input_boolean.zigbee_permit_join - entity: timer.zigbee_permit_join - entity: sensor.zigbee_bridge_state show_header_toggle: false title: Zigbee type: entities
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:
Đâ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.
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.
zigbee2mqtt_networkmap: #topic: your topic (optional, default zigbee2mqtt) panel_iframe: networkmap: title: 'Zigbee Map' url: '/local/community/zigbee2mqtt_networkmap/map.html' icon: 'mdi:graphql'
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 Mijia 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.
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.
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.
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 Mijia 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.
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.
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.
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.
Về Bài viết
Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!
Cảm ơn bạn đã xem bài viết này!
konnectED Team.