Chào mừng bạn đến với Trung tâm nhà phát triển Google Home, một điểm đến mới để tìm hiểu cách phát triển các hành động nhà thông minh. Lưu ý: Bạn sẽ tiếp tục tạo các hành động trong Bảng điều khiển Actions.

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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Đườ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ể điều khiển cục bộ với một thiết bị được trả về trong phản hồi SYNC từ quá trình thực hiện trên đám mây của bạn.

Để 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ừ quá trình 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. Mở dự án nhà thông minh trong bảng điều khiển Actions.
  2. Trong bảng điều hướng bên trái, hãy nhấp vào Hành động.
  3. Trong phần Định cấu hình SDK cục bộ cho nhà riêng (không bắt buộc) > Thêm cấu hình quét thiết bị, hãy nhấp vào Cấu hình quét mới.
  4. Chọn loại giao thức so khớp quét từ trình đơn thả xuống và nhập giá trị cho Google để quét.

Các bảng sau đây cho biết 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 dùng để quét thiết bị:

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ị xuất bản ở định dạng service.domain. _http._tcp.local
Tên

Bắt buộc. Lọc một phiên bản dịch vụ duy nhất ở định dạng instance.service.domain.

Nền tảng sẽ coi giá trị này là một biểu thức chính quy và trả về mọi thiết bị phù hợp.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP (Chính sách sử dụng)
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
Giao diện người dùng (OUI)

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

Giá trị 24 bit xác định nhà sản xuất thiết bị. Thông thường, ba 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ỉ truyền phát Bắt buộc. Địa chỉ IP đích của thông báo UDP. 255.255.255.255
Cổng truyền phát Bắt buộc. Cổng đích của thông báo 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 nội dung truyền phát UDP.

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

Cập nhật phản hồi SYNC trong quá trình thực hiện đám mây

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

Để hỗ trợ việc thực hiện đơn hàng tại địa phương, nền tảng Địa phương nhà riêng sẽ kiểm tra phản hồi SYNC từ phương thức thực hiện đám mây của Hành động dành cho nhà thông minh và cố gắng so khớp các 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 cục bộ.

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ể đ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 đường dẫn thực hiện cục bộ trên bất kỳ thiết bị nào có mã nhận dạng nhất định.

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 mục tiêu thiết bị cuối qua một trung tâm (ví dụ: số cổng và thông tin cụ thể về giao thức khá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/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": "..."
      }
    }]
  }
}