Android için Google Home API'leri, geliştiricilerin kullanıcının evindeki varlıkların durumuyla etkileşime geçmesini sağlayan birleşik bir API yüzeyi sunar. Bu varlıklar, kullanıcının yapısı ve odalarıyla ilişkili cihazları ve cihaz dışı bilgileri tanımlayabilir.
Home API'leri, kullanıcıların etkileşimde bulunabileceği aşağıdaki öğeleri tanımlar:
- Yapılar, odalar ve cihazlar içeren bir evi temsil eder.
- Odalar bir yapının parçasıdır ve cihazları içerir.
- Cihazlar; özellikleri içeren nitelikleri uygular, türlere uyar, etkinlikleri yayınlar ve komutlara yanıt verir.
- Cihaz grupları, bir yapı içindeki kullanıcı tanımlı cihaz koleksiyonlarıdır.
- 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 desteklenebilir veya Google Home ekosisteminde bir Cloud-to-cloud cihaz olabilir. Bazı cihaz türleri her ikisinin de işlevlerini içerebilir. Daha fazla bilgi için Android'de desteklenen cihaz türleri başlıklı makaleyi inceleyin.
Matter'da cihaz işlevleri, Home API'lerinde Matter standart özellikleri olarak temsil edilen kümeler halinde gruplandırılır. Home API'leri, mevcut Matter spesifikasyonunda tanımlanan standart Matter kümelerini 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'leri, 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 Android'de veri modeli başlıklı makaleyi inceleyin.
Ekosistem
Google Home ekosistemi; akıllı ev deneyimleri oluşturmak, yönetmek, güvenliğini sağlamak ve entegre etmek için kolaylaştırılmış bir temel sunar. Şekil 2'de tüm bileşenlerin birlikte nasıl çalıştığı gösterilmektedir.
Ekosistemde, evdeki görevleri ve cihaz ayarlarını otomatikleştirmenin bir yolunu sunan otomasyonları depolayıp çalıştıran Google Otomasyon Motoru bulunur.
Home API'leri, yapıdaki cihazlara erişim izni vermek için OAuth 2.0'ı kullanır. OAuth, kullanıcının giriş kimlik bilgilerini ifşa etmek zorunda kalmadan bir uygulamaya veya hizmete izin vermesine olanak tanır.
Google Home Developer Console, marka doğrulamasından geliştirme, test, sertifikasyon ve nihayetinde lansmana kadar Home API'leri projesinin tüm aşamalarını yönetmek için kullanılır. Google Home ekosistemi üzerinden güçlü araçlar ve dağıtım imkanı sunarak geliştirme sürecini kolaylaştırır.
Dil
Android için Home API'leri Kotlin dilinde yazılmıştır ve durumu ve aboneliği yönetmek için Flow'u kullanan deyimsel bir Kotlin arayüzü sağlar. Bu, standart bir abonelik API'sine kıyasla birçok avantaj sağlar.
Henüz yapmadıysanız eş yordamlar, akış ve Jetpack Compose ile ilgili Kotlin dokümanlarını incelemenizi öneririz:
- Kotlin ile Android uygulamaları geliştirme
- Android için Kotlin'i öğrenme
- Android'de Kotlin eş yordamları. Şu codelab'ler faydalı olabilir:
- Android'de Kotlin akışları ve daha spesifik olarak StateFlow.
- State ve Jetpack Compose, özellikle
collectAsStateWithLifecycle()işlevi Bu işlev, bu durumu gösteren kullanıcı arayüzünün ö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ş şeklini anlamanıza yardımcı olur.
Varlık tanımlayıcıları
Home API'lerindeki her varlığın, 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şmeyecek benzersiz ve sabit bir tanımlayıcıdır. Bu kimlik, nesneleri önbelleğe almak veya bir öğenin meta verileri değişebileceğinden eşitliği kontrol etmek için kullanılabilir.
Hangi varlıkların 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 şekilde 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 |