Hỗ trợ khám phá thiết bị

Đường dẫn thực hiện cục bộ được thiết lập khi Google so khớp một thiết bị có thể kiểm soát cục bộ với một thiết bị được trả về trong phản hồi SYNC từ phương thức thực hiện trên đám mây.

Để cho phép Google khám phá thiết bị của bạn trên mạng cục bộ và thiết lập đường dẫn thực hiện cục bộ, bạn cần thêm thông tin khám phá trong bảng điều khiển Actions. Bạn cũng cần cập nhật phản hồi SYNC từ phương thức thực hiện trên đám mây để cho Google biết về thiết bị có thể điều khiển cục bộ.

Thiết lập thông tin cấu hình quét

Để chỉ định thông tin khám phá, hãy làm theo các bước sau:

  1. Chuyển đến phần tích hợp Cloud-to-cloud trong Google Home Developer Console:

    Chuyển đến Developer Console.

  2. Chuyển đến Project (Dự án) > Cloud-to-cloud (Máy chủ đám mây với máy chủ đám mây) ở bên trái màn hình, sau đó chọn Edit (Chỉnh sửa) cho chế độ tích hợp. Trên trang Thiết lập và cấu hình, hãy di chuyển đến phần Thực hiện đơn hàng tại địa phương rồi bật chế độ cài đặt này. Nhập URL sau vào từng trường URL kiểm thử, chèn mã dự án của bạn rồi nhấp vào Lưu:

    https://<project-id>.web.app/local-home/index.html

  3. Nhấp vào + Thêm cấu hình quét trong phần Khám phá thiết bị để thêm cấu hình quét mới.

  4. Chọn một loại giao thức so khớp quét trong trình đơn thả xuống rồi nhập các giá trị để Google quét.

Các bảng sau đây cho thấy những thuộc tính bạn có thể thêm, dựa trên các giao thức mà bạn muốn Google sử dụng để quét thiết bị của bạn:

mDNS
Thuộc tính Mô tả Giá trị mẫu
Tên dịch vụ Bắt buộc. Tên dịch vụ do thiết bị phát hành ở định dạng service.domain. _http._tcp.local
Tên

Bắt buộc. Lọc cho một thực thể dịch vụ duy nhất ở định dạng instance.service.domain.

Nền tảng này coi giá trị này là một biểu thức chính quy và trả về mọi thiết bị khớp.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Thuộc tính Mô tả Giá trị mẫu
Loại dịch vụ Bắt buộc. Giá trị nhận dạng đủ điều kiện của dịch vụ UPnP ở định dạng domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

Không bắt buộc. Giá trị nhận dạng duy nhất về mặt tổ chức.

Giá trị 24 bit xác định nhà sản xuất thiết bị. Thông thường là 3 octet đầu tiên của địa chỉ MAC của thiết bị.
1A:2B:3C
UDP
Thuộc tính Mô tả Giá trị mẫu
Địa chỉ khám phá Bắt buộc. Địa chỉ IP đích cho thông báo truyền tin UDP. 255.255.255.255
Cổng truyền tin Bắt buộc. Cổng đích cho thông báo truyền tin UDP. 5555
Cổng nghe Bắt buộc. Cổng nghe cho phản hồi khám phá UDP. 5556
Gói khám phá

Bắt buộc. Tải trọng để gửi trong thông báo truyền tin UDP.

Được định dạng dưới dạng chuỗi byte được mã hoá thập lục phân.
48454C4C4F

Cập nhật phản hồi SYNC trong phương thức thực hiện trên đám mây

Ý định SYNC báo cáo cho Trợ lý những thiết bị mà người dùng kiểm soát và chức năng của các thiết bị đó.

Để hỗ trợ phương thức thực hiện cục bộ, nền tảng Local Home sẽ kiểm tra phản hồi SYNC từ phương thức thực hiện trên đám mây của Hành động nhà thông minh và cố gắng so khớp mã thiết bị trong trường otherDeviceIds với mã xác minh do trình xử lý IDENTIFY trả về. Các mục nhập thiết bị không có trường otherDeviceIds sẽ bị loại trừ khỏi phương thức thực hiện tại địa phương.

Trong trường otherDeviceIds của phản hồi SYNC, bạn cần đặt mã thiết bị của các thiết bị nhà thông minh có thể được điều khiển cục bộ. Trường này xuất hiện ở cấp device trong phản hồi. Google có thể thiết lập một lộ trình thực hiện tại địa phương trên bất kỳ thiết bị nào có mã nhận dạng đã cho.

Sử dụng trường customData để chỉ định mọi dữ liệu bổ sung mà Google cần để kết nối với một thiết bị độc lập hoặc để nhắm đến các thiết bị cuối bằng một trung tâm (ví dụ: số cổng và thông tin khác dành riêng cho giao thức).

Ví dụ:

Đoạn mã sau đây cho biết cách bạn có thể tạo trình xử lý SYNC.

Độc lập/Thiết bị trung tâm
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [{
      "id": "123",
      "type": "action.devices.types.OUTLET",
      "traits": [
        "action.devices.traits.OnOff"
      ],
      "name": {
        "name": "Night light"
      },
      "willReportState": false,
      "otherDeviceIds": [{
        "deviceId": "local-device-id"
      }],
      "customData": {
        "port": 5555,
        "authToken": "..."
      }
    }]
  }
}