Hotline: 0964.238.397 Chào mừng bạn đã đến với Công ty TNHH Thương mại và Dịch vụ Điện tử tương lai Việt Nam

Zigbee2MQTT là gì

Zigbee2MQTT là gì

09:01:0731/05/2021

Hiện nay thiết bị nhà thông minh Zigbee có mặt khắp mọi nơi. Zigbee2MQTT là một phần mềm cho phép bạn điều khiển tất cả các thiết bị đó.

 

Nhiều thương hiệu khác nhau đang sản xuất thiết bị Zigbee, vì vậy có rất nhiều các cổng và ứng dụng khác nhau để kiểm soát các thiết bị này. Ngoài ra tất cả đều hoạt động dựa trên internet. 

Nhưng với Zigbee2MQTT bạn có thể điều khiển hầu hết các bóng đèn thông minh (và rất nhiều thiết bị nhà thông minh khác) bằng một cổng kết nối giá rẻ và phần mềm. Hoàn toàn dưới sự kiểm soát của bạn và không phụ thuộc vào nhà sản xuất và phần mềm điều khiển. 

 

Tại sao lại là Zigbee?

Zigbee là một giao thức mạng tuyệt vời được thiết kế cho nhà thông minh và các thiết bị IoT. Nó được tạo ra để tiêu thụ điện năng thấp (thiết bị chạy bằng pin!) Và tự động xây dựng mạng giữa tất cả các thiết bị (thiết bị được cấp nguồn trên tường trở thành bộ định tuyến) mà người dùng không cần phải làm gì cả.

 

Bạn có thể không nhận thấy nhưng hầu hết các thương hiệu lớn như Philips Hue, Ikea Tradfri và Xiaomi Aqara hay Mijia đều đã sử dụng Zigbee. Họ chỉ có cổng kết nối riêng để kết nối Zigbee và Wifi của bạn. Nếu bạn chỉ mua thiết bị từ một nhà sản xuất và không ngại chia sẻ dữ liệu của bạn với họ cũng như dựa vào kết nối Internet trong hầu hết các trường hợp nhưng trong những trường hợp khác thì buộc bạn phải khắc phục vấn đề này.

 

Phần cứng

Trước bắt đầu, chúng ta cần có gateway của riêng mình. Bạn có thể chọn một cái gì đó rẻ, dễ mua và đáng tin cậy và có thể giao tiếp với các thiết bị Zigbee. Phần cứng có thể là một chiếc PC cũ, một máy ảo hoặc thứ gì đó khác không cần phải thực sự mạnh mẽ. Bạn có thể mua Rasperry Pi (model 3 hoặc 4).

 

Đối với những người không biết Rasperry Pi: nó là một máy tính bảng đơn nhỏ và rẻ. Nó sử dụng ít năng lượng và không gian hơn so với một máy tính chạy đầy đủ nhưng vẫn đủ mạnh để chạy tất cả các phần mềm nhà thông minh mà bạn cần. Bạn cần

 

Raspberry Pi, tốt nhất là Pi 4 với RAM 2 hoặc 4 GB

Nguồn cấp điện USB (C cho Pi 4, Micro USB cho những model cũ hơn) với khoảng 3.0A

Thẻ microSD, 16 + GB từ một nhà sản xuất đáng tin cậy, nên có tốc độ nhanh: class 10 / UHS-1

Tùy chọn: vỏ (có làm mát) cho Pi

Tùy chọn: nếu bạn chưa có, hãy mua đầu đọc / ghi thẻ SD

Tùy chọn: truy cập mạng là cáp LAN hoặc USB Wi-Fi dongle nếu bạn vẫn sử dụng model Pi cũ.

 

Khi bạn đã có tất cả những thứ trên, bạn cần cài đặt một hệ điều hành mà bạn chọn. Điều này sẽ phụ thuộc vào phần mềm điều khiển nhà thông minh mà bạn sẽ sử dụng. Nếu bạn định sử dụng OpenHab, bạn nên sử dụng OpenHabian. Việc thiết lập rất dễ dàng. Nếu bạn không định sử dụng một hệ thống nhất định hoặc không chắc chắn, bạn có thể sử dụng hệ thống Raspbian. Nó sẽ chạy tất cả phần mềm cần cho hướng dẫn này và cũng có thể cài đặt khá nhiều thứ khác. Chỉ cần bật quyền truy cập SSH để sử dụng mà không cần màn hình.

 

Bây giờ chúng ta có một máy tính hoạt động, chúng ta cần thêm hỗ trợ cho Zigbee. Có một số cách dễ dàng để làm điều này ví dụ USB Conbee (II). Nó đi kèm với phần mềm riêng và hoạt động khá tốt. Tuy nhiên phần mềm này không phải là mã nguồn mở và USB sẽ hơi mắc. Còn một giải pháp khác cho bạn là USB CC2531.

 

CC2531 là một thiết bị dò tìm Zigbee có thể tương tác với các thiết bị Zigbee. Để sử dụng nó chúng ta cần flash một firmware tùy chỉnh.

 

Vậy là xong, phần cứng đã sẵn sàng.

 

Tại sao lại là MQTT?

Chúng ta hãy tạm dừng ở đây một chút. Chúng ta đã có gateway riêng có thể kết nối với các thiết bị Zigbee. Bây giờ chúng ta cần một số cách để giao tiếp các trạng thái và lệnh đến các thiết bị này từ phần mềm điều khiển nhà thông minh. Chúng ta có thể sử dụng một số plugin phần mềm giao tiếp trực tiếp với USB Zigbee nhưng có một cách khác tốt hơn hơn.

 

Phần mềm Zigbee2MQTT lấy những thông điệp này từ mạng Zigbee và chuyển chúng thành những thông điệp dễ sử dụng và có cấu trúc tốt trong một protocol khác: MQTT.

 

