Khả năng tương tác trên iOS

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ông phải tổ hợp nào cũng hoạt động hiệu quả như những 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. Xem Mô hình dữ liệu trên iOS để tìm hiểu sâu hơn về các mô hình dữ liệu và mối ánh xạ 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ị Matter Lò nướng 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 thể hiện trong Home API bằng đặc điểm OvenCavityOperationalStateTrait và tương ứng với đặc điểm Cloud-to-cloud RunCycle. Nó xác định các giai đoạn như "sưởi ấm trước", "đã sưởi ấm trước" và "làm mát".

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 ngăn duy nhất, có một RunCycle duy nhất. Ngược lại, Matter mô hình hoá Lò nướng nhiều ngăn 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ò cho từng ngăn.

Đố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ợ tính 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 nguội.

Như đã thảo luận trong phần trước, việc triển khai Lò nướng Matter phải triển khai cụm Trạng thái hoạt động của khoang lò nướng. Cụm này đượ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 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. Thuộc tính này có thể được Home API quan sát thông qua các thuộc tính OvenCavityOperationalStateTrait.phaseListOvenCavityOperationalStateTrait.currentPhase.

Thiết bị Lò nướng cũng phải xuất bản thông báo trên thiết bị về chu kỳ chạy bằng cách cập nhật các thuộc tính priority, statuscurrentCycleRemainingTime của RunCycle. Ví dụ sau đây sẽ gửi một sự kiện OperationalStateTrait.OperationCompletion và có thể dùng để cho biết rằng lò đã 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 tạo một 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 trình 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 phần Nếu TV đang bật khi chu trình của 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 thông báo "Chu trình của lò nướng đã hoàn tất".