Gỡ lỗi tích hợp Matter

1. Trước khi bắt đầu

Matter mang đến trải nghiệm thiết lập và điều khiển thiết bị liền mạch trên nhiều nền tảng cho người dùng cuối. Điều này chủ yếu có thể xảy ra là do nhiều thành phần trong hệ sinh thái hoạt động cùng nhau trong nền. Việc khắc phục những hệ thống như thế này thường có thể gây khó khăn cho các nhà phát triển mới. Vì vậy, chúng tôi đã phát triển một loạt công cụ và kỹ thuật để giúp nhà phát triển ứng dụng Matter của bạn dễ dàng hơn khi sử dụng Google Home.

Có 3 thành phần chính của Matter được đề cập trong lớp học lập trình này. Đối với mỗi hệ thống trong số này, Google cung cấp một bộ số liệu phân tích khắc phục sự cố cho các nhà phát triển được thu thập từ điện thoại và thiết bị trung tâm:

Phí hoa hồng, Thực thi, Cập nhật OTA

Là nhà phát triển, điều quan trọng là bạn có thể giảm thiểu các vấn đề mà bạn gặp phải trong suốt chu kỳ phát triển thiết bị. Sau khi khởi chạy dự án, bạn cần theo dõi xu hướng vấn đề của các thiết bị tại hiện trường một cách tổng hợp và khắc phục chúng thông qua các bản cập nhật phần mềm. Lớp học lập trình này đề cập đến những kỹ thuật mà bạn có thể sử dụng cho cả hai mục đích trên.

Điều kiện tiên quyết

  • Hoàn thành hướng dẫn Bắt đầu sử dụng Matter bằng cách thiết lập thiết bị và dự án theo chuẩn Matter
  • Có điện thoại Android để kết nối với máy trạm (dành cho nhật ký ADB)

Kiến thức bạn sẽ học được

  • Cách sử dụng công cụ phân tích cho Nhà thông minh để theo dõi các vấn đề trên quy mô lớn.
  • Cách phân loại lỗi bằng cách truy cập vào nhật ký lỗi và thu thập thông tin.
  • Cách truy cập tài liệu về Matter và tài nguyên hỗ trợ để yêu cầu trợ giúp.

2. Xem Analytics trên Google Home

Việc giám sát hiệu suất là yếu tố rất quan trọng để tích hợp thành công với hệ sinh thái Google Home. Chúng tôi cung cấp một bộ công cụ giám sát cho các nhà phát triển nhà thông minh trên Google Cloud Platform. Bạn có thể sử dụng các công cụ này để đo lường hiệu suất của dự án.

Truy cập vào các chỉ số của dự án

  • Bước đầu tiên để truy cập vào dữ liệu của bạn là kiểm tra Trang tổng quan chính của Google bằng cách đăng nhập vào Google Cloud Console rồi chuyển đến Hoạt động > Giám sát > Trang tổng quan.

Dự án của bạn có một số trang tổng quan (bao gồm cả các sản phẩm khác trên GCP). Các trang tổng quan được cung cấp cho nhà thông minh có tiền tố Google Home Analytics.

Trang tổng quan của Google Home Analytics

Hiện tại, chúng tôi có một trang tổng quan chung bao gồm toàn bộ dự án của bạn, cũng như các trang tổng quan dành cho từng công cụ tích hợp cụ thể (Đám mây, Cục bộ, Matter) hoặc các loại thiết bị (Máy ảnh). Các trang tổng quan này chỉ chứa dữ liệu nếu bạn tích hợp loại tương ứng, cùng với một dự án đang hoạt động đáp ứng các yêu cầu.

Khi mở một trong các trang tổng quan này, bạn sẽ thấy một loạt biểu đồ giống như sau:

Chi tiết về tỷ lệ thành công, độ trễ và loại thiết bị

Trang tổng quan Google Home có nhiều biểu đồ cho biết thông tin chi tiết về các sự kiện liên quan đến dự án của bạn. Trên mỗi trang tổng quan tích hợp, bạn sẽ thấy một biểu đồ cho thấy tổng số yêu cầu mà dự án của bạn xử lý, một biểu đồ cho thấy tỷ lệ thành công của loại tích hợp đó, cùng một vài biểu đồ cho thấy các loại thiết bị và đặc điểm có liên quan. Ngoài ra, với Matter bạn còn có một bộ biểu đồ theo dõi mức độ thành công của quá trình vận hành thử nghiệm, cũng như các đợt phát hành bản cập nhật trên thiết bị của bạn.

