Home API'leri, Google Home ekosistemindeki tüm cihazları birleşik bir veri modelinde sunar. Bu veri modeli, temel akıllı ev teknolojisinden (Matter veya Cloud-to-cloud gibi) bağımsız olarak tüm cihaz türlerini (Google Nest veya üçüncü taraf üreticilerden) kapsar ve hem smart home hem de mobil uygulama geliştiricileri için kullanıcı deneyimleri oluşturmak üzere ortak bir API yüzeyi sağlar.
Cihaz türleri
Home API'lerinde sunulan cihaz türleri, Matter ve Cloud-to-cloud veri modellerinin bir birleşimidir. Bazıları doğrudan Matter'ten türetilmiştir, bazıları Matter cihaz türlerinin bir uzantısıdır ve bazıları Cloud-to-cloud'ten türetilmiştir.
Cihaz türleri, cihazları kontrol etmek ve yönetmek için kullanılan özellikleri içerir. Cihaz türleri gibi özellikler de Matter kümelerinden ve Cloud-to-cloud özelliklerinden türetilir ve Matter kümelerine benzer ortak bir biçimde sunulur. Home API'lerinde, Matter türetilmiş özellikler kümeler değil özellikler olarak adlandırılır.
Bu nedenle, Home API'lerindeki cihaz türleri ve özellikleri Matter öncelikli olarak tasarlanmıştır. Matter cihaz türü veya özelliği, Cloud-to-cloud analoguna göre önceliklidir.
Cihaz türlerinin ve özelliklerinin listesi için Desteklenen cihaz türleri başlıklı makaleyi inceleyin.
Özellikler
Özelliklerin Kotlin sürümleri, Home API'lerde kullanılmak üzere oluşturulur ve Home API'lere özgü ek özellikler içerir (Matter veya Cloud-to-cloud'te bulunmaz). Örneğin, her özelliğin belirli bir özelliği veya komutu destekleyip desteklemediğini kontrol etmek için yöntemleri vardır. Bir cihaz türünde bulunan tüm cihazların aynı özelliklere sahip olması beklenmediğinden, durum okuma veya belirli işlemlerin kullanıcının cihazında yapılıp yapılamayacağını belirlerken bu özellikten yararlanabilirsiniz.
Her özellik kendi ad alanında bulunur ve kullanılmak için ayrı ayrı içe aktarılmalıdır.
Örneğin, Matter Açma/Kapatma özelliğini ve Açma/Kapatma Eklenti Birimi cihaz türünü kullanmak için aşağıdaki paketleri uygulamanıza aktarın:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Garaj cihazı türü (Google akıllı evinden) için Matter ve Google özelliklerinin bir karışımını ekleyin:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio, otomatik tamamlama işlevine sahiptir ve projenizdeki kaynak dosyalara import
satırları eklerken genellikle tam paket adlarını sizin için işler. Ancak paket adları tüm cihaz türleri ve özellikleri için tutarlı değildir. Her DeviceType
veya Trait
için doğru paket adını doğrulamak üzere referans bölümüne bakın.
Özellikler, otomasyonlarla birlikte kullanılmak üzere de desteklenir ancak sınırlı olabilir ve bazı özellikler yalnızca otomasyonlarda kullanılabilir. Liste için Automation API özelliği desteği başlıklı makaleyi inceleyin.
Cihaz türü bileşimi
Home API'ler, veri modelinde özellik olarak çoğu Matter 1.3 uygulama kümesini destekler. Cihaz kontrolüne veya durumlarına karşılık gelmeyen ve son kullanıcılar için herhangi bir fayda sağlamayan özellikler (ör. Bağlama ve Gruplar) Home API'leri aracılığıyla gösterilmez.
Cloud-to-cloud akıllı ev özelliklerinden türetilen özellikler genellikle Cloud-to-cloud ile Home API'leri arasında aynı ada sahiptir (ör. OpenClose örneğinde olduğu gibi). Diğerleri ise Matter üreticiye özgü uzantılar kullanılarak oluşturulan Matter özelliklerin uzantıları olarak temsil edilir. Bu özellikler, işlevselliğin smart home SDK ile Google Home ekosistemi arasında bölündüğü Matter özelliklerindeki boşluğu doldurur. Buna örnek olarak, Cloud-to-cloud'dan gelen ancak henüz Matter analogları olmayan Google*
cihaz türleri verilebilir.
Cihaz türleri, Matter veya Cloud-to-cloud kaynaklarından birinden ya da her ikisinden de alınan özelliklerden oluşur.
Örneğin, Fan cihaz türü her ikisinden de oluşur ve iki FanControl özelliğine sahiptir:
- FanControl Matter özelliği, Matter FanControl özelliğindeki tüm işlevleri sağlar
- ExtendedFanControl Google özelliği, Google smart home FanSpeed özelliğindeki FanControl Matter özelliğinin kapsamına girmeyen tüm işlevleri sağlar.
Bu tür özellik bileşimi, temel smart home veri modellerini soyutlayarak cihaz türü işlevselliğinin tamamı için esnek bir model sağlar.