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

Local Home SDK giúp cải thiện khả năng tích hợp 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 nhà thông minh.

SDK cho phép bạn viết một ứng dụng thực hiện cục bộ bằng cách sử dụng TypeScript hoặc JavaScript có chứa logic kinh doanh nhà thông minh của bạn. Các 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 sẽ 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 sẽ cải thiện hiệu suất cho Hành động của nhà thông minh, 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 mọi loại thiết bị và đặc điểm của thiết bị, ngoại trừ những phương thức sử dụng tính năng xác minh người dùng phụ.

Bắt đầu xây 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 để phát hiện các thiết bị thông minh đã 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ục bộ hay không, bằng cách so sánh mã thiết bị trong phản hồi IDENTIFY với các mã thiết bị trong 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 ý đị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 một 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 Google Nest của người dùng, sau đó chuyển các lệnh của người dùng đến phương thức thực hiện cục bộ.

Khi người dùng kích hoạt một Hành động trong nhà thông minh 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ì phương thức 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 của phương thức thực hiện cục bộ. Đường dẫn thực thi ghi lại ý định của người dùng từ điện thoại thông qua Trợ lý Google, sau đó ý định của người dùng sẽ được Google Cloud xử lý, sau đó ý định đó được thực thi trên thiết bị Google Home và lệnh được đưa ra trực tiếp đến trung tâm thiết bị hoặc trực tiếp đến thiết bị. Nền tảng đám mây dành cho nhà phát triển có sẵn 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 của nhà thông minh.

Nền tảng Local Home không xác định trong việc chọn thiết bị Google Home hoặc Google Nest nào để kích hoạt lệnh. Ý định EXECUTEQUERY có thể xuất phát 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 như thiết bị mục tiêu.

Ứng dụng thực hiện đơn hàng cục bộ

Ứ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ộ. Theo dự kiến, bạn sẽ không cần sửa đổi phần cứng để tích hợp phương thức thực hiện cục bộ. Ứng dụng thực hiện các yêu cầu Hành động trong nhà thông minh bằng cách gửi các 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 cả 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, phương thức thực hiện đơn hàng 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 2 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ổng 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 những ý đị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 đáp ứng 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 hiện tại của thiết bị (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 trên máy chủ lưu trữ hoặc máy phát triển cục bộ của riêng mình. Trong giai đoạn phát hành chính thức, Google lưu trữ ứng dụng của bạn trong 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 Trạng thái báo cáo hiện không được hỗ trợ cho phương thức thực hiện cục bộ. Google dựa vào phương thức thực hiện của bạn trên đám mây để xử lý những yêu cầu này.

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

Ứng dụng thực hiện 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 của dự án hoặc có ý định đang chờ 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 Google Nest bị giới hạn về bộ nhớ và ứng dụng thực hiện đơn hàng trên thiết bị có thể bị chấm dứt bất cứ lúc nào do áp lực về 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 tốn 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 Local Home chỉ khởi động lại ứng dụng của bạn khi có ý định mới để phân phối và cung cấp đủ 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ờ ở trạng thái rảnh 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 cục bộ được 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ộ 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 sử dụng trên từng 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 bài viết 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ạng Hiển thị Chrome
Nest Hub Max Mạng Hiển thị 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 cục bộ 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 đây:

  • Chrome: Ứng dụng phương thức thực hiện cục bộ của bạn được thực thi trong bối cảnh trình duyệt Chrome window chạy Chrome M80 trở lên với khả năng hỗ trợ ECMAScript phiên bản ES2018.
  • Node.js: Ứng dụng thực hiện cục bộ của bạn đượ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 với khả năng 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 gói do SDK Local Home 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 SDK Local Home cho việc tích hợp nhà thông minh, bạn cần phải thực hiện các việc sau:

1 Thiết lập cấu hình quét Định cấu hình bảng điều khiển Actions 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 phương thức 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ể điều khiển cục bộ.
3 Triển khai ứng dụng thực hiện đơn hàng cục bộ Sử dụng Local Home SDK để tạo một ứng dụng JavaScript nhằm xử lý ý định IDENTIFY, EXECUTE QUERY. Đối với các thiết bị proxy trung tâm hoặc 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 tra quá trình tích hợp của bạn (hoặc tự xác nhận) bằng cách sử dụng Bộ kiểm thử Google Home.

Trước khi bắt đầu