Xin lưu ý rằng chế độ xem mặc định có những biểu đồ mà bạn thấy trong trang tổng quan của Google Home Analytics chỉ là một chế độ xem mà chúng tôi đã tạo cho dự án của bạn bằng dữ liệu chỉ số nhà thông minh. Bạn cũng có thể sử dụng Trình khám phá chỉ số để tạo các biểu đồ của riêng mình dựa trên cùng chỉ số cơ bản và lưu các biểu đồ đó trong trang tổng quan tuỳ chỉnh.

Truy cập nhật ký lỗi

Trình khám phá nhật ký là một tập hợp các công cụ giúp xử lý nhật ký sự kiện được tạo trên một dự án. Bạn có thể truy cập vào bảng này trong Google Cloud Console bằng cách chuyển đến Operations > Logging > Logs Explorer (Hoạt động > Ghi nhật ký > Trình khám phá nhật ký).

Sau khi mở Trình khám phá nhật ký, bạn sẽ thấy chế độ xem có dạng như sau:

Trình khám phá nhật ký

Cửa sổ trình khám phá chứa nhiều công cụ để xem, lọc, truy vấn và phân tích nhật ký. Theo mặc định, chế độ xem này hiển thị các nhật ký được tạo từ tất cả hệ thống có sẵn cho dự án của bạn, bao gồm cả các nhật ký được tạo bên ngoài Nhà thông minh. Đó là lý do bạn nên sử dụng các nhật ký này bằng cách lọc tìm các sự kiện muốn gỡ lỗi. Chúng ta sẽ thảo luận thêm về vấn đề này trong các phần gỡ lỗi.

3. Gỡ lỗi các vấn đề được uỷ quyền

Loại chỉ số đầu tiên chúng ta sẽ tìm hiểu là về các sự kiện chạy thử nghiệm theo chuẩn Matter. Quy trình xác thực là tập hợp các bước mà người dùng cần thực hiện để thiết lập thiết bị theo chuẩn Matter lần đầu tiên.

Trong quá trình vận hành thiết bị, một tập hợp các hoạt động tương tác sẽ diễn ra giữa thiết bị Matter, ứng dụng Google Home và kết cấu Matter. Hình ảnh sau đây minh hoạ một số sự kiện trong số đó:

Sự kiện thử nghiệm Matter

Bạn có thể xem trang khởi động của Matter Primer để tìm hiểu thêm về từng bước này. Trong phần này, chúng ta sẽ tìm hiểu về những công cụ và kỹ thuật để khắc phục các vấn đề liên quan đến việc vận hành.

Sử dụng Google Home Analytics

Chúng tôi đã tạo một bộ chỉ số cho bạn để điều tra các vấn đề về việc chạy chiến dịch thử nghiệm bằng cách theo dõi các sự kiện và biết được lỗi có thể xảy ra ở giai đoạn nào. Bạn có thể tìm thấy các dữ liệu này trong Trang tổng quan tích hợp Matter như chúng tôi đã trình bày trong phần trước.

Các biểu đồ trong trang tổng quan này cung cấp dữ liệu về quá trình vận hành thiết bị:

Chỉ số về việc uỷ quyền thiết bị

Biểu đồ số lượng thiết bị cho biết số lần người dùng đã thử hoạt động phí hoa hồng vào một ngày cụ thể. Tỷ lệ thành công cho biết tỷ lệ thành công dự kiến của những sự kiện này từ phía Google. Mỗi lần thử nghiệm sẽ tạo ra một nhóm sự kiện với các trạng thái được liên kết. Khi lỗi xảy ra ở bất kỳ trạng thái nào trong số này, lỗi đó cũng được ghi lại trong biểu đồ phân tích lỗi.

Quốc gia được uỷ quyền:

  • COMMISSIONING_STARTED
  • ONBOARDING_PAYLOAD_GENERATED
  • LOCAL_DISCOVERY_SUCCESSFUL
  • PASE_CONNECTION_SUCCESSFUL
  • NOC_ADDED_SUCCESSFULLY
  • COMMISSIONING_COMPLETE

