Chuyển đến nội dung chính

Chuyển Đổi Xiaomi LYWSD03MMC Từ Bluetooth Sang Zigbee

 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.

Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Hình ảnh nổi bật

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
Kích hoạt tính năng nền tảng Web thử nghiệm trên Chrome

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.

  1. Trong trình duyệt của bạn, điều hướng đến https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
  2. Kiểm tra Nhận MAC quảng cáo và nhấp vào Kết nối
  3. Chọn LYWSD03MMC từ danh sách thiết bị Bluetooth và nhấp vào Ghép nối

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Bước 1 - Kết nối đầu tiên
  4. Đợi kết nối được thiết lập
  5. Nhấn nút Thực hiện kích hoạt và chờ đợi
  6. Tải xuống tệp chương trình cơ sở chuyển tiếpATC_ota_40000.bin
  7. Chọn tệp bằng cách nhấp vào Chọn tệp

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Bước 2 - Kích hoạt và nhấp nháy chương trình cơ sở chuyển tiếp
  8. Nhấn Start Flashing và đợi quá trình kết thúc
  9. 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.

    1. Điều hướng đến phiên bản Zigbee của flasher Telink
    2. Nhấn Connect lần nữa lần này tên thiết bị sẽ khác (ví dụ ATC_XXXXXX)

      Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Bước 3 - Kết nối lại
    3. Nhấn Cặp
    4. Download z03mmc.binfile Firmware Zigbee mới nhất:
    5. Bấm vào Chọn tệp và chọn tệpz03mmc.bin
    6. Nhấn Start Flashing và đợi quá trình kết thúc

      Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Bước 4- Nhấp nháy cuối cùng

    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!

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

    1. Tạo một tệp mới trong  thư mục zigbee2mqtt  (bên cạnh config.yaml)
    2. Đặt tên cho nó  lywsd03mmc.js (đảm bảo nó kết thúc bằng  .js )
    3. 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
    1. Lưu các tập tin
    2. 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
    3. Kích hoạt bộ chuyển đổi bên ngoài bằng cách thêm các dòng sau:
    4. Khởi động lại Zigbee2MQTT và ghép nối LYWSD03MMC
    external_converters:
      - lywsd03mmc.js
    YAML

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

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Chế độ ghép nối

    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 .

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Đã thêm vào Zigbee2MQTT

    Nó hiển thị các thực thể sau trong Home Assistant thông qua Zigbee2MQTT:

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Thực thể 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.

    Chuyển đổi Xiaomi LYWSD03MMC BLE sang Zigbee: Đã thêm vào ZHA

    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:  , 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

Bài đăng phổ biến từ blog này

[HA] Cài đặt armbian trên tivi box để chạy home assistant tháng 10/2020

Hướng đẫn cài armbian mới nhất "Việc cài có thê gây hỏng tivi box , tự chịu trách nhiệm cho việc mình làm "  Bạn không cần xem nữa nếu mua sản phẩm cài sẵn tại đây .(.) https://shopee.vn/vipk31?smtt=0.0.9 Chuẩn bị : +  Tivi box x96 mini (hoặc loại khác có sử dụng chip Amolic S905W) + Thẻ nhớ 32GB + File img armbian (https://yadi.sk/d/_rQgn_FosYuW0g/20.09) + Dây nối máy tính với box (cứu box khi cài vào emmc bị hỏng box ) Step 1 : Flash file image vào thẻ nhớ + Dùng phần mềm (https://www.balena.io/etcher/) để thực hiện flash vào thẻ nhớ Quá trình flash rất nhanh khoảng 5 phút là xong Step 2 : Mở thẻ nhớ đã flash xong  Thực hiện config để box nhận thẻ nhớ và vào armbian file cần chỉnh sửa : extlinux.conf Chú ý chọn đúng file dbt cùng với loại box  ********************************************************************************************************************************* Pay attention. Starting from version  20.08 (20200814) , the configuration order for the used  DTB  chan

[HA] API tính điện tiêu thụ hằng ngày evncpc miền trung cho home assistant

Thông tin được lấy từ nguồn dữ liệu tại trang  https://cskh.cpc.vn/  với user/pass các bạn cung cấp . Chúng tôi chỉ lấy thông tin này và chuyển đổi dạng để phù hợp sử dụng trên Home Assistant . Chúng tôi sẽ không chiụ trách nhiệm về độ chính xác của dữ liệu này Sử dụng Rest sensor bạn cần kết nối internet , đôi khi do đường truyền / hoặc trang web EVN bị lỗi sẽ không lấy được data. Update : 2020.07.01 EVN không cho truy cập trang web từ ip nước ngoài nên api này cài trên web nước ngoài sẽ không hoạt động nữa. Ae nào cần code chạy local thì inbox Dạo này lướt face thấy mọi người  ai cũng bảo sao điện tăng nhiều vậy , có ngừoi nghi ngờ EVN ghi gian dối số điện . Mình không làm ở EVN nên không biết có gian dối thật không nhưng EVn hiện tại đo chữ số điện từ xa , 1 ngày đo khoảng 2 -3 lần , như vậy khách hàng sẽ quản lý được ngày tiêu thụ bao nhiêu kwh .cuối tháng có thể dối chiếu xem đúng không . Hình ảnh của EVn cung cấp do hằng ngày số kwh Dựa vào thông tin EVN cung cấp trên trang web ,

[HA] Lấy chỉ số đo điện từ công tơ điện lực miễn phí

Note: cái này đang hương dẫn cho điện lực miền trung , các miền khác chắc cũng tương tự  EVN không cho truy cập từ IP nước ngoài Anh em xem các cách khác trong blog để lấy thông tin điện lực add vào home assistant bài mới đơn giản hơn : https://vnhass.blogspot.com/2020/06/ha-api-tinh-ien-tieu-thu-hang-ngay.html?fbclid=IwAR10n1hURu1Gs4mjeAHG6RYukbdcLt-KpZB3J7GpUKhzGfjHQK4M4pOZjOI Đây là bài viết hướng dẫn lấy chỉ số điện thời gian thực từ công tơ của điện lực để đưa vào HA Sẽ có 2 cách lấy Cách 1 : lấy từ website , cách này đơn giản nhưng phụ thuộc vào bên thứ 3 . cách này dễ ai cũng thực hiện được Cách 2 : Debug app của điện lực , lấy api và token cách này phức tạp , cần nhiều "chất xám" hơn Sau đây mình sẽ hướng dẫn làm cách thứ 1 . Cách 2 sẽ hướng dẫn sau Đầu tiên các bạn phải login được vào trang cskh của điện lực bằng tài khoản và mật khẩu bên điện lực cung cấp , ai không biết thì call tổng đài nhờ hộ hỗ trợ https://cskh.cpc.vn/Default.aspx Trong này sẽ có n