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 koşullar. Ö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 OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice veya ExtendedColorLightDevice'dır.
  • Otomasyon için hangi özellik özelliklerinin ve komutlarının gerekli olduğu ve bunların Otomasyon API'si tarafından desteklenip desteklenmediği.
  • Otomasyonu başlatıcı olarak etkinleştirmesi gereken özellikler. Başlatıcılar Otomasyon bileşenleri bölümünde ele alınmıştır.
  • Otomasyonun gerçekten çalışıp çalışmayacağını ve hangi işlemlerin yapılacağını belirleyen ek koşullar.
  • Otomasyonun yürütme akışı. Sıralı mı yoksa paralel mi yürütülmeli? Birden fazla mantık yoluna mı ihtiyacınız var?

Tasarım yaparken, her adımda gereken mantıkla birlikte otomasyonun akışını düğüm düğüm şematize etmek yararlı olabilir.

Bir otomasyon tasarladıktan sonra otomasyonu oluşturmak için otomasyon DSL'sini kullanın. Oluşturduğunuz otomasyon temelde bir "şablondur". İçindeki tüm yapılar ve cihazlar yer tutuculardır ve otomasyonu kendi kullanımları için "benimsediğinde" her kullanıcının özel 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 perdeleri açan bir otomasyon oluşturan bir uygulama yazmanız gerektiğini varsayalım. Bunu yapmak için uygulamanın, yapıda bulunan ve otomasyonu destekleyen panjurların (WindowCoveringDevice cihaz türüne sahip cihazlar) Discovery API tarafından sağlanabilecek bir listesine ihtiyacı vardır.

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

Dolayısıyla yürütme akışı şöyle görünür:

  1. Discovery API'yi kullanarak WindowCoveringDevice cihazlarının listesini toplayın.
  2. Açık adres doldurulmamışsa kullanıcıya açık adres sağlaması gerektiğini bildirin ve yürütmeyi durdurun.
  3. Aksi takdirde otomasyonu tanımlayın:
    1. Otomasyonu 08:00'de başlatın.
    2. Her bir panjur 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 düşünün.

Bu uygulamayı uygulamaya koyarken ilk yapılacak işlerden biri, Discovery API'yi kullanarak kullanıcının evinde hangi ışıkların bulunduğunu öğrenmektir. Bu bilgilerle uygulamanız artık mevcut ışıkları gösterebilir ve kullanıcının yanıp sönmesini istediği ışıkları seçmesine izin verebilir.

Yürütme akışı:

  1. Discovery API'yi kullanarak yapıda bulunan hafif cihazların listesini toplayın. Bu cihazlar, OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice veya ExtendedColorLightDevice cihaz türüne sahip tüm cihazlardır.
  2. Yanıp sönen ışıkları seçmenin bir yolunu (ör. özel bir Ayarlar paneli aracılığıyla) sağlayın.
  3. Otomasyonu tanımlayın:
    1. AreaPresenceState öğesini izleyerek, tesisten ayrılan veya tesise gelen her kullanıcı için otomasyonu başlatın.
    2. presenceState, yapının dolu olduğunu gösteriyorsa seçili ışıkları yanıp söndürün.

Genel otomasyon

Daha karmaşık bir otomasyon örneği olarak, kullanıcıya evinde bulunan tüm cihazlara veya bir kısmına göre açık uçlu bir otomasyon oluşturma konusunda rehberlik eden bir otomasyon düşünebilirsiniz.

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

Ardından otomasyon, yapıdaki tüm odaları genişletilebilir ana hat görünümünde gösterebilir. Oda genişletildiğinde içindeki cihazlar gösterilir. Bir cihazı daha ayrıntılı olarak incelediğinizde, bu cihaz tarafından desteklenen başlatıcıları ve komutları görebilirsiniz.

Kullanıcı, kullanmak istediği cihazları, başlatıcıları ve komutları seçebilir. Otomasyon, kullanıcıya otomasyon oluşturma konusunda yol gösterir.

Kullanıcının tüm seçimleri ve kararları kesinleştiğinde otomasyon oluşturulur ve seçilen yapıya kaydedilir.

Genel olarak, bu tür bir otomasyonun Structure API, Device API ve Discovery API'yi kullanarak kullanıcının evi hakkında çeşitli veri kümeleri toplaması gerekir.

Tablo 1: Ev API'leri ve sağlayabilecekleri bilgiler
APIBilgi
Structure API
  • Hangi yapılar kullanılabilir?
  • Yapıda hangi odalar var?
Device API
  • Seçilen yapıdaki cihazlar
  • 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 parametrelerinde hangi kısıtlamalar vardır?