Nhưng trước tiên hãy giải thích nhanh MQTT là gì. MQTT có nghĩa là Vận chuyển từ xa trong hàng đợi tin nhắn và là một hệ thống đăng ký- xuất bản nhẹ được thiết kế cho các ứng dụng IoT. MQTT là một hệ thống nhắn tin được thiết kế cho các thiết bị tiêu thụ điện năng thấp với kết nối kém tối ưu ở giữa và có thể đẩy tin nhắn đến các thiết bị. Nó cũng rất linh hoạt và khá phổ biến vì thế nó là lựa chọn tuyệt vời cho các mục đích tự động hóa gia đình. Nó chỉ cần một máy chủ (được gọi là broker) thường chạy trên máy bạn chạy bộ điều khiển nhà thông minh. Nó cũng cho phép nhiều người dùng cùng lúc và trình bày dữ liệu trong một cấu trúc liên kết cây có cấu trúc tốt.

 

Tất cả các bộ điều khiển nhà thông minh mở lớn như OpenHab, HomeAssistant và Domoticz đều hỗ trợ MQTT. Điều đó giúp bạn dễ dàng thiết lập các thiết bị đó và cũng giúp cho tương lai nếu bạn có kế hoạch chuyển đổi sau này. Phần mềm Zigbee2MQTT cũng hỗ trợ hàng trăm thiết bị hiện có và đi kèm với các tính năng thú vị như: danh sách trắng và đen, tự động phát hiện cho HomeAssistant và thậm chí hỗ trợ OTA thử nghiệm.

 

Thiết lập Zigbee2MQTT

 

File cấu hình này được sử dụng để thiết lập mọi thứ cho chương trình. Thiết lập cơ sở như sau:

 

Nếu bạn không sử dụng homeassistant, thì discovery mechanism bị vô hiệu hóa. Để bắt đầu, bạn cần đặt cổng nối tiếp (cho bộ chuyển đổi USB) thành cổng kết nối thẻ USB của bạn. Trong MQTT.server, bạn cần thêm tên hoặc địa chỉ IP của máy chủ MQTT của mình. Trong trường hợp của này, nó đang chạy trên cùng một máy, vì vậy localhost sẽ hoạt động tốt.

 

Nếu bạn chưa có MQTT broker (server), bạn có thể cài đặt mosquitto trên cùng một Raspberry Pi rất dễ dàng:

 

Nếu bạn thiết lập broker của mình với hỗ trợ tên người dùng / mật khẩu, bạn có thể thêm chúng vào cấu hình. Nếu không, chỉ cần bỏ phần đó ra ngoài. Bạn cũng nên đặt một chủ đề cơ sở mà tất cả các thông báo từ chương trình này sẽ được nhóm lại. Bằng cách đó, bạn có thể dễ dàng tách nó khỏi các thiết bị khác giao tiếp qua MQTT.

 

Cài đặt allow_join cho phép các thiết bị mới vào mạng. Cái này cần được bật bất cứ khi nào bạn thêm thiết bị. Đây là một lỗ hổng bảo mật nếu bạn để nó liên tục như vậy. Bạn có thể hủy kích hoạt nó sau khi kết nối xong các thiết bị của mình.

 

“Network_key: GENERATE” sẽ buộc Zigbee2MQTT tạo một khóa ngẫu nhiên cho mạng của bạn trong lần khởi động tiếp theo. Đó là tùy chọn nhưng cần cẩn thận, nếu bạn thêm vào sau này bạn sẽ phải ghép nối lại tất cả các thiết bị của mình.

 

Phần thiết bị sẽ được sử dụng để đổi tên và lưu trữ tất cả các thiết bị được kết nối mạng. Còn hiện tại hãy để trống. Bây giờ bạn có thể lưu file và khởi động chương trình thông qua “npm start”. Nhận một chương trình để xem tin nhắn MQTT và kiểm tra xem bạn có thể thấy gì không. Phải có một chủ đề “zigbee2mqtt / bridge” với các giá trị trạng thái và cấu hình.

 

Ghép nối thiết bị

 

Bây giờ mọi thứ đã được thiết lập đúng cách, chúng ta có thể bắt đầu bằng cách ghép nối một thiết bị Zigbee. Có hàng trăm thiết bị được hỗ trợ bởi Zigbee2MQTT nhưng trong ví dụ này sẽ lấy thiết bị cảm biến nhiệt độ / độ ẩm Xiaomi Aqara làm minh họa.

 

Để ghép nối trước tiên chúng ta cần bật cài đặt “allow_join” trong cấu hình mô tả ở trên (nếu bạn chưa có). Cả hai thiết bị đều có một nút nhỏ ở bên cạnh. Chỉ cần nhấn trong 5 giây cho đến khi LED nhỏ bắt đầu nhấp nháy. Cảm biến sẽ ghép nối với cổng của bạn. Nếu bạn gặp sự cố khi ghép nối, hãy kiểm tra lại cài đặt ở trên và di chuyển cảm biến đến gần USB Zigbee hơn (không quá gần, hãy đặt xa ít nhất nửa mét).

 

Để kiểm tra ghép nối đã hoạt động hay chưa, hãy kiểm tra logs Zigbee2MQTT.

 

Bây giờ hãy mở lại file config.yaml. Bạn sẽ thấy một mục mới trong phần “devices” của file. Thay đổi nó như thế này

 

Bạn chỉ cần nhớ tên mà bạn đã đặt cho thiết bị mới của mình và chuyển đến bộ điều khiển nhà thông minh để tích hợp nó.

Đối tác

Chúng tôi rất tự hào vì là đối tác chiến lược của các nhà cung cấp hàng đầu

Gọi ngay
SMS
Liên hệ