Khắc phục sự cố

Ứng dụng mẫu

Nếu gặp vấn đề khi sử dụng Home API, bạn có thể thu thập nhật ký để gỡ lỗi thêm. Bạn cần có Xcode để thu thập nhật ký từ thiết bị di động. Nếu bạn cần trợ lý của Google hỗ trợ, hãy thu thập nhật ký từ cả thiết bị iOS và trung tâm, sau đó mở một phiếu yêu cầu hỗ trợ trong Trình theo dõi sự cố kèm theo thông tin và nhật ký liên quan.

Thu thập nhật ký iOS

Thiết bị di động của bạn phải được kết nối với máy cục bộ cho tất cả các bước liên quan đến Xcode.

Nhật ký ứng dụng và nhật ký SDK được hiển thị và có thể thu thập trực tiếp trong bảng điều khiển Xcode. Khi thiết bị di động của bạn kết nối với máy cục bộ và bạn chạy ứng dụng thông qua Xcode, bảng điều khiển sẽ tự động ghi lại và truyền trực tuyến nhật ký đầu ra chuẩn (stdout) và sai số chuẩn (stderr) từ cả lớp ứng dụng và SDK Home tích hợp. Nhờ đó, bạn có thể dễ dàng theo dõi các quy trình khởi chạy theo thời gian thực, hoạt động tương tác với API và sự kiện SDK trong quá trình phát triển và gỡ lỗi.

Thu thập nhật ký tiện ích từ Xcode

Nếu gặp vấn đề khi sử dụng Home API, bạn có thể thu thập nhật ký để gỡ lỗi thêm.

  1. Trong Xcode, hãy chuyển đến phần Debug (Gỡ lỗi) trên thanh trình đơn trên cùng rồi nhấp vào Attach to Process by PID or Name (Đính kèm vào quy trình theo PID hoặc tên).

    Gỡ lỗi ứng dụng mẫu

  2. Trong mục PID or Process Name (PID hoặc Tên quy trình), hãy chọn MatterExtension rồi nhấp vào Attach (Đính kèm).

    Phần mở rộng đính kèm ứng dụng mẫu

  3. Bạn sẽ thấy thông báo Đang chờ đính kèm vào MatterAddDeviceExtension trên iPhone nếu nhấp vào góc trên cùng bên phải.

    Trạng thái chờ của ứng dụng mẫu

  4. Nhấp vào thẻ rồi chọn MatterAddExtension.

    Ứng dụng mẫu thêm tiện ích Matter

  5. Bảng điều khiển sẽ ghi lại Nhật ký tiện ích.

Sherlog: Theo dõi sự kiện trên nhiều ngăn xếp

Sherlog là một dịch vụ theo dõi theo thời gian thực, cung cấp thông tin tổng quan về các hoạt động tương tác giữa cơ sở hạ tầng của Google và các dịch vụ đám mây của đối tác.

Điều kiện tiên quyết: Để theo dõi, bạn cần sử dụng một tài khoản dùng chung, do Google điều phối (ví dụ: tài khoản đã đăng ký GReg hoặc tài khoản minh hoạ).

Mục đích chính: Gỡ lỗi các lỗi chức năng và vấn đề tích hợp giữa đám mây với đám mây (C2C) (ví dụ: lỗi liên kết tài khoản hoặc trạng thái thiết bị không chính xác) mà không cần thay đổi mã phát hành chính thức.

Khả năng: Cung cấp biểu đồ lệnh gọi RPC hoàn chỉnh, tải trọng yêu cầu/phản hồi và siêu dữ liệu cho các ý định SYNC, EXECUTE, QUERY và Liên kết tài khoản.

Nhật ký thiết bị Fuchsia Hub

Bạn có thể thu thập nhật ký từ các trung tâm Fuchsia sau đây bằng phương thức này: * Google Nest Hub (thế hệ thứ 2) * Google Nest Hub Max

Cách bật một trung tâm để truy xuất nhật ký cục bộ:

  1. Gửi email có Số sê-ri và Kiểu thiết bị của bạn cho Nhà quản lý tài khoản hỗ trợ kỹ thuật (TAM) của Google. Bạn có thể tìm thấy thông tin này ở phần chữ nhỏ bên dưới thiết bị.
  2. Sau khi được đưa vào danh sách cho phép, bạn phải bật tính năng này bằng cách làm theo các bước sau:
    • Trên trung tâm:
      1. Vuốt xuống từ đầu màn hình
      2. Nhấn vào biểu tượng Cài đặt
      3. Tìm phiên bản Fuchsia: Trên Nest Hub (thế hệ thứ 2), hãy chuyển đến phần Thông tin thiết bị > Thông tin kỹ thuật > Phiên bản Fuchsia
      4. Nhấn vào "Phiên bản Fuchsia" 7 lần. Thao tác này sẽ bật tuỳ chọn cho nhà phát triển
      5. Quay lại trình đơn cấp cao nhất
      6. Nhấn vào "Tùy chọn cho nhà phát triển"
      7. Nhấn vào "Ghi nhật ký đối tác"
    • Tính năng này sẽ được bật trong 24 giờ. Sau đó, hãy bật lại tính năng ghi nhật ký từ bước 5 trở đi.
  3. Lấy địa chỉ IP của trung tâm:
    • Trên trung tâm điều khiển (nếu có màn hình):
      1. Vuốt xuống từ đầu màn hình
      2. Nhấn vào biểu tượng Cài đặt
      3. Tìm địa chỉ IP của thiết bị: Trên Nest Hub (thế hệ thứ 2), hãy chuyển đến phần Thông tin thiết bị > Thông tin kỹ thuật > Địa chỉ IP
    • Trong ứng dụng Google Home (GHA) trên điện thoại:
    • Nhấn vào thiết bị để mở trang thông tin chi tiết về thiết bị
    • Nhấn vào biểu tượng Cài đặt để mở trang cài đặt
    • Tìm địa chỉ IP của thiết bị: chuyển đến Thông tin thiết bị > Thông tin kỹ thuật > Địa chỉ IP
  4. Để truy xuất nhật ký từ trung tâm, bạn sẽ gửi một yêu cầu HTTP GET đến trung tâm từ một máy tính trên cùng mạng Wi-Fi.
    • Lưu ý cổng và đường dẫn của điểm cuối:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • Kết nối chỉ có thể được duy trì trong một phút, nhưng dữ liệu được truy xuất từ vùng đệm thường có các sự kiện trong quá khứ từ 20 đến 30 phút.
      • Tốt nhất là bạn nên trích xuất nhật ký bằng phương thức này ngay sau khi hoàn tất quy trình kiểm thử để đảm bảo vùng đệm chứa nội dung liên quan đến kiểm thử (tương tự như báo cáo lỗi Android).

