Android'de otomasyon tasarlama

Otomasyon API'sini kullanmaya başlamadan önce otomasyonlarınızı tasarlamanız gerekir.

Her otomasyon için aşağıdaki parametreleri belirleyin:

  • Otomasyonun kullanıcıya önerilmesi gereken durumlar. Örneğin, kullanıcı evine üç yeni ışık eklediyse ışıkları kontrol etmeye yönelik belirli bir otomasyonla ilgilenebilir.
  • Otomasyon için hangi cihaz türleri gereklidir? Örneğin, kullanıcı evine üç yeni ışık eklediyse ışıkları kontrol etmeye yönelik belirli bir otomasyonla ilgilenebilir. Örnek ışık cihazı türleri arasında OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice veya ExtendedColorLightDevice yer alır.
  • Otomasyon için hangi özellikler ve komutlar gerekir ve bunlar Android'de Automation API tarafından desteklenir mi?
  • Otomasyonu başlatıcı olarak etkinleştirmesi gereken özellikler. Başlatıcılar, Android'deki otomasyon bileşenleri bölümünde ele alınmaktadır.
  • Otomasyonun gerçekten çalışıp çalışmayacağını ve hangi işlemlerin gerçekleştirileceğini belirleyen ek koşullar.
  • Otomasyonun yürütme akışı. Sırayla mı yoksa paralel mi yürütülmeli? Birden fazla mantık yolu mu kullanmanız gerekiyor?

Otomasyonu tasarlarken, her adımda gereken mantıkla birlikte düğüm düğüm otomasyon akışını şematize etmek yararlı olabilir.

Bir otomasyon tasarladıktan sonra, Otomasyon DSL'sini kullanarak otomasyonu oluşturun. Oluşturduğunuz otomasyon aslında bir "şablondur". İçindeki tüm yapılar ve cihazlar yer tutucudur ve her kullanıcının kendi kullanımı için otomasyonu "benimsediğinde" kullanıcının kendi yapısı ve cihazlarıyla doldurulur.

Aşağıda, bir uygulamanın Home API'lerini kullanarak oluşturabileceği farklı otomasyon türleri verilmiştir. Bu örneklerle ilgili kod alıntıları için Otomasyon oluşturma sayfasına bakın.

Basit otomasyon

Örneğin, sabah 8:00'de jaluzileri kaldıran bir otomasyon oluşturan bir uygulama yazmanız gerektiğini varsayalım. Bunu yapmak için uygulamanın, yapıda bulunan ve otomasyonları destekleyen jaluzilerin (WindowCoveringDevice cihaz türüne sahip cihazlar) listesine ihtiyacı vardır. Bu liste, Discovery API tarafından sağlanabilir.

Belirli bir zamanda çalışması gereken otomasyonlar için kullanıcının Google Home app (GHA) içinde seçtiği yapıya bir sokak adresi atadığından da emin olmanız gerekir. Aksi takdirde otomasyon, çalışacağı saat dilimini bilmez. Discovery API, bir adrese yapının atanıp atanmadığını belirlemenize yardımcı olabilir.

Bu nedenle, yürütme akışı şu şekilde görünür:

  1. Discovery API'yi kullanarak WindowCoveringDevice cihazların listesini toplayın.
  2. Açık adres doldurulmamışsa kullanıcıya açık adres sağlaması gerektiğini bildirip yürütmeyi durdurun.
  3. Aksi takdirde otomasyonu tanımlayın:
    1. Otomasyonu saat 08:00'de başlatın.
    2. Her bir jaluzi için WindowCovering özelliğinin upOrOpen komutunu çağırın.

Karmaşık otomasyon

Hareket algılandığında ışıkların yanıp sönmesini tetikleyen bir otomasyon oluşturan bir uygulama hayal edin.

Bu uygulamayı kullanmaya başlarken yapmanız gereken ilk görevlerden biri, Discovery API'yi kullanarak kullanıcının evinde hangi ışıkların bulunduğunu öğrenmektir. Bu bilgiler sayesinde uygulamanız artık mevcut ışıkları gösterebilir ve kullanıcının hangi ışıkların yanıp sönmesini istediğini seçmesine izin verebilir.

Yürütme akışı:

  1. Discovery API'yi kullanarak yapıda bulunan ışık cihazlarının listesini toplayın. Bu cihazlar, cihaz türü OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice veya ExtendedColorLightDevice olan cihazlardır.
  2. Belki özel bir Ayarlar paneli aracılığıyla, yanıp sönen ışıkları seçme olanağı sağlayın.
  3. Otomasyonu tanımlayın:
    1. AreaPresenceState izlenerek birisi tesisten ayrıldığında veya tesise geldiğinde otomasyonu başlatın.
    2. presenceState simgesi yapının dolu olduğunu gösteriyorsa seçilen ışıkları yanıp söndürün.

Genel otomasyon

Daha karmaşık bir otomasyon örneği olarak, kullanıcının evindeki cihazların tümüne veya herhangi birine dayalı olarak açık uçlu bir otomasyon oluşturma sürecinde yol gösteren bir otomasyonu ele alalım.

Otomasyon, kullanıcıdan önce bir yapı seçmesini isteyebilir.

Ardından otomasyon, yapının tüm odalarını genişletilebilir ana hat görünümünde gösterebilir. Bir odayı genişlettiğinizde odadaki cihazlar gösterilir. Cihaz listelerini daha da genişletme: Başlatıcıları ve cihaz tarafından desteklenen komutları listeler.

Kullanıcı, kullanmak istediği cihazları, başlangıç noktalarını ve komutları seçebilir. Otomasyon, kullanıcının otomasyon oluşturmasına yardımcı olur.

Kullanıcının tüm seçimleri ve kararları kesinleştiğinde otomasyon, otomasyonu oluşturur ve kullanıcının seçtiği yapıya kaydeder.

Bu tür bir otomasyonun, Structure API for Android, Device API for Android ve Discovery API'yi kullanarak kullanıcının eviyle ilgili çeşitli veri kümeleri toplaması gerekir.

Tablo 1: Home API'leri ve sağladıkları bilgiler
APIBilgi
Structure API
  • Hangi yapılar kullanılabilir?
  • Yapıda hangi odalar var?
Device API
  • Seçilen yapıda hangi cihazlar var?
  • Bu cihazların bulunduğu yer (hangi oda)
Discovery API
  • Cihazlar hangi özellikleri destekler?
  • Bu özelliklerde hangi başlatıcılar ve komutlar kullanılabilir?
  • Bu komutların parametreleriyle ilgili hangi kısıtlamalar vardır?