Android için Google Home API'leri, geliştiricilerin kullanıcının evindeki öğelerin durumuyla etkileşime geçmesini sağlayan birleşik bir API yüzeyi sağlar. Bu varlıklar, kullanıcının yapısı ve odalarıyla ilişkili cihazları ve cihazla ilgili olmayan bilgileri tanımlayabilir.
Home API'ler, kullanıcının etkileşim kurabileceği aşağıdaki öğeleri tanımlar:
- Yapılar, oda ve cihaz içeren bir evi temsil eder.
- Odalar, bir yapının parçasıdır ve cihazlar içerir.
- Cihazlar, özellikler içeren özellikleri uygular, türlere uyar, etkinlikler yayınlar ve komutlara yanıt verir.
- Otomasyonlar, bir yapının parçasıdır ve evdeki görevleri otomatikleştirmek için ev meta verilerini ve cihazları kullanır.
Şekil 1'de bu mimari gösterilmektedir:
Home API cihaz türleri, akıllı ev için açık bir standart olan Matter tarafından desteklenebileceği gibi Google Home ekosistemindeki bir Cloud-to-cloud cihazı da olabilir. Bazı cihaz türleri her iki işlevden de yararlanabilir. Daha fazla bilgi için Desteklenen cihaz türleri bölümüne bakın.
Matter'te cihaz işlevleri, Home API'lerinde Matterstandart özellikler olarak temsil edilen kümelere göre gruplandırılır. Home API'leri, mevcut Matter spesifikasyonunda tanımlanan standart Matter küme grubunu destekler.
Google Home ekosisteminde cihaz işlevleri, Home API'lerinde Google akıllı ev özellikleri olarak temsil edilen akıllı ev özelliklerine göre gruplandırılır. Home API'ler, Cloud-to-cloud programında tanımlanan akıllı ev özelliklerini destekler.
Üreticiye özel kümeler ve platform özellikleri gibi diğer özellikler de kullanılabilir. Daha fazla bilgi için Veri modeli başlıklı makaleyi inceleyin.
Dil
Home API'leri Kotlin ile yazılmıştır ve durumu ve aboneliği yönetmek için Flow kullanan doğal bir Kotlin arayüzü sağlar. Bu, standart bir abonelik API'sine kıyasla çeşitli avantajlar sağlar.
Henüz yapmadıysanız Kotlin'de iş parçacığı, akış ve Jetpack Compose ile ilgili dokümanları incelemenizi öneririz:
- Kotlin ile Android uygulamaları geliştirme
- Android için Kotlin'i öğrenin
- Android'de Kotlin eş yordamları. Aşağıdaki codelab'ler yararlı olabilir:
- Kotlin, Android'de ve daha spesifik olarak StateFlow'da akışı sağlar.
- Durum ve Jetpack Compose, özellikle
collectAsStateWithLifecycle()
işlevi. Bu işlev, bu durumu gösteren kullanıcı arayüzünün gerçekten ön planda olup olmadığına bağlı olarak akışlara abone olma ve abonelikten çıkma işlemlerini otomatik olarak yönetir. - Automation API ile çalışıyorsanız Kotlin tür güvenli oluşturucular hakkında bilgi edinmek, Automation DSL'nin işleyişini anlamanıza yardımcı olur.
Öğe tanımlayıcılar
Home API'lerindeki her öğenin birincil tanımlayıcısını temsil eden bir kimliği vardır. Bu kimlik, öğenin kullanım ömrü boyunca hiçbir zaman değişmeyen benzersiz ve sabit bir tanımlayıcıdır. Bir öğenin meta verileri değişebileceğinden bu kimlik, öğeleri önbelleğe almak veya eşitliği kontrol etmek için kullanılabilir.
Hangi öğelerin kimliği olduğunu öğrenmek için HasId
arayüzüne bakın.
Terminoloji eşleme
Home API'lerindeki öğeler, Matter ve Cloud-to-cloud kavramlarıyla aşağıdaki gibi eşlenir:
Home API'leri | Matter | Cloud-to-cloud |
---|---|---|
Özellik | Küme | Özellik |
Özellik | Özellik | Özellik, Eyalet |
Komut | Komut | Komut |
Etkinlik | Etkinlik | Takip yanıtı, Bildirim |