Şema, bir Weave sisteminde mantıksal veya fiziksel cihazlar tarafından yayınlanan verilerin temsilini ve yorumlanmasını sağlayan temel veri modelini açıklar.
Şema aşağıdaki gibidir:
- Standartlaştırılmış: Uygulamadan bağımsız olarak tutarlı bir arayüz sağlayan, işlevlerin resmi olarak onaylanmış tanımlarını içerir. Örneğin, şemada gösterilen bir ampul, her zaman açma/kapatma durumları ve işlem ya da karartma seviyeleri gibi temel işlevlere sahiptir.
- Kombinasyon : Kullanıcılar iyi tanımlanmış işlevlerden oluşan küçük öğelerden oluşan karmaşık kaynaklar oluşturabilir. Örneğin, Nest Detect'te iki tür sensör bulunur: hareket ve açma/kapatma. Bu sensör türlerinin işlevleri şemada standartlaştırılmıştır ve farklı cihazlarda yeniden kullanılabilir.
- Genişletilebilir: Kullanıcılar, standart işlevlerle ilgili özel uzantılar oluşturabilir. Örneğin, şemanın standart hareket sensörü işlevini belirli bir güvenlik uygulaması için ek işlevlerle genişletmek isteyebilirsiniz.
- Sürümlü: Şemadaki tüm değişiklikler, sürümler ve geriye dönük uyumluluk için sürüm haline getirilmiştir.
Şema üç öğeyi tanımlar: özellikler, arayüzler ve kaynaklar. Günlük ekosistem için Nest ekosistemindeki neredeyse tüm işlevler şemada tanımlanır. Şimdi her bir öğeyi daha ayrıntılı olarak inceleyelim.
Özellikler
özelliği, bir temel işlev birimidir. Bunlar genel cihaz durumları veya işlevleri ya da davranışını belirleyen yapılandırmayı açıklayabilir. Tek bir özellik birçok cihazda yaygın olabilir veya tek bir cihaz türüne özgü olabilir.
Örneğin, şemada Nest cihazlarda kullanılacak aşağıdaki özellikleri tanımlayabilirsiniz:
Arayüzler
Özellikle birden fazla özellik yeni ve spesifik bir işlevi temsil ediyorsa özellikleri gruplandırarak birleştirilebilir. Bu tür gruplara arayüz
denir.Örneğin, bir Intercom arayüzü Hoparlör ve Mikrofon özelliklerinden oluşabilir:
Kaynaklar
Kaynak
, şemadaki mantıksal veya fiziksel bir şeyi temsil eder. Örneğin, Nest Protect bir kaynaktır. Nest Guard'ı da kullanıyoruz. Veya bir kullanıcı ya da kullanıcının evi gibi bir yapı.Kaynaklar; yapılandırmaları, durumları ve kapasitelerini kapsayan bir dizi özelliği içerir.
Kaynaklar, arayüzler ve özellikler arasındaki ilişki aşağıdaki gibidir:
Gördüğünüz gibi, Hareket özelliği gibi bazı özellikler farklı kaynaklarda ortaktır. Intercom arayüzü gibi bazı arayüzler de farklı kaynaklarda ortaktır. Özellikler, arayüzler ve kaynaklar şemada bir kez tanımlanıp Weave sistemindeki farklı kaynaklar ve cihazlarda yeniden kullanılır.
Özellik öğeleri
Özellikler üç ana öğeye ayrılır: özellikler, komutlar ve etkinlikler. Her özellik öğesi örneğini inceleyelim.
Özellikler
Özellikler
, bir özelliğin durumunu temsil eder. Özellikler okuma-yazma veya salt okunurdur.Örneğin:
- Yazılım Sürümü, Cihaz Kimliği özelliğinin bir özelliğidir. Bu, çoğu cihazın sahip olduğu genel bir özelliktir. Nest Thermostat, Kamera ve Korumalar'ın hepsinin kendi yazılım sürümleri vardır.
- Bolt State, Bolt Lock özelliğinin bir özelliğidir ancak Yale x Nest Lock gibi bir cihaza özeldir. Örneğin, Nest Thermostat'ta bir sürgü kilidi bulamazsınız.
Komutlar
Komutlar
, bir özellik için mülke özgü işlem istekleridir ve beklenen yanıt verilir. Bunlar genellikle özel komutlar olarak adlandırılır ve tesisler için belirli durum değişiklikleriyle genişletilebilir. Örneğin:- Bot Kilidi Değişikliği, Bolt Lock özelliğinin Bolt Durumu özelliğini değiştiren özel bir komuttur.
- Kullanıcı PIN Kodunu Ayarla, Kullanıcı PIN Kodu Ayarları özelliği için yeni bir kullanıcı PIN kodu özelliği oluşturan veya mevcut bir Kullanıcı PIN kodu özelliğini güncelleyen özel bir komuttur.
Etkinlikler
Etkinlikler
, bir özelliğe ilişkin olayların kaydıdır. Bu mülkler, özellik özelliklerinde yapılan değişiklikler veya sistem sıfırlama gibi başka bir tür etkinlik konusunda aboneyi bilgilendirir.Örneğin, Bolt Lock özelliğindeki Bot Harekete Geçirici Durum Değişikliği etkinliği, birden fazla Bolt Lock özelliğinin mevcut durumunun abonesini ve Bolt Actorator State özelliğinin değişmesine neden olan son kullanıcıyı belirtir. Tüm bu bilgiler tek bir etkinlik şeklinde sunulur.
Weave Şema Açıklaması Dili
Weave'deki şema özellikleri, arayüzleri ve kaynakları, Google Protocol Buffers v3'ün söz diziminden yararlanan, alana özel bir dil (DSL) kullanılarak tanımlanıp açıklanır. Bu dile, Weave Şema Açıklaması Dili (WDL)
denir.WDL, platforma özgü farklı entegrasyonlar ve kodlamalar üreten bir derleyici tarafından çalıştırılır. Oluşturulan kodun türü kaynağa bağlıdır:
- Objective-C, Swift, Java, Scala - mobil uygulamalar ve bulut hizmetleri
- Weave TLV kodlamalı C++: Yerleşik cihazlar ve mobil uygulamalar
WDL örneklerini daha ayrıntılı olarak inceleyeceğiz.
Özet
Öğrendikleriniz:
- şeması, bir Weave sisteminin temel veri modelini açıklar.
- Şemada üç öğe tanımlanır:
- Özellik Temel işlev birimi
- Arayüz Yeni ve spesifik bir işlevi
- Kaynak Mantıksal veya fiziksel
- Özellikler, özellikleri, komutları ve etkinlikleri içerir:
- Mülk Kaynak özelliğin durumu
- Bir özelliğin işlem özel isteği için komutunu kullanır
- Etkinlik Bir özellik için olanların kaydı
- Şema, Weave Schema Description Language (WDL) kullanılarak tanımlanır , based on Google Protocol Buffers v3
Daha ayrıntılı bilgi için aşağıdaki konulara bakın: