Như một số bạn đã biết, tôi đã thử nghiệm và đánh giá các thiết bị đo nhiệt độ và độ ẩm của Zigbee được một thời gian, gần đây đỉnh điểm là một bài viết tóm tắt so sánh 10 cảm biến khí hậu này với màn hình . Đây là một nỗ lực nhằm tìm ra cái nào đáng giá tiền của chúng tôi và cái nào không.
Mặc dù tôi đã tích lũy được hơn 15 mẫu khác nhau nhưng tôi thực sự chưa bao giờ sử dụng cảm biến nhiệt độ dựa trên Zigbee trong nhà của mình. Tôi luôn dựa vào các thiết bị Xiaomi BLE (Đặc biệt là LYWSD02 và CGG1 ), những thiết bị mà tôi chụp được các gói bằng bảng ESP32.
Trong bài viết này, tôi sẽ thực hiện quá trình flash Cảm biến Xiaomi ( LYWSD03MMC ) với chương trình cơ sở Zigbee và tích hợp thiết bị trong Zigbee2MQTT và Home Assistant.
Giới thiệu về LYWSD03MMC
LYWSD03MMC là BLE (Cảm biến năng lượng thấp Bluetooth) do Xiaomi sản xuất, dựa trên Telink TLSR8258 [ Datasheet ] MCU. Các chip Telink được sử dụng trong các thiết bị này có thể được cài đặt chương trình cơ sở tùy chỉnh để mở ra một số tùy chọn tùy chỉnh, thời lượng pin tốt hơn, độ chính xác cao hơn của phép đo và vòng lặp thông tin trên màn hình LCD.
Hiện tại phần sụn tùy chỉnh pvvx hỗ trợ các mô hình sau:
- Xiaomi (LYWSD03MMC)
- Xiaomi (MJWSD05MMC)
- Thanh Bình (CGG1)
- Thanh Bình (CGDK2)
- Xiaomi MiaoMiaoCe (MHO-C401)
- Xiaomi MiaMiaoCe (MHO-C122)
LYWSD03MMC là mẫu hình vuông với màn hình LCD nhỏ, được cấp nguồn bằng pin CR2032 một ô nút. Với chương trình cơ sở mặc định, nó sẽ xuất bản các bài đọc qua BLE cứ sau 10 phút. Bằng cách sử dụng chương trình cơ sở pvvx tùy chỉnh, khoảng thời gian có thể được thay đổi để báo cáo thường xuyên hơn.
Chương trình cơ sở tùy chỉnh Zigbee cho thiết bị này được phát triển bởi Ivan Belokobylskiy ( devbis ) và có thể được flash qua OTA (Over-the-Air) hoặc bằng bộ chuyển đổi USB-to-TTL. Trong bài viết này, tôi sẽ giới thiệu phương pháp OTA vì nó dễ dàng hơn và không yêu cầu tháo dỡ thiết bị và hàn dây.
Chuyển đổi LYWSD03MMC sang Zigbee 3.0 (OTA)
Trước tiên, bạn cần #enable-experimental-web-platform-features trong Chrome, Opera hoặc Edge. Điều này là cần thiết để có được Địa chỉ MAC của thiết bị. Sao chép các liên kết sau cho trình duyệt bạn sử dụng và dán vào thanh địa chỉ:
- Chrome: chrome://flags/#enable-experimental-web-platform-features
- Opera: opera://flags/#enable-experimental-web-platform-features
- Cạnh: edge://flags/#enable-experimental-web-platform-features
Khởi động lại trình duyệt của bạn. Để flash LYWSD03MMC, hãy cẩn thận làm theo quy trình dưới đây.
- Trong trình duyệt của bạn, điều hướng đến https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
- Kiểm tra Nhận MAC quảng cáo và nhấp vào Kết nối
- Chọn LYWSD03MMC từ danh sách thiết bị Bluetooth và nhấp vào Ghép nối
- Đợi kết nối được thiết lập
- Nhấn nút Thực hiện kích hoạt và chờ đợi
- Tải xuống tệp chương trình cơ sở chuyển tiếp
ATC_ota_40000.bin
- Chọn tệp bằng cách nhấp vào Chọn tệp
- Nhấn Start Flashing và đợi quá trình kết thúc
Sau khi chương trình cơ sở chuyển tiếp được flash, hãy tháo pin của Xiaomi LYWSD03MMC và đợi 15-20 giây . Lắp lại pin và đợi thiết bị khởi động lại.
- Điều hướng đến phiên bản Zigbee của flasher Telink
- Nhấn Connect lần nữa lần này tên thiết bị sẽ khác (ví dụ ATC_XXXXXX)
- Nhấn Cặp
- Download
z03mmc.bin
file Firmware Zigbee mới nhất: - Bấm vào Chọn tệp và chọn tệp
z03mmc.bin
- Nhấn Start Flashing và đợi quá trình kết thúc
Quá trình này có thể mất khoảng 4-5 phút và sẽ ghi nhật ký Cập nhật được thực hiện sau XXX giây trong bảng điều khiển. Xong!
Chuyển đổi bằng UART
Dây có luôn tốt hơn không dây, vì vậy nếu gặp sự cố trong khi flash, bạn luôn có thể sử dụng UART để flash Cảm biến Xiaomi LYWSD03MMC. Tuy nhiên, quá trình này phức tạp hơn một chút và đòi hỏi phải hàn. Làm theo hướng dẫn được mô tả trên kho lưu trữ chính thức để flash qua USB sang UART.
Ghép nối LYWSD03MMC với Zigbee2MQTT
Xiaomi LYWSD03MMC đã được thêm vào Zigbee2MQTT với phiên bản 1.33.1, vì vậy nếu bạn không muốn sử dụng bộ chuyển đổi bên ngoài, hãy đảm bảo bạn cập nhật. Dưới đây là cách sử dụng bộ chuyển đổi bên ngoài trong trường hợp thiết bị không được nhận dạng
- Tạo một tệp mới trong thư mục zigbee2mqtt (bên cạnh config.yaml)
- Đặt tên cho nó
lywsd03mmc.js
(đảm bảo nó kết thúc bằng .js ) - Mở tệp và sao chép nội dung từ bên dưới:
const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const ota = require('zigbee-herdsman-converters/lib/ota'); const e = exposes.presets; const definition = { zigbeeModel: ['LYWSD03MMC'], model: 'LYWSD03MMC', vendor: 'Xiaomi', description: 'Temperature & humidity sensor', fromZigbee: [fz.temperature, fz.humidity, fz.battery], toZigbee: [], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); const bindClusters = ['msTemperatureMeasurement', 'msRelativeHumidity', 'genPowerCfg']; await reporting.bind(endpoint, coordinatorEndpoint, bindClusters); await reporting.temperature(endpoint, {min: 10, max: 300, change: 10}); await reporting.humidity(endpoint, {min: 10, max: 300, change: 50}); await reporting.batteryVoltage(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.temperature(), e.humidity(), e.battery()], ota: ota.zigbeeOTA, }; module.exports = definition;
YAML- Lưu các tập tin
- Mở tệp config.yaml của Zigbee2MQTT (KHÔNG phải của Trợ lý tại nhà)
- Vị trí của tệp là zigbee2mqtt/configuration.yaml
- Kích hoạt bộ chuyển đổi bên ngoài bằng cách thêm các dòng sau:
- Khởi động lại Zigbee2MQTT và ghép nối LYWSD03MMC
external_converters: - lywsd03mmc.js
YAMLSau khi LYWSD03MMC được cấp nguồn ban đầu, nó sẽ tự động chuyển sang chế độ ghép nối. Nếu không, bạn có thể sử dụng một đoạn dây ngắn bằng kim loại nào đó để rút ngắn các tiếp điểm RESET và GND trong 3 giây.
Sau khi thiết bị được phát hiện và ghép nối trong Zigbee2MQTT, thiết bị sẽ được nhà sản xuất Xiaomi và model LYWSD03MMC xác định là EndDevice .
Nó hiển thị các thực thể sau trong Home Assistant thông qua Zigbee2MQTT:
Ghép nối LYWSD03MMC với ZHA
Sau khi flash, thiết bị sẽ hoạt động với ZHA trong Home Assistant mà không cần bất kỳ thao tác tùy chỉnh nào. Hãy nhớ rút ngắn các tiếp điểm RESET và GND trong 3 giây để bật chế độ ghép nối. Sau khi ghép nối, nó được Xiaomi xác định là LYWSD03MMC là EndDevice.
suy nghĩ cuối cùng
Việc chuyển đổi Xiaomi LYWSD03MMC rất hữu ích cho những người muốn sử dụng riêng các thiết bị Zigbee trong ngôi nhà thông minh của họ. Cảm ơn Victor ( pvvx ) đã phân nhánh và phát triển chương trình cơ sở Nhiệt kế ATC gốc và Ivan Belokobylskiy ( devbis ) để phát triển chương trình cơ sở tùy chỉnh Zigbee.
Thiết bị báo cáo cứ 5 phút một lần ở Zigbee2MQTT và ZHA, đẩy số đọc nhiệt độ và độ ẩm với độ chính xác đến hai chữ số thập phân. Bạn có thể tạo phần bù trong Zigbee2MQTT nếu cần và hiệu chỉnh các phép đo.
Hãy nhớ rằng, bạn sẽ không thể kết nối lại với thiết bị khi Telink được flash vì không có chương trình cơ sở Bluetooth nào được cài đặt nữa. Bạn có thể sử dụng tính năng cập nhật OTA của Zigbee2MQTT để flash và cập nhật lại LYWSD03MMC nếu cần.
Hỗ trợ Fahrenheit vẫn chưa có sẵn với phần sụn tùy chỉnh, nhà phát triển đã thêm PR trên repo chính thức nên nó sẽ sớm ra mắt.
Dành cho những ai thắc mắc liệu điều này có khả thi với các cảm biến Xiaomi khác dựa trên Telink MCU hay không: Có , về mặt lý thuyết là như vậy, mặc dù hiện tại chưa có sự phát triển nào
Nhận xét
Đăng nhận xét