iOS'teki veri modeli

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:

  • IdentifyTrait Matter özelliği, Matter IdentifyTrait özelliğinin tüm işlevlerini sağlar.
  • FanControlTrait Matter özelliği, Matter FanControlTrait özelliğinin tüm işlevlerini sağlar.
  • ExtendedFanControlTrait Google özelliği, Google smart home FanSpeedTrait'ın FanControlTrait Matter ö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.