Android'de veri modeli

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 her tür cihazı (Google Nest veya üçüncü taraf üreticiler) 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'lerde sunulan cihaz türleri, Matter ve Cloud-to-cloud veri modellerinin birleştirilmiş halidir. Bazıları doğrudan Matter'dan türetilir, bazıları Matter cihaz türlerinin bir uzantısıdır ve bazıları Cloud-to-cloud'dan türetilir.

Cihaz türleri, cihazları kontrol etmek ve yönetmek için kullanılan özellikler 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'dan türetilen özellikler kümeler olarak değil, özellikler olarak adlandırılır.

Bu nedenle, Home API'lerindeki cihaz türleri ve özellikleri öncelikle Matter için 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 bölümüne bakın.

Ö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 içinde bulunmaz). Örneğin, her özelliğin belirli bir özelliği veya komutu destekleyip desteklemediğini kontrol eden yöntemleri vardır. Bir cihaz türündeki tüm cihazların aynı özelliklere sahip olması beklenmediğinden, bu özellik, bir kullanıcının cihazında durum okuma veya belirli işlemlerin gerçekleştirilip gerçekleştirilemeyeceğini belirlerken kullanışlıdır.

Her özellik kendi ad alanında bulunur ve kullanılabilmesi için ayrı ayrı içe aktarılması gerekir.

Ö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ı evden) 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 özelliklerinde tutarlı değildir. Her bir DeviceType veya Trait için doğru paket adını doğrulamak üzere referansa bakın.

Çoğu özellik otomasyonlarla kullanılabilir ve bazı özellikler yalnızca otomasyonlarda kullanılabilir. Daha fazla bilgi için Android'de Automation API özellik 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. Binding gibi son kullanıcılara doğrudan fayda sağlamayan alt düzey yapılandırma kümeleri, Home API'leri aracılığıyla gösterilmez.

Cloud-to-cloud akıllı ev özelliklerinden türetilen özellikler genellikle Cloud-to-cloud ve Home API'leri arasında aynı ada sahiptir (ör. OpenClose). Diğerleri, Matter üreticiye özel uzantılar kullanılarak oluşturulan Matter özelliklerinin uzantıları olarak temsil edilir. Bu özellikler, işlevlerin Matter SDK'sı ile Google Home ekosistemi arasında bölündüğü smart home özelliği için boşluğu doldurur. Bunun belirli bir örneği, Cloud-to-cloud'den gelen ancak henüz Matter analogları olmayan Google* cihaz türleridir.

Cihaz türleri, Matter veya Cloud-to-cloud kaynaklarından birinin ya da her ikisinin özelliklerinden oluşur.

Örneğin, Fan cihaz türü her ikisinden de oluşur ve üç özellik içerir:

  • Identify Matter özelliği, Matter Identify özelliğinin tüm işlevlerini sağlar.
  • FanControl Matter özelliği, Matter FanControl özelliğinin tüm işlevlerini sağlar
  • ExtendedFanControl Google özelliği, FanControl Matter özelliğinin kapsamadığı Google smart home FanSpeed özelliğinin tüm işlevlerini sağlar.

Bu tür özellik kompozisyonu, temel smart home veri modellerini soyutlayarak tüm cihaz türü işlevleri için esnek bir model sağlar.

Cihaz grupları

Cihaz grubu, tek bir yapı içinde kullanıcı tarafından tanımlanan bir cihaz koleksiyonunu temsil eder. Grup üyeliği Google hizmetlerinde saklanır ve yapının diğer üyeleri ile yapıya erişimi olan diğer uygulamalar tarafından görülebilir.

Cihaz grupları, HomeDevice öğesinden farklı olan DeviceGroup varlığıyla temsil edilir. Her HomeDevice, ait olduğu grupları GroupMembership özelliği aracılığıyla listeler (group.devices() ile reaktif olarak çözümlenir). Böylece uygulamanız, grup üyeliklerini inceleyebilir ve bir grubun üye cihazları üzerinde doğrudan iterasyon yapabilir. Ayrıca DeviceGroup, grubu bir bütün olarak hedeflerken üye cihazları tarafından desteklenen cihaz türlerini göstermek için PartsProvider arayüzünü uygular.

Cihaz grupları hakkında daha fazla bilgi için Structure API'leri ve Cihaz grubunu kontrol etme başlıklı makaleleri inceleyin.