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

Local Home SDK 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ộ.

  • 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 phương thức thực hiện cục bộ, thay vì thực hiện lệnh gọi Cloud APIs. Ví dụ: yêu cầu "Bật đèn" có thể được xử lý bằng tính năng Thực thi cục bộ.
  • 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ó bật không?" mà không cần thực hiện lệnh gọi API đám mây.

SDK này cho phép bạn viết một ứng dụng thực hiện tại nhà bằng TypeScript hoặc JavaScript, trong đó có chứa logic nghiệp vụ cho nhà thông minh. Thiết bị Google Home hoặc thiết bị 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 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 quá trình tích hợp Cloud-to-cloud, bao gồm cả việc giảm độ trễ và tăng độ tin cậy. Tính năng thực hiện tại địa phương đượ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 bước thứ hai để xác minh người dùng.

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 Local Home sẽ quét mạng cục bộ của người dùng bằng mDNS, truyền phát 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ể điều khiển được tại địa phương hay không, bằng cách so sánh mã thiết bị trong phản hồi IDENTIFY với mã thiết bị được trả về từ phản hồi SYNC trước đó. Nếu thiết bị được phát hiện là một 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 một đường dẫn thực hiện cục bộ đến thiết bị Google Home hoặc thiết bị 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 thiết bị 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 tại địa phương để xử lý ý định.

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

Nền tảng Local Home không xác định được thiết bị Google Home hoặc thiết bị Google Nest nào sẽ kích hoạt lệnh. Ý định EXECUTE và QUERY có thể đến từ 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 Home Graph 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ý ý định do nền tảng Local Home 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 phải sửa đổi phần cứng để tích hợp phương thức thực hiện tại địa phương. Ứng dụng đáp ứng 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 đường dẫn thực hiện cục bộ không thành công, thì phương thức thực hiện trên đám mây sẽ được dùng làm đường dẫn thực thi dự phòng.

Để hỗ trợ việc xây dựng ứng dụng, Local Home SDK 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 TCP, cổng 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 ý định mà Google gửi sau khi phát hiện các thiết bị có thể điều khiển 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 các 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ể xây dựng 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 môi trường thực tế, Google lưu trữ ứng dụng của bạn trong một môi trường hộp cát JavaScript bảo mật trên thiết bị Google Home hoặc thiết bị Google Nest của người dùng.

API Báo cáo trạng thái hiện không được hỗ trợ cho hoạt động thực hiện tại địa phương. Google dựa vào quy trình 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 ứng dụng

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

Các thiết bị Google Home hoặc thiết bị Google Nest bị hạn chế về bộ nhớ và ứng dụng thực hiện tại nhà 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 giải phóng bộ nhớ cho một ứng dụng khác. Nền tảng Local Home chỉ khởi động lại ứng dụng của bạn khi có ý định mới cần phân phối và có đủ tài nguyên bộ nhớ để ứng dụng chạy.

Nền tảng Local Home sẽ huỷ tải ứng dụng của bạn sau khi hết thời gian chờ không hoạt động 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 tại nhà 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 tại nhà của bạn 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 dùng trên mỗi thiết bị. Để tìm hiểu thêm về các yêu cầu đối với 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 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:

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 gói do Local Home SDK 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).

Lộ trình triển khai

Để sử dụng Local Home SDK cho hoạt động 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 phương thức 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 điều khiển cục bộ.
3 Triển khai ứng dụng thực hiện tại địa phương Sử dụng Local Home SDK để tạo một ứng dụng JavaScript nhằm xử lý các ý định IDENTIFY, EXECUTE và QUERY. Đối với thiết bị trung tâm hoặc thiết bị proxy cầu nối, 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ử quá trình 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