Android için Home API'leri, Google Home ekosistemindeki tüm cihazları birleşik bir veri modelinde sunar. Bu veri modeli, temel akıllı ev teknolojisinden (ör. Matter veya Cloud-to-cloud) bağımsız olarak Google Nest veya üçüncü taraf üreticilerin tüm cihaz türlerini kapsar ve hem smart home hem de mobil uygulama geliştiriciler 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 birleştirilmiş halidir. Bazıları doğrudan Matter cihazlarından, bazıları Matter cihaz türlerinin uzantısı, bazıları ise Cloud-to-cloud cihazlarından türetilir.
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. Ev API'lerinde, Matter türetilmiş özelliklere kümeler değil, özellikler adı verilir.
Bu nedenle, Home API'lerindeki cihaz türleri ve özellikleri Matter-first 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 Android'de desteklenen cihaz türleri başlıklı makaleyi inceleyin.
Özellikler
Özelliklerin Kotlin sürümleri, Home API'lerinde kullanılmak üzere oluşturulur ve Home API'lerine özgü ek özellikler içerir (Matter veya Cloud-to-cloud'de bulunmaz). Örneğin, her özelliğin, bir özelliğin belirli bir özelliği veya komutu destekleyip desteklemediğini kontrol etmeye yönelik yöntemleri vardır. Bir cihaz türündeki tüm cihazların aynı özelliklere sahip olması beklenmediğinden, durumun okunmasının veya belirli işlemlerin kullanıcının cihazında gerçekleştirilip gerçekleştirilemeyeceğini belirlemek için bu özellikten yararlanabilirsiniz.
Her özellik kendi ad alanında bulunur ve kullanılmak üzere ayrı ayrı içe aktarılmalıdır.
Örneğin, Matter Açma/Kapama özelliğini ve Açma/Kapama 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 özellikleri 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 dosyalarına 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ı inceleyin.
Özelliklerin çoğu, otomasyonlarla kullanılmak üzere desteklenir. Bazı özellikler ise yalnızca otomasyonlarda kullanılabilir. Daha fazla bilgi için Android'de Automation API özelliği desteği başlıklı makaleyi inceleyin.
Cihaz türü bileşimi
Home API'leri, veri modelindeki özellikler olarak çoğu Matter uygulama kümesini destekler. Son kullanıcılara doğrudan fayda sağlamayan düşük düzeyli yapılandırma kümeleri (ör. Binding) Home API'leri aracılığıyla kullanıma sunulmaz.
Cloud-to-cloud akıllı ev özelliklerinden türetilen özellikler genellikle Cloud-to-cloud ve Home API'leri arasında aynı ada sahiptir. Örneğin, OpenClose özelliğinde bu durum geçerlidir. Diğerleri ise Matter üreticiye özel uzantıları kullanılarak oluşturulan Matter özelliklerinin uzantıları olarak gösterilir. Bu özellikler, işlevselliğin smart home SDK'sı ile Google Home ekosistemi arasında bölündüğü Matter özelliği için boşluğu doldurur. Bununla ilgili belirli bir örnek, Google* cihaz türleridir. Bu türler Cloud-to-cloud'den gelir ancak henüz Matter analoglarına sahip değildir.
Cihaz türleri, Matter veya Cloud-to-cloud kaynaklarından birinin ya da her ikisinin özelliklerinden oluşur.
Örneğin, Fan device type hem Fan hem de Device'tan oluşur ve üç özelliğe sahiptir:
IdentifyMatter özelliği, MatterIdentifyözelliğindeki tüm işlevleri sağlar.FanControlMatter özelliği, MatterFanControlözelliğinin tüm işlevlerini sağlar.ExtendedFanControlGoogle özelliği, smart homeFanSpeedözelliğininFanControlMatter özelliği kapsamına girmeyen tüm işlevlerini sağlar.
Bu tür özellik bileşimi, temel smart home veri modellerini soyutlayarak eksiksiz cihaz türü işlevselliği için esnek bir model sağlar.
Cihaz grupları
Cihaz grubu, tek bir yapı içindeki kullanıcı tanımlı cihaz koleksiyonunu temsil eder. Cihaz grupları, HomeDevice'ten farklı olan DeviceGroup öğesiyle temsil edilir.
Cihaz grupları hakkında daha fazla bilgi için Structure API'leri başlıklı makaleyi inceleyin.