Tự động hoá

Phát hiện đường viền

Các quy trình tự động hoá trong hệ sinh thái Google Home có tính năng phát hiện thay đổi. Đây là logic giúp xác minh rằng một điều kiện khởi động chỉ kích hoạt khi có sự thay đổi trạng thái thực tế, thay vì một bản cập nhật trạng thái chỉ lặp lại trạng thái trước đó của thiết bị.

Ví dụ: nếu việc bật đèn là một điều kiện khởi động, thì tính năng phát hiện cạnh sẽ xác minh rằng điều kiện khởi động chỉ kích hoạt nếu thiết bị đèn đó chuyển từ trạng thái tắt sang bật, thay vì từ bật sang bật (không thay đổi).

Quy trình tự động hoá không hoạt động như mong đợi

Sau khi tính đến việc phát hiện cạnh, nếu một quy trình tự động hoá không hoạt động như mong đợi, hãy làm như sau:

  1. Kiểm tra từng thiết bị để đảm bảo thiết bị đó hoạt động đúng cách, độc lập với quy trình tự động hoá của bạn.

  2. Hãy xem biểu đồ tự động hoá cho quy trình tự động hoá của bạn, so sánh biểu đồ đó với DSL tự động hoá để phát hiện mọi giả định có thể không chính xác của bạn.

  3. Quan sát trạng thái thiết bị trong ứng dụng Google Home trong quá trình thực thi quy trình tự động hoá.

  4. Kiểm tra để đảm bảo rằng tất cả thiết bị mà quy trình tự động hoá tham chiếu đều có trong nhà mà bạn muốn. Việc xoá một thiết bị mà quy trình tự động hoá phụ thuộc vào có thể gây ra hậu quả ngoài ý muốn. Xem phần Tác động của việc xoá thiết bị đối với quy trình tự động hoá.

Quy trình tự động hoá chạy không đúng lúc

Nếu quy trình tự động hoá chạy không đúng lúc, hãy kiểm tra tiêu chí của điều kiện khởi động. Bạn có thể cần thêm logic bổ sung để đảm bảo rằng thay đổi về trạng thái chỉ được ghi lại một lần và chỉ kích hoạt quy trình tự động hoá một lần.

Quy trình tự động hoá không biên dịch

Đảm bảo ứng dụng của bạn chứa tất cả các lệnh nhập cần thiết, bao gồm cả từng lớp tương ứng với các loại nút khác nhau cũng như các đặc điểm mà bạn đang tham chiếu.

Không xác thực được quy trình tự động hoá đã tạo

Nếu quy trình tạo tự động hoá không vượt qua quy trình xác thực, thì một thông báo cảnh báo hoặc thông báo lỗi sẽ cung cấp thông tin về vấn đề. Để biết thêm thông tin, hãy tham khảo tài liệu tham khảo về ValidationIssueType.

OAuth

Nếu bạn có sẵn một ứng dụng OAuth

Nếu đã có một ứng dụng OAuth đã xác minh cho một ứng dụng đã phát hành, bạn có thể sử dụng ứng dụng OAuth hiện có để thử nghiệm Home API.

Bạn không cần phải đăng ký Google Home Developer Console để thử nghiệm và sử dụng Home API. Tuy nhiên, bạn vẫn cần có một bản đăng ký Developer Console được phê duyệt để phát hành ứng dụng, ngay cả khi bạn có một ứng dụng OAuth đã xác minh từ một chế độ tích hợp khác.

Bạn cần lưu ý những điểm sau:

  • Có giới hạn 100 người dùng khi sử dụng ứng dụng OAuth hiện có. Để biết thông tin về cách thêm người dùng thử nghiệm, hãy tham khảo bài viếtTạo mã ứng dụng khách OAuth. Ngoài quy trình xác minh OAuth, Home API còn áp đặt giới hạn 100 người dùng có thể cấp quyền cho ứng dụng của bạn. Giới hạn này sẽ được dỡ bỏ sau khi bạn hoàn tất quy trình đăng ký Developer Console.

  • Developer Console registration phải được gửi để phê duyệt khi bạn đã sẵn sàng hạn chế các quyền cấp theo loại thiết bị thông qua OAuth để chuẩn bị cập nhật ứng dụng bằng Home API.

Đối với Google Cloud ứng dụng vẫn đang chờ xác minh OAuth, người dùng không thể hoàn tất quy trình OAuth cho đến khi quy trình xác minh hoàn tất. Nếu bạn tìm cách cấp quyền, hệ thống sẽ báo lỗi sau:

Access blocked: <Project Name> has not completed the Google verification process.