Bạn có thể triển khai các thiết bị trong hệ sinh thái Google Home bằ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ể được tạo thành từ nhiều tổ hợp đặc điểm. Không phải tổ hợp nào cũng hoạt động tốt như các tổ hợp khác. 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-một. Hãy xem Mô hình dữ liệu trên iOSđể biết thêm chi tiết về các mô hình dữ liệu và mối liên kết của chúng.
Trang này cung cấp thêm thông tin về mối liên kết giữa các mô hình dữ liệu cho các thiết bị cụ thể và 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 giúp lò 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á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. Cụm này xác định các giai đoạn như "làm nóng trước", "đã làm nóng trước" và "làm nguội".
| Home API | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState
|
RunCycle
|
Mô hình dữ liệu Lò nướng Cloud-to-cloud có một số hạn chế. Mô hình dữ liệu Lò nướng
Cloud-to-cloud chỉ cho phép một khoang,
với một RunCycle. Ngược lại, Matter mô hình hoá
Lò nướng nhiều khoang dưới dạng một điểm cuối của thiết bị có 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, bạn có thể thay đổi danh sách giai đoạn trong thời gian chạy. Ví dụ: Lò nướng hỗ trợ 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 trong giai đoạn làm nóng hoặc làm nguội.
Cách triển khai được đề xuất
Như đã thảo luận trong phần trước, hoạt động triển khai Matter Lò nướng
phải triển khai cụm Trạng thái hoạt động của khoang lò nướng, được
mô hình hoá trong Home API dưới dạng
OvenCavityOperationalStateTrait
đặc điểm.
Để có kết quả tốt nhất, hãy đảm bảo rằng thiết bị Lò nướng Cloud-to-cloud 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ể quan sát thuộc tính này thông qua các
OvenCavityOperationalStateTrait.phaseList
và
OvenCavityOperationalStateTrait.currentPhase
thuộc tính.
Thiết bị Lò nướng cũng phải xuất bản thông báo thiết bị về chu kỳ chạy 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 sẽ gửi sự kiện
OperationalStateTrait.OperationCompletion
và có thể dùng để cho biết rằng lò nướng đã chuyển
từ chu kỳ "làm nóng 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 xây dựng 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 chiếu 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ụ đầy đủ, hãy xem bài viết Nếu TV bật khi chu kỳ lò nướng hoàn tất, đèn phòng khách sẽ nhấp nháy và loa thông minh sẽ phát "Oven Cycle Complete" (Chu kỳ lò nướng hoàn tất).