Local Home SDK 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 2 chức năng: Thực thi cục bộ và Truy vấn cục bộ.
- Local Execution (Thực thi cục bộ) cung cấp khả năng 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 đám mây. 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ộ. - Local Query (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ụ: Local Query sẽ thực hiện truy vấn "Đèn của tôi có đang bật không?" mà không cần 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 đơn hàng tại địa phương bằng TypeScript hoặc JavaScript, có chứa logic nghiệp vụ 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 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, thô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ả độ trễ thấp hơn và độ tin cậy cao hơn. Tính năng thực hiện đơn hàng tại địa phương được hỗ trợ cho tất cả các loại thiết bị và đặc điểm của thiết bị, ngoại trừ những thiết bị sử dụng phương thức xác minh thứ hai khi xác minh người dùng.
Tìm hiểu cách hoạt động
Sau khi nhận được phản hồi SYNC
từ dịch vụ 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, thông báo UDP hoặc UPnP để phát hiện các thiết bị thông minh được kết nối với Trợ lý.
Nền tảng này 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ã nhận dạng thiết bị trong phản hồi IDENTIFY
với những mã nhận dạng do phản hồi SYNC
trước đó trả về. 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 đó đị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.
Nền tảng Local Home không xác định được thiết bị Google Home hoặc 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 tại địa phương chứa logic nghiệp vụ để xử lý các ý đị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 tính năng 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 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 HTTP, TCP hoặc UDP. Trong trường hợp đường dẫn thực hiện tại địa phương không thành công, thì dịch vụ thực hiện trên đám mây sẽ được dùng làm đường dẫn thực hiện dự phòng.
Để hỗ trợ tạo ứ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ác yêu cầu TCP, UDP socket hoặc 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 các 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 đó 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 quá trình sản xuất, Google sẽ 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 Trạng thái báo cáo hiện không được hỗ trợ cho tính năng thực hiện đơn hàng tại địa phương. Google dựa vào dịch vụ thực hiện đơn hàng 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 tại địa phương sẽ đượ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 dự án hoặc có các ý định đang chờ xử lý cần gử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ị hạn chế về bộ nhớ và ứng dụng thực hiện đơn hàng tại địa phương 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 gửi và đủ 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ợ việc thực hiện đơn hàng tại địa phương đượ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 tại nhà 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 khi 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 đây:
- Chrome: Ứng dụng thực hiện đơn hàng tại địa phương 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 tại địa phương của bạn được thực thi dưới dạng một 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 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).
Đường dẫn 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 những việc 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ý phát hiện 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 dịch vụ thực hiện trên đám mây | Trong dịch vụ thực hiện qua đá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 một đường dẫn thực hiện tại địa phương. Trong trường đó, hãy chỉ định mã nhận dạng của những 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 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 các thiết bị trung tâm hoặc cầu nối proxy, 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ộ thử nghiệm Google Home. |
Trước khi bắt đầu
- Tìm hiểu những kiến thức cơ bản về cách tạo một Cloud-to-cloudquy trình tích hợp.
- Trong Google Home Developer Console, hãy đảm bảo bạn có một dự án nhà thông minh hiện tại và đã thiết lập tính năng liên kết tài khoản.
- Đảm bảo rằng bạn đã đăng nhập bằng cùng một Tài khoản Google trong Developer Console và trong Trợ lý trên thiết bị kiểm thử.
- Bạn sẽ cần một môi trường Node.js để viết ứng dụng. Bạn nên dùng Trình quản lý phiên bản Node để cài đặt Node.js và npm.
- Để sử dụng phiên bản mới nhất của Local Home SDK, bạn sẽ cần phải đăng ký thiết bị thử nghiệm của mình vào Chương trình dùng thử Cast.