Để xem phiên bản chi tiết của những sự kiện này, hãy chuyển đến Hoạt động > Ghi nhật ký > Trình khám phá nhật ký. Để lọc tìm lỗi phí hoa hồng, bạn có thể tìm kiếm "clientUpdateLog" cùng với "severity>=ERROR" trong trường truy vấn.

Nhật ký lỗi thử nghiệm cho Matter sẽ có dạng như sau:

{
  "insertId": "1a32ry0f6xpzzn",
  "jsonPayload": {
    "clientUpdateLog": {
      "MatterUpdate": {
        "reportedProductId": 55,
        "sessionId": "1584879052892229997",
        "reportedVendorId": 4800,
        "commissioningState": "GENERIC_COMMISSIONING_ERROR",
        "status": "GENERIC_ERROR"
      }
    }
  },
  "resource": {
    "type": "assistant_action_project",
    "labels": {
      "project_id": "<project-id>"
    }
  },
  "timestamp": "2023-03-01T07:09:55.216425297Z",
  "severity": "ERROR",
  "logName": "projects/<project-id>/logs/assistant_smarthome%2Fassistant_smarthome_logs",
  "receiveTimestamp": "2023-03-01T07:09:55.216425297Z"
}

Ngoài trạng thái vận hành và mã trạng thái, nhật ký lỗi còn chứa dấu thời gian của lỗi ghi nhận được cũng như mã sản phẩm của Matter giúp bạn xác định sản phẩm nào gây ra lỗi. Tập hợp nhật ký được tạo trong cùng một lần thử nghiệm sẽ có chung một sessionId.

Việc sử dụng các chỉ số từ Google Home Analytics sẽ cung cấp cho bạn ý tưởng ban đầu về việc vấn đề có thể xảy ra ở giai đoạn nào. Để tìm ra nguyên nhân gốc rễ của lỗi khi chạy thử thiết bị, đôi khi, bạn có thể cần gỡ lỗi thêm bằng cách sử dụng nhật ký mà thiết bị di động dùng trong quá trình chạy thử thiết bị. Để làm được những việc này, bạn cần có Cầu gỡ lỗi Android.

Sử dụng Cầu gỡ lỗi Android (ADB)

Một cách khác để khắc phục sự cố vận hành là sử dụng công cụ dòng lệnh Cầu gỡ lỗi Android (ADB). Vì quá trình vận hành chủ yếu được xử lý giữa thiết bị di động và thiết bị Matter, nên bạn có thể dùng công cụ ADB để truy cập vào nhật ký do ứng dụng Google Home tạo ra trong suốt quá trình vận hành.

Cài đặt công cụ nền tảng

ADB nằm trong Bộ công cụ nền tảng SDK Android. Bạn có thể cài đặt ADB bằng Android Studio hoặc thông qua công cụ dòng lệnh sdkmanager.

Sau khi bạn đã cài đặt thành công các công cụ nền tảng trên hệ thống, hãy xác minh ADB bằng cách kiểm tra số phiên bản từ thiết bị đầu cuối bằng lệnh sau:

$ adb -- version

Hộp thoại này sẽ hiển thị số phiên bản của tiện ích ADB đã cài đặt mà không có bất kỳ lỗi nào.

Bật tính năng gỡ lỗi qua USB

Tiếp theo, hãy bật tính năng gỡ lỗi qua USB trên thiết bị Android.

Trước tiên, hãy làm theo các bước để bật tuỳ chọn cho nhà phát triển trên thiết bị của bạn rồi bật tính năng gỡ lỗi qua USB.

Việc này cho phép ADB truy cập vào nhật ký do các ứng dụng hiện đang chạy trên thiết bị tạo.

Truy xuất mã thiết bị

  1. Chạy máy chủ ADB bằng lệnh sau:
$ adb start-server
  1. Kết nối điện thoại với máy tính chạy máy chủ ADB.

Bạn có thể nhận được một thông báo cảnh báo trên điện thoại về việc gỡ lỗi qua USB, hỏi xem bạn có muốn cho phép máy tính truy cập thông tin trên điện thoại của mình hay không:

Lời nhắc gỡ lỗi qua USB

  1. Nếu bạn nhận được cảnh báo này, hãy nhấp vào Cho phép.
  2. Ra lệnh danh sách thiết bị từ thiết bị đầu cuối để xem máy tính của bạn có thể truy cập điện thoại thông qua ADB hay không bằng cách dùng lệnh sau:
$ adb devices

Thao tác này sẽ đưa ra câu trả lời tương tự như sau:

List of devices attached
<phone-id>    device

<phone-id> là một chuỗi chữ và số giúp nhận dạng duy nhất thiết bị của bạn.

  1. Hãy ghi nhớ giá trị <phone-id> để sử dụng trong các bước tiếp theo.

Thu thập thông tin hệ thống

Tiếp theo là kiểm tra thông tin phiên bản của ứng dụng và hệ thống trên thiết bị của bạn.

  • Cách kiểm tra phiên bản hệ điều hành Android:
$ adb -s <phone-id> shell getprop ro.build.version.release
  • Cách kiểm tra phiên bản của ứng dụng Google Home:
$ adb -s <phone-id> shell dumpsys package com.google.android.apps.chromecast.app | grep versionName
  • Cách kiểm tra phiên bản của Dịch vụ Google Play:
$ adb -s <phone-id> shell dumpsys package com.google.android.gms | grep "versionName"
  • Cách kiểm tra xem bạn có các mô-đun kiểm soát Nhà / Matter hay không thông qua Dịch vụ Play:
$ adb -s <phone-id> shell dumpsys activity provider com.google.android.gms.chimera.container.GmsModuleProvider | grep "com.google.android.gms.home"

Hãy đảm bảo rằng các giá trị trả về này được hệ sinh thái của chúng tôi hỗ trợ. Khi liên hệ để yêu cầu hỗ trợ về các lỗi vận hành, vui lòng luôn cung cấp thông tin hệ thống vào phiếu yêu cầu hỗ trợ của bạn.

Thu thập nhật ký lỗi

Tiếp theo, hãy bắt đầu quá trình thu thập nhật ký, rồi thực hiện các bước thử nghiệm để tạo các sự kiện lỗi mà bạn muốn gỡ lỗi.

  1. Chạy lệnh sau bằng cách cung cấp <phone-id>, cũng như <file-name> để lưu nhật ký trong máy tính của bạn (ví dụ: debug_file.txt).
$ adb -s <phone-id> logcat > <file-name>

Thao tác này ngay lập tức bắt đầu quá trình ghi nhật ký. Tệp có tên đã cung cấp sẽ được tạo nếu chưa tồn tại và các nhật ký từ điện thoại sẽ được thêm vào tệp sau mỗi sự kiện.

Hãy tiếp tục thực hiện các bước thử nghiệm với thiết bị Matter của bạn.

  1. Sau khi tìm được lỗi mà bạn muốn gỡ lỗi, hãy dừng ghi nhật ký bằng cách nhấn Control+C trong cửa sổ dòng lệnh đang chạy.

Giờ đây, nhật ký của bạn sẽ được lưu trữ trong tệp ghi nhật ký <file-name>. Vì quy trình này ghi lại nhật ký của mọi quy trình đang chạy được theo dõi trên thiết bị, nên sẽ có rất nhiều nhật ký trong tệp này. Đó là lý do bạn nên sử dụng các nhật ký này bất cứ lúc nào bằng cách tìm kiếm các mục nhập bạn cần.

Phân tích nhật ký lỗi

Quy trình uỷ quyền được xử lý thông qua một hệ thống con có tên là Matter Commissioner thuộc GHA.

  1. Theo chiến lược chính được dùng khi phân tích các lỗi vận hành, hãy tìm lỗi do hệ thống con của MatterCommissioner tạo ra bằng lệnh sau:
$ grep "MatterCommissioner" <file-name>

Thao tác này sẽ tạo ra một kết quả chứa các sự kiện trong quá trình vận hành thử nghiệm.

  1. Nếu thiết bị Matter của bạn đang sử dụng Thread, bạn cũng có thể tìm các lỗi do hệ thống con Thread tạo ra thông qua lệnh sau:
$ grep -E "(ThreadNetworkManager|BorderAgentScannerImpl|ThreadBrSynchronizer)" <file-name>

Khi bạn phân tích tệp nhật ký do quy trình gỡ lỗi ADB tạo ra, hãy tìm một số mẫu nhất định. Nhiều lỗi thử nghiệm bao gồm cả chuỗi "commissioning failure" trong thông báo lỗi.

  1. Tìm thông báo lỗi khi thử nghiệm bằng lệnh sau:
$ grep "SetupDevice" $phonelog | grep -A 20 "Commissioning failed"

4. Gỡ lỗi các vấn đề liên quan đến việc điều khiển thiết bị

Sau khi thiết lập và đưa các thiết bị theo chuẩn Matter vào hệ sinh thái Google Home, người dùng có thể ra lệnh qua giọng nói thông qua Trợ lý Google (ví dụ: "Ok Google, bật đèn trong phòng khách của tôi") hoặc bằng cách sử dụng giao diện người dùng trên ứng dụng Home hoặc thiết bị màn hình Google Nest.

Vì thông số kỹ thuật điều khiển giữa thiết bị cuối và Google Hub đều được Matter hỗ trợ, nên hệ thống sẽ ít gặp lỗi hơn ở phía điều khiển thiết bị. Dù vậy, chúng tôi cũng cung cấp các chỉ số và nhật ký để bạn khắc phục các loại vấn đề này.

Sử dụng chỉ số

Trong Trang tổng quan tích hợp Matter, bạn sẽ thấy một vài chỉ số về chế độ điều khiển thiết bị. Có ba biểu đồ quan trọng để đánh giá hiệu suất của các thiết bị tại hiện trường:

Biểu đồ chi tiết về mức độ thành công, độ trễ và lỗi

Trong các vấn đề kiểm soát, bạn thường thấy xu hướng giảm trong tỷ lệ phần trăm thành công và xu hướng tăng trong biểu đồ phân tích lỗi. Biểu đồ phân tích lỗi cho bạn thấy các lỗi do Google Nest Hub thu thập được liên quan đến lý do không điều khiển được thiết bị.

Sử dụng nhật ký

Mỗi vấn đề về việc điều khiển thiết bị theo chuẩn Matter cũng tạo một nhật ký lỗi trong hệ thống. Bạn có thể lọc các lỗi này khỏi Trình khám phá nhật ký bằng cách tìm kiếm "executionLog".

Nhật ký lỗi liên quan đến chế độ điều khiển thiết bị Matter có dạng như sau:

{
  "insertId": "1a32ry0f6xpzzn",
  "jsonPayload": {
    "executionLog": {
      "executionResults": [
        {
          "executionType": "MATTER",
          "latencyMsec": "6000",
          "actionResults": [
            {
              "action": {
                "actionType": "ONOFF_OFF",
                "trait": "TRAIT_ON_OFF"
              },
              "status": {
                "externalDebugString": "No message was received before the deadline.",
                "statusType": "RESPONSE_TIMEOUT",
                "fallbackToCloud": false,
                "isSuccess": false
              },
              "device": {
                "deviceType": "OUTLET"
              }
            }
          ],
          "requestId": "1487232799486580805"
        }
      ]
    },
    "locale": "en-US"
  },
  "resource": {
    "type": "assistant_action_project",
    "labels": {
      "project_id": "<project-id>"
    }
  },
  "timestamp": "2023-03-01T15:47:27.311673018Z",
  "severity": "ERROR",
  "logName": "projects/<project-id>/logs/assistant_smarthome%2Fassistant_smarthome_logs",
  "receiveTimestamp": "2023-03-01T15:47:27.311673018Z"
}

Mỗi nhật ký lỗi chứa một dấu thời gian, loại thiết bị và trait, cũng như lỗi liên quan đến yêu cầu kiểm soát trong statusType. Nhiều lỗi điều khiển cũng bao gồm externalDebugString, một thông báo lỗi ngắn giải thích nội dung của lỗi đó.

5. Gỡ lỗi các tính năng khác

Vậy là bạn đã tìm hiểu cách xử lý các vấn đề về việc vận hành thiết bị và kiểm soát Matter. Ngoài ra, còn có các tính năng khác trong hệ sinh thái mà bạn có thể sử dụng kỹ thuật mà chúng tôi đề xuất để đảm bảo chất lượng tích hợp tốt.

Theo dõi bản cập nhật qua mạng không dây

Để theo dõi bản phát hành của các bản cập nhật qua mạng không dây (OTA) cho các thiết bị Matter do Google Home cung cấp, chúng tôi cung cấp một bộ chỉ số cho biết phiên bản phần cứng và phần mềm của các thiết bị tại địa phương.

Sau khi bạn phát hành bản cập nhật qua bảng điều khiển, hãy theo dõi các chỉ số sau:

Phân tích chi tiết về phần mềm và phần cứng

Bạn sẽ thấy rằng trong những ngày sau khi phát hành, ngày càng nhiều thiết bị trong lĩnh vực này nhận được phiên bản phần mềm mới liên kết với bản phát hành phần mềm OTA của bạn.

6. Tìm sự hỗ trợ

Google cung cấp các công cụ và tài liệu giúp bạn gỡ lỗi các vấn đề liên quan đến vấn đề Matter. Tuy nhiên, vì hệ sinh thái Matter còn mới, nên những tài nguyên này sẽ không đề cập đến một số vấn đề. Đối với những trường hợp này, bạn luôn có thể liên hệ với chúng tôi hoặc cộng đồng để được hỗ trợ.

Truy cập vào kênh của nhà phát triển

Google chủ động giám sát ba kênh nhà phát triển:

Stack Overflow, Trình theo dõi lỗi, Diễn đàn dành cho nhà phát triển

Tuy mỗi kênh trong số này được cùng một nhóm giám sát theo định kỳ, nhưng có một số khác biệt chính về thời điểm sử dụng kênh nào.

  • Stack Overflow: Bạn có thể liên hệ với chúng tôi và cộng đồng nhà phát triển Nhà thông minh nếu có thắc mắc về việc triển khai hoặc tìm kiếm hướng dẫn. Kênh này phù hợp nhất để hỏi cách khắc phục sự cố hoặc triển khai một tính năng nhất định.
  • Công cụ theo dõi lỗi: Đây là hệ thống theo dõi lỗi chính thức do Google điều hành, trong đó các đối tượng bên ngoài có thể báo cáo lỗi trên hệ sinh thái. Dịch vụ này cung cấp các công cụ web để đính kèm tệp và chia sẻ thông tin nhạy cảm khi cần. Công cụ theo dõi lỗi là cách phù hợp nhất để báo cáo vấn đề về hệ sinh thái hoặc chia sẻ yêu cầu về tính năng.
  • Diễn đàn nhà phát triển: Để được các chuyên gia cộng đồng và hỗ trợ chính thức của Google hướng dẫn, bạn có thể liên hệ qua Diễn đàn nhà phát triển Nest. Diễn đàn này là nơi phù hợp nhất để \ nhận hướng dẫn chính thức về hoạt động phát triển.

Đăng ký nhận bản tin dành cho nhà phát triển

Ngoài việc truy cập vào các kênh dành cho nhà phát triển để đặt câu hỏi, chúng tôi cũng phát hành bản tin hằng quý nêu bật các tính năng mới và cung cấp tin tức về tình trạng của hệ sinh thái nhà thông minh của Google.

Bạn có thể sử dụng biểu mẫu đăng ký để nhận bản tin dành cho nhà phát triển.

7. Xin chúc mừng

Google Home

Xin chúc mừng! Bạn đã tìm hiểu thành công cách gỡ lỗi tích hợp Matter bằng các công cụ và kỹ thuật mà chúng tôi đề xuất. Chúng tôi chúc bạn có thời gian thuận tiện để tích hợp các ứng dụng theo chuẩn Matter với Google Home.

Các bước tiếp theo

Hãy thử các bài tập sau và khám phá các tài nguyên khác:

  • Ngoài việc sử dụng số liệu phân tích để khắc phục vấn đề, bạn cũng có thể dùng Bộ kiểm thử để kiểm tra quá trình tích hợp xem có vấn đề tiềm ẩn nào không.
  • Khi tích hợp của bạn đã sẵn sàng chia sẻ với mọi người, bước tiếp theo là lấy chứng nhận cho dự án của bạn WWGH. Để làm được điều này, bạn có thể làm theo các bước trên trang Chứng nhận.