Bạn có thể triển khai các thiết bị trong hệ sinh thái Google Home bằng cách sử dụng Cloud-to-cloud, Matter hoặc cả hai. Một số loại thiết bị phức tạp hơn các loại khác và gây khó khăn cho việc phát triển khi sử dụng Home API theo cách cho phép giao tiếp mượt mà với các thiết bị khác trong hệ sinh thái.
Một trong những thách thức khi triển khai một số loại thiết bị này là các thiết bị có thể bao gồm nhiều tổ hợp đặc điểm khác nhau. Không phải kiểu kết hợp nào cũng hiệu quả như nhau. Ngoài ra, mô hình dữ liệu Cloud-to-cloud liên kết với mô hình dữ liệu Matter, nhưng không phải lúc nào cũng theo cách rõ ràng, một với một. Xem bài viết Mô hình dữ liệu trên iOS, trong đó thảo luận chi tiết hơn về các mô hình dữ liệu và mối liên kết của chúng.
Trang này chứa thêm thông tin về các mô hình dữ liệu cho các thiết bị cụ thể liên kết với nhau và đưa ra một số hướng dẫn về những đặc điểm cần sử dụng để triển khai các loại thiết bị đó.
Lò nướng
Loại thiết bị Lò nướng (OvenDeviceType) và các đặc điểm thành phần của loại thiết bị này không dễ triển khai như các loại thiết bị khác. Có nhiều cách để triển khai Lò nướng trong Matter, nhưng không phải cách nào cũng mang lại khả năng tương tác liền mạch với các thiết bị khác hoặc với hệ sinh thái Google Home.
Liên kết đặc điểm
Thay vì triển khai thiết bị Lò nướng Matter bằng cách sử dụng các cụm Chế độ lò nướng và Bật/Tắt, bạn nên sử dụng cụm Trạng thái hoạt động của khoang lò nướng. Cụm này được biểu thị trong Home API bằng đặc điểm OvenCavityOperationalStateTrait và liên kết với đặc điểm Cloud-to-cloud
RunCycle. Nó xác định các giai đoạn như "sưởi ấm trước", "đã làm nóng trước" và "làm mát".
| Home API | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState
|
RunCycle
|
Mô hình dữ liệu Cloud-to-cloud Oven có một số hạn chế. Mô hình dữ liệu Cloud-to-cloud Oven chỉ cho phép một buồng, với một RunCycle. Ngược lại, Matter mô hình hoá một Lò nướng nhiều khoang dưới dạng một điểm cuối của thiết bị có một cụm Trạng thái hoạt động của khoang lò nướng cho mỗi khoang.
Đối với một số thiết bị Lò nướng, danh sách giai đoạn có thể thay đổi trong thời gian chạy. Ví dụ: Lò nướng hỗ trợ chức năng làm nóng trước có thể có các mục khác nhau trong danh sách giai đoạn trong giai đoạn làm nóng trước so với giai đoạn làm nóng hoặc làm mát.
Cách triển khai được đề xuất
Như đã thảo luận trong phần trước, một phương thức triển khai Matter Oven phải triển khai cụm Trạng thái hoạt động của khoang lò, được mô hình hoá trong Home API dưới dạng đặc điểm OvenCavityOperationalStateTrait.
Để có kết quả tốt nhất, hãy đảm bảo thiết bị Cloud-to-cloud Oven của bạn triển khai đặc điểm RunCycle và xuất bản trạng thái hiện tại bằng cách đặt thuộc tính currentRunCycle. Home API có thể ghi nhận thuộc tính này thông qua các thuộc tính OvenCavityOperationalStateTrait.phaseList và OvenCavityOperationalStateTrait.currentPhase.
Thiết bị Lò nướng cũng phải xuất bản thông báo về chu kỳ chạy của thiết bị bằng cách cập nhật các thuộc tính priority, status và currentCycleRemainingTime của RunCycle. Ví dụ sau đây dẫn đến việc gửi sự kiện OperationalStateTrait.OperationCompletion và có thể được dùng để cho biết rằng lò nướng đã chuyển từ chu kỳ "sưởi ấm trước" sang chu kỳ "đã làm nóng trước":
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
Sử dụng lò nướng trong quy trình tự động hoá
Khi tạo quy trình tự động hoá cho Lò nướng được triển khai bằng cụm Trạng thái hoạt động của khoang lò nướng, hãy tham khảo thuộc tính currentPhase để biết lò nướng đang ở chu kỳ nào:
sequential {
let operationalState = starter(
oven,
OvenDeviceType.self,
OvenCavityOperationalStateTrait.self
)
operationalState
condition {
operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
}
for speaker in speakers {
action(speaker, SpeakerDeviceType.self) {
Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
}
}
}
Để xem ví dụ hoàn chỉnh, hãy xem phần Nếu TV đang bật khi lò nướng hoàn tất chu trình, đèn phòng khách sẽ nhấp nháy và loa thông minh sẽ phát thông báo "Chu trình lò nướng đã hoàn tất".