Thực hiện đơn hàng tại địa phương

SDK Local Home giúp nâng cao hiệu quả tích hợp các thiết bị nhà thông minh với Trợ lý Google bằng cách thêm một đường dẫn thực hiện cục bộ để định tuyến ý định cho thiết bị nhà thông minh.

Local Home SDK cung cấp hai chức năng: Thực thi cục bộ và Truy vấn cục bộ.

  • Tính năng Thực thi cục bộ cho phép thực hiện các lệnh bằng cách gửi ý định EXEC qua đường dẫn thực hiện cục bộ, thay vì thực hiện lệnh gọi API trên đám mây. Ví dụ: yêu cầu "Bật đèn" có thể được Xử lý cục bộ xử lý.
  • Truy vấn cục bộ cung cấp khả năng xử lý các truy vấn liên quan đến trạng thái thiết bị bằng cách gửi ý định QUERY qua đường dẫn thực hiện cục bộ. Ví dụ: Truy vấn cục bộ sẽ thực hiện truy vấn "Đèn của tôi có sáng không?" mà không cần thực hiện lệnh gọi API trên đám mây.

SDK cho phép bạn viết một ứng dụng thực hiện đơn hàng cục bộ bằng TypeScript hoặc JavaScript, chứa logic kinh doanh nhà thông minh. Thiết bị Google Home hoặc Google Nest có thể tải và chạy ứng dụng của bạn trên thiết bị. Ứng dụng của bạn giao tiếp trực tiếp với các thiết bị thông minh hiện có qua Wi-Fi trên mạng cục bộ (LAN) để thực hiện các lệnh của người dùng qua các giao thức hiện có.

Việc tích hợp SDK giúp cải thiện hiệu suất cho hoạt động tích hợp Cloud-to-cloud, bao gồm cả độ trễ thấp hơn và độ tin cậy cao hơn. Phương thức thực hiện cục bộ được hỗ trợ cho tất cả các loại thiết bị và đặc điểm thiết bị, ngoại trừ những thiết bị sử dụng tính năng xác minh người dùng phụ.

Bắt đầu xây dựng Dùng thử mẫu

Tìm hiểu cách hoạt động

Sau khi nhận được phản hồi SYNC từ phương thức thực hiện trên đám mây, nền tảng Nhà cục bộ sẽ quét mạng cục bộ của người dùng bằng mDNS, truyền tin UDP hoặc UPnP để khám phá các thiết bị thông minh được kết nối với Trợ lý.

Nền tảng sẽ gửi một ý định IDENTIFY để xác định xem thiết bị có thể kiểm soát cục bộ hay không, bằng cách so sánh mã thiết bị trong phản hồi IDENTIFY với những mã được phản hồi trước đó bằng phản hồi SYNC. Nếu thiết bị được phát hiện là trung tâm hoặc cầu nối, thì nền tảng sẽ gửi một ý định REACHABLE_DEVICES và coi trung tâm đó là thiết bị proxy để giao tiếp cục bộ.

Khi nhận được phản hồi xác nhận thiết bị cục bộ, nền tảng sẽ thiết lập đường dẫn thực hiện cục bộ đến thiết bị Google Home hoặc Google Nest của người dùng, sau đó định tuyến các lệnh của người dùng để thực hiện cục bộ.

Khi người dùng kích hoạt một chế độ tích hợp Cloud-to-cloud có đường dẫn thực hiện cục bộ, Trợ lý sẽ gửi ý định EXECUTE hoặc ý định QUERY đến thiết bị Google Home hoặc Google Nest thay vì thực hiện trên đám mây. Sau đó, thiết bị sẽ chạy ứng dụng thực hiện cục bộ để xử lý ý định.

Hình này cho thấy quy trình thực thi để thực hiện đơn hàng tại địa phương. Đường dẫn thực thi ghi lại ý định của người dùng từ một điện thoại có Trợ lý Google, sau đó ý định của người dùng được Google Cloud xử lý, sau đó được thực thi cục bộ trên thiết bị Google Home và lệnh được đưa trực tiếp đến trung tâm thiết bị hoặc trực tiếp đến thiết bị. Đám mây dành cho nhà phát triển có sẵn dưới dạng một giải pháp dự phòng trên đám mây.
Hình 1: Thêm đường dẫn thực hiện cục bộ cho Hành động trong nhà thông minh.

Nền tảng Nhà cục bộ không xác định được việc chọn thiết bị Google Home hoặc Google Nest để kích hoạt lệnh. Ý định EXECUTEQUERY có thể đến qua bất kỳ thiết bị Google Home hoặc Google Nest nào được xác định trong cùng một cấu trúc Biểu đồ nhà với thiết bị mục tiêu.

Ứng dụng thực hiện đơn hàng tại địa phương

Ứng dụng thực hiện cục bộ chứa logic nghiệp vụ để xử lý các ý định do nền tảng Nhà thông minh cục bộ gửi và truy cập vào thiết bị thông minh của bạn thông qua mạng cục bộ. Bạn không cần sửa đổi phần cứng để tích hợp phương thức thực hiện đơn hàng tại địa phương. Ứng dụng thực hiện các yêu cầu tích hợp Cloud-to-cloud bằng cách gửi lệnh điều khiển đến thiết bị thông minh thông qua các giao thức lớp ứng dụng, bao gồm HTTP, TCP hoặc UDP. Trong trường hợp không thực hiện được phương thức thực hiện cục bộ, phương thức thực hiện trên đám mây sẽ được dùng làm phương thức thực thi dự phòng.

Để hỗ trợ việc xây dựng ứng dụng, SDK Local Home cung cấp hai lớp chính sau:

  • DeviceManager: Cung cấp các phương thức để giao tiếp với thiết bị thông minh bằng cách sử dụng các ổ cắm TCP, UDP hoặc yêu cầu HTTP.
  • App: Cung cấp các phương thức để đính kèm trình xử lý cho các ý định mà Google gửi sau khi phát hiện các thiết bị có thể kiểm soát cục bộ (IDENTIFY, REACHABLE_DEVICES). Lớp này cũng thực hiện các lệnh của người dùng (EXECUTE) và trả lời truy vấn của người dùng về trạng thái thiết bị hiện tại (QUERY).

Trong quá trình phát triển, bạn có thể tạo và kiểm thử ứng dụng bằng cách tải ứng dụng đó lên máy chủ lưu trữ của riêng bạn hoặc máy phát triển cục bộ. Trong phiên bản chính thức, Google lưu trữ ứng dụng của bạn trong một môi trường hộp cát JavaScript an toàn trên thiết bị Google Home hoặc Google Nest của người dùng.

API Report State (Trạng thái báo cáo) hiện không được hỗ trợ cho phương thức thực hiện đơn hàng tại địa phương. Google dựa vào dịch vụ thực hiện trên đám mây của bạn để xử lý các yêu cầu này.

Vòng đời của ứng dụng

Ứng dụng thực hiện đơn hàng cục bộ của bạn được tải theo yêu cầu khi nền tảng Local Home phát hiện các thiết bị cục bộ mới khớp với cấu hình quét dự án hoặc có ý định phân phối đang chờ xử lý liên quan đến một thiết bị đã xác định trước đó.

Các thiết bị Google Home hoặc Google Nest bị hạn chế về bộ nhớ và ứng dụng thực hiện đơn hàng cục bộ của bạn có thể bị chấm dứt bất cứ lúc nào do áp lực bộ nhớ trong hệ thống. Điều này có thể xảy ra nếu ứng dụng của bạn bắt đầu tiêu thụ quá nhiều bộ nhớ hoặc nếu hệ thống cần tạo không gian cho một ứng dụng khác. Nền tảng Home cục bộ chỉ khởi động lại ứng dụng của bạn khi có ý định mới để phân phối và có đủ tài nguyên bộ nhớ để ứng dụng chạy.

Nền tảng Home Local sẽ huỷ tải ứng dụng của bạn sau khi hết thời gian chờ khi người dùng huỷ liên kết tài khoản của họ hoặc không còn thiết bị nào hỗ trợ phương thức thực hiện đơn hàng tại địa phương liên kết với agentUserId của người dùng.

Thiết bị được hỗ trợ

Nền tảng Local Home thực thi ứng dụng thực hiện cục bộ trên các thiết bị Google Home hoặc Google Nest được hỗ trợ. Bảng sau đây mô tả các thiết bị được hỗ trợ và thời gian chạy được sử dụng trên mỗi thiết bị. Để tìm hiểu thêm về các yêu cầu về thời gian chạy, hãy xem phần Môi trường thực thi.

Thiết bị Loại Môi trường
Google Home Loa Chrome
Google Home Mini Loa Chrome
Google Home Max Loa Chrome
Nest Mini Loa Chrome
Nest Hub Màn hình Chrome
Nest Hub Max Màn hình Chrome
Nest Wifi Bộ định tuyến Node.js
Điểm Chrome

Môi trường thực thi

Môi trường thực thi cho ứng dụng thực hiện đơn hàng tại địa phương phụ thuộc vào thiết bị của bạn. Nền tảng Local Home hỗ trợ các môi trường thời gian chạy sau:

  • Chrome: Ứng dụng thực hiện đơn hàng cục bộ của bạn được thực thi trong ngữ cảnh của trình duyệt Chrome window chạy Chrome M80 trở lên có hỗ trợ ECMAScript phiên bản ES2018.
  • Node.js: Ứng dụng thực hiện đơn hàng tại địa phương được thực thi dưới dạng tập lệnh trong quy trình Node.js chạy Node v10.x LTS trở lên có hỗ trợ ECMAScript phiên bản ES2018.

Cấu trúc mã nguồn

Bạn nên gói các phần phụ thuộc vào một tệp JavaScript duy nhất bằng cách sử dụng cấu hình trình đóng gói do SDK Trang chủ cục bộ cung cấp và đóng gói mã nguồn dưới dạng Biểu thức hàm được gọi ngay lập tức (IIFE).

Đường dẫn triển khai

Để sử dụng SDK Nhà thông minh cục bộ cho việc tích hợp nhà thông minh, bạn cần thực hiện các nhiệm vụ sau:

1 Thiết lập cấu hình quét Định cấu hình Google Home Developer Console bằng các tham số cần thiết để Trợ lý khám phá các thiết bị có thể điều khiển cục bộ.
2 Cập nhật phản hồi SYNC trong quy trình thực hiện trên đám mây Trong quá trình thực hiện trên đám mây, hãy sửa đổi trình xử lý yêu cầu SYNC để hỗ trợ trường otherDeviceIds mà nền tảng sử dụng để thiết lập đường dẫn thực hiện cục bộ. Trong trường đó, hãy chỉ định mã nhận dạng của các thiết bị có thể được kiểm soát cục bộ.
3 Triển khai ứng dụng thực hiện đơn hàng tại địa phương Sử dụng SDK Local Home để tạo một ứng dụng JavaScript nhằm xử lý các ý định IDENTIFY, EXECUTE QUERY. Đối với các thiết bị proxy trung tâm hoặc cầu, bạn cũng nên xử lý ý định REACHABLE_DEVICES.
4 Kiểm thử và gỡ lỗi ứng dụng Kiểm thử tính năng tích hợp (hoặc tự chứng nhận) bằng cách sử dụng Bộ kiểm thử Google Home.

Trước khi bắt đầu