iOS 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 iOS'te desteklenen cihaz türleri başlıklı makaleyi inceleyin.
Özellikler
Özelliklerin Swift 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'de 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.
Özellikleri ve cihaz türlerini içe aktarmak için GoogleHomeTypes modülünü uygulamanıza aktarın:
import GoogleHomeTypes
Ayrıca, kodu kısaltmak ve ad alanı tekrarını önlemek için özellik ve cihaz türü adlarında typealias kullanabilirsiniz:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
Ç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. Son kullanıcılara doğrudan fayda sağlamayan alt düzey yapılandırma kümeleri (ör. Binding) Home API'leri aracılığıyla doğrudan gösterilmez. Cihaz grupları hakkında daha fazla bilgi için Structure API'leri bölümüne bakın.
Cloud-to-cloud akıllı ev özelliklerinden türetilen özellikler genellikle Cloud-to-cloud ve Home API'leri arasında aynı ada sahiptir (ör. OpenCloseTrait). 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, FanDeviceType
her ikisinden de oluşur ve üç özellik içerir:
IdentifyTraitMatter özelliği, MatterIdentifyTraitözelliğinin tüm işlevlerini sağlar.FanControlTraitMatter özelliği, MatterFanControlTraitözelliğinin tüm işlevlerini sağlar.ExtendedFanControlTraitGoogle özelliği, Google smart homeFanSpeedTrait'ınFanControlTraitMatter özelliği tarafından kapsanmayan 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, GroupMembershipTrait aracılığıyla ait olduğu grupları listeler. 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 HasParts protokolüne uyar.
Cihaz grupları hakkında daha fazla bilgi için Structure API'leri ve Cihaz grubunu kontrol etme başlıklı makaleleri inceleyin.