Google Home ekosistemindeki cihazlar Cloud-to-cloud, Matter veya her ikisi kullanılarak uygulanabilir. Bazı cihaz türleri diğerlerinden daha karmaşıktır ve Home API'leri ekosistemdeki diğer cihazlarla sorunsuz bir şekilde arayüz oluşturacak şekilde kullanırken geliştirme konusunda zorluk çıkarır.
Bu cihaz türlerinden bazılarını uygularken karşılaşılan zorluklardan biri, cihazların farklı özellik kombinasyonlarından oluşabilmesidir. Tüm kombinasyonlar aynı derecede iyi sonuç vermez. Ayrıca Cloud-to-cloud veri modeli, Matter veri modeliyle eşleşir ancak bu eşleşme her zaman net ve bire bir olmaz. Veri modellerini ve bunların eşlemelerini daha ayrıntılı bir şekilde ele alan Android'de veri modeli bölümüne bakın.
Bu sayfada, belirli cihazların veri modellerinin birbirleriyle nasıl eşleştiği hakkında daha fazla bilgi verilmekte ve bu cihaz türlerini uygulamak için hangi özelliklerin kullanılacağı konusunda bazı bilgiler sunulmaktadır.
Fırın
Fırın
(OvenDevice)
cihaz türü ve bileşen özellikleri, diğer cihaz türlerine kıyasla daha karmaşık bir uygulama sürecine sahiptir. Matter üzerinde fırın uygulamanın birden fazla yolu vardır ancak tüm yaklaşımlar diğer cihazlarla veya Google Home ekosistemiyle sorunsuz birlikte çalışmayla sonuçlanmaz.
Özellik eşleme
Oven Mode ve On Off kümelerini kullanarak Matter Oven cihazı uygulamak yerine Oven Cavity Operational State kümesini kullanmanızı öneririz. Bu küme, Home API'lerinde OvenCavityOperationalState özelliğiyle temsil edilir ve Cloud-to-cloud
RunCycle özelliğiyle eşlenir. "Ön ısıtma", "önceden ısıtılmış" ve "soğutma" gibi aşamaları tanımlar.
| Home API'leri | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState
|
RunCycle
|
Cloud-to-cloud Oven veri modelinin sınırlamaları vardır. Cloud-to-cloud Oven veri modeli, yalnızca tek bir RunCycle içeren tek bir bölmeye izin verir. Buna karşılık Matter, çok bölmeli bir fırını her bölme için bir Fırın Boşluğu Çalışma Durumu kümesi içeren bir cihaz uç noktası olarak modeller.
Bazı fırın cihazlarında, aşama listesinin çalışma zamanında değişmesi uygun olabilir. Örneğin, ön ısıtmayı destekleyen fırınların ön ısıtma aşamasında, ısıtma veya soğutma aşamalarındakinden farklı aşama listesi girişleri olabilir.
Önerilen uygulama
Önceki bölümde açıklandığı gibi, Matter Oven uygulaması, Home API'lerinde OvenCavityOperationalState özelliği olarak modellenen Oven Cavity Operational State kümesini uygulamalıdır.
En iyi sonuçlar için Cloud-to-cloud fırın cihazınızın RunCycle özelliğini uyguladığından emin olun ve currentRunCycle özelliğini ayarlayarak mevcut durumu yayınlayın. Bu özellik, Home API'leri tarafından OvenCavityOperationalState.phaseList ve OvenCavityOperationalState.currentPhase özellikleri aracılığıyla gözlemlenebilir.
Fırın cihazı, RunCycle özelliğinin priority, status ve currentCycleRemainingTime özelliklerini güncelleyerek bir çalışma döngüsü cihaz bildirimi de yayınlamalıdır. Aşağıdaki örnekte bir OperationalState.OperationCompletion etkinliği gönderilir ve fırının "ön ısıtma" döngüsünden "önceden ısıtılmış" döngüsüne geçtiğini belirtmek için kullanılabilir:
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
Otomasyonda fırın kullanma
Oven Cavity Operational State kümesi kullanılarak uygulanan bir fırın için otomasyon oluştururken fırının hangi döngüde olduğunu öğrenmek için currentPhase özelliğine bakın:
sequential {
val starterNode =
starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
condition {
expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
}
action(speaker, SpeakerDevice) {
command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
}
// Additional actions here as needed
}
Tam bir örnek için Fırın seçilen sıcaklığa ulaştığında ışıkları yakıp söndürme ve duyuru yapma başlıklı makaleye bakın.