FAST IoT PLATFORM’a Başlarken
Giriş #
Bu öğreticinin amacı, FAST IoT PLATFORM’un en yaygın kullanılan özelliklerinin temel kullanımını göstermektir. Bu öğretici sonunda şunları yapabileceksiniz:
- Cihazları FAST IoT PLATFORM’a bağlama;
- Cihazlardan FAST IoT PLATFORM’a veri gönderme
- Gerçek zamanlı son kullanıcı paneli oluşturma;
- Eşikler tanımlama ve alarm tetikleme;
- Yeni alarmlar hakkında e-posta, sms veya diğer sistemler üzerinden bildirim gönderme.
- Örnek uygulama: sıcaklık sensöründen verileri bağlayacağız ve görselleştireceğiz.
Adım 1: Cihaz Tanımlama #
Manuel olarak cihazı kurmak için şu adımları izleyin:
- FAST IoT PLATFORM’a giriş yapın ve “Cihazlar” sayfasına gidin.
- Tablodaki sağ üst köşedeki “+” simgesine tıklayın.
- Seçeneklerden “Yeni cihaz ekle” seçeneğini seçin.
- Cihaza ad verin, örneğin “Yeni Cihazım”.
- Cihazı eklemek için “Ekle” düğmesine tıklayın.
- Yeni oluşturduğunuz cihaz, varsayılan olarak oluşturma zamanına göre sıralanmış tablonun en üstünde görünecektir.
Şekil 1.1 – Ana sayfadan cihazlar sayfasına gidin.
Şekil 1.2 – Cihazlar sayfasının sağ üst köşesindeki “+” simgesine tıklayın. “Yeni cihaz ekle” seçeneğini seçin.
Şekil 1.3 – Cihaz adını girin.
Şekil 1.4 – Yeni oluşturduğunuz cihaz, varsayılan olarak oluşturma zamanına göre sıralanmış tablonun en üstünde görünecektir.
Ayrıca, aşağıdaki seçeneklerden de yararlanabilirsiniz:
- Çoklu cihazları CSV dosyası kullanarak arayüz üzerinden kurmak için toplu kurulum kullanın.
- Cihaz yazılımının cihazı otomatik olarak yapılandırmasını sağlayan cihaz kurulumunu uygulayın, bu sayede her cihazı elle ayarlamaya gerek kalmaz.
- Diğer varlıkların ve cihazların programatik olarak kurulması için REST API kullanın.
Adım 2: Cihazı Bağla #
Cihazı bağlamak için öncelikle cihaz kimlik bilgilerini almanız gerekir. Fast IoT Platform, çeşitli cihaz kimlik bilgisi türlerini destekler, ancak bu kılavuz için varsayılan otomatik olarak oluşturulan erişim belirteci kimlik bilgilerini kullanmanız önerilir.
Bunu nasıl yapacağınız aşağıdaki gibidir:
Tablodaki cihaz satırına tıklayın ve cihaz detaylarını açın.
“Erişim belirteci kopyala” düğmesine tıklayın. Bu, belirteci panonuza kopyalar.
Erişim belirtecini güvenli bir yerde saklayın.
Şekil 2.1 – Cihaz ayrıntılarına gidin.
Şekil 2.2 – Erişim şifresini kopyalayın.
Şimdi cihazınız adına telemetri verilerini yayınlamaya hazırsınız.
Adım 3: Pano Oluştur #
Bir panel oluşturulacak ve en popüler widget’lar eklenecektir. Aşağıdaki talimatları izleyin.
Adım 3.1: Dashboard (Pano) Oluştur #
Dashboard sayfasını açın. Sağ üst köşedeki “+” simgesine tıklayın. “Yeni gösterge paneli oluştur” seçeneğini seçin.
Dashboard için bir isim girin. Örneğin, “Yeni Gösterge Paneli” gibi. Dashboard eklemek için “Ekle” butonuna tıklayın.
Dashboardlar Varsayılan olarak oluşturma zamanlarına göre sıralandığından, yeni oluşturduğunuz dashboard listenin en üstünde olmalıdır. “Gösterge panelini aç” simgesine tıklayabilirsiniz.
Şekil 3.1.1 – Yeni gösterge paneli oluşturun.
Şekil 3.1.2 – Gösterge paneline ad verin.
Şekil 3.1.3 – Gösterge paketini açın.
Adım 3.2: Entity Alias Ekle #
Alias, widget’larda kullanılan tek bir veya birden fazla varlığın referansıdır. Alias statik veya dinamik olabilir. Basitliği koruyan, tek bir varlığı (“Bizim durumumuzda Yeni Cihazım”) referans alan “Single entity” aliasını kullanacağız. Birden fazla aygıtı referans alan bir alias oluşturmak da mümkündür. Örneğin, belirli bir tipteki aygıtlar veya belirli bir varlığa bağlı olan aygıtlar.
Düzenleme moduna girin. Sağ alt köşedeki kalem butonuna tıklayın.
Ekranın sağ üst kısmındaki “öğe kısa adları” simgesine tıklayın. Boş bir liste göreceksiniz.
“Alias Ekle” butonuna tıklayın.
Alias ismi girin, örneğin “Cihazım”. “Tek Varlık” Filtre türünü seçin. Tür olarak “Device”ı seçin ve otomatik tamamlama için “Yeni” yazın. Otomatik tamamlamadan aygıtınızı seçin ve üzerine tıklayın.
“Ekle” butonuna ve sonra “Kaydet” butonuna tıklayın .
Son olarak, değişiklikleri kaydetmek için panel düzenleyicisinde “Değişiklikleri uygula” düğmesine tıklayın. Daha sonra tekrar düzenleme moduna girin.
Şekil 3.2.1 – Düzenleme modunu açın.
Şekil 3.2.2 – Öğe kısa adlarına gidin.
Şekil 3.2.3 – Kısa ad ekleyin.
Şekil 3.2.4 – Kısa ad bilgilerini doldurun.
Şekil 3.2.5 – Kısa adı kaydedin.
Şekil 3.2.6 – Değişiklikleri uygulayın.
Adım 3.3: Tablo Widget’ı Ekle #
Tablo widget’ını eklemek için widget kütüphanesinden seçmeliyiz. Widget’lar widget paketleri olarak gruplanır. Her widget bir veri kaynağına sahiptir ve bu veri kaynağı widget’ın görüntülemek istediği verileri belirler. Adım 2’de gönderdiğimiz “sıcaklık” verilerinin en son değerini görüntülemek için veri kaynağını yapılandırmalıyız.
Başlamak için, “Yeni widget ekle” düğmesine tıklayarak düzenleme moduna girin.
Sonra, “Kartlar” widget paketini seçin. Paket içindeki göstergelerden ve “Son değerler” sekmesini seçin. Entities widget’ının başlığına tıklayın. “Widget Ekle” penceresi açılacaktır.
Veri kaynağı eklemek için “Ekle” düğmesine tıklayın. Widget birden fazla veri kaynağına sahip olabilir ancak şimdilik sadece bir tanesini kullanacağız.
“Cihazım” entity alias’ını seçin ve sağdaki giriş alanına tıklayın. Mevcut veri noktaları ile bir otomatik tamamlama özelliği görünecektir. “Temperature” veri noktasını seçin ve “Ekle” düğmesine tıklayın.
Widget’ı daha büyük yapmak için sadece widget’ın sağ alt köşesini sürükleyin. İsterseniz widget’ı gelişmiş ayarlarla düzenleyebilirsiniz.
Şekil 3.3.1 – Yeni gösterge ekleyin.
Şekil 3.3.2 – Cards paketini ve ardından Entities table göstergesini seçin.
Şekil 3.3.3 – Veri kaynağı ekleyin.
Şekil 3.3.4 – Veri kaynağı bilgilerini doldurun.
Şekil 3.3.5 – Değişiklikleri kaydedin.
Tebrikler! İlk widget’ı eklediniz. Şimdi yeni telemetri okumaları gönderebilir ve hemen tabloda görüntüleyebilirsiniz.
Adım 3.4: Chart (Grafik) Widget Ekle #
Chart widget’ını eklemek için, widget kütüphanesinden seçmemiz gerekiyor. Chart widget, belirli bir veri anahtarı olan “sıcaklık” için birden fazla tarihsel değeri görüntüler. Ayrıca Chart widget için zaman penceresini ayarlamamız gerekiyor.
Başlamak için, ekranın sağ alt köşesindeki “Yeni widget ekle” simgesine tıklayarak düzenleme moduna girin.
Sonra, “Yeni widget oluştur” simgesine tıklayın.
Widget gruplarından, “Grafikler” grubunu seçin ve aşağı kaydırarak “Timeseries – Flot” grafik widget’ını seçin.
Veri kaynağını eklemek için “Veri kaynağı ekle” butonuna tıklayın.
“Cihazım” Alias’ı seçin ve “sıcaklık” anahtarını seçin. “Ekle” butonuna tıklayın.
Widget’ı istediğiniz yere koyun ve gerektiği kadar boyutunu değiştirin. Değişikliklerinizi kaydetmeyi unutmayın.
2.adımda belirtildiği gibi, yeni telemetri okumalarını birden fazla kez gönderin. Varsayılan olarak, widget sadece bir dakika veri görüntüler.
Zaman penceresini değiştirmek isterseniz, düzenleme moduna girin ve zaman seçim penceresini açın. Aralığı ve agregasyon işlevini istediğiniz gibi değiştirin ve değişiklikleri kaydedin.
Şekil 3.4.1 – Düzenleme modunu açın.
Şekil 3.4.2 – Yeni gösterge ekleyin.
Şekil 3.4.3 – Yeni gösterge oluşturun.
Şekil 3.4.4 – Charts paketini seçin.
Şekil 3.4.5 – Timeseries Line Chart göstergesini seçin.
Şekil 3.4.6 – Veri kaynağı ekleyin.
Şekil 3.4.7 – Veri kaynağı bilgilerini doldurun.
Şekil 3.4.8 – Widget’ı konumlandırın.
Şekil 3.4.9 – Değişiklikleri kaydedin.
Şekil 3.4.10 – Zaman penceresini değiştirmek isterseniz, zaman seçim penceresinden aralığı ve veri toplama fonksiyonunu değiştirin.
Tebrikler! Bir Chart widget’ı eklediniz. Artık yeni telemetri okuması gönderebilirsiniz ve tabloda görüntüleyebilirsiniz.
Adım 3.5: Alarm Widget Ekle #
Bir Alarm Widget’ını dashboard’ınıza eklemek için:
Düzenleme düğmesine tıklayarak Düzenleme moduna giriş yapın.
Ekranın sağ alt köşesinde “Yeni Widget Ekle” simgesine tıklayın.
Seçeneklerden “Yeni Widget Oluştur” simgesini seçin.
“Alarm Widget’ları” paketini seçin ve sonra “Alarmlar” widget başlığına tıklayın.
Alarm kaynağı olarak “Varlık” ve takma ad olarak “Cihazım” seçin. Sonra “Ekle” butonuna tıklayın.
Aşağı kaydırarak yeni eklenen Alarm Widget’ını bulun ve dashboard’ın sağ üst köşesine sürükleyip bırakın.
Widget’ı boyutunu istediğiniz gibi ayarlayın ve değişiklikleri kaydedin.
Şekil 3.5.1 – Düzenleme moduna geçin.
Şekil 3.5.2 – Yeni gösterge ekleyin.
Şekil 3.5.3 – Yeni gösterge oluşturun.
Şekil 3.5.4 – Alarm Widgets paketini seçin.
Şekil 3.5.5 – Alarms table göstergesini seçin.
Şekil 3.5.6 – Alarm kaynağı ekleyin.
Şekil 3.5.7 – Widget’ı konumlandırın.
Şekil 3.5.8 – Değişiklikleri kaydedin.
Tebrikler! Bir alarm widget’ı eklediniz. Şimdi alarm kurallarını yapılandırma ve bazı alarmları çalıştırma zamanı.
Adım 4: Alarm Kurallarını Yapılandırın #
Sıcaklık okuması 25 derecenin üzerinde ise bir alarm kuralı ayarlamak istiyoruz. Bunun için cihaz profiline girip yeni bir alarm kuralı ekleyeceğiz. Bu durumda “Yeni Cihazımız” için “Varsayılan” profili kullanıyoruz. Her cihaz için ayrı bir profil oluşturmak önerilir, ancak basitlik için bu adımı atlayacağız.
Alarm kuralı eklemek için şu adımları izleyin:
Cihaz profilleri sayfasına gidin.
Profil ayrıntılarını açmak için varsayılan profil satırına tıklayın.
“Alarm Kuralları” sekmesini seçin ve düzenleme modunu açın.
“Alarm Kuralı Ekle” yi tıklayın.
Alarm tipini seçin ve koşul eklemek için “+” simgesini tıklayın.
Koşulu belirtmek için “Anahtar Filtresi Ekle” düğmesini tıklayın.
Anahtar tipini seçin, anahtar adını girin, değer tipini seçin ve “Ekle” yi tıklayın.
Operasyonu seçin ve eşik değerini girin. Ardından “Ekle” yi tıklayın.
“Kaydet” i tıklayın.
Son olarak, cihaz profiline yapılan değişiklikleri kaydetmek için “Değişiklikleri Uygula” yı tıklayın.
Şekil 4.1 – Cihaz profilleri sayfasına gidin.
Şekil 4.2 – Default cihaz ayrıntılarına gidin.
Şekil 4.3 – Alarm kuralları sekmesine geçin.
Şekil 4.4 – Alarm kuralı ekleyin.
Şekil 4.5 – Alarm tipini belirtin ve alarm koşulu ekleyin.
Şekil 4.6 – Anahtar filtre ekleyin.
Şekil 4.7 – Anahtar bilgilerini doldurun.
Şekil 4.8 – Filtre ekleyin.
Şekil 4.9 – Kaydedin.
Şekil 4.10 – Değişiklikleri kaydedin.
Adım 5: Alarm Oluştur #
Bu noktada, alarm kuralımız işlevsel durumda (Adım 4’e bakınız) ve alarmı etkinleştirmek için cihazdan güncellenmiş telemetri göndermemiz gerekiyor (Adım 2’ye bakınız). Alarmı tetiklemek için sıcaklık okumasının 26 veya daha yüksek olması gerektiğini unutmayın. Yeni bir sıcaklık okuması gönderdiğimiz anda, gösterge tablosunda yeni bir alarm görünecektir.
Sıcaklıkla ilgili yeni telemetri, kullanıcının tanıyabileceği ve temizleyebileceği yeni bir alarmı etkinleştirir.
Kullanıcı alarmları onaylayabilir ve silebilir.
Şekil 5.1 – Gelen alarmlar panelde görüntülenir.
Şekil 5.2 – Kullanıcı alarmı onaylayıp silebilir.
Adım 6: Alarm Bildirimleri #
Alarm bildirimleri için e-posta veya SMS ayarlamak oldukça basittir. Alarm kuralı örneklerine ve alarm bildirimleriyle ilgili belgelere bakmanızı öneririz.
Şu anda FAST IoT PLATFORM, SMS bildirimleri göndermek için AWS SNS ve Twilio’yu desteklemektedir. Her iki hizmet de ücretsiz değildir ve bir hesap oluşturmanız gerekmektedir. Ancak, REST API çağrı düğümünü kullanarak diğer SMS/E-POSTA ağ geçitleriyle entegre olmak mümkündür.
Adım 7: Müşteriye Cihaz ve Dashboard Atayın #
Müşterilere panolar atama yeteneği, FAST IoT PLATFORM’un en önemli özelliklerinden biridir. Farklı cihazları farklı müşterilere atayabilir ve birden çok müşteriye atanacak bir veya daha fazla panoyu oluşturabilirsiniz. Her müşteri, kendi cihazlarını görüntüleyebilecek ancak farklı bir müşteriye ait verilere veya cihazlara erişimi olmayacaktır.
Adım 7.1: Kullanıcı Oluşturun #
Aşağıdaki talimatları izleyerek, “Yeni Kullanıcı” başlıklı bir müşteri oluşturalım:
Kullanıcı Grupları sayfasına gidin.
Kullanıcı eklemek için “+” işaretine tıklayın.
Kullanıcı başlığını ekleyin ve “Ekle”yi tıklayın.
Şekil 6.1.1 – Kullanıcı Grupları sayfasına gidin.
Şekil 6.1.2 – Kullanıcı ekleyin.
Şekil 6.1.3 – Kullanıcı adını girin.
Adım 7.2: Müşteriye Cihaz Atayın #
Müşteriye cihaz atama işlemi yapalım. Müşteri kullanıcıları cihazlara telemetri okuma ve yazma yeteneğine sahip olacaklar ve cihazlara komut gönderebilecekler.
Cihazlar sayfasını açın. “Yeni Cihaz” için “kullanıcı grubuna ata”yı tıklayın.
“Yeni Kullanıcı”yı seçin ve “Ata”yı tıklayın.
Şekil 6.2.1 – Cihazlar sayfasına gidin ve kullanıcı grubuna ata penceresini açın.
Şekil 6.2.2 – Kullanıcıyı seçin.
Adım 7.3: Müşteriye Dashboard Atayın #
Kullanıcımızla panomuzu paylaşalım. Müşteri kullanıcıları, panomuza salt okunur erişim yetkisine sahip olacaklardır.
Panoları açın. “Atanmış müşterileri yönet”i tıklayın.
“My New Customer”ı seçin ve “Güncelle”yi tıklayın.
Şekil 6.3.1 – Gösterge paneli sayfasına gidin ve atanan kullanıcı gruplarını yönet penceresini açın.
Şekil 6.3.2 – Kullanıcıyı seçin.
Adım 7.4: Müşteri İçin Kullanıcı Oluşturun #
Son olarak, müşteriye ait, hem panoya hem de cihaza salt okunur erişimi olan bir kullanıcı oluşturalım. İsterseniz, pano web arayüzüne kullanıcı girişi yapıldığında panonun otomatik olarak görüntülenmesini ayarlayabilirsiniz.
“Müşteriler” sayfasına geri dönün ve “müşteri kullanıcılarını yönet” simgesine tıklayın.
“Kullanıcı ekle” simgesine tıklayın.
Müşteri kullanıcısı olarak giriş yapacağınız e-postayı belirtin ve “Ekle” ye tıklayın.
Aktivasyon bağlantısını kopyalayın ve güvenli bir yere kaydedin. Şifreyi belirlemek için daha sonra kullanacaksınız.
Kullanıcı ayrıntılarını açın.
Düzenleme moduna geçin.
Varsayılan panoyu seçin ve “Her zaman tam ekran” seçeneğini işaretleyin. Değişiklikleri kaydedin.
Şekil 6.4.1- Kullanıcı grubu kullanıcılarını yönet penceresini açın.
Şekil 6.4.2 – Kullanıcı ekleyin.
Şekil 6.4.3 – Kullanıcı bilgilerini doldurun.
Şekil 6.4.4 – Etkinleştirme bağlantısını kopyalayın.
Şekil 6.4.5 – Kullanıcı ayrıntılarını açın.
Şekil 6.4.6 – Düzenleme modunu açın.
Şekil 6.4.7 – Bilgileri doldurun ve kaydedin.
Adım 7.5: Müşteri Kullanıcısını Aktive Edin #
Şifreyi belirlemek için aktivasyon bağlantısını kullanın. “Şifre Oluştur”u tıklayın. Otomatik olarak bir müşteri kullanıcısı olarak giriş yapacaksınız.
Müşteri Kullanıcısı olarak giriş yaptınız. Verilere göz atabilir ve alarm durumlarını tanımlayabilir/silebilirsiniz.
Şekil 6.5.1 – Kopyaladığınız bağlantıya giderek şifre oluşturun.
Şekil 6.5.2 – Verileri ve alarmları kontrol edin.
PROJE YARDIM SAYFALARI #
Mail Ayarları #
FAST IoT PLATFORM Sistem Yöneticisi, kullanıcılara aktivasyon ve şifre sıfırlama e-postalarını dağıtmak için kullanılacak bir SMTP sunucusuna bağlantı yapılandırabilir. Bu yapılandırma adımı, üretim ortamlarında gereklidir. Platformu değerlendiriyorsanız, önceden hazırlanmış demo hesapları çoğu kullanım durumunda yeterlidir.
NOT: Sistem Posta ayarları, yalnızca kullanıcı oluşturma ve şifre sıfırlama işlemi sırasında kullanılır ve sistem yöneticisi tarafından kontrol edilir. Tenant yöneticisi, kural motoru tarafından üretilen alarmları dağıtmak için e-posta kural düğümü kurabilir.
Sistem posta ayarlarını yapılandırmak için aşağıdaki adımlar gereklidir.
Adım 1: Sistem Yöneticisi Olarak Oturum Açın #
Varsayılan hesabı kullanarak bir sistem yöneticisi olarak FAST IoT PLATFORM örneği WEB kullanıcı arabiriminizde oturum açın.
Adım 2: Yönetici E-posta Adresini Değiştirin #
WEB UI’nin sağ üst köşesindeki menü simgesine sağ tıklayın ve ‘Profil’ seçeneğini seçin. ‘sysadmin@roltek.com.tr’ adresini kendi e-posta adresinizle değiştirin. Ardından tekrar yönetici olarak giriş yapın.”
Adım 3: ‘Giden Posta’yı Açın ve SMTP Sunucusu Ayarlarını Doldurun #
Sistem Ayarları -> Giden Posta yolunu izleyin ve formu doldurun. ‘Test E-Postası Gönder’ düğmesine tıklayın.
‘Adım 2’de belirttiğiniz e-posta adresine bir test e-postası gönderilecektir. Yapılandırmada bir hata oluşması durumunda, hata günlüğü ile birlikte bir açılır pencere almanız gerekmektedir.
Adım 3.1: Sendgrid Yapılandırma Örneği #
SendGrid yapılandırması oldukça basit ve doğrudandır. İlk olarak, SendGrid hesabı oluşturmanız gerekiyor. Ücretsiz deneyebilirsiniz ve ücretsiz plan, platform değerlendirmesi için muhtemelen yeterli olacaktır.
Hesabınızı oluşturduktan sonra, karşılama sayfasına yönlendirileceksiniz. Şimdi SMTP Relay kimlik bilgilerinizi sağlayabilirsiniz. Aşağıdaki ekran görüntüsüne bakın.
Şekil 1 – Sendgrid karşılama sayfası
Lütfen bir sonraki sayfada SMTP relay seçeneğini seçin.
Şekil 2 – SMTP Relay seçilir.
API anahtar adını doldurduktan ve oluşturduktan sonra, ekrandan ayarları FAST IoT PLATFORM posta ayarları formuna kopyalayıp yapıştırabileceksiniz.
Şekil 3 – SMTP yapılandırma
Ayarları kopyalayıp yapıştırın, ‘Mail’den’ alanını güncelleyin ve ‘Test E-postası Gönder’ düğmesine tıklayın.
Şekil 4 – Test postası gönderin.
Başarılı bir testle ilgili bildirim aldığınızda, doldurulan verileri kaydedin. Ayrıca SendGrid web sitesinde doğrulamayı tamamlayabilirsiniz.
Şekil 5 – Doğrulamayı tamamlayın.
Adım 3.2: Gmail Yapılandırma Örneği #
Gmail kullanmak için iki ek adım atmanız gerekecek. İlk olarak, daha az güvenli uygulamalara izin vermeniz gerekiyor. İkinci olarak, iki adımlı doğrulamayı etkinleştirmeniz ve bir uygulama şifresi oluşturmanız gerekiyor. İkinci adım zorunlu olmasa da, şiddetle tavsiye edilir.
Bunun hazır olmasıyla birlikte, aşağıdaki bilgileri kullanarak Gmail hesabınızı kurabilmeniz gerekmektedir.
Şekil 6 – Gmail yapılandırma
G Suite hesapları için benzer ayarlar mevcuttur, ancak daha az güvenli uygulamaları etkinleştirmek vb. için sistem yöneticinize başvurmanız gerekebilir. Ayrıca onay kutusunu kullanarak TLS’yi etkinleştirebilir / devre dışı bırakabilirsiniz.
Adım 4: Yapılandırmayı Kaydet #
Test e-postası aldığınızda, SMTP sunucu yapılandırmasını kaydedebilirsiniz.
Şekil 7 – Yapılandırmayı kaydedin.
SMS Sağlayıcı Ayarları #
FAST IoT PLATFORM Sistem Yöneticisi, alarm mesajlarını SMS yoluyla dağıtmak için kullanılacak SMS sağlayıcısını yapılandırabilir. SMS mesajlarını kullanmayı planlıyorsanız, üretim ortamlarında bu yapılandırma adımı gereklidir.
Kurumsal yönetici, kural motoru tarafından üretilen alarmları dağıtmak için sms kural düğümünü kurabilir.
Sistem SMS sağlayıcı ayarlarını yapılandırmak için şu adımlar gereklidir:
Adım 1. Sistem yöneticisi olarak Fast Iot Platform UI’ye giriş yapın. Sistem ayarlarını açın.
Adım 2. SMS sağlayıcı ayarlarını açın ve mevcut sağlayıcılardan birini seçin: AWS SNS veya Twilio.
Adım 3 (AWS SNS). AWS SNS’yi seçtiyseniz AWS Erişim Anahtarı Kimliği ve Gizli Erişim Anahtarı alanlarını doldurun. “Kaydet” düğmesine tıklayın.
Adım 3 (Twilio). Twilio hesap SID ve Token bilgilerini doldurun. “Gönderen” olarak kullanılacak telefon numarasını belirtin ve “Kaydet” düğmesine tıklayın.
Kural Motoruna Genel Bakış #
FAST IoT PLATFORM Kural Motoru, karmaşık olayları işlemek için tasarlanmış sofistike bir sistemdir ve son derece özelleştirilebilir ve yapılandırılabilir. Kural motoru kullanarak, IoT cihazlarından ve ilgili varlıklardan gelen gelen mesajları filtreleyebilir, zenginleştirebilir ve dönüştürebilirsiniz. Ayrıca, bildirimler veya harici sistemlerle iletişim gibi çeşitli eylemleri tetikleyebilirsiniz.
Anahtar kavramlar #
Kural Motoru Mesajı #
Bir Kural Motoru Mesajı, sistem içindeki çeşitli mesajları temsil eden seri hale getirilebilir ve değiştirilemez bir veri yapısıdır. Bunlar şunları içerebilir:
Cihazlardan Gelen Telemetri, Öznitelik Güncellemeleri veya RPC Çağrıları
Varlık yaşam döngüsü olayları, örneğin varlık oluşturulduğunda, güncellendiğinde, silindiğinde, atandığında, atamadan çıkarıldığında veya öznitelikler güncellendiğinde
Cihaz durumu olayları, örneğin bir cihaz bağlandığında, bağlantısı kesildiğinde, aktif veya etkisiz hale geldiğinde vb.
Diğer sistem olayları
Bir Kural Motoru Mesajı, aşağıdaki bilgileri içerir:
Mesaj Kimliği: zaman temelli, evrensel benzersiz tanımlayıcı
Mesajın Kaynağı: Mesajı başlatan cihaz, varlık veya diğer varlık tanımlayıcısı
Mesaj Türü: örn. “Telemetri Gönder” veya “Etkinlik Yok”
Mesaj Yükü: gerçek mesaj yükünü içeren JSON gövdesi
Meta veri: mesaj hakkında ek veriler içeren anahtar-değer çiftleri listesi.
Kural Düğümü #
Bir Kural Düğümü, Rule Engine’in temel bir bileşenidir ve her seferinde tek bir gelen mesajı işler ve bir veya daha fazla çıkan mesaj oluşturur. Kural Düğümü, Kural Motorunun ana mantıksal birimidir. Bir Kural Düğümü, gelen mesajları filtreleyebilir, zenginleştirebilir veya dönüştürebilir, işlemler yapabilir veya harici sistemlerle iletişim kurabilir.
Kural Düğümü Bağlantısı #
Kural Düğümleri, diğer Kural Düğümlerine bağlanabilir. Her bağlantı, ilişki türüne sahiptir ve ilişkinin mantıksal anlamını tanımlayan bir etiket kullanılır. Kural düğümü, çıkış mesajını ürettiğinde her zaman mesajın bir sonraki düğümlere yönlendirilmesinde kullanılan ilişki türünü belirtir.
Tipik kural düğümü ilişki türleri arasında “Başarılı” ve “Başarısız” bulunur. Mantıksal işlemleri temsil eden Kural Düğümleri, “Doğru” veya “Yanlış” olarak adlandırılabilmektedir. Bazı belirli kural düğümleri, “Post Telemetri”, “Öznitelikler Güncellendi”, “Varlık Oluşturuldu” vb. gibi tamamen farklı ilişki türleri kullanabilir.
Bazı Kural Düğümleri özel bağlantı adlarını destekler. Özel bağlantı adınızı girin ve “Yeni bir tane oluştur!” bağlantısını tıklayın:
Şekil 1.1 – Kural ekleme
Tüm bağlantı adları büyük/küçük harfe duyarlıdır.
Kural Zinciri #
Rule Chain, bir dizi kural düğümü ve aralarındaki ilişkilerin mantıksal bir gruptur. Örneğin, aşağıdaki kural zinciri:
Tüm telemetri mesajlarını veritabanına kaydeder.
Mesajdaki sıcaklık alanı 50 dereceden yüksekse “Yüksek Sıcaklık Alarmı” yükseltir.
Mesajdaki sıcaklık alanı -40 dereceden düşükse “Düşük Sıcaklık Alarmı” yükseltir.
Sıcaklık kontrolü betiklerinde mantıksal veya sözdizimsel hatalar oluşursa, başarısızlıkları konsola kaydeder.
Şekil 1.2 – Kural Zinciri
Tenant yöneticisi tek bir Kök Kural Zinciri ve isteğe bağlı olarak birden fazla diğer kural zincirini tanımlama yeteneğine sahiptir. Kök Kural Zinciri, tüm gelen mesajları işleyecek ve ilave işleme için diğer kural zincirlerine yönlendirebilecektir. Diğer kural zincirleri de mesajları farklı kural zincirlerine yönlendirebilir.
Örneğin, aşağıdaki kural zinciri şunları yapacaktır:
Mesajdaki sıcaklık alanı 50 dereceden yüksek ise “Yüksek Sıcaklık Alarmı” tetiklenecektir.
Mesajdaki sıcaklık alanı 50 dereceden düşük ise “Yüksek Sıcaklık Alarmı” silinecektir.
“Oluşturuldu” ve “Silindi” alarm bildirimleri, ilgili kullanıcılara bildirimler yöneten harici bir kural zincirine iletilir.
Şekil 1.3 – Kural zinciri örneği
Mesaj İşleme Sonucu #
Mesaj işleme sürecinin üç olası sonucu vardır: Başarılı, Başarısız ve Zaman Aşımı. İşleme zincirindeki son kural düğümü başarıyla mesajı işlediğinde, mesaj işleme denemesi “Başarılı” olarak işaretlenir. Bir kural düğümü, mesaj işlemede “Başarısızlık” üretir ve bu hatayı işlemek için başka bir kural düğümü yoksa, mesaj işleme denemesi “Başarısız” olarak işaretlenir. İşleme süresi toplamı, yapılandırılabilir bir eşik değerini aştığında, mesaj işleme denemesi “Zaman Aşımı” olarak işaretlenir.
Aşağıdaki diyagramı görüntüleyin ve olası senaryoları inceleyelim:
Şekil 1.4 – Kural zinciri örneği
Eğer “Dönüşüm” betiği başarısız olursa, mesaj “Başarısız” olarak işaretlenmez çünkü “Başarısızlık” ilişkisi ile bağlı bir “Veritabanına Kaydet” düğümü vardır. “Dönüşüm” betiği başarılı olursa, REST API çağrısı ile “Harici Sistem”e gönderilecektir. Eğer harici sistem yük altındaysa, REST API çağrısı bir süre “asılı” kalabilir. Mesaj paketi işleme için toplam zaman aşımı 20 saniye olarak varsayalım. Dönüşüm betiği yürütme süresini yok sayalım çünkü <1ms’dir. Eğer “Harici Sistem” 20 saniye içinde yanıt verirse, mesaj başarılı bir şekilde işlenecektir. Benzer şekilde, “Veritabanına Kaydet” çağrısı başarılı olursa, mesaj başarılı bir şekilde işlenecektir. Ancak, eğer harici sistem 20 saniye içinde yanıt vermezse, mesaj işleme denemesi “zaman aşımı” olarak işaretlenecektir. Benzer şekilde, “Veritabanına Kaydet” çağrısı başarısız olursa, mesaj “Başarısız” olarak işaretlenecektir.
Kural Düğüm Tipleri #
Mevcut kural düğümleri amaçlarına göre kategorize edilir:
Filtre düğümleri mesajları filtrelemek ve yönlendirmek için kullanılır.
Zenginleştirme düğümleri gelen mesajların meta verilerini güncellemek için kullanılır.
Dönüştürme düğümleri gelen mesajların kaynağı, tipi, yükü ve meta verileri gibi alanlarını değiştirmek için kullanılır.
Eylem düğümleri gelen mesajlara dayalı çeşitli eylemler gerçekleştirir.
Harici düğümler harici sistemlerle etkileşim kurmak için kullanılır.
Yapılandırma #
Her Kural Düğümü, Kural Düğümü Uygulamasına bağlı olarak belirli yapılandırma parametrelerine sahip olabilir. Örneğin, “Filtre – betik” kural düğümü, gelen verileri işleyen özel bir JS işlevi aracılığıyla yapılandırılabilir. “Harici – e-posta gönder” düğüm yapılandırması, posta sunucusu bağlantı parametrelerini belirlemenize olanak tanır.
Kural Düğümü yapılandırma penceresi, Kural Zinciri düzenleyicisinde düğüme çift tıklanarak açılabilir.
Şekil 2.1 – Kural Düğümü yapılandırma penceresi
Test script functions #
Bazı kural düğümleri, kullanıcıların TBEL/JS işlevlerini test etmelerine izin veren belirli bir UI özelliğine sahiptir. Filtre Fonksiyonunu Test Et’e tıkladığınızda, girdi parametrelerini değiştirip işlevin çıktısını doğrulamanıza olanak tanıyan JS Düzenleyicisini göreceksiniz.
Şekil 2.2 – Test script fonksiyonları
Aşağıdaki bileşenleri belirleyebilirsiniz:
Mesaj türünü sol üst alandaki alanda belirleyin.
Mesaj yükünü sol taraftaki Mesaj bölümünde belirleyin.
Metadata’yı sağ taraftaki Metadata bölümünde belirleyin.
Gerçek TBEL/JS betiğini Filtre bölümünde belirleyin.
Test’e tıkladıktan sonra, çıktı sağ taraftaki Çıktı bölümünde görüntülenecektir.
Rule Engine İstatistikleri #
Fast IoT Platform ekibi, her tenant için otomatik olarak yüklenen Kural Motoru istatistikleri için varsayılan bir gösterge paneli oluşturmuştur. Buna erişmek için “Api Kullanımı” → “İstatistikleri Görüntüle” seçeneğine gidin (aşağıdaki ekran görüntüsüne bakın).
Şekil 3.1 – Sol menüden API Kullanımı sayfasına gidin.
Şekil 3.2 – İstatikleri görüntüleyin
İstatistiklerin toplanması varsayılan olarak etkinleştirilmiştir ve yapılandırma özellikleri aracılığıyla yönetilebilir. Aşağıdaki gösterge tablosunda, işleme sırasında meydana gelen hatalar ve temel nedenleri hakkında değerli bilgileri gözlemleyebilirsiniz.
Şekil 3.3 – Kural motoru istatistikleri
Hata Ayıklama #
Fast IoT Platform, her bir Kural Düğümü için gelen ve giden mesajları inceleme olanağı sunar. Hata ayıklama işlemini kolaylaştıran bu özelliği etkinleştirmek için kullanıcıların ana yapılandırma penceresinde “Hata ayıklama modu” onay kutusunun işaretli olduğundan emin olmaları gerekmektedir (Yapılandırma bölümündeki ilk resim bunu gösterir).
Hata ayıklama modu etkinleştirildikten sonra, kullanıcılar gelen ve giden mesajlarla ilgili bilgileri ve bunların ilgili ilişki türlerini görebilirler.
Import/Export #
Kural zincirinizi başka bir Fast IoT Platform örneğine aktarmak veya JSON formatında kaydetmek için platformun sağladığı dışa aktarma işlevini kullanabilirsiniz. Başlamak için, Kural Zincirleri sayfasına gidin ve aktarmak istediğiniz belirli kural zincirini bulun. Ardından, ilgili kural zinciri kartındaki dışa aktarma düğmesine tıklayın. Bu, farklı bir Fast IoT Platform örneğinde aynı kural zincirini yeniden oluşturmak için gerekli olan tüm verileri içeren bir JSON dosyası oluşturacaktır.
Fast Iot Platform örneğinize JSON formatında bir kural zinciri yüklemek için şu adımları izleyin: Kural Zincirleri sayfasına gidin, ekranın sağ alt köşesinde bulunan büyük “+” düğmesini bulun ve üzerine tıklayın. Bu, yeni bir pencere açacak ve burada içe aktarma düğmesini seçebileceksiniz. İçe aktarma düğmesine tıkladıktan sonra, içe aktarmak istediğiniz kural zinciri verilerini içeren JSON dosyasını seçebilirsiniz. Dosyayı seçtikten sonra, Fast Iot Platform verileri doğrulayacak ve kural zincirini örneğinize içe aktaracaktır.
Düğümleri Filtrele #
Mesaj filtreleme ve yönlendirme amaçları için kullanılır. Aşağıda mevcut olan nodların bir listesi bulunmaktadır.
Varlık Profili Anahtarı (Asset profile switch) #
Bu özellik, varlık profili adının harf büyüklüğüne duyarlı olarak gelen mesajların yönlendirilmesine olanak tanır. Sürüm 3.4.4’ten beri mevcuttur.
Çıktı
Kural düğümünün çıkış bağlantısı, “Dondurucu Odası”, “Bina” vb. gibi varlık profili adına bağlanmıştır. Daha fazla bilgi için lütfen kural düğümünün bağlantılarına bakınız.
Kullanım örneği
Platformun deneyimli kullanıcıları, her varlık profili için özel kural zincirleri yapılandırarak Varlık Profillerinden yararlanır. Bu, Varlık Oluşturuldu, Silindi, Öznitelik Güncellendi vb. gibi platform tarafından oluşturulan mesajları otomatik olarak yönlendirmek için uygun bir yoldur. Ancak, çoğu mesaj sensör verilerinden oluşur. Diyelim ki “Dondurucu Odası” ve “Kazan Odası” adlı iki odada sıcaklık sensörleri bulunmakta ve bu odalar, “İçerir” tipi ilişki kullanılarak sıcaklık cihazlarıyla ilişkilendirilmiştir. Aşağıdaki kural zinciri, mesajın kaynağını cihazdan ilişkili varlığa değiştirir ve gelen mesajları uygun “Dondurucu Odası” veya “Kazan Odası” kural zincirine yönlendirir.
Şekil 1 – Kural zinciri: asset profile switch
Kural zincirini indirebilir ve içeri aktarabilirsiniz, ancak lütfen unutmayın ki “kural zinciri” düğümleri, mevcut ortamınızda var olmayan kural zincirlerine işaret edecektir.
Cihaz Profili Anahtarı (Device profile switch) #
Gelen mesajlar, cihaz profili adına göre yönlendirilebilir. Cihaz profil adı büyük/küçük harfe duyarlıdır. Bu özellik v3.4.4’ten beri mevcuttur.
Çıktı
Kural düğümünün çıkış bağlantısı, “Sıcaklık sensörü”, “Nem sensörü” gibi cihaz profil adına karşılık gelir. Daha fazla bilgi için lütfen kural düğümü bağlantılarına başvurun.
Kullanım örneği
Platformun deneyimli kullanıcıları Cihaz Profillerini kullanarak her bir cihaz profili için özel Kural Zincirleri yapılandırır. Bu genellikle faydalı bir yaklaşımdır, ancak cihaz verileri başka bir mesaj kaynağından elde edildiğinde durum farklı olabilir. Örneğin, BLE ile MQTT ağı geçidi ve BLE farlıklar kullanıyorsanız, ağ geçidinin taşıdığı veri genellikle farlığın MAC adresi ve farlık verisini içerir:
{“mac”: “7085C2F13DCD”, “rssi”: -25, “payload”: “AABBCC”} |
Varsayalım farklı beacon profilleriniz var – iç mekan hava kalitesi (“IAQ sensörü”) ve sızıntı sensörleri (“Sızıntı sensörü”). Aşağıdaki kural zinciri, mesaj kaynağını gateway’den cihaza değiştirir ve mesajı ilgili kural zincirine yönlendirir:
Şekil 2 – Kural zinciri: device profile switch
“Rule zincirleri” düğümleri ortamınızda mevcut olmayan rule zincirlerine işaret edebilir. Rule zincirini indirebilir ve içe aktarabilirsiniz, ancak buna dikkat ediniz.
Alarm Durumu Kontrolü (Check alarm status) #
Bu fonksiyon, Alarm durumunun belirtilen durumlardan biriyle eşleşip eşleşmediğini doğrular.
Yapılandırma
Alarm durumu filtresi, ‘Active Acknowledged’, ‘Active Unacknowledged’, ‘Cleared Acknowledged’ ve ‘Cleared Unacknowledged’ dahil olmak üzere bir dizi alarm durumunu içerir.
Şekil 3.1 – Alarm Durumu Kontrolü için kural düğümü ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Aşağıda listelenen kural zinciri, onaylanan alarmın halen aktif olup olmadığını veya zaten temizlendiğini kontrol eder.
Şekil 3.2 – Kural zinciri: check alarm status
Kural zincirini indirme ve içe aktarma seçeneğine sahipsiniz.
Alanların Varlığını Kontrol Et (Check fields presence) #
Bu işlev, mesaj ve/veya meta verilerinde belirtilen alanların varlığını kontrol eder. Mesaj ve meta verileri genellikle bir JSON nesnesi olarak temsil edilir. Kullanıcı, mesaj ve/veya meta veri alanlarının adlarını yapılandırmada belirler.
Yapılandırma
Mesaj alan adları, mesajda bulunması gereken alan adlarının listesine atıfta bulunur.
Meta veri alan adları, meta veride bulunması gereken alan adlarının listesine atıfta bulunur.
‘Belirtilen tüm alanların mevcut olduğunu kontrol edin’ onay kutusu, kullanıcının belirtilen tüm alanların mevcutluğunu kontrol etmesine (seçili ise) veya en az bir alanın mevcutluğunu kontrol etmesine (seçili değilse) olanak tanır.
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Yapılandırma ekran görüntüsüne bakınız.
İlişkiyi Kontrol Et (Check relation) #
Bu işlev, mesajın göndericisi ile diğer varlıklar arasındaki ilişkinin varlığını doğrular. Eğer ‘belirli bir varlığa ilişkinin kontrol edilmesi’ seçeneği seçilirse, kullanıcı ilişkili bir varlığın adını belirtmelidir. Aksi takdirde, kural düğümü, yön ve ilişki türü kriterlerini karşılayan herhangi bir varlıkla olan ilişkinin varlığını doğrular.
Yapılandırma
‘Belirli bir varlığa ilişkinin kontrol edilmesi’ onay kutusu, kullanıcının ilişkiyi kontrol etmek için belirli bir varlık belirlemesine olanak tanır.
‘Yön’ seçeneği, ilişkinin yönünü yapılandırır. Bu, ilişkinin belirli/herhangi bir varlıktan göndericiye doğru olan yönünü belirler. Aşağıdaki örneğe bakınız.
‘İlişki türü’ seçeneği, kullanıcının keyfi bir ilişki türünü tanımlamasına olanak tanır. Varsayılan ilişki türleri ‘İçerir’ ve ‘Yönetir’ olsa da, kullanıcı herhangi bir türde bir ilişki oluşturabilir.
Şekil 4 – İlişki kontrolü için düğüm ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Varsayalım ki bir sıcaklık sensörünüz hem ofis içinde hem de depolarda bulunuyor. Verileri işlerken, sensörün ofiste mi yoksa depoda mı olduğunu bilmek isteyebilirsiniz. Bunun için, ofisteki sensör cihazından Ofis varlığına “OfficeToDevice” ilişkisi oluşturmanız gerekir.
Bu özel durum için kural düğümünü nasıl yapılandıracağınızı öğrenmek için yapılandırma ekran görüntüsüne bakınız.
Varlık Türü (Entity type) #
Bu işlev, gelen mesajları mesajın kaynağı olan varlığın türüne göre filtreler. Gelen mesajın kaynağı olan varlığın türü, filtreye belirtilen değerlerden birine eşit olup olmadığını doğrular.
Yapılandırma
Kaynak Türleri Filtresi, Cihaz, Varlık, Kullanıcı vb. gibi varlık türlerinin bir listesidir.
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Yapılandırma ekran görüntüsüne bakınız.
Varlık Türü Anahtarı (Entity type switch) #
Bu fonksiyon, gelen mesajları mesajın kaynak varlık türüne göre yönlendirir.
Çıktı
Kural düğümünün çıkış bağlantısı, mesajın kaynağı olan varlık türüne karşılık gelir. Örneğin: “Cihaz”, “Varlık”, “Kullanıcı” vb.
Örnek
Varsayalım ki farklı varlıklardan gelen mesajları tek bir kural zincirinde işliyorsunuz. Mesaj akışını varlık türüne göre ayırmak isteyebilirsiniz. Aşağıdaki örneğe bakın:
Şekil 5 – Kural zinciri: entity type switch
Mesaj Türü (Message type) #
Bu süreç, gelen mesajları önceden belirlenmiş veya özelleştirilmiş mesaj türlerine göre filtrelemeyi ve sıralamayı içerir. Her gelen mesajın mesaj türünün, belirlenmiş filtre değerlerinden herhangi birine karşılık gelip gelmediğini doğrular.
Yapılandırma
Mesaj türleri filtresi, önceden belirlenmiş mesaj türlerinin bir listesini içerir ve özel mesaj türlerini de dahil etme seçeneği sunar.
Şekil 6 – Mesaj türü için kural düğümü ekleme.
Mesaj Türü Anahtarı (Message type switch) #
Gelen mesajlar, mesaj türü değerine göre ilgili zincirlere yönlendirilir. Gelen mesajın tanınan bir mesaj türü varsa, ilgili zincire yönlendirilir. Aksi takdirde, “Diğer” zincire gönderilir.
Özel mesaj türleri kullanılıyorsa, gereken yönlendirme mantığı yapılandırılmış olan mesaj türüne yönlendirmek için Mesaj Türü Değiştirici Düğümü’nün “Diğer” zinciri üzerinden bu mesajlar yönlendirilebilir.
Çıktı
Kural düğümünün çıkış bağlantısı, mesajın kaynağı olan varlık türüne karşılık gelir. Örneğin: “Cihaz”, “Varlık”, “Kullanıcı” vb.
Örnek
Varsayalım ki farklı varlıklardan gelen mesajları tek bir kural zincirinde işliyorsunuz. Mesaj akışını varlık türüne göre ayırmak isteyebilirsiniz. Aşağıdaki örneğe bakın:
Şekil 7 – Kural zinciri: message type switch
Script #
Bir gelen mesaj, TBEL (tavsiye edilen) veya düz JavaScript kullanarak oluşturulabilen bir Boolean işlevi değerlendirmek için kullanılır. Script işlevi, üç parametre kabul eden ve Boolean bir değer döndüren şekilde olmalıdır.
Yapılandırma
TBEL/JavaScript işlevi üç girdi parametresini kabul eder:
msg, genellikle bir JSON nesnesi veya dizi olarak sunulan mesaj yüküdür.
metadata, mesajla ilişkili meta verileridir. Anahtar-Değer eşleştirme olarak temsil edilir ve hem anahtarlar hem de değerler dize biçimindedir.
msgType, dize mesaj türüdür.
Şekil 8 – Script kural düğümü ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Mesaj yükü, “msg” değişkeni kullanılarak erişilebilir, örneğin: “msg.sıcaklık < 10;”
Mesaj meta verileri, “metadata” değişkeni üzerinden erişilebilir, örneğin: “metadata.deviceType === ‘DHT11’;”
Mesaj türü, “msgType” değişkeni kullanılarak erişilebilir, örneğin: “msgType === ‘POST_TELEMETRY_REQUEST'”
Aşağıdaki örnek, işlevin nasıl kullanılacağını göstermektedir:
if(msgType === ‘POST_TELEMETRY_REQUEST‘) { if(metadata.deviceType === ‘vehicle‘) { return msg.humidity > 50; } else if(metadata.deviceType === ‘controller‘) { return msg.temperature > 20 && msg.humidity > 60; } } return false; |
TBEL/JavaScript koşulu test filtresi kullanılarak doğrulanabilir.
Switch #
Bu düğüm, gelen mesajları bir veya daha fazla çıkış bağlantısına yönlendirir. Düğüm, yapılandırılmış bir TBEL (önerilen) veya JavaScript işlevini yürütür ve bir dizi dize (bağlantı adları) döndürür.
Yapılandırma
TBEL/JavaScript fonksiyonu, 3 girdi parametresi alır:
msg – genellikle bir JSON nesnesi veya dizi olan bir mesaj yüküdür.
metadata – mesaj metadata’sını temsil eder. Anahtar-değer eşleştirmesi olarak gösterilir. Her iki anahtar ve değer de string’tir.
msgType – string mesaj türüdür.
Script, bir sonraki bağlantı adlarının bir dizisini döndürmelidir. Mesajın yönlendirileceği bağlantı adlarını belirtir. Eğer döndürülen dizi boş ise, mesaj hiçbir düğüme yönlendirilmez ve atılır.
Şekil 9.1 – Switch kural düğümü ekleme.
Çıktı
Kural düğümünün çıkış bağlantısı, komut dosyası yürütmesinin sonucuna karşılık gelir. Örneğin, “Düşük Sıcaklık Telemetrisi”, “Normal Sıcaklık Telemetrisi”, “Boş Durum” vb. Bkz. kural düğümü bağlantıları için daha fazla ayrıntı.
Örnek
Verilen cümleleri yeniden yazmak için aşağıdaki örneklerden yararlanabilirsiniz:
Mesaj veri yükü, “msg” değişkeni üzerinden erişilebilir. Örneğin, sıcaklığın 10’dan az olduğunu kontrol etmek için “msg.temperature < 10” ifadesini kullanabilirsiniz.
Mesajın meta verileri, “metadata” değişkeni aracılığıyla erişilebilir. Örneğin, müşterinin adının “John” olduğunu doğrulamak için “metadata.customerName === ‘John'” ifadesini kullanabilirsiniz.
Mesajın türü, “msgType” değişkeni aracılığıyla erişilebilir. Örneğin, mesajın türünün “POST_TELEMETRY_REQUEST” olduğunu kontrol etmek için “msgType === ‘POST_TELEMETRY_REQUEST'” ifadesini kullanabilirsiniz.
if (msgType === ‘POST_TELEMETRY_REQUEST‘) { if (msg.temperature < 18) { return [‘Low Temperature Telemetry‘]; } else { return [‘Normal Temperature Telemetry‘]; } } else if (msgType === ‘POST_ATTRIBUTES_REQUEST‘) { if (msg.currentState === ‘IDLE‘) { return [‘Idle State‘, ‘Update State Attribute‘]; } else if (msg.currentState === ‘RUNNING‘) { return [‘Running State‘, ‘Update State Attribute‘]; } else { return [‘Unknown State‘]; } } return []; |
TBEL’de bir JavaScript koşulunu doğrulamak için, test filtre fonksiyonunu kullanabilirsiniz.
Şekil 9.2 – Kural zinciri: switch
GPS Geofencing Filtresi #
Gelen mesajlar, GPS tabanlı coğrafi sınırlama (geofencing) kullanılarak filtrelenir. Bu, gelen mesajdan enlem ve boylam parametrelerinin çıkarılmasını ve bunların yapılandırılmış çevreye göre karşılaştırılmasını içerir.
Enlem anahtar adı: Bu, konum tabanlı bir mesaj için enlem bilgisini içeren mesaj alanının adıdır.
Boylam anahtar adı: Bu, konum tabanlı bir mesaj için boylam bilgisini içeren mesaj alanının adıdır.
Çevre tipi: Bu, bir eylemi veya bildirimi tetikleyen konumun etrafındaki alanın şekline işaret eder. Polygon veya Circle olabilir.
Çevreyi mesaj meta verilerinden al: Bu, konum için çevrenin bir cihaza veya varlığa özgü olduğu ve bir cihaz/varlık özniteliği olarak depolandığı durumlarda etkinleştirilmesi gereken bir onay kutusu seçeneğidir.
Çevre anahtar adı: Bu, çevre bilgisini depolayan meta veri anahtarının adıdır.
Polygon çevre tipi için: Poligon tanımı, koordinatlar dizisi içeren bir dizedir. Her koordinat için format [enlem, boylam] şeklindedir. Dizi çift köşeli parantez içinde olmalı ve her koordinat virgülle ayrılmalıdır. Örnek format: [[lat1, lon1],[lat2, lon2],[lat3, lon3], … , [latN, lonN]]
Circle çevre tipi için: Çember çevresi merkez noktası ve aralığıyla tanımlanır. Merkez enlem ve boylamı, çemberin merkez koordinatlarıdır. Aralık, çemberin yarıçapını belirten bir çift hassas kayan nokta değeridir. Aralık birimleri aşağıdaki seçeneklerden biri olarak belirtilebilir: Meter, Kilometer, Foot, Mile, Nautical Mile.
Eğer “Fetch perimeter from message metadata” seçeneği etkinleştirilirse ve “Perimeter key name” yapılandırılmamışsa, kural düğümü varsayılan meta veri anahtar adlarını kullanacaktır. Poligon çevre tipi için varsayılan meta veri anahtar adı “perimeter”dir. Daire çevre tipi için varsayılan meta veri anahtar adları “centerLatitude”, “centerLongitude”, “range” ve “rangeUnit”tir.
Dairenin çevresinin tanımı sunucu taraflı bir nitelik olarak saklanır ve yapısı belirli bir uygulama tarafından belirlenir.
{“latitude”: 48.198618758582384, “longitude”: 24.65322245153503, “radius”: 100.0, “radiusUnit”: “METER” } |
Kullanılabilir yarıçap birimleri: METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE;
Çıktı
Çıkış bağlantı türleri “True” veya “False” olarak ayarlanabilir. “Başarısızlık” bağlantısı, iki durumda kullanılır: a) Gelen mesajda veri veya meta veride yapılandırılmış enlem veya boylam anahtarı yoksa veya b) çevre tanımı eksikse.
Örnekler
Sabit daire çevresi
Kyiv’in merkezinde bulunan Ukrayna Bağımsızlık Anıtı’na cihazın 100 metre içinde olup olmadığını doğrulamak istediğinizi varsayalım. Anıtın enlem ve boylam koordinatları şöyledir: enlem = 50.4515652, boylam = 0.5236963. Kural düğümünün kurulumu oldukça basittir:” olarak çevrilebilir.
Şekil 10.1 – Gps Geofencing kural düğümü ekleme (Circle perimeter)
Sabit çokgen çevresi
Ahır hayvanlarının konumunu izleme temel senaryosunu ele alalım. Kural düğümünü, koyunun belirtilen alan çevresinde olup olmadığını izlemek için yapılandıralım:
Çiftlik arazisinin sabit çokgen koordinatlarını kullanacağız:
[[48.19736726399899, 24.652353415807884], [48.19800374220741, 24.65060461551745], [48.19918370897885, 24.65317953619048], [48.19849718616351, 24.65420950445969]] |
Aşağıdaki koordinatları mesajda sağlarsanız, kural düğümünün ‘True’ döndürüp döndürmediğini test edebilirsiniz:
{ latitude: 48.198618758582384, longitude: 24.65322245153503 } |
Şekil 10.2 – Gps Geofencing kural düğümü ekleme (Polygon perimeter)
Dynamic çember/polygon çevresi
Hayvan yer tespiti izleme işleminin daha karmaşık bir örneğine bakalım, burada koyunlar farklı çiftliklerde bulunabilir. Diyelim ki Farm A ve Farm B adında iki çiftliğimiz var. Her hayvan takip cihazı, Farm A veya Farm B varlıklarına bağlı olarak ilişkilendirilir.
Şekil 10.3 – Her hayvan takip cihazı, Farm A veya Farm B varlıklarına bağlı olarak ilişkilendirilir.
JSON değeri olarak “perimeter” adında bir sunucu tarafı özelliği yapılandıracağız:
“[[48.19736726399899, 24.652353415807884], [48.19800374220741, 24.65060461551745], [48.19918370897885, 24.65317953619048], [48.19849718616351, 24.65420950445969]]”; |
Şekil 10.4 – JSON değeri olarak “perimeter” adında bir sunucu tarafı özelliği yapılandırılmıştır.
Aşağıdaki kural zinciri, ilgili varlıktan (Çiftlik A) özelliği alacak ve geofencing düğümünde kullanacaktır:
Şekil 10.5 – Kural zinciri: gps geofencing filter
Kural düğümü yapılandırması oldukça basittir. Lütfen perimeter anahtar adının öneki olmadan olduğunu unutmayın:
Şekil 10.6 – Perimeter anahtar adının öneki varsa kaldırın.
Kural zincirini indirebilir ve içeri aktarabilirsiniz, ancak lütfen “kural zinciri” düğümlerinin “Sheep Tracker Generator” düğümünde var olmayan bir cihaza işaret edeceğine dikkat edin. Örneği çoğaltmak için cihazı ve varlığı sağlamanız gerekecektir.
Zenginleştirme Düğümleri #
Zenginleştirme düğümleri, gelen mesajların meta verilerini güncellemek için kullanılır.
Deltayı hesapla #
Şekil 1.1 – Deltayı hesaplama düğümü
Önceki ve mevcut zaman serisi okumalarını karşılaştırarak ‘delta’ hesaplaması yapılıp mesaja eklemek, mesajın kaynağı olan cihaz, varlık veya müşteri bağlamında gerçekleştirilir. Bu işlevsellik özellikle akıllı sayaçlama uygulamaları için faydalıdır. Örneğin, su sayım cihazı sadece bir kez gün içinde darbe sayacının mutlak değerini rapor ediyorsa, güncel gün tüketimini belirlemek için önceki ve mevcut gün değerleri karşılaştırılmalıdır.
İşte yapılandırma parametreleri:
Giriş değeri anahtarı (varsayılan: ‘pulseCounter’): delta hesaplaması için kullanılan anahtarı belirtir.
Çıkış değeri anahtarı (varsayılan: ‘delta’): zenginleştirilmiş mesajda delta değerini depolayacak anahtarı belirtir.
Ondalıklı sayılar: delta hesaplaması için hassasiyeti ayarlar.
Son değerler için önbelleği kullan (varsayılan: etkin): en son değerlerin bellekte önbelleğe alınmasını etkinleştirir.
Delta değeri negatifse ‘Başarısızlık’ bildir (varsayılan: etkin): delta değeri negatif olduğunda mesaj işleme sürecinin başarısız olmasını zorlar.
Mesajlar arasına nokta ekle (varsayılan: devre dışı): mevcut ve önceki mesajlar arasındaki sürenin değerini ekler.
Kural düğümü ilişkileri:
Kural düğümü, gelen mesajda aşağıdaki ilişkilerden biriyle birlikte mesaj üretir:
Başarılı – ‘Girdi değeri anahtarı’ parametresi aracılığıyla yapılandırılan anahtar gelen mesajda mevcutsa;
Diğer – ‘Girdi değeri anahtarı’ parametresi aracılığıyla yapılandırılan anahtar gelen mesajda mevcut değilse;
Başarısızlık – ‘Negatif delta durumunda ‘Başarısızlık’ olarak belirt’ seçeneği etkinleştirildiyse ve delta hesaplaması negatif bir değer döndürürse;
Bir örnek üzerinden kural düğümünün davranışını inceleyelim. Aşağıdaki yapılandırmayı varsayalım:
Şekil 1.2 – Kural düğümü ekle
Aynı cihaz tarafından gönderilen ve sıralandığı şekilde kural düğümüne ulaşan aşağıdaki mesajları varsayalım:
msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510425000”} msg: {“pulseCounter”: 73}, metadata: {“ts”: “1616510485000”} msg: {“temperature”: 22}, metadata: {“ts”: “1616510486000”} msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510487000”} |
Çıktı aşağıdaki şekilde olacaktır:
msg: {“pulseCounter”: 42, “delta”: 0, “periodInMs”: 0}, metadata: {“ts”: “1616510425000”}, relation: Success msg: {“pulseCounter”: 73, “delta”: 31, “periodInMs”: 60000}, metadata: {“ts”: “1616510485000”}, relation: Success msg: {“temperature”: 22}, metadata: {“ts”: “1616510486000”}, relation: Other msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510487000”}, relation: Failure |
Müşteri özellikleri #
Şekil 2.1 – Müşteri özellikleri düğümü
Düğüm, mesaj kaynakçısının müşteri varlığını arar ve müşterinin özelliklerini veya en son telemetri değerini mesaj meta verilerine ekler.
Yönetici, orijinal özellik adı ile meta veri özellik adı arasındaki eşleştirmeyi yapılandırabilir.
Düğüm yapılandırmasında ‘En Son Telemetri’ onay kutusu bulunur. Bu onay kutusu seçili ise, düğüm yapılandırılmış anahtarlar için en son telemetriyi alacaktır. Aksi takdirde, düğüm sunucu kapsamı özelliklerini alacaktır.
Şekil 2.1 – Müşteri özellikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler mevcutsa, bunlar çıkış mesajı meta verilerinde yer alacaktır. Diğer düğümlerde alınan özniteliklere erişmek için “metadata.temperature” şablonunu kullanabilirsiniz.
Kabul edilen Mesaj Kaynak Türleri: Müşteri, Kullanıcı, Varlık, Cihaz’dır. Desteklenmeyen bir kaynak türü bulunursa, bir hata oluşur.
Eğer kaynak, atanan Müşteri varlığı yoksa, Başarısızlık zinciri kullanılır; aksi takdirde, Başarı zinciri kullanılır.
Not: Metadata’dan bir değeri almak için ${metadataKey} ve mesaj gövdesinden bir değeri almak için $[messageKey] kullanabilirsiniz.
Örnek: Aşağıdaki metadata’ya sahip olduğunuzu varsayalım: {“country”: “İngiltere”}. Ek olarak, bir anahtarın bir ülke adı olduğu ve bir başkent şehri olduğu bir özniteliğiniz var ({“İngiltere”: “Londra”}).
Amaç, metadata’daki ülkeden öznitelikteki başkent şehrini almak ve sonucu “city” anahtarıyla metadata’ya eklemektir. Bunu yapmak için kaynak özniteliği olarak ${country} ve hedef özniteliği olarak “city” kullanabilirsiniz.
Sonuç, {“city”: “Londra”} olacaktır.
Cihaz özellikleri #
Şekil 3.1 – Cihaz özellikleri düğümü
Düğüm, yapılandırılmış sorguyu kullanarak mesaj kaynakçısının ilgili cihaz varlığını bulur ve cihazın özniteliklerini (müşteri/paylaşılan/sunucu kapsamı) ve en son telemetri değerini mesaj meta verilerine ekler.
Öznitelikler aşağıdaki kapsam öneki ile meta verilerine eklenir:
Paylaşılan öznitelik: shared_
İstemci öznitelik: cs_
Sunucu öznitelik: ss_
Telemetri: önek kullanılmaz
Örneğin, paylaşılan öznitelik ‘version’, ‘shared_version’ adıyla Metadata’ya eklenecektir. İstemci öznitelikleri ‘cs_’ ön eki kullanacak. Sunucu öznitelikleri ‘ss_’ ön eki kullanacak. Son telemetri değeri, ön ek kullanılmadan Mesaj Metadata’sına eklenir.
‘Cihaz ilişkisi sorgusu’ yapılandırmasında yönetici gerekli Yönlendirme ve ilişki derinlik seviyesini seçebilir. Ayrıca İlişki türü, gereksinim duyulan Cihaz türleri kümesiyle yapılandırılabilir.
Şekil 3.2 – Cihaz özellikleri düğümü yapılandırması
Eğer birden fazla ilişkili varlık bulunursa, sadece ilk varlık özellik zenginleştirmesi için kullanılır ve diğer varlıklar atılır.
İlişkili bir varlık bulunamazsa başarısızlık zinciri kullanılır; aksi takdirde başarı zinciri kullanılır.
Bir özellik veya telemetri bulunamazsa, mesaj metadata’sına eklenmez ve hala başarı zinciri üzerinden yönlendirilir.
Çıkış mesajı metadata’sı, yalnızca yapılandırılmış özellikler varsa bunları içerecektir.
Diğer düğümlerde alınan özelliklere erişmek için ‘metadata.sıcaklık’ şablonunu kullanabilirsiniz.
Not: Kural Düğümü, çıkış mesajında seçilen en az bir anahtarın mevcut olmadığı durumlarda başarısızlıkların raporlanmasını etkinleştirme/devre dışı bırakma yeteneğine sahiptir.
Şekil 3.3 – Başarısızlık raporlaması
Originator öznitelikleri #
Şekil 4.1 – Originator özellikleri düğümü
Bu düğüm, mesaj kaynağı özniteliklerini (istemci/paylaşılan/sunucu kapsamı) ve mesaj metadata’sına en son telemetri değerini ekler.
Öznitelikler, aşağıdaki kapsam öneki ile meta verilere eklenir:
Aşağıdaki şekilde, öznitelikler kapsam öneki ile metadataya eklenir:
Paylaşılan öznitelik: shared_
İstemci özniteliği: cs_
Sunucu özniteliği: ss_
Telemetri: önek kullanılmaz.
Örneğin, ‘version’ adlı bir paylaşılan öznitelik ‘shared_version’ adıyla metadata’ya eklenir. İstemci öznitelikleri ‘cs_’ ön eki kullanırken, sunucu öznitelikleri ‘ss_’ ön eki kullanır. En son telemetri değeri, önek olmadan Mesaj Metadata’ya eklenir.
Şekil 4.2 – Cihaz özellikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler mevcutsa, çıkış mesajı metadata’si onları içerecektir.
Diğer düğümlerde alınan özniteliklere erişmek için ‘metadata.cs_temperature’ şablonunu kullanabilirsiniz.
Not: Kural Düğümü, en az bir seçili anahtarın çıkış mesajında mevcut olmadığında başarısızlık bildirimini etkinleştirmeyi/devre dışı bırakmayı sağlar.
Şekil 4.3 – Başarısızlık raporlaması
Önceki kaydı kullanarak telemetriyi dönüştür
e-Posta Gönder
Originator alanları #
Şekil 5.1 – Originator alanları düğümü
Düğüm, mesaj kaynak varlığının alan değerlerini alır ve bunları mesaj meta verilerine ekler. Yönetici, alan adı ile meta veri öznitelik adı arasındaki eşleştirmeyi yapılandırabilir. Belirtilen alan, Mesaj Kaynak varlığı alanlarının bir parçası değilse, yok sayılacaktır.
Şekil 5.2 – Originator alanları düğümü yapılandırması
Desteklenen mesaj kaynak türleri şunlardır: Tenant, Customer, User, Asset, Device, Alarm, Rule Chain.
Desteklenmeyen bir kaynak türü bulunursa, hata zinciri kullanılır; aksi takdirde başarı zinciri kullanılır.
Bir alan değeri bulunamazsa, mesaj metadata’sına eklenmez ve başarı zinciri ile iletilmeye devam eder.
Gönderilen mesaj metadata’sı, yalnızca varsa yapılandırılmış öznitelikleri içerecektir.
Diğer düğümlerde alınan özniteliklere erişmek için ‘metadata.devType’ şablonu kullanılabilir.
İlgili Özellikler Düğümü #
Şekil 6.1 – İlgili özellikler düğümü
Node, yapılandırılmış sorguyu kullanarak Mesaj Kaynağı varlığının İlgili Varlığını bulur ve Nitelikleri veya En Son Telemetri değerini Mesaj Meta Verilerine ekler.
Yönetici, orijinal nitelik adı ile Meta Veri niteliği adı arasındaki eşlemeyi yapılandırabilir.
‘Relations query’ yapılandırmasında, Yönetici gerekli Yönü ve ilişki derinlik seviyesini seçebilir. Ayrıca, Gereken İlişki Türü ve Varlık Türleri ile bir dizi İlişki filtresi yapılandırılabilir.
Düğüm yapılandırmasında ‘En Son Telemetri’ onay kutusu bulunmaktadır. Bu onay kutusu seçiliyse, düğüm yapılandırılmış anahtarlar için en son telemetriyi alacaktır. Aksi takdirde, düğüm sunucu kapsamı niteliklerini alacaktır.
Şekil 6.2 – İlgili özellikler düğümü yapılandırması
Şekil 6.3 – İlgili özellikler düğümü yapılandırması
Eğer birden fazla ilgili varlık bulunursa, sadece ilk varlık öznitelik zenginleştirmesi için kullanılır ve diğer varlıklar atılır.
Eğer hiç ilgili varlık bulunamazsa başarısızlık zinciri kullanılır, aksi takdirde başarı zinciri kullanılır.
Gönderilen Mesaj Meta Verisi, yapılandırılmış öznitelikleri varsa içerecektir.
Diğer düğümlerde getirilen özniteliklere erişmek için şablon olarak ‘metadata.tempo’ kullanabilirsiniz.
Not: ‘${metadataKey}’ ile meta veriden ve ‘$[messageKey]’ ile mesaj gövdesinden bir değer kullanabilirsiniz.
Bu özellik için bir örnek, Müşteri Öznitelikleri düğümünün açıklamasında görebilirsiniz.
Tenant Öznitelikleri Düğümü #
Şekil 7.1 – Tenant Öznitelikleri düğümü
Node, mesaj kaynağı varlığının Tenant’ını belirler ve Tenant Özniteliklerini veya en son telemetri değerini Mesaj Meta verilerine dahil eder.
Yönetici, orijinal öznitelik adı ile Meta veri öznitelik adı arasındaki eşleşmeyi özelleştirebilir.
Node yapılandırması, “En Son Telemetri” olarak adlandırılan bir onay kutusu içerir. Bu seçenek etkinleştirilirse, Node belirtilen anahtarlar için en güncel telemetri verilerini alacaktır. Onay kutusu seçilmezse, Node sunucuya özgü öznitelikleri alacaktır.
Şekil 7.2 – Tenant Öznitelikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler varsa, Giden Mesaj Meta verileri de bunları içerecektir. Başka düğümlerde alınan özniteliklere erişmek için ‘metadata.tempo’ şablonunu kullanabilirsiniz.
Mesaj kaynağı, aşağıdaki tiplerden biri olabilir: Tenant, Müşteri, Kullanıcı, Varlık, Cihaz, Alarm, Kural Zinciri. Desteklenmeyen bir kaynak türü tespit edilirse, bir hata oluşacaktır.
Kaynak, atanan bir Tenant Varlığı yoksa Başarısızlık zinciri kullanılır; aksi takdirde, Başarı zinciri kullanılır.
Not: Metadata’dan bir değer almak için ${metadataKey} ve mesaj gövdesinden bir değer almak için $[messageKey] kullanabilirsiniz.
Bu özelliğin bir örneği, Müşteri öznitelikleri düğümünün açıklamasında bulunabilir.
Originator telemetri #
Şekil 8.1 – Originator telemetri düğümü
Node, düğüm yapılandırmasında seçilen belirli bir zaman aralığından Mesaj Kaynağı telemetri değerlerini Mesaj Meta verilerine ekler.
Şekil 8.2 – Originator telemetri düğümü yapılandırması
Telemetri değerleri, önek olmadan Mesaj Meta verilerine eklenir.
Kural düğümünün üç alım modu vardır:
FIRST: Zaman aralığının başlangıcına en yakın olan verileri veritabanından alır.
LAST: Zaman aralığının sonuna en yakın olan verileri veritabanından alır.
ALL: Belirtilen zaman aralığındaki tüm telemetri verilerini veritabanından alır.
Şekil 8.3 – Kural düğümü alım modları
Eğer alım modu olarak FIRST veya LAST seçilirse, Giden Mesaj Meta verileri JSON öğelerini(key/değer) içerecektir.
Eğer alım modu olarak ALL seçilirse, telemetri verileri bir dizi olarak alınacaktır.
Not: Kural düğümü, 1000 kayıt boyutuna kadar sınırlı sayıda kaydı bir diziye çıkarmak için yeteneklidir.
Elde edilen dizi, zaman damgası ve ilgili değerler içeren JSON nesnelerinden oluşacaktır.
Not: Zaman aralığının sonu, her zaman başlangıcından büyük olmalıdır.
Eğer ‘Use metadata interval patterns’ seçeneği işaretlendiyse, kural düğümü başlangıç ve bitiş aralığı desenlerini (metadata’dan) kullanacaktır.
Bu desenlerin birimleri UNIX epoktan (1 Ocak 1970 00:00:00 UTC) itibariyle milisaniye cinsindendir.
Şekil 8.4 – Kural düğümü başlangıç ve bitiş aralığı desenleri
Eğer Mesaj metadata’da herhangi bir desen eksikse, çıkış mesajı başarısızlık zinciri üzerinden yönlendirilir.
Ayrıca, herhangi bir desen geçersiz veri türüne sahipse, çıkış mesajı yine başarısızlık zinciri üzerinden yönlendirilir.
Ayarlanmış olan telemetri alanları varsa ve seçilen aralığa aitse, çıkış mesajı metadata’sı onları içerecektir.
Eğer bir öznitelik veya telemetri değeri bulunamazsa, Message Metadata’ya eklenmez ve yine de Başarı zinciri üzerinden yönlendirilir.
Diğer düğümlerde elde edilen telemetriye erişmek için şablon olarak şu kullanılabilir: JSON.parse(metadata.temperature).
Not: Kural düğümü, Fetch modu ALL (TÜMÜ) olarak ayarlandığında telemetri örneklemesi sırasını seçebilme yeteneğine sahiptir.
Şekil 8.5 – Kural düğümü yapılandırmaları
Tenant Ayrıntıları Düğümü #
Şekil 9.1 – Tenant ayrıntıları düğümü
Kural Düğümü, Tenant detaylarından alanları mesaj gövdesine veya meta verilere ekler.
Düğüm yapılandırmasında, ‘Mesaj meta verilerine seçilen detayları ekle’ adlı bir onay kutusu bulunur. Bu onay kutusu seçildiğinde, mevcut alanlar mesaj verileri yerine mesaj meta verilerine eklenir.
Şekil 9.2 – Varlık detayları eklenir.
Seçilen ayrıntılar, öneki ‘tenant_‘ ile birlikte metadatalara eklenir. Var ise yapılandırılmış ayrıntılar, giden mesajda bulunacaktır.
Diğer düğümlerde alınan ayrıntılara erişmek için aşağıdaki şablonlardan birini kullanabilirsiniz:
metadata.tenant_address
msg.tenant_address
Eğer Originator atanmış bir Tenant Varlığına sahip değilse, başarısızlık zinciri kullanılır. Aksi takdirde başarı zinciri kullanılır.
Müşteri Ayrıntıları Düğümü #
Şekil 10.1 – Müşteri ayrıntıları düğümü
Kural Düğümü, Müşteri ayrıntılarından gelen alanları mesaj gövdesine veya meta verilere ekler.
Düğüm yapılandırmasında ‘Mesaj meta verilerine seçilen ayrıntıları ekle’ adlı bir onay kutusu bulunur. Bu onay kutusu seçildiğinde, mevcut alanlar mesaj verileri yerine mesaj meta verilerine eklenir.
Şekil 10.2 – Varlık detayları seçilir.
Seçilen detaylar ‘customer_‘ önekiyle metadata’ya eklenir. Varlarsa, çıktı mesajı yapılandırılmış detayları içerecektir.
Diğer düğümlerde getirilen ayrıntılara erişmek için şu şablonlardan birini kullanabilirsiniz:
metadata.customer_email
msg.customer_email
Aşağıdaki Mesaj Kaynağı tiplerine izin verilir: Varlık, Aygıt, Varlık Görünümü. Desteklenmeyen bir kaynak türü bulunursa bir hata fırlatılır.
Kaynak, müşteri varlığı atanmadıysa Hata zinciri kullanılır, aksi takdirde Başarı zinciri kullanılır.
Dönüşüm Düğümleri #
Dönüşüm Düğümleri, Giriş Mesajı alanlarını, örneğin Kaynak, Mesaj Türü, Yük ve Meta verilerini değiştirmek için kullanılır.
Change originator #
Şekil 1.1 – Change originator düğümü
Fast IoT Platform’da gelen tüm Mesajlar, Mesajı gönderen varlığı tanımlayan bir köken alanı içerir. Bu bir Cihaz, Varlık, Müşteri, Tenant vb. olabilir.
Bu düğüm, gönderilen bir Mesajın başka bir varlık tarafından işlenmesi gerektiği durumlarda kullanılır. Örneğin, bir Cihaz telemetri gönderirse telemetri, daha yüksek bir seviyedeki Varlık veya bir Müşteriye kopyalanmalıdır. Bu durumda, Yönetici, Zaman Serisini Kaydet Düğümünden önce bu düğümü eklemelidir.
Köken alanı şunlara değiştirilebilir:
Originator Müşterisi
Originator Tenantı
İlişki Sorgusu tarafından tanımlanan İlgili Varlık
‘İlişkiler sorgusu’ yapılandırmasında, Yönetici gerekli yönlendirme ve ilişki derinlik seviyesini seçebilir. Ayrıca, gereken İlişki türü ve Varlık Türleriyle bir dizi ilişki filtresi yapılandırılabilir.
Şekil 1.2 – Change originator düğümü yapılandırmaları
Eğer birden fazla İlgili Varlık bulunursa, yalnızca ilk varlık yeni originator olarak kullanılır ve diğer varlıklar atılır.
İlgili bir varlık/Müşteri/Tenant bulunamazsa Hata zinciri kullanılır, aksi takdirde Başarı zinciri kullanılır.
Giden Mesaj yeni originator kimliğine sahip olacak.
Script Dönüşüm Düğümü #
Şekil 2.1 – Script dönüşüm düğümü
Bu Düğüm, yapılandırılmış JavaScript işlevini kullanarak Mesaj içeriğini, Meta verilerini veya Mesaj türünü değiştirir.
JavaScript işlevi 3 girdi parametresi alır:
msg – Mesaj içeriği
metadata – Mesaj meta verileri
msgType – Mesaj türü
Komut dosyası aşağıdaki yapıyı döndürmelidir:
{ msg: new payload, metadata: new metadata, msgType: new msgType } |
Şekil 2.2 – Script yapılandırma
Sonuç nesnesindeki tüm alanlar isteğe bağlıdır ve belirtilmediği takdirde orijinal mesajdan alınacaktır.
Bu Düğümden giden çıktı, yapılandırılmış JavaScript fonksiyonunu kullanarak oluşturulan yeni bir Mesaj olacaktır.
JavaScript dönüştürme işlevi “JavaScript Fonksiyonunu Test Et” seçeneği kullanılarak doğrulanabilir.
Örnek
Düğüm, payload olan bir Mesaj alır:
{ “temperature”: 22.4, “humidity”: 78 } |
Orjinal Metadata:
{ “sensorType” : “temperature” } |
Düğüm, aşağıdaki payload ile bir Mesaj alır:
Orijinal Mesaj Türü – POST_TELEMETRY_REQUEST
Aşağıdaki değişiklikler yapılmalıdır:
Mesaj türü ‘CUSTOM_UPDATE’ olarak değiştirilecek.
Payload’a ‘version’ adında ve ‘v1.1’ değerinde ek bir özellik eklenecek.
Metadata’da ‘sensorType’ özellik değeri ‘roomTemp’ olarak değiştirilecek.
Aşağıdaki dönüştürme işlevi tüm gerekli değişiklikleri gerçekleştirecektir:
var newType = “CUSTOM_UPDATE”; msg.version = “v1.1”; metadata.sensorType = “roomTemp” return {msg: msg, metadata: metadata, msgType: newType}; |
E-postaya Dönüştürme Düğümü #
Şekil 3.1 – E-postaya dönüştürme düğümü
Bu Düğüm, Mesaj metadata’sından türetilen değerler kullanılarak e-posta alanlarını doldurarak Mesajı bir E-posta Mesajına dönüştürür. Çıktı Mesaj türünü, daha sonra Send Email Düğümü tarafından kabul edilebilen ‘SEND_EMAIL’ olarak ayarlar. Tüm e-posta alanları metadata’dan gelen değerler kullanılarak yapılandırılabilir. Bu Düğüm, HTML sayfaları ve resimlerin gönderilmesini destekler.
Şekil 3.2 – Kural düğümü ekleme
Örneğin, gelen Mesaj’ın meta verilerinde ‘deviceName’ alanı varsa ve e-posta gövdesi değerini içermelidir. Bu durumda ‘deviceName’ değeri, aşağıdaki örnekte gösterildiği gibi e-posta şablonunda “${deviceName}” olarak referans verilebilir:
Device ${deviceName} has high temperature |
Eğer HTML veya resim göndermek isterseniz, posta gövdesi tipi olarak HTML veya Dynamic seçebilirsiniz. Daha fazla bilgi için “E-posta İçinde HTML veya Resim Gönderme” örneklerine başvurabilirsiniz.
Ek olarak, gelen Mesaj metadata’sında bir veritabanında saklanan dosyalara referans içeren bir ‘attachments’ alanı varsa, bu düğüm e-posta ekleri hazırlayabilir. Bu özellik Fast IoT Platform tarafından desteklenen File Storage özelliğinin bir parçasıdır.
Akış Düğümleri #
Akış Düğümleri, mesaj işleme akışını yönetmek için kullanılır.
Onay Düğümü #
Bu düğüm, mesajları başarılı bir şekilde işlendi veya onaylandı olarak işaretlemek için tasarlanmıştır. Daha fazla bilgi için mesaj işleme sonuçlarına bakınız. Bu, mesajın başarılı bir şekilde işlendiğini kural motoruna bildirir.
Bu düğüm özellikle başarısız mesajları yeniden işlemek istemediğiniz durumlarda faydalıdır. Örneğin, aşağıdaki kural zinciri yalnızca önemli mesajlar için başarısız mesajları yeniden işler. Önemsiz bir mesajın başarısız olması durumunda, başarısızlık göz ardı edilecektir.
Şekil 1 – Onay düğümü örneği
Not: “Acknowledge” kural düğümünün işlem zincirinde en sona konulmasını öneriyoruz. Teorik olarak, “acknowledge” düğümünden sonra başka kural düğümleri ekleyebilirsiniz. Ancak bu, OOM hatalarına neden olabilir. Örneğin, sonraki kural düğümleri mesajları yavaş işleyebilir. İşlenmemiş mesajlar bellekte birikecek ve fazla miktarda RAM tüketebilecektir.
Onay Düğümü #
Bu düğüm, seçilen kural motoru kuyruğuna mesajın bir kopyasını yayımlar. Hedef kuyruk, kopyalanan mesajın yayımlanmasını doğruladığında, orijinal mesaj başarılı bir şekilde işlenmiş olarak işaretlenir.
Bu, bir mesajı yüksek öncelikli olarak işaretlemek veya mesajın kaynağına göre sıralı olarak gruplanmış şekilde işlemek istediğinizde faydalıdır. Daha fazla bilgi için varsayılan kuyruklara bakabilir veya kendi kuyruğunuzu tanımlayabilirsiniz.
Kural Zinciri Düğümü #
Bu düğüm, seçilen kural zincirine mesajı iletiyor. Hedef kural zinciri, çıktı düğümü kullanarak işleme sonuçlarını da çıktılayabilir. Çıktı düğümü, kural zincirlerinin yeniden kullanımına ve işleme mantığının modüllere (kural zincirlerine) ayrıştırılmasına olanak tanır.
Örneğin, gelen mesajları doğrulayan ve geçerli ve geçersiz mesajları ayrı ayrı işleyen bir kural zinciri oluşturabilirsiniz.
Şekil 2 – Kural Zinciri düğümü örneği
Mesaj doğrulama mantığı diğer kural zincirlerinde yeniden kullanılabilir. Bu amaçla, doğrulama mantığı ayrı bir kural zincirine çıkarılır.
Şekil 3 – Kural Zinciri düğümü örneği
Lütfen doğrulama kuralları zincirindeki “Çıkış” düğümlerinin kullanımına dikkat edin. Bu çıkış düğümlerinin isimleri, ana kurallar zincirindeki “kural zinciri düğümü”nün çıkış ilişkileriyle eşleşmelidir.
Çıkış Düğümü #
Çağrıcı kurallı zincirle birlikte kullanılır. Mesaj işleme sonucunu çağrıcı kural zincirine yayınlamanıza olanak tanır. Çıktı kural düğüm adı, çıktı mesajının ilişki türüne karşılık gelir ve çağrıcı kural zincirindeki diğer kural düğümlerine mesajları iletmek için kullanılır. Örnek için kural zincir düğümü belgelerine bakın.
Dış Düğümler #
Dışsal Düğümler, harici sistemlerle etkileşim kurmak için kullanılır.
AWS SNS Düğümü #
Şekil 1.1 – AWS SNS düğümü
Bu düğüm, mesajları AWS SNS’e (Amazon Simple Notification Service) yayınlamak için kullanılır.
Yapılandırma:
Şekil 1.2 – AWS SNS yapılandırmaları.
Topic ARN deseni – mesaj yayınlama için doğrudan konu adı belirtilebilir veya Mesaj meta verilerini kullanarak gerçek ARN Konu adı çözümlenebilecek desen kullanılabilir.
AWS Access Key ID ve AWS Secret Access Key, programatik erişime sahip bir AWS IAM Kullanıcısının kimlik bilgileridir. AWS erişim anahtarları hakkında daha fazla bilgi burada bulunabilir.
AWS Bölgesi, SNS Konularının oluşturulduğu bölge ile eşleşmelidir. Mevcut AWS Bölgeleri listesi burada bulunabilir.
Aşağıdaki örnekte, konu adı cihaz tipine bağlıdır ve Meta verilerinde “deviceType” alanı olan bir mesaj vardır:
Kontrolcünün konusunda bir ileti yayınlamak için, bu kalıbı Konu ARN kalıbına ayarlamamız gerekiyor:
Çalışma zamanında, desen arn:aws:sns:us-east-1:123456789012:controller olarak çözümlenecektir.
Düğüm, tam mesaj yükünü SNS’e yayınlayacaktır. Gerekirse, kural zinciri, doğru yükü SNS’e göndermek için bir dönüşüm düğümü zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden giden mesaj, yanıt messageId ve requestId’ı Mesaj meta verilerinde içerecektir. Orijinal mesaj yükü, türü ve başlatıcı değiştirilmeyecektir.
AWS SQS Düğümü #
Şekil 2.1 – AWS SQS düğümü
Bu düğüm, mesajları AWS SQS’ye (Amazon Simple Queue Service) yayınlamak için kullanılır.
Yapılandırma:
Şekil 2.2- AWS SQS yapılandırmaları.
Bu düğüm için kuyruk türü SQS’dir (Amazon Simple Queue Service) ve Standart veya FIFO olabilir.
Kuyruk URL kalıbı, kuyruk URL’sini oluşturmak için kullanılır ve doğrudan mesaj yayınlamak için bir kuyruk URL’si veya mesaj metadata kullanarak gerçek kuyruk URL’sine çözülecek bir kalıp olabilir.
Gecikme parametresi belirli bir mesajın belirli bir süre geciktirilmesinde kullanılır.
Mesaj öznitelikleri, mesajla birlikte yayınlanacak isteğe bağlı bir öznitelik listesidir.
AWS Access Key ID ve AWS Secret Access Key, programatik erişimle bir AWS IAM Kullanıcısının kimlik bilgileridir.
AWS erişim anahtarları hakkında daha fazla bilgi burada bulunabilir. AWS Bölgesi, SQS Kuyruk(lar)ının oluşturulduğu bölgeyle eşleşmelidir. AWS Bölgeleri’nin güncel listesi burada bulunabilir.
Örneğin, aşağıdaki örnekte kuyruk URL’si cihaz tipine bağlıdır ve metadata’da “deviceType” alanı bulunur:
Kontrolcünün kuyruğuna mesaj yayınlamak için, bu modeli Kuyruk URL modelinde ayarlamamız gerekiyor:
Çalışma zamanında, desen https://sqs.us-east-1.amazonaws.com/123456789012/controller’e çözümlenecektir.
Düğüm, tam Mesaj gövdesini SQS’e gönderecektir. Gerektiğinde, Kural Zinciri, doğru Pay yükünü SQS’e göndermek için Dönüşüm Düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Yayınlanan öznitelikler, SQS’de mesaj yayınlamak için isteğe bağlı bir öznitelik listesi olabilir. İkisi de, AD ve DEĞER, hem statik değerler olabilir hem de Mesaj meta verilerini kullanarak çözülebilecek desenler olabilir.
FIFO kuyruğu seçilirse, Mesaj Kimliği yinelenen kimliği ve Mesaj kaynağı Grup Kimliği olarak kullanılacaktır.
Bu düğümden çıkan mesaj, yanıt messageId, requestId, messageBodyMd5, messageAttributesMd5 ve sequenceNumber’ı içerecektir. Orijinal mesaj yükü, türü ve kaynak değiştirilmeyecektir.
Kafka Düğümü #
Şekil 3.1 – Kafka düğümü
Kafka Düğümü, mesajları Kafka brokerlarına göndermekten sorumludur. Herhangi bir mesaj türüne sahip mesajları işleyebilir ve kaydediciyi kullanarak kayıt, Kafka sunucusuna gönderir.
Yapılandırma:
Şekil 3.2 – Kafka düğümü yapılandırmaları
Kafka Düğümü, Kafka brokerlarına mesaj gönderebilir ve herhangi bir türde mesaj bekler. Kafka üreticisi aracılığıyla kayıt, Kafka sunucusuna gönderilir.
Konu deseni, statik bir dize veya ${deviceType} gibi mesaj meta veri özelliklerini kullanarak çözülen bir desen olabilir.
Önyükleme sunucuları parametresi, virgülle ayrılmış Kafka brokerlarının bir listesini belirtir.
Otomatik olarak yeniden deneme sayısı parametresi, bağlantı başarısız olursa bir mesajı yeniden gönderme girişimleri sayısını belirler.
Üretilen toplu boyut parametresi, aynı bölümle ilişkili mesajların gruplandığı toplu boyutunu byte cinsinden belirtir.
Yerel olarak önbelleğe alma süresi parametresi, maksimum yerel önbellek penceresi süresini milisaniye cinsinden ayarlar, müşteri önbellek maksimum boyut parametresi ise mesaj göndermek için maksimum önbellek boyutunu byte cinsinden belirtir.
Onay sayısı parametresi, düğümün isteği tamamlandı olarak kabul etmeden önce alınması gereken onay sayısını belirler.
Anahtar serileştirici, varsayılan olarak org.apache.kafka.common.serialization.StringSerializer, ve değer serileştirici de, varsayılan olarak org.apache.kafka.common.serialization.StringSerializer’dır.
Diğer özellikler, Kafka broker bağlantısı için eklenilebilir.
Düğüm, Kafka konusuna tam mesaj yükünü gönderecektir. Gerektiğinde, kural zinciri, Kafka’ya doğru yükü göndermek için bir dönüşüm düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden çıkan mesaj metadata özelliklerinde yanıt ofseti, bölüm ve konu bilgilerini içerecektir. Orijinal mesaj yükü, türü ve kaynak değiştirilmeyecektir.
Not: Confluent Cloud’u bir Kafka brokerı olarak kullanmak istiyorsanız, aşağıdaki özellikleri eklemelisiniz:
Şekil 3.3 – Confluent Cloud Kafka broker olarak kullanılacaksa eklenilecek özellikler.
CLUSTER_API_KEY – Küme ayarlarından erişim anahtarınız.
CLUSTER_API_SECRET – Küme ayarlarından erişim sırrınız.
MQTT Düğümü #
Şekil 4.1 – MQTT düğümü
Gelen mesaj yükünü, en az bir kez hizmet kalitesi (QoS) ile yapılandırılmış MQTT broker konusuna yayınlayın.
Yapılandırma:
Şekil 4.1 – MQTT düğümü yapılandırmaları
Konu Deseni – Sabit bir dize veya Mesaj Meta veri özelliklerini kullanarak çözülebilen bir desen olabilir, örneğin ${deviceType}.
Ana Bilgisayar – MQTT broker ana bilgisayarı.
Port – MQTT broker bağlantı noktası.
Bağlantı Zaman Aşımı – MQTT broker’a bağlanmak için saniye cinsinden zaman aşımı.
Müşteri Kimliği – MQTT broker’a bağlanmak için kullanılan isteğe bağlı bir istemci kimliği. Belirtilmezse, varsayılan oluşturulan istemci kimliği kullanılır.
Müşteri Kimliğine Servis Kimliği Ekle – İsteğe bağlı bir bayrak. Etkinleştirildiğinde, sunucu kimliği müşteri kimliğinin bir soneki olarak eklenir. Her bir düğümdeki kural düğümlerinin hatalar olmadan brokere bağlanmasına izin vermek için mikro hizmetler modunda çalıştırırken faydalıdır.
Temiz Oturum – Etkinleştirildiğinde, brokera kalıcı olmayan bir bağlantı kurar.
SSL Etkinleştir/Devre Dışı Bırak – Güvenli iletişimi etkinleştirir/devre dışı bırakır.
Kimlik Bilgileri – MQTT bağlantı kimlik bilgileri. Anonim, Temel veya PEM olabilir.
Harici MQTT broker için farklı kimlik doğrulama kimlik bilgileri desteklenir:
Anonim – Kimlik doğrulama yok
Temel – Kimlik doğrulamada kullanılan kullanıcı adı/parola çifti
PEM – Kimlik doğrulamada PEM sertifikaları kullanılır
PEM kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
CA sertifikası dosyası
Sertifika dosyası
Özel anahtar dosyası
Özel anahtar parolası
Yayınlanan Gövde – Düğüm, tam Mesaj yükünü MQTT konusuna gönderir. Gerekirse, doğru Yükü MQTT brokerine göndermek için Dönüşüm Düğümlerinin zincirini kullanmak için kural zinciri yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, orijinal Mesaj, Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Hata zinciri kullanılır.
Azure IoT Hub Düğümü #
Şekil 5.1 – Azure IoT Hub düğümü
Yapılandırma:
Şekil 5.2 – Azure IoT Hub düğümü yapılandırmaları
Topic – IoT Hub konuları hakkında daha fazla bilgi için, şu bağlantıyı kullanın.
Hostname – Azure IoT Hub hostname.
Device ID – Azure IoT Hub’daki cihaz kimliğiniz.
Credentials – Azure IoT Hub bağlantı kimlik bilgileri. Paylaşılan Erişim İmzası veya PEM olabilir.
Azure IoT Hub için farklı kimlik doğrulama kimlik bilgileri desteklenir:
Paylaşılan Erişim İmzası – Kimlik doğrulamada SAS anahtarı kullanılır.
PEM – Kimlik doğrulamada PEM sertifikaları kullanılır.
Paylaşılan Erişim İmzası kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
SAS Key – Azure IoT Hub’daki cihazınızdan bir anahtar.
CA sertifikası dosyası, varsayılan olarak Baltimore sertifikası kullanılır. Sertifikalar hakkında daha fazla bilgi burada bulunabilir.
PEM kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
CA sertifikası dosyası, varsayılan olarak Baltimore sertifikası kullanılır. Sertifikalar hakkında daha fazla bilgi burada bulunabilir.
Sertifika dosyası
Özel anahtar dosyası
Özel anahtar şifresi.
Yayınlanan içerik – Düğüm, tam Mesaj verisini Azure IoT Hub cihazına gönderir. Gerektiğinde, kural zinciri, doğru Payload’ın Azure IoT Hub’a gönderilmesi için bir Dönüşüm Düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, orijinal Mesaj, başarı zinciri aracılığıyla sonraki düğümlere iletilir; aksi takdirde, hata zinciri kullanılır.
RabbitMQ Düğümü #
Şekil 6.1 – RabbitMQ düğümü
Gelen mesajın içeriğini RabbitMQ’ya yayınla.
Yapılandırma:
Şekil 6.2 – RabbitMQ düğümü yapılandırmaları
Exchange isim deseni – mesajın gönderileceği exchange. Statik bir dize veya Mesaj Meta verileri özelliklerini kullanarak çözülen bir desen olabilir. Örneğin, ${deviceType}.
Routing anahtar deseni – yönlendirme anahtarı. Statik bir dize veya Mesaj Meta verileri özelliklerini kullanarak çözülen bir desen olabilir. Örneğin, ${deviceType}.
Mesaj özellikleri – isteğe bağlı yönlendirme başlıkları. Desteklenen başlıklar arasında BASIC, TEXT_PLAIN, MINIMAL_BASIC, MINIMAL_PERSISTENT_BASIC, PERSISTENT_BASIC ve PERSISTENT_TEXT_PLAIN bulunur.
Host – bağlantılar için kullanılacak varsayılan ana bilgisayar.
Port – bağlantılar için kullanılacak varsayılan port.
Sanal ana bilgisayar – broker’a bağlanırken kullanılacak sanal ana bilgisayar.
Kullanıcı adı – broker’a bağlanırken kullanılacak AMQP kullanıcı adı.
Parola – broker’a bağlanırken kullanılacak AMQP parolası.
Otomatik kurtarma – otomatik bağlantı kurtarmayı etkinleştirir veya devre dışı bırakır.
Bağlantı zaman aşımı – bağlantı TCP kurulum zaman aşımı milisaniye cinsinden; sonsuz için sıfır.
El sıkışma zaman aşımı – AMQP 0-9-1 protokolü el sıkışma zaman aşımı, milisaniye cinsinden.
Müşteri özellikleri – bağlantı başlangıcında sunucuya gönderilen ek özellikler.
Yayınlanan gövde – düğüm mesajın tam yükünü RabbitMQ’ya gönderecektir. Gerekirse, kural zinciri, doğru yükü göndermek için Dönüşüm Düğümlerinin bir zincirini kullanacak şekilde yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, özgün Mesaj Başarı zinciri aracılığıyla sonraki düğümlere iletilir, aksi takdirde Hata zinciri kullanılır.
REST API Çağrı Düğümü #
Şekil 7.1 – REST API Çağrı düğümü
Harici bir REST sunucusuna REST API çağrıları yapmak.
Yapılandırma:
Şekil 7.2 – REST API Çağrı düğümü yapılandırmaları
Endpoint URL pattern – Statik bir dize veya Mesaj Meta Veri özellikleri kullanılarak çözümlenebilen bir desen olabilir. Örneğin, ${deviceType}.
Request method – GET, POST, PUT, DELETE.
Headers – İstek başlıkları, başlık veya değer, statik bir dize veya Mesaj Meta Veri özellikleri kullanılarak çözümlenebilen bir desen olabilir.
Endpoint URL
URL, statik bir dize veya bir desen olabilir. Desenleri çözümlemek için sadece Mesaj meta verileri kullanılır. Desenlerde kullanılan özellik adları Mesaj meta verilerinde bulunmalıdır, aksi takdirde düz desen URL’ye eklenir.
Örneğin, Mesaj yükü, değeri container olan bir deviceType özelliği içeriyorsa, bu desen:
http://localhost/api/${deviceType}/update
aşağıdaki gibi çözümlenecektir:
http://localhost/api/container/update
Headers
Başlık adı ve değerlerinin bir koleksiyonu yapılandırılabilir. Bu başlıklar REST isteğine eklenir. Konfigüre etmek için desen kullanılabilir, örneğin ${deviceType}. Sadece mesaj meta verileri, desenleri çözmek için kullanılır. Bu nedenle, desenlerde kullanılan özellik adları, mesaj meta verilerinde mevcut olmalıdır. Aksi takdirde, düz desen başlığa eklenecektir.
Düğüm, yapılandırılmış REST uç noktasına tam Mesaj yükünü istek gövdesi olarak gönderecektir. Gerektiğinde, kural zinciri, doğru yük göndermek için dönüşüm düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden giden mesaj, yanıt durumu, durum kodu, durum nedeni ve yanıt başlıklarını mesaj meta verilerinde içerecektir. Giden mesaj yükü, yanıt gövdesiyle aynı olacaktır. Orijinal mesaj tipi ve gönderici değiştirilmeyecektir.
İstek gövdesi olarak tek bir dosya göndermek için, mesaj meta verilerine veritabanında depolanan dosya UUID’si ile “attachments” alanı ekleyin. Bu durumda, herhangi bir mesaj verisi yoksayılır ve sadece dosya içeriği gönderilir. İstek içerik tipini tanımlamak için şu gibi başlık ayarlarını kullanın:
Content-Type: application/json; charset=UTF-8
Tek bir dosya göndermek için mesaj meta verilerine örnek:
Not: Bu özellik Fast IoT Platform Professional Edition tarafından desteklenen Dosya Depolama özelliğinin bir parçasıdır.
Başarılı bir istek durumunda, çıkış mesajı Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Hata zinciri kullanılır.
E-posta Gönderme Düğümü #
Şekil 8.1 – E-posta gönderme düğümü
Bu düğüm, yapılandırılmış e-posta sunucusunu kullanarak gelen iletileri gönderir. Bu düğüm, yalnızca To Email dönüştürme düğümü kullanılarak oluşturulan iletilerle çalışır. Lütfen bu düğümü To Email düğümü ile Başarı zinciri kullanarak bağlayın.
Yapılandırma:
Şekil 8.2 – E-posta gönderme düğümü yapılandırmaları
Bu düğüm, yapılandırılmış posta sunucusunu kullanarak gelen bir mesajı gönderir. Etkinleştirilmişse, sistem düzeyinde yapılandırılan varsayılan posta sunucusu kullanılacaktır. SMTP protokolü ve sunucu ana bilgisayarı ve bağlantı noktası belirtilebilir, ayrıca okuma zaman aşımı da belirtilebilir. Sunucu tarafından destekleniyorsa, TLS etkinleştirilirse STARTTLS komutu kullanılacaktır. Posta sunucusu için kullanıcı adı ve şifre gerekiyorsa, bunlar da belirtilebilir.
Bu düğüm, sistem düzeyinde yapılandırılan varsayılan posta sunucusuyla çalışabilir. Varsayılan sistem SMTP ayarlarının nasıl yapılandırılacağı hakkında daha fazla bilgi için lütfen belgelerimize başvurun. Bu düğüm için belirli bir posta sunucusu gerekiyorsa, “Sistem SMTP ayarlarını kullan” onay kutusunu devre dışı bırakın ve posta sunucusunu manuel olarak yapılandırın.
Ayrıca, bu düğüm, gelen mesajın veritabanında depolanan dosyalara referans içeren bir “hazırlanmış eklentiler” metadata alanına sahip olması durumunda e-posta ekleri oluşturabilir. Birden çok ek desteklenir ve birden çok dosya göndermek için virgülle ayrılmış UUID’ler kullanılabilir. İşte bir mesaj metadata örneği:
E-posta başarılı bir şekilde gönderildiğinde, özgün mesaj Başarı zinciri üzerinden bir sonraki düğüme aktarılacaktır. Aksi takdirde, Hata zinciri kullanılacaktır.
Bu düğümün nasıl kullanıldığına dair gerçek hayat örneğini şu öğreticide görebilirsiniz:
SMS Gönderme Düğümü #
Bu düğüm, gelen mesajdaki meta veri alanlarından SMS mesajı oluşturabilir ve bunu AWS SNS veya Twilio SMS sağlayıcıları kullanarak gönderebilir. Bu kural düğümü için hata ayıklama modunu etkinleştirmenizi öneririz.
Yapılandırma:
Şekil 9.1 – SMS gönderme düğümü
Etkinleştirildiğinde, düğüm sistem düzeyinde yapılandırılmış varsayılan SMS sağlayıcısını kullanır. Daha fazla ayrıntı için SMS sağlayıcı ayarlarına bakınız. ‘Alıcı Telefon Numaraları’ alanı birden çok telefon numarasının belirtilmesine izin verir ve SMS mesaj şablonu da yapılandırılabilir. Bu alanlarda da mesaj metadata alanlarına başvurulabilir.
Bu düğüm sistem düzeyinde yapılandırılmış varsayılan SMS sağlayıcısıyla çalışabilir. Eğer SMS mesajı tüm alıcılara başarıyla gönderilirse, orijinal mesaj Başarı zinciri üzerinden bir sonraki düğüme geçirilecek, aksi takdirde Hata zinciri kullanılacaktır.
Eylem Düğümleri #
Eylem Düğümleri, gelen mesajlara bağlı olarak çeşitli eylemler gerçekleştirir.
Matematik İşlev Düğümü #
Kural düğümü matematiksel işlevleri uygular ve sonucu mesajda ve/veya veritabanında kaydeder. Desteklenen fonksiyonların listesi aşağıdaki tabloda verilmiştir:
fonksiyon | bağımsız değişken sayısı | tanım | referans |
ADD | 2 | x+y | |
SUB | 2 | x-y | |
MULT | 2 | x*y | |
DIV | 2 | x/y | |
SIN | 1 | Bir açının trigonometrik sinüsünü verir. | Math.sin |
SINH | 1 | Bir çift değerin hiperbolik sinüsünü döndürür. x’in hiperbolik sinüsü (ex – e-x)/2 olarak tanımlanır, burada e, Euler sayısıdır. | Math.sinh |
COS | 1 | Bir açının trigonometrik kosinüsünü verir. | Math.cos |
COSH | 1 | Bir çift değerin hiperbolik kosinüsünü döndürür. x’in hiperbolik kosinüsü (ex + e-x)/2 olarak tanımlanır, burada e, Euler sayısıdır. | Math.cosh |
TAN | 1 | Bir açının trigonometrik tanjantını verir. | Math.tan |
TANH | 1 | Bir çift değerin hiperbolik tanjantını döndürür. | Math.tanh |
ACOS | 1 | Bir değerin ark kosinüsünü döndürür; döndürülen açı 0,0 ila pi aralığındadır. | Math.acos |
ASIN | 1 | Bir değerin ark sinüsünü döndürür; döndürülen açı -pi/2 ila pi/2 aralığındadır. | Math.asin |
ATAN | 1 | Bir değerin yay tanjantını döndürür; döndürülen açı -pi/2 ila pi/2 aralığındadır. | Math.atan |
ATAN2 | 2 | Dikdörtgen koordinatların (x, y) kutupsal koordinatlara (r, teta) dönüştürülmesinden teta açısını döndürür. | Math.atan2 |
EXP | 1 | e’nin doğal logaritmaların tabanı olduğu ex değerini döndürür. | Math.exp |
EXPM1 | 1 | ex-1’i döndürür. x’in 0’a yakın değerleri için expm1(x) + 1’in tam toplamının ex’in gerçek sonucuna exp(x)’ten çok daha yakın olduğuna dikkat edin. | Math.expm1 |
SQRT | 1 | Double değerinin doğru yuvarlanmış pozitif karekökünü verir. | Math.sqrt |
CBRT | 1 | Bir çift değerin küp kökünü döndürür. | Math.cbrt |
GET_EXP | 1 | Bir çiftin gösteriminde kullanılan yansız üssü döndürür. | Math.getExponent |
HYPOT | 2 | Ara taşma veya taşma olmadan sqrt(x2 +y2) döndürür. | Math.getExponent |
LOG | 1 | Bir çift değerin doğal logaritmasını (e tabanı) verir. | Math.log |
LOG10 | 1 | Bir çift değerin 10 tabanındaki logaritmasını döndürür. | Math.log10 |
LOG1P | 1 | Bağımsız değişken ve 1’in toplamının doğal logaritmasını döndürür. Küçük x değerleri için log1p(x)’in sonucunun ln(1 + x)’in gerçek sonucuna log(‘un kayan noktalı değerlendirmesinden çok daha yakın olduğunu unutmayın. 1.0+x). | Math.log1p |
CEIL | 1 | Argümandan büyük veya ona eşit olan ve matematiksel bir tamsayıya eşit olan en küçük (negatif sonsuza en yakın) çift değeri döndürür. | Math.ceil |
FLOOR | 1 | Bağımsız değişkenden küçük veya ona eşit olan ve matematiksel bir tamsayıya eşit olan en büyük (pozitif sonsuza en yakın) çift değeri döndürür. | Math.floor |
FLOOR_DIV | 2 | Cebirsel bölümden küçük veya ona eşit olan en büyük (pozitif sonsuza en yakın) uzun değeri döndürür. | Math.floorDiv |
FLOOR_MOD | 2 | Uzun bağımsız değişkenlerin taban modülünü döndürür. | Math.floorMod |
ABS | 1 | Double değerinin mutlak değerini döndürür. | Math.abs |
MIN | 2 | İki çift değerden küçük olanı döndürür. | Math.min |
MAX | 2 | İki çift değerden büyük olanı döndürür. | Math.max |
POW | 2 | İkinci bağımsız değişkenin üssüne yükseltilen ilk bağımsız değişkenin değerini döndürür. | Math.pow |
SIGNUM | 1 | Bağımsız değişkenin işaret işlevini döndürür; bağımsız değişken sıfırsa sıfır, bağımsız değişken sıfırdan büyükse 1.0, bağımsız değişken sıfırdan küçükse -1.0. | Math.signum |
RAD | 1 | Derece cinsinden ölçülen bir açıyı, radyan cinsinden ölçülen yaklaşık olarak eşdeğer bir açıya dönüştürür. | Math.toRadians |
DEG | 1 | Radyan cinsinden ölçülen bir açıyı, derece cinsinden ölçülen yaklaşık olarak eşdeğer bir açıya dönüştürür. | Math.toDegrees |
CUSTOM | 1 | Karmaşık matematik ifadelerini belirtmek için bu işlevi kullanın. Örneğin, (x – 32) / 1.8) kullanarak Fahrenheit’i Celsius’a dönüştürün. | exp4j |
Bu kural düğümü beş tür argüman destekler:
Sabit
Mesaj gövdesinden değer
Mesaj meta verilerinden değer
Mesaj kaynakçısına (cihaz, varlık, vb.) ait olan özniteliğin değeri. Değer sayısal bir tür olmalı veya ondalıklı sayıya dönüştürülebilir bir dize olmalıdır.
Mesaj kaynakçısına (cihaz, varlık, vb.) ait olan en son zaman serilerinin değeri. Değer sayısal bir tür olmalı veya ondalıklı sayıya dönüştürülebilir bir dize olmalıdır.
Bu kural düğümünün temel kullanım durumu, gelen mesaj verilerine dayanarak bir veya daha fazla değeri veritabanından değiştirmektir. Örneğin, cihaz tarafından bildirilen delta su tüketimine dayanarak toplam su tüketimini artırabilirsiniz.
Alternatif kullanım durumu, basit JS betik düğümlerini daha hafif ve performanslı bir uygulamayla değiştirmektir. Örneğin, CUSTOM işlemi kullanarak Fahrenheit’tan Celsius’a dönüştürebilirsiniz (C = (F – 32) / 1.8), ifadesi: (x – 32) / 1.8).
Çalışma, mesaj kaynakçısı (ör. cihaz) ve sunucu düğümü kapsamında senkronize edilir. Farklı kural zincirlerinde kural düğümleriniz varsa, aynı kaynaktan gelen mesajları sunucu düğümü kapsamında senkron olarak işleyeceklerdir.
Fonksiyonun sonucu, mesaj gövdesine veya meta verilerine eklenebilir. Ayrıca sonucu veritabanında bir öznitelik veya zaman serisi olarak kaydedebilirsiniz.
Alarm Düğümü Oluştur #
Şekil 1.1 – Alarm Oluşturma düğümü
Bu düğüm, mesaj kaynaklı için yapılandırılmış alarm tipi ile en son alarmı yüklemeye çalışır. Eğer temizlenmemiş bir alarm varsa güncellenir; aksi takdirde yeni bir alarm oluşturulur.
Düğüm Yapılandırması:
Alarm Detayları Oluşturma betiği
Alarm Tipi – alarm tipini temsil eden herhangi bir dize
Alarm Şiddeti – {KRİTİK | ÖNEMLİ | KÜÇÜK | UYARI | BELİRSİZ}
Yayılmış mı? – alarmın tüm üst ilişkili varlıklara yayılması gerekip gerekmediği.
Not: Fast IoT Platformu kural düğümü şu özelliklere sahiptir:
Mesajdan alarm yapılandırmasını okuyun
Mesaj meta verilerindeki alanlarla desen kullanarak alarm tipini alın.
Şekil 1.2 – Alarm türü ve şiddeti seçilir.
Alarm yayılımını, ilişki türlerine göre üst varlıklara filtreleyin:
Şekil 1.3 – İlişki türlerine göre filtreleme.
Alarm Detayları Oluşturma betiği, alarm detaylarını içeren bir JsonNode oluşturmak için kullanılır. Alarm içinde ek parametreleri depolamak için faydalıdır. Örneğin, orijinal mesaj yükünden veya meta verilerden nitelik adı/değer çiftlerini kaydedebilirsiniz.
Alarm Detayları Oluşturma betiği, detay nesnesini döndürmelidir.
Şekil 1.4 – Alarm detayları oluşturucu.
Mesaj yükü, örneğin msg.temperature kullanılarak erişilebilir.
Mesaj meta verileri metadata özelliği kullanılarak erişilebilir, örneğin metadata.customerName.
Mesaj türü, örneğin msgType kullanılarak erişilebilir.
İsteğe bağlı olarak, önceki Alarm Detayları metadata.prevAlarmDetails özelliği kullanılarak erişilebilir. Önceki alarm yoksa, bu alan Metadata’da mevcut olmayacaktır. metadata.prevAlarmDetails, ham bir dize alanıdır ve nesneye dönüştürmek için aşağıdaki yapının kullanılması gerektiğine dikkat edin:
Alarm Detayları Oluşturma betiği fonksiyonu, Test JavaScript fonksiyonu kullanılarak doğrulanabilir.
Örnek Detay Oluşturma Fonksiyonu:
Bu fonksiyon, önceki alarmdan ‘count’ özelliğini alır ve artırır. Ayrıca gelen mesaj yükünden ‘temperature’ özniteliğini Alarm detaylarına yerleştirir.
Alarm şu özelliklerle oluşturulacak veya güncellenecek:
Alarm ayrıntıları: Alarm Ayrıntıları Oluşturma komut dosyasından dönen bir nesne.
Alarm durumu: yeni bir alarm oluşturulursa durum ACTIVE_UNACK olacaktır. Mevcut bir alarm güncellenirse durum değişmeyecektir.
Ciddiyet: Node Yapılandırmasından bir değer.
Yayılım: Node Yapılandırmasından bir değer.
Alarm tipi: Node Yapılandırmasından bir değer.
Alarm başlangıç zamanı: yeni bir alarm oluşturulursa başlangıç zamanı mevcut sistem zamanı olacaktır. Mevcut bir alarm güncellenirse başlangıç zamanı değişmeyecektir.
Alarm bitiş zamanı: mevcut sistem zamanı.
Çıkış mesajı şu yapıya sahip olacaktır:
Mesaj Türü: ALARM
Originator: gelen mesajdaki kaynak ile aynı
Payload: yeni oluşturulan / güncellenen alarmın JSON temsili
Metadata: orijinal Mesaj Meta Veri alanındaki tüm alanlar
Yeni bir alarm oluşturulduktan sonra, Çıkış mesajı Meta Veri alanının içinde isNewAlarm adında ek bir özellik içerecektir ve değeri true olacaktır. Mesaj, Oluşturulan zinciri aracılığıyla iletilir.
Mevcut bir alarm güncellendikten sonra, Çıkış mesajı Meta Veri alanının içinde isExistingAlarm adında ek bir özellik içerecektir ve değeri true olacaktır. Mesaj, Güncellenen zinciri aracılığıyla iletilir.
İşte bir çıkış mesajı yükü örneği:
Alarm Düğümünü Temizle #
Şekil 2.1 – Alarm temizleme düğümü
Bu düğüm, mesaj kaynağı için yapılandırılmış Alarm Türü’ne sahip en son Alarm’ı yükler ve varsa Alarm’ı temizler.
Düğüm yapılandırması:
Alarm Detayları Oluşturucu betiği
Alarm Türü: Alarm Türünü temsil eden herhangi bir dize.
Not: Kural düğümü mesaj metadata alanlarından bir desen kullanarak alarm türünü alabilme yeteneğine sahiptir.
Şekil 2.2 – Alarm türü.
Alarm Detayları Oluşturma betiği, Alarm Detayları JsonNode’unu güncellemek için kullanılır. Bu, alarm içinde ek parametreler depolamak için faydalıdır. Örneğin, orijinal mesaj yükü veya metadata’dan öznitelik adı/değer çiftlerini kaydedebilirsiniz.
Alarm Detayları Oluşturma betiği, detay nesnesini döndürmelidir.
Şekil 2.3 – Alarm detayları oluşturucu.
Mesaj yükü msg özelliği aracılığıyla erişilebilir, örneğin msg.temperature.
Mesaj meta verileri metadata özelliği aracılığıyla erişilebilir, örneğin metadata.customerName.
Mesaj türü msgType özelliği aracılığıyla erişilebilir, örneğin msgType.
Geçerli Alarm Detayları metadata.prevAlarmDetails aracılığıyla erişilebilir.
metadata.prevAlarmDetails, ham bir dize alanıdır ve aşağıdaki yapının kullanılarak bir nesneye dönüştürülmesi gerektiğine dikkat edin:
“Alarm Details Builder” betiği fonksiyonu, “Test JavaScript” fonksiyonu kullanılarak doğrulanabilir.
Örnek bir Detay Oluşturucu Fonksiyon:
Bu fonksiyon, önceki alarmdaki “count” özelliğini alır ve bir artırır. Ayrıca, gelen mesaj yükündeki “sıcaklık” özniteliğini alarm ayrıntılarına yerleştirir.
Bu düğüm, mevcut alarmı aşağıdaki şekilde günceller:
Alarm durumunu zaten onaylandıysa CLEARED_ACK’e, aksi takdirde CLEARED_UNACK’e değiştirir.
Temizleme zamanını mevcut sistem zamanına ayarlar.
Alarm detaylarını, Alarm Detayları Oluşturucu betiğinden dönen yeni nesne ile günceller.
Alarm mevcut değil veya zaten temizlendiğinde, özgün mesaj Yanlış zinciri aracılığıyla bir sonraki düğümlere aktarılır. Aksi takdirde, yeni bir mesaj Temizlendi zinciri aracılığıyla iletilir.
Çıkış mesajı aşağıdaki yapıya sahip olacaktır:
Mesaj Türü: ALARM
Originator: giriş mesajındaki kaynakla aynı
Payload: Temizlenen alarmın JSON temsili
Metadata: özgün mesaj meta verilerindeki tüm alanlar. Ayrıca Meta verileri içindeki ek özellik -> isClearedAlarm ile true değeri de eklenecektir.
İşte bir çıkış mesajı yükünün örneği:
Gecikme Düğümü #
Şekil 3.1 – Gecikme düğümü
Bu düğüm gelen mesajları yapılandırılabilir bir süre için geciktirir.
Yapılandırma:
Şekil 3.2 – Yapılandırma ayarları.
Bu, gelen mesajların belirli bir süre askıya alınabileceği ve aynı anda kuyruğa alınabilecek mesaj sayısının sınırlandığı bir sistemle ilgilidir. Askıya alınmış bir mesaj için belirtilen gecikme süresi dolduğunda, mesaj Başarı zinciri aracılığıyla bir sonraki düğüme yönlendirilecektir. Ancak, bekleyen mesajların maksimum sınırı aşıldığında, bir sonraki mesaj Başarısızlık zinciri aracılığıyla yönlendirilecektir.
Generator Düğümü #
Şekil 4.1 – Generator düğümü.
Bu, JavaScript fonksiyonunu kullanarak yapılandırılabilir bir periyotla mesaj oluşturan bir sisteme işaret etmektedir. Düğüm yapılandırması, saniye cinsinden mesaj oluşturma sıklığını, mesaj kaynakını ve gerçek mesajı oluşturacak JavaScript fonksiyonunu içerir. JavaScript fonksiyonu, önceki oluşturulan mesajın yükünü temsil eden prevMsg, önceki oluşturulan mesajın meta verilerini temsil eden prevMetadata ve önceki oluşturulan mesajın tipini temsil eden prevMsgType olmak üzere üç girdi parametresi alır.
Script aşağıdaki yapıyı döndürmelidir:
Şekil 3.2 – Yapılandırma ayarları.
Sonuç nesnesindeki tüm alanlar isteğe bağlıdır ve açıkça belirtilmediyse önceki oluşturulan mesajdan alınacak değerlerle doldurulacaktır.
Bu düğümden giden mesaj, yapılandırılmış JavaScript fonksiyonunu kullanarak oluşturulan yeni bir mesaj olacaktır.
JavaScript oluşturma fonksiyonu, Test JavaScript fonksiyonunu kullanarak test edilebilir.
Bu düğme, bir kural zincirinde hata ayıklama amaçları için kullanılabilir.
Log Düğümü #
Şekil 4.1 – Log Düğümü
Bu düğüm, yapılandırılmış bir JavaScript fonksiyonu kullanarak gelen mesajları bir dizeye dönüştürür ve son değeri Fast IoT Platform log dosyasına kaydeder.
Kayıt, INFO log seviyesinde yapılır.
JavaScript fonksiyonu, mesaj meta verileri olan metadata, mesaj yükü olan msg ve mesaj tipi olan msgType olmak üzere üç girdi parametresi alır.
Script, bir dize değeri döndürmelidir.
Şekil 4.1 – Script fonksiyonu
JavaScript dönüştürme fonksiyonu, Test JavaScript işlevi kullanılarak test edilebilir.
RPC Çağrı Yanıtlama Düğümü #
Şekil 5.1 – RPC Çağrı Yanıtlama Düğümü
Bu düğüm, bir RPC çağrısının başlatıcısına yanıt gönderir. Gelen tüm RPC istekleri mesajlar olarak Kural Zinciri’nden geçirilir ve her RPC isteğinin bir istek kimliği alanı vardır. Bu alan, istekleri ve yanıtları eşleştirmek için kullanılır. Mesaj başlatıcısı, RPC yanıtı mesaj başlatıcısına yönlendirildiği için bir cihaz varlığı olmalıdır.
Düğüm yapılandırmasında özel bir istek kimliği alanı eşlemesi bulunur. Eşleme belirtilmezse, varsayılan olarak requestId metadata kullanılır.
Şekil 5.2 – Request Id Metadata
RPC istekleri MQTT, HTTP ve CoAP gibi farklı taşıyıcılar aracılığıyla alınabilir. Mesaj yükü örneği şöyledir:
Aşağıdaki durumlarda, iletiler Failure zinciri üzerinden yönlendirilecektir:
Gelen mesajın kaynak cihazı bir Cihaz varlığı değilse
İstek kimliği Mesaj metadata’sında bulunmuyorsa
Gelen mesajın yükü boşsa
RPC Çağrı İsteği Düğümü #
Şekil 6.1 – RPC Çağrı İsteği Düğümü
Bu düğüm, RPC isteklerini cihaza gönderir ve yanıtı bir sonraki kural düğümlerine yönlendirir. Mesaj kaynağı, yalnızca bir cihaza RPC isteği gönderilebildiği için bir cihaz varlığı olmalıdır.
Düğüm yapılandırmasında, cihazdan yanıt beklemek için belirlenen zaman aşımını belirtmek için bir Zaman Aşımı alanı bulunur.
Şekil 6.2 – Zaman aşımı alanı
RPC istekleri için mesaj yükü, yöntem ve parametreler alanlarını içermesi gereken doğru formatta olmalıdır.
Eğer mesaj yükü (payload) requestId alanını içeriyorsa, bu değer cihaza yönelik RPC isteğini tanımlamak için kullanılır. Aksi takdirde, rastgele bir requestId oluşturulur.
Giden mesaj, gelen mesajla aynı kaynak ve metadata’ya sahip olacaktır. Cihazdan gelen yanıt, mesaj yüküne eklenir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilir:
Gelen mesaj kaynağı bir cihaz varlığı değilse.
Gelen mesaj method veya params alanlarını içermiyor ise.
Yapılandırılmış zaman aşımı sırasında yanıt alınamazsa.
Aksi takdirde, mesaj Başarı zinciri üzerinden yönlendirilir.
Nitelikleri Kaydet Düğümü #
Şekil 7.1 – Nitelikleri Kaydet düğümü
Bu düğüm, gelen mesajın yükündeki öznitelikleri veritabanına kaydeder ve öznitelikleri mesaj kaynakçısı tarafından tanımlanan varlıkla ilişkilendirir. Yapılandırılan kapsam, özniteliklerin kapsamını belirlemek için kullanılır.
Desteklenen kapsam türleri şunlardır:
Müşteri öznitelikleri
Paylaşılan öznitelikler
Sunucu öznitelikleri
Şekil 7.2 – Varlık nitelikleri kapsamı
Bu düğüm, POST_ATTRIBUTES_REQUEST mesaj türü ile gelen mesajları bekler. Eğer mesaj türü POST_ATTRIBUTES_REQUEST değilse, mesaj başarısızlık zinciri üzerinden yönlendirilecektir.
Özellikler mevcut API (HTTP / MQTT / CoAP / vb.) üzerinden yüklenmişse, doğru yük verisi ve türüne sahip bir mesaj Kök Kural Zincirinin giriş düğümüne iletilir.
Kural zinciri içinde özelliklerin kaydedilmesini tetiklemek gerektiğinde, kural zinciri mesaj yükünü beklenen formata dönüştürmek ve mesaj türünü POST_ATTRIBUTES_REQUEST olarak ayarlamak üzere yapılandırılmalıdır. Bunun için Script Transformation düğümü kullanılabilir.
Beklenen mesaj yükü örneği şu şekildedir:
Eğer öznitelikler başarıyla kaydedilirse, orijinal mesaj Başarı zinciri üzerinden bir sonraki düğüme geçirilir. Aksi takdirde, Hata zinciri kullanılır.
Zaman Serisi Kaydetme Düğümü #
Şekil 8.1 – Zaman serisi kaydetme düğümü
Bu düğüm, gelen mesajın zaman serisi verilerini veritabanına kaydeder ve bunları mesaj kaynağı tarafından belirlenen varlıkla ilişkilendirir. Yapılandırılan TTL değeri, zaman serisi verilerinin geçerlilik süresini belirler. 0 değeri, verilerin süresinin asla dolmayacağı anlamına gelir.
Şekil 8.2 – Varsayılan TTL süresi
Ayrıca, ‘Skip latest persistence‘ bayrağı true olarak ayarlandığında, gelen anahtarlar için en son zaman serisi verilerinin (‘ts_kv_latest’ tablosu) değerlerinin güncellenmesini devre dışı bırakabilirsiniz. Bu özellik yüksek yüklü kullanım durumlarında veritabanındaki baskıyı azaltmak için faydalı olabilir. Ancak, lütfen bu özelliğin sadece panolarda gelişmiş filtreleme gerektirmeyen kullanım durumlarında etkinleştirilmesi gerektiğini unutmayın. En son değeri almak için, tarihsel veriler 1 adet limit ile DESC sıralamasıyla alınabilir.
Şekil 8.3 – Güncellemeleri devre dışı bırak.
Bu düğüm, POST_TELEMETRY_REQUEST mesaj türüyle gelen mesajları bekler. Mesaj türü POST_TELEMETRY_REQUEST değilse, mesaj Failure zinciri üzerinden yönlendirilir.
Zaman serisi verileri mevcut bir API (HTTP / MQTT / CoAP / vb.) üzerinden yayınlandığında, doğru payload ve türdeki bir mesaj, Kök Kural Zincirinin Giriş düğümüne iletilir.
Zaman serisi verileri kaydetmenin kural zinciri içinde tetiklenmesi gerektiği durumlarda, kural zinciri mesaj yükünü beklenen formata dönüştürmek ve mesaj türünü POST_TELEMETRY_REQUEST olarak ayarlamak için yapılandırılmalıdır. Bu, Script Transformation düğümü kullanılarak yapılabilir.
Mesaj Meta verileri, ts alanını içermelidir. Bu alan, yayınlanan telemetrinin milisaniye cinsinden zaman damgasını belirler.
Ayrıca, mesaj Meta verileri TTL alanını içeriyorsa, değeri zaman serisi verilerinin süresini belirlemek için kullanılır. Aksi takdirde, düğüm yapılandırmasındaki TTL kullanılır.
Çoklu kaynaklardan (cihazlar, varlıklar vb.) gelen mesajları birleştirirken, mesaj işleme zaman damgası yerine mesaj zaman damgasını kullanmak için ‘useServerTs’ parametresini etkinleştirebilirsiniz.
Sıralı işleme durumlarında, platform mesajların kuyruğa gönderilme sıralarına göre işlendiğini garanti eder. Ancak, birden fazla cihaz/sunucu tarafından kaynaklanan mesajların zaman damgaları kuyruğa gönderilmeden önce senkronize olmayabilir. DB katmanı, yeni kaydın önceki kayıttan daha eski bir zaman damgası taşıması durumunda “nitelikler” ve “en son değerler” tablolarının güncellemelerini yoksaymak için belirli optimizasyonlara sahiptir.
Tüm mesajların doğru şekilde işlenmesini sağlamak için, bu parametreyi sıralı mesaj işleme senaryoları için etkinleştirmelisiniz.
Beklenen mesaj yükü örneği şöyledir:
Eğer zaman serisi verilerinin kaydedilmesi başarılı olursa, orijinal mesaj Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Başarısızlık zinciri kullanılır.
Özel Tabloya Kaydet #
Şekil 9.1 – Özel Tabloya Kaydetme düğümü
Bu düğüm, gelen mesaj yükünden gelen verileri önceden belirlenmiş özel bir Cassandra veritabanı tablosuna kaydeder. Bu tablonun öntakısının ‘cs_tb_’ olması gerektiğinden, veri ekleme işlemi sırasında ortak TB tablolarına veri eklenmesi önlenir.
Lütfen bu kural düğümünün yalnızca Cassandra DB için kullanılabileceğini unutmayın.
Yapılandırma:
Yönetici, özel tablo adını öntakısız olarak belirlemelidir: cs_tb_.
Şekil 9.2 – Özel tablo adı
Yönetici, mesaj alan adları ile tablo sütun adları arasındaki eşleştirmeyi yapılandırabilir. Eşleştirme anahtarı $entityId ise, bu mesajın kaynağı tarafından tanımlanır ve uygun sütun adına (eşleştirme değeri) mesaj kaynağı kimliği yazılır.
Şekil 9.3 – Yönetici, mesaj alan adları ile tablo sütun adları arasındaki eşleştirmeyi yapılandırabilir.
Eğer belirtilen mesaj alanı mesaj verilerinde bulunmuyorsa veya JSON ilkel bir veri tipi değilse, çıkış mesajı Failure zinciri üzerinden yönlendirilir. Aksi takdirde, mesaj Success zinciri üzerinden yönlendirilir.
Not: Lütfen yapılandırmada metadata anahtarlarını kullanmadığınızdan emin olun, yalnızca veri anahtarları desteklenir.
Müşteriye Atama Düğümü #
Şekil 10.1 – Müşteriye atama düğümü
Mesaj kaynak varlığını bir müşteriye atayın.
İzin verilen Mesaj Kaynak türleri şunlardır: Varlık, Cihaz, Varlık Görünümü ve Gösterge Paneli.
Düzenli müşteri adı kalıbına göre hedef müşteriyi bulur ve bu müşteriye kaynak varlığı atar.
Müşteri mevcut değilse ve ‘Mevcut değilse yeni müşteri oluştur‘ ayarı etkinleştirilmişse yeni bir müşteri oluşturulur.
Yapılandırma:
Şekil 10.2 – Müşteri yapılandırmaları.
“Müşteri adı kalıbı” doğrudan müşteri adı veya mesaj metadata kullanarak gerçek müşteri adına çözülebilen bir kalıp olabilir.
“Eğer mevcut değilse yeni müşteri oluştur” seçeneği işaretlenirse, müşteri mevcut değilse yeni bir müşteri oluşturulur.
“Müşteriler önbellek süresi”, bulunan müşteri kayıtlarının depolanmasına izin verilen maksimum süreyi saniye cinsinden belirtir. 0 değeri, kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilir:
Kaynak varlık tipi desteklenmiyorsa.
Hedef müşteri mevcut değilse ve “Eğer mevcut değilse yeni müşteri oluştur” seçeneği işaretlenmemişse.
Diğer durumlarda mesaj Başarı zinciri üzerinden yönlendirilecektir.
Müşteriden Atamayı Kaldırma Düğümü #
Şekil 11.1 – Müşteriden atamayı kaldırma düğümü
Aşağıdaki Mesaj Kaynak Varlığı tipleri desteklenir: Varlık (Asset), Cihaz (Device), Varlık Görünümü (Entity View), Gösterge Paneli (Dashboard).
Müşteriyi müşteri adı kalıbına göre bulur ve kaynak varlığın bu müşteriden atanmasını kaldırır.
Yapılandırma:
Şekil 11.2 – Müşteri yapılandırmaları.
“Müşteri adı deseni”, doğrudan müşteri adı veya mesaj metadata kullanarak gerçek müşteri adına çözülebilecek bir desen olarak ayarlanabilir.
“Müşterilerin önbellek süresi”, bulunan müşteri kayıtlarını depolamak için izin verilen maksimum zaman aralığını saniye cinsinden belirtir. Değer 0, kayıtların asla süresinin dolmayacağı anlamına gelir.
Aşağıdaki durumlarda mesaj Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef müşteri mevcut değilse.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilecektir.
İlişki Oluşturma Düğümü #
Şekil 12.1 – İlişki oluşturma düğümü
Bu düğüm, mesajın kaynağına göre seçilen varlıktan, belirli bir yönde ve tipte bir ilişki oluşturur.
Aşağıdaki Mesaj Kaynağı türleri izin verilir: Asset, Device, Entity View, Customer, Tenant ve Dashboard.
Düğüm, metadata anahtar kalıplarıyla hedef varlığı bulur ve sonra kaynak varlık ile hedef varlık arasında bir ilişki oluşturur.
Seçilen varlık türü Asset, Device veya Customer ise, kural düğümü yeni bir varlık oluşturur ve “Yeni Varlık Oluştur” onay kutusu işaretlenmişse varlık yoksa.
Not: Seçilen varlık türü Asset veya Device ise, iki desen ayarlamanız gerekir: varlık adı kalıbı ve varlık türü kalıbı. Aksi takdirde, yalnızca ad kalıbı ayarlanmalıdır.
Yapılandırma:
Şekil 12.2 – Varlık yapılandırmaları.
“Direction” iki tipe izin verir: “From” ve “To”.
“Relation type“, mesaj kaynağı varlığına yönlendirilmiş bağlantıların türünü belirler. Varsayılan tipler “Contains” ve “Manages” listeden seçilebilir.
“Name pattern” ve “Type pattern”, doğrudan bir varlık adı/tipi veya mesaj meta verileri kullanılarak çözülecek bir kalıp olabilir.
“Entities cache expiration time“, bulunan hedef varlık kayıtlarını saklamak için izin verilen maksimum zaman aralığını saniye cinsinden belirtir. 0 değeri kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj şu durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef varlık mevcut değilse.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilir.
Not: Kural düğümü şunları yapabilir:
Yön ve tür temelinde gelen mesajın kaynağındaki mevcut ilişkileri kaldırın.
Şekil 12.3 – Mevcut ilişkileri kaldır.
Gelen mesajın kaynağını seçilen varlık olarak değiştirin ve çıkış mesajlarını başka bir varlık olarak işleyin.
Şekil 12.4 – Originator’ü ilgili varlık olarak değiştir
İlişki Silme Düğümü #
Şekil 13.1 – İlişki silme düğümü
Bu düğüm, seçilen varlıktan mesajın kaynağına doğru olan ilişkiyi türüne ve yönüne göre siler.
İzleyici kaynağı türleri şunları içerir: Varlık, Aygıt, Varlık Görünümü, Müşteri, Tenant ve Kontrol Paneli.
Düğüm, hedef varlığı varlık adı kalıbına göre bulur ve kaynak varlık ile bu varlık arasındaki ilişkiyi siler.
Yapılandırma:
Şekil 13.2 – İlişki yapılandırmaları.
“Direction” iki tür kabul eder: “From” ve “To”.
“Relation type”, mesaj kaynak varlık ile yönlendirilmiş bağlantı türünü belirler. Varsayılan türler “Contains” ve “Manages” açılır menü listesinden seçilebilir.
“Name pattern“, doğrudan bir varlık adı veya mesaj meta verilerini kullanarak gerçek varlık adına çözülebilecek bir desen olarak ayarlanabilir.
“Entities cache expiration time“, bulunan hedef varlık kayıtlarını saklamak için izin verilen maksimum süreyi saniye cinsinden belirler. 0 değeri, kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef varlık yoksa.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilecektir.
Not: Kural düğümü, aşağıdaki onay kutusunu devre dışı bırakarak, yönlendirme ve tipe bağlı olarak gelen mesajın kaynağından belirtilen varlığa veya varlık listesine yönelik ilişkiyi silme yeteneğine sahiptir: “Yalnızca belirtilen varlıklarla ilişkiyi silin.”
Şekil 13.3 – Yalnızca belirtilen varlıklarla olan ilişki silinir.
GPS Geofencing Etkinlikleri Düğümü #
Şekil 14.1 – GPS Geofencing etkinlikleri düğümü
Bu düğüm, GPS tabanlı parametrelere göre gelen mesajları üretir. Gelen mesaj verilerinden veya meta verilerinden enlem ve boylamı çıkarır ve coğrafi çitlerle ilgili yapılandırma parametrelerine göre farklı olaylar döndürür.
Şekil 14.2 – Enlem ve boylam parametreleri alınır.
Varsayılan olarak, kural düğümü mesaj meta verilerinden çevre bilgilerini alır. Ancak, “Mesaj meta verilerinden çevre bilgilerini al” seçeneği işaretli değilse, ek bilgiler yapılandırılmalıdır.
Mesaj meta verilerinden çevre bilgilerini al
Çevre tipi, bir alanın tanımlanması için mevcut iki seçeneği belirler: Çokgen ve Daire.
Gelen mesajın meta verileri, ‘çevre’ adlı bir anahtar içermeli ve aşağıdaki veri yapısını içermelidir:
Çokgen
[[latitude1,longitude1],[latitude2,longitude2], … ,[latitudeN,longitudeN]] |
Daire
{“latitude”:“value1”,“longitude”:“value2”,“radius”:“value3”,“radiusUnit”:“KILOMETER”} |
“latitude” ve “longitude” anahtarları bir noktanın koordinatlarını temsil eder.
“radius” anahtarı, koordinat noktasından daireye olan mesafeyi belirtir.
Bu anahtarlar için tüm değerler, çift hassasiyetli kayan nokta veri tipinde olmalıdır.
“radiusUnit” anahtarı, METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE gibi belirli bir listeden seçilmiş bir değer içermelidir (büyük harfler zorunludur).
Düğüm yapılandırmasından çevre bilgilerini al
Çevre tipine bağlı olarak bir alanın tanımlanması için iki seçenek vardır:
Çokgen
Şekil 14.3 – Çevre türünün çokgen(polygon) olduğu yapılandırma.
Daire
Şekil 14.4 – Çevre türünün daire(circle) olduğu yapılandırma.
Olay Türleri:
Geofencing kural düğümü, dört tür olayı yönetir:
Giriş – Gelen mesajdaki enlem ve boylam ilk kez gereken çevre alanına ait olduğunda bildirilir.
Çıkış – Gelen mesajdaki enlem ve boylam artık ilk kez gereken çevre alanına ait değilse bildirilir.
İçeride ve Dışarıda olayları, mevcut durumu bildirmek için kullanılır.
Yönetici, içeride veya dışarıda olayları bildirme süresi eşiğini yapılandırabilir. Örneğin, minimum içeride kalma süresi 1 dakika olarak ayarlandığında, mesaj kaynağı, alana girdikten 60 saniye sonra çevre içinde kabul edilir. Minimum dışarıda kalma süresi, mesaj kaynağının çevrenin dışında kabul edilme zamanını belirler.
Şekil 14.5 – Olayları bildirme süresi eşiği yapılandırması.
Başarısızlık zinciri, aşağıdaki durumlarda tetiklenecektir:
Gelen mesaj, veri veya meta verilerinde ne bir enlem ne de boylam anahtarı içermediğinde.
Çevre tanımı eksik olduğunda.
Buluta Aktarma Düğümü #
Şekil 15.1 – Buluta aktarma düğümü
Bu düğüm, mesajları edge’den cloud’a göndermek için tasarlanmıştır. Bu amaçla sadece edge üzerinde kullanılabilir. Bu düğüm tarafından bir mesaj alındığında, cloud olayına dönüştürülür ve yerel veritabanına kaydedilir. Düğüm mesajları doğrudan cloud’a göndermez, ancak olay(lar)ı cloud kuyruğunda depolar. Aşağıdaki kaynak türleri desteklenir:
DEVICE
ASSET
ENTITY_VIEW
DASHBOARD
TENANT
CUSTOMER
EDGE
Ek olarak, düğüm tarafından aşağıdaki mesaj türleri desteklenir:
POST_TELEMETRY_REQUEST
POST_ATTRIBUTES_REQUEST
ATTRIBUTES_UPDATED
ATTRIBUTES_DELETED
ALARM
Eğer edge olayı veritabanına başarılı bir şekilde kaydedilirse, mesaj Başarı yönlendirme yoluyla yönlendirilir.
Şekil 15.2 – Kural düğümü ekleme.
Mesaj aşağıdaki durumlarda Başarısızlık zincirine yönlendirilecektir:
Düğüm, edge olayını veritabanına kaydetmekte başarısız olursa,
Desteklenmeyen kaynak türü alınırsa,
Desteklenmeyen mesaj türü alınırsa.
Kenara itin (Edge’e Gönderin) #
Şekil 16.1 – Edge’e gönderme düğümü
Bu düğüm, buluttan kenara mesaj göndermek için bulut örneklerinde kullanılır. Mesaj kaynağı, belirli bir kenara atanmış olmalıdır veya mesaj kaynağı EDGE varlığı kendisidir. Bu düğüm, bir mesaj aldığında, bunu kenar olayına dönüştürür ve veritabanına kaydeder. Düğüm, mesajları doğrudan kenara göndermez, ancak olay(ları) kenar(edge) kuyruğunda depolar. Aşağıdaki kaynak türleri desteklenir:
DEVICE
ASSET
ENTITY_VIEW
DASHBOARD
TENANT
CUSTOMER
EDGE
Ek olarak, düğüm tarafından desteklenen şu mesaj türleri vardır:
POST_TELEMETRY_REQUEST
POST_ATTRIBUTES_REQUEST
ATTRIBUTES_UPDATED
ATTRIBUTES_DELETED
ALARM
Edge olayı başarıyla veritabanına kaydedildiyse, mesaj Başarı yönlendirmesi aracılığıyla yönlendirilir.
Şekil 16.2 – Kural düğümü ekleme.
Mesaj aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Düğüm, kenar olayını veritabanına kaydedemedi.
Desteklenmeyen kaynak türü alındı.
Desteklenmeyen mesaj türü alındı.
Tenantlar #
Fast IoT Platform, kutudan çıkan bir Multitenancy desteği sunar. Böylece, cihazları sahibi veya üreten bireysel veya kurumsal bir varlık olarak ele alabileceğiniz Fast IoT Platform Tenant’ını ayrı bir işletme varlığı olarak ele alabilirsiniz.
Sistem yöneticisi, tenant varlıklarını oluşturma yeteneğine sahiptir.
Şekil 1 – Tenantlar sayfası.
Sistem yöneticisi, her Tenant için “Tenant Yöneticisi” rolüne sahip çoklu kullanıcılar oluşturabilir ve bunu Tenant ayrıntılarındaki “Tenant Yöneticilerini Yönet” düğmesine tıklayarak yapabilir.
Şekil 2 – Tenant detayları sayfası.
Tenant Yöneticisi şu işlemleri gerçekleştirebilir:
Cihazları sağlama ve yönetme.
Varlıkları sağlama ve yönetme.
Müşterileri oluşturma ve yönetme.
Gösterge panolarını oluşturma ve yönetme.
Kural motorunu yapılandırma.
Varsayılan widget’ları Widget Kütüphanesi kullanarak ekleme veya değiştirme.
Yukarıda listelenen tüm işlemler REST API aracılığıyla kullanılabilir.
Tenant Ekleme #
Yeni bir kiracı eklemek için lütfen şu talimatları izleyin:
Sol taraftaki menüden Tenantlarlar’ı seçin. Ardından yeni bir Tenant eklemek için artı simgesine tıklayın.
Şekil 3.1 – Yeni bir Tenant eklemek için artı simgesine tıklayın.
Pencere açıldığında, tüm kiracı bilgilerini düzenleyebilirsiniz. Başlık ve tenant profil alanlarını doldurmanız önemlidir. Ayrıca, tenantın ülkesi, şehri, adresi, telefon numarası ve e-posta adresini isteğe bağlı olarak ekleyebilirsiniz.
Şekil 3.2 – Tenant ekleme sayfası
Sistem yöneticisi olarak, kiracı ayrıntıları sayfasına erişiminiz bulunmaktadır. Burada özellikleri, son telemetriyi görüntüleyebilir, ana paneli atayabilir ve tenant kimliğini kopyalayabilirsiniz
Şekil 3.3 – Tenant yönetimi
Tenant Yöneticisi Ekleme #
Sistem yöneticisi, her kiracı içinde Kiracı yöneticisi rolüne sahip birden çok kullanıcı oluşturma yeteneğine sahiptir.
Bir Tenant yöneticisi eklemek için lütfen aşağıdaki talimatları izleyin:
Oluşturduğunuz kiracıya tıklayın.
“Tenant yöneticilerini yönet” seçeneğine tıklayın.
Yeni bir kullanıcı eklemek için artı simgesine tıklayın.
Şekil 4 – Tenant yöneticisi ekleme
Yeni bir kullanıcı oluşturduktan sonra, sistem yöneticisi kullanıcının ayrıntılarını düzenleyebilir ve aşağıdaki işlem sekmelerini kullanabilir:
Kullanıcı hesabını devre dışı bırakmak için “Kullanıcı Hesabını Devre Dışı Bırak” seçeneğini kullanabilir.
Kiracı yöneticisi kullanıcısı için etkinleştirme bağlantısını göstermek için “Etkinleştirme Bağlantısını Göster” seçeneğini kullanabilir.
Kullanıcının e-posta kutusuna hesap etkinleştirme e-postasını yeniden göndermek için “Etkinleştirmeyi Yeniden Gönder” seçeneğini kullanabilir.
Kiracı yöneticisi olarak giriş yapmak için “Kiracı Yöneticisi Olarak Giriş Yap” seçeneğini kullanabilir ve FAST IoT Platformuna Kiracı yöneticisi arayüzünden erişebilir.
Sistem yöneticisi, kullanıcı ayrıntıları sayfasından ve kiracı yöneticileri listesinden kullanıcıları silme yeteneğine de sahiptir.
Tenant Yöneticisi olarak oturum açın #
Gerektiğinde, kullanıcının bakış açısından kullanıcı arayüzünü görüntülemek için Tenant yöneticisi olarak giriş yapabilirsiniz.
Şekil 5 – Tenant yöneticisi olarak oturum açın.
Tenant Yöneticisi aşağıdaki görevleri gerçekleştirmek için yetkilidir:
Cihazları tedarik etmek ve yönetmek.
Varlıkları tedarik etmek ve yönetmek.
Müşterileri oluşturmak ve yönetmek.
Gösterge panolarını oluşturmak ve yönetmek.
Kural motorunu yapılandırmak.
Varsayılan widget’ları Widget Kütüphanesi’ni kullanarak eklemek veya değiştirmek.
Yukarıda bahsedilen tüm işlemler REST API kullanılarak gerçekleştirilebilir.
Bir Tenantı Silme #
Ayrıca, Tenant ayrıntıları penceresinde Tenantı silme seçeneği bulunmaktadır.
Şekil 6 – Tenantı silme
Bunun yerine, gereken Kiracıyı tüm kullanıcılarıyla birlikte doğrudan Kiracılar listesinden silebilirsiniz.
Ayrıca, gibi çöp kutusu simgesine tıklayarak Tenantı tüm kullanıcılarıyla birlikte kolayca silebilirsiniz.
Tenant Profilleri #
Genel Bakış #
Sistem Yöneticisi Tenant Profillerini kullanarak birden fazla Tenant için ortak ayarları yapılandırabilir. Her Tenantın yalnızca tek bir profil kaydı vardır.
Tenant profilinde mevcut olan ayarları tek tek inceleyelim.
Varlık Sınırları #
Bu ayar grubu, Sistem Yöneticisinin her Tenant tarafından oluşturulabilecek maksimum varlık sayısını yapılandırmasına olanak tanır.
Fast IoT Platform’da, sınırlar aşağıdaki varlıklar için belirlenebilir: cihazlar, varlıklar, müşteriler, kullanıcılar, panolar ve kural zincirleri.
Şekil 1 – Tenant profili ayrıntıları.
API Sınırları ve Kullanımı #
Bu grup ayarlar, her bir Tenant’ın ayda gerçekleştirebileceği maksimum mesaj, API çağrısı vb. sayısını bir Sistem Yöneticisinin yapılandırmasına olanak tanır. Fast IoT Platform API kullanımı hakkında istatistikleri sürekli olarak toplar ve analiz eder. İstatistiklerin tipik güncelleme aralığı 1 dakikadır.
Fast IoT Platform, API Kullanımını altı ana bileşen için takip eder: Taşıma, Kural Motoru, JS işlevleri, Telemetri Kalıcılığı, E-posta ve SMS hizmetleri. Platform, ilgili API sınırından birini aştığında bileşeni devre dışı bırakır. Örneğin, bir Tenantnın cihazları ayda 100 milyondan fazla mesaj üretirse, platform bu Tenantya ait tüm bağlantıları devre dışı bırakır. API kullanımı devre dışı bırakıldığında veya belirli bir eşiğe ulaştığında (genellikle %80), Fast IoT Platform Tenant Yöneticisini e-posta yoluyla bilgilendirir.
Her bir sınırlamayı ayrı ayrı inceleyelim:
Taşıma Mesajları, cihazınızın sunucuya gönderdiği herhangi bir mesajı ifade eder. Bu, telemetri, öznitelik güncellemesi, RPC çağrısı vb. olabilir.
Taşıma Veri Noktaları, telemetri veya öznitelik mesajlarınızın içerdiği anahtar-değer çiftlerinin sayısını ifade eder. Örneğin, aşağıdaki mesaj 5 veri noktası içerir, çünkü “jsonKey” bir veri noktasına karşılık gelir.
Eğer bir String veya JSON anahtarı 512 karakterden daha büyük bir değere sahipse, platform bunu birden fazla veri noktası olarak sayar.
Kural Motoru yürütümleri, mevcut Tenantya ait olan kural düğümünün her yürütülmesini ifade eder. Tek bir telemetri mesajı birden fazla Kural Motoru yürütmesini tetikleyebilir ve Jeneratör düğümlerinden gelen periyodik mesajlar da sayılır.
JavaScript yürütümleri, Tenant Yöneticileri tarafından tanımlanan özel bir fonksiyonun her yürütülmesini ifade eder. Bu, “Script” filtresinin işlenmesi, bir dönüşüm düğümü ve veri dönüştürücünün çağrılmasını içerir.
Veri noktası depolama günleri, veritabanında depolanacak veri noktalarının sayısını, depolama süresinin gün sayısı ile çarparak hesaplanır. TTL parametresi, verilerin depolanacağı gün sayısını çıkarmak için kullanılır. Örneğin, 30 gün boyunca 3 veri noktasını depoladığınızda, bu 90 depolama veri noktası günüdür. Tenant profilindeki “Varsayılan Depolama TTL Günleri” parametresi, varsayılan TTL’yi yapılandırmak için kullanılabilir, Tenant Yöneticisi, “Kaydet Zaman Serisi” kural düğümü yapılandırması veya telemetri isteğindeki “TTL” parametresi kullanarak varsayılan TTL’yi geçersiz kılabilir.
Alarmlar TTL, alarmların veritabanında kaç gün saklanacağını ifade eder.
Gönderilen Alarmlar toplam alarm sayısını ifade eder (varsayılan olarak bir ay).
Gönderilen e-postalar, sistem SMTP sağlayıcısını (ayarlar) kullanarak kural motorundan gönderilen e-posta sayısını ifade eder. Tenant Yöneticileri, platformun Community ve Professional Sürümlerinde özel SMTP ayarlarını tanımlayabilirler. Özel SMTP ayarlarıyla gönderilen e-postalar API sınırlarını etkilemez.
Gönderilen SMS’ler, sistem SMS sağlayıcısını kullanarak kural motorundan gönderilen SMS sayısını ifade eder. Tenant Yöneticileri, platformun Community ve Professional Sürümlerinde özel SMS sağlayıcı ayarlarını tanımlayabilirler. Özel SMTP ayarlarıyla gönderilen SMS’ler API sınırlarını etkilemez.
API Kullanım Kontrol Paneli #
Bir Tenant Yöneticisi olarak, saatlik, günlük ve aylık API kullanımınız hakkında bilgi sağlayan API Kullanımı gösterge paneline erişiminiz vardır. Bu gösterge paneli, API sınırlarının durumunu hızlıca incelemenizi sağlar.
Şekil 2 – API kullanımı paneli.
Rate Limitleri #
Bu yapılandırma ayarları, Sistem Yöneticisinin platformun belirli bir cihaz için (cihaz düzeyi) veya tek bir Tenant’a ait tüm cihazlar için işleyebileceği maksimum istek sayısını ayarlamasına olanak tanır. Hız sınırları, jeton kova algoritması kullanılarak uygulanır.
Hız sınırı tanımı, bir değer ve bir zaman aralığı içerir. Örneğin, “1000:60” 60 saniyelik bir aralıkta işlenebilecek maksimum 1000 mesajı gösterir. Birden fazla aralık virgüllerle belirtilebilir. Örneğin, “100:1,1000:60” sistemde saniyede 100 mesajlık art arda gelen yükleri işleyebilir, ancak 60 saniyede en fazla 1000 kez işlem yapabilir.
Şekil 3 – Tenant profili Rate limit ayarlamaları.
#
Kullanıcı Grupları #
Genel Bakış #
Müşteri, Tenant cihazlarını ve varlıklarını satın alan veya kullanan ayrı bir işletme birimi, birey veya örgütü ifade eder. Bu müşteri, milyonlarca cihaz ve varlık ile ilişkilendirilmiş çoklu kullanıcılara sahip olabilir.
Kullanıcı Ekleme #
Eğer bir Tenant yöneticisi iseniz, yeni bir müşteri ekleyebilmek için aşağıdaki adımları takip edebilirsiniz:
Sol taraftaki menüye gidin ve Kullanıcı Grupları’nı seçin.
Şekil 1 – Ana sayfadaki sol menüden Kullanıcı Grupları’na gidin.
Yeni bir öğe açmak için, ekranın sağ üst köşesindeki artı işaretine tıklayın.
Şekil 2 – Yeni kullanıcı grubu ekleme.
Pencere açıldıktan sonra, Müşteri başlığını yazın. Ayrıca, ülke adı, şehir, adres ve telefon numarası gibi ek bilgileri de isteğe bağlı olarak belirtebilirsiniz. Yeni oluşturulan Müşteri’nin verilerini kaydetmek için Ekle düğmesine basın.
Şekil 3 – Kullanıcı bilgileri doldurulur.
Ilgili sekme üzerine tıklayarak, Tenant yöneticisi Müşteri ayrıntıları sayfasından kullanıcıları, varlıkları, cihazları, panoları ve kenarları doğrudan yönetebilir. Ayrıca, Tenant yöneticisi bu ayrıntılardan müşteri kimliğini kopyalayabilir. Herhangi bir bilgiyi değiştirmek için sadece kalem simgesine tıklayın.
Aşağıdaki gibi, Tenant ayrıca ana panoyu atayabilir ve Müşteri ayrıntıları penceresinde araç çubuğunun görünürlüğünü seçebilir.
Daha fazla yardım için, sağ üst köşedeki Soru işaretine tıklayarak kullanıcı kılavuzuna erişebilirsiniz.
Şekil 4 – Soru işareti ikonu yardım sayfasına yönlendirir.
Bir müşteriye varlıklar tahsis etmek için, Varlıkları Yönet‘e tıklayın. Varlık listesinden istenen varlığı seçin ve Atama’yı tıklayın. Tüm atanan varlıklar müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye cihaz atamak için, Cihazları Yönet‘i tıklayın. Entity açılır menüsünden cihazı seçin ve Atama’yı tıklayın. Tüm atanan cihazlar müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye bir gösterge paneli atamak için, Gösterge Panellerini Yönet‘i tıklayın. Entity listesinden gösterge panelini seçin ve Atama’yı tıklayın. Tüm atanan gösterge panelleri müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye uç atamak için, Uçları Yönet‘i tıklayın. Entity listesinden kenarı seçin ve Atama’yı tıklayın. Tüm atanan kenarlar müşteri tarafından görülebilir hale gelecektir.
Tenant yöneticisi bir müşteriyi silmek için aşağıdaki yöntemlerden birini kullanabilir:
Müşteri detayları sayfasında bulunan Sil müşteri sekmesine tıklayın.
Şekil 5 – Kullanıcı grubu detaylarından kullanıcı grubu silinebilir.
Aşağıdaki resimde gösterildiği gibi, Müşteriler listesindeki Çöp Kutusu simgesine tıklayın.
Şekil 6 – Kullanıcı grupları sayfasından satır sonundaki ikon ile kullanıcı grubu silinebilir.
Bir Tenant yöneticisi olarak, bir veya birden fazla Müşteri ve Müşteri Kullanıcısı ekleyebilirsiniz. Ayrıca, Müşteri kullanıcılarına farklı cihazlar ve panolar atayabilir ve belirli görüntüleme izinleri sağlayabilirsiniz.
NOT: Müşteriyi silmek, bu rolle ilişkili tüm verilerin ve kendisi düzeyinin kaybedilmesine neden olur.
Müşteri Kullanıcısı Ekleme #
Müşteri Kullanıcısı eklemek için, Kullanıcıları Yönet sekmesini seçin ve yeni bir kullanıcı eklemek için artı simgesine tıklayın.
Şekil 7 – Kullanıcıları yönet sekmesinden yeni kullanıcı oluşturulabilir.
Burada müşteri kullanıcısı oluşturma süreci hakkında daha fazla bilgi edinin.
Kullanıcılar #
Genel Bakış #
Fast IoT Platform platformunda üç seviyede rol bulunmaktadır ve her seviyede kullanıcı oluşturulabilir:
Sistem yöneticisi: Sistem yöneticisi, bir Tenant yöneticisi kullanıcısı oluşturabilir.
Tenant yöneticisi: Tenant yöneticisi, bir Müşteri kullanıcısı oluşturabilir.
Müşteri kullanıcısı: Bu rol, Tenant yöneticisi tarafından atanan gösterge panoları ve diğer varlıkları görüntüleme iznine sahiptir. Ancak, Müşteri kullanıcısı kendi başına herhangi bir müşteri veya alt müşteri oluşturamaz.
Sistem yöneticisi #
Sistem yöneticisi iseniz, bir Kullanıcı oluşturmak için aşağıdaki adımları izleyebilirsiniz:
Sol taraftaki menüde “Tenantlar” a gidin, Tenant yöneticilerine gidin ve artı işaretine tıklayarak yeni bir kullanıcı ekleyin.
Şekil 1 – Tenant Adminleri sayfası
E-postayı doldurduktan ve Kullanıcı Ekle penceresinde etkinleştirme yöntemini seçtikten sonra, isteğe bağlı olarak isim ve açıklama da ekleyebilirsiniz, ardından sistem yöneticisi de yapabilir, yeni kullanıcı oluşturmak için Ekle düğmesine tıklayın.
Şekil 2 – Yeni kullanıcı oluşturma.
Etkinleştirme bağlantısı yöntemini kullanmak için, ok’a tıklayarak bağlantıyı kopyalayın ve kullanıcının kullandığı bir tarayıcıya veya mesajlaşma uygulamasına yapıştırın; aşağıda bir etkinleştirme bağlantısı örneği verilmiştir.
Şekil 3 – Kullanıcı hesabı etkinleştirme bağlantısı.
Etkinleştirme e-postası seçeneğini seçtiyseniz, Fast IoT Platform hesabınızın etkinleştirilmesi ile ilgili mesajı e-posta kutunuzu kontrol edin, “Hesabınızı Etkinleştirin” seçeneğine tıklayın ve şifre oluşturma sürecini takip edin.
NOT: Fast IoT Platform’dan bir e-posta almadan önce, sistem yöneticisi düzeyinde bir posta sunucusu kurmak gereklidir. Talimatlar için posta ayarlarına başvurabilirsiniz.
Bir kullanıcı oluşturulduktan sonra, sistem yöneticisi Tenant ayrıntıları sayfasındaki eylem sekmelerini kullanabilir. Bu sekmeler aşağıdaki seçenekleri içerir:
Kullanıcı hesabını devre dışı bırakma
Tenant yönetici kullanıcısı için aktivasyon bağlantısını görüntüleme
Kullanıcının e-posta kutusuna hesap aktivasyon e-postasını yeniden gönderme
Tenant yönetici olarak oturum açarak Fast IoT Platform platformuna Tenant yönetici arayüzünden erişme
Tenant yöneticisini Tenant kullanıcı listesinden silme, aynı zamanda Sistem Yöneticisi için bir seçenektir.
Şekil 4 – Kullanıcı fonksiyonları.
Eğer yönetici Kullanıcı Hesabını Devre Dışı Bırak seçeneğini seçerse, kullanıcı hesabının başarıyla devre dışı bırakıldığını doğrulayan bir mesaj görüntülenecektir. Ayrıca sekme, Kullanıcı Hesabını Etkinleştir olarak değişecektir. Daha fazla açıklama için lütfen aşağıdaki resme bakınız.
Şekil 5 – Kullanıcı hesabı devre dışı bırakma.
Devre dışı bırakılmış bir hesabı olan bir kullanıcı platforma erişmeye çalıştığında, aşağıdaki hata mesajıyla karşılaşacaktır.
Şekil 6 – Devre dışı bırakılmış hesap.
Benzer şekilde, yönetici Kullanıcı Hesabını Etkinleştir seçeneğini seçtiğinde, kullanıcı hesabının başarıyla etkinleştirildiğini belirten bir mesaj sol üst köşede görünecektir. Sekme, Kullanıcı Hesabını Devre Dışı Bırak olarak değişecektir. Daha fazla açıklama için lütfen aşağıdaki resme bakınız.
Şekil 7 – Kullanıcı hesabı etkinleştirme.
Tenant Yöneticisi #
Bir Tenant yöneticisi olarak yeni bir kullanıcı eklemek için aşağıdaki adımları izleyebilirsiniz.
Kullanıcı Grupları sekmesine gidin, ‘kullanıcı grubu kullanıcılarını yönet’ ikonuyla kullanıcılara gidin ve yeni bir kullanıcı oluşturmak için artı simgesine tıklayın.
Şekil 8 – Yeni kullanıcı oluştur.
Kullanıcı ekle penceresinde e-posta adresini girin ve aktivasyon yöntemini seçin. Tenant yöneticisi isteğe bağlı olarak ad ve açıklama ekleyebilir. Gerekli tüm bilgiler girildikten sonra, Ekle’ye tıklayın.
Şekil 9 – Kullanıcı bilgilerini ekleyin.
Kullanıcı oluşturduktan sonra, Tenant Yöneticisi kullanıcı ayrıntıları sayfasında mevcut olan eylem sekmelerini kullanabilir.
Kullanıcı ayrıntıları sayfasındaki mevcut eylem sekmeleri şunlardır:
“Kullanıcı Hesabını Devre Dışı Bırak” – Bu seçenek daha önce açıklandığı gibi, Tenant Yöneticisinin kullanıcı hesabını devre dışı bırakmasına izin verir.
“Aktivasyon Bağlantısını Göster” – Bu seçenek, Müşteri kullanıcısı için aktivasyon bağlantısını gösterir.
“Aktivasyonu Yeniden Gönder” – Bu seçenek, kullanıcının e-posta adresine başka bir aktivasyon e-postası gönderir.
“Müşteri Kullanıcısı Olarak Giriş Yap” – Bu seçenek, Tenant Yöneticisinin Fast IoT Platform platformuna, Müşteri kullanıcısının kullanıcı arayüzünden erişmesini sağlar.
Tenant Yöneticisi ayrıca, ‘Kullanıcı Sil’ butonu ile müşteri kullanıcısını müşteri listesinden kaldırma yetkisine sahiptir.
Aşağıdaki resimde gösterildiği gibi, Tenant yöneticisi varsayılan panoyu atama ve tam ekran modunu etkinleştirme seçeneğine sahiptir.
Şekil 10 – Varsayılan panel ve her zaman tam ekran seçenekleri bulunur.
Benzer şekilde, aşağıdaki resimde gösterildiği gibi, Tenant yöneticisi Müşteri kullanıcısı için bir ana panoyu atamayı ve panonun araç çubuğunu gizlemeyi tercih edebilir.
Şekil 11 – Ana pano ataması yapılabilir ve araç çubuğu görünürlüğü düzenlenebilir.
ÖNEMLİ NOT: Bir varsayılan pano ve bir ana pano atamak için birlikte yapılacak herhangi bir işlem gerekli değildir, çünkü varsayılan pano kullanıcının hesabına giriş yaptığında göreceği ilk panodur.
Herhangi bir sorunuz varsa, lütfen sağ üst köşedeki soru işaretine tıklayın.
Müşteri Kullanıcı Arayüzü #
Ana sayfa olarak varsayılan kontrol paneli #
Müşteri kullanıcısı hesabına giriş yaptığında, varsayılan pano ilk gördüğü şeydir. Tenant yöneticisi tam ekran varsayılan bir pano atarsa, Müşteri kullanıcısı aşağıdaki örnekte görüldüğü gibi soldaki menü olmadan panoyu görebilir. Panonun araç çubuğu her zaman kullanıcı için erişilebilir olacak ve kullanıcı, bir tane atanmışsa, başka bir panoya geçebilecek ve gerçek zamanlı aralıklar belirleyebilecektir. Ek olarak, bu panoyu dışa aktarma seçeneği bulunmaktadır.
Şekil 12 – Tam ekran modunda anasayfa varsayılan kontrol paneli.
Eğer tam ekran modu seçilmediyse, Müşteri kullanıcıları sol taraftaki menü sekmeleri arasında geçiş yaparak, Tenant yöneticisi tarafından atanmış olan tüm varlıkları, cihazları, varlıkları, edge ve panoları görüntüleyebilirler. Aşağıdaki panolu örnek bu işlevselliği göstermektedir.
Şekil 13 – Tam ekran modu seçilmediği durumda sayfa görünümü.
Ana sayfa olarak ana gösterge paneli #
Eğer Tenant yöneticisi bir dashboard’u ana sayfa dashboard’u olarak atarsa, Müşteri kullanıcısı bu dashboard’u kendi ana sayfasında görecektir. Ana sayfa dashboard’u araç çubuğunu gizle seçeneği seçilirse, Müşteri kullanıcısı ana sayfa dashboard’unu araç çubuğu olmadan görebilir.
Şekil 14 – Ana sayfa paneli.
Ya da kullanıcı, araç çubuğunu kullanarak gerçek zamanlı aralıklar belirleyebilir ve gösterge panelini dışa aktarabilir.
Şekil 15 – Cihazlar(Devices) Gösterge paneli.
Müşteri kullanıcısı, profil ayarlarında ev sayfası panosunu değiştirme veya ev sayfası panosu araç çubuğunu gizleme seçeneğine sahiptir.
Şekil 16 – Kullanıcı profil sayfası.
Cihazlar #
Fast IoT platformu, bir Web UI ve REST API kullanarak aşağıdaki cihaz yönetimi özelliklerini desteklemektedir.
Cihaz ekleme ve silme #
Tenant yöneticisi, Fast IoT Platform’da yeni cihazlar kaydedebilir veya silebilir.
Şekil 1 – Cihazlar sayfası.
Cihaz kimlik bilgilerini yönet #
Tenant yöneticisi, cihaz kimlik bilgilerini yönetme yeteneğine sahiptir. Mevcut sürüm, erişim belirteçleri ve X.509 sertifikalarına dayalı kimlik bilgilerini desteklemektedir.
Şekil 2 – Cihaz kimlik bilgileri.
Cihaz Kimliği Alın #
“Cihaz Kimliğini Kopyala” düğmesi, hem Tenant yöneticisi hem de müşteri kullanıcıların cihaz kimliğini panoya kopyalamasına olanak tanır.
Şekil 3 – Cihaz kimliğini kopyalama.
Cihazları müşterilere atama #
Tenant yöneticisi belirli kullanıcı grubuna cihaz atayabilir. Bu, kullanıcı grubunun kullanıcılarının REST API’leri veya Web UI’yı kullanarak cihaz verilerini almasına olanak tanır.
Şekil 4 – Cihazları müşterilere atama
Cihaz özelliklerine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz özniteliklerine göz atabilirler.
Şekil 5 – Cihaz öznitelikleri.
Cihaz telemetrisine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz telemetri verilerine göz atabilirler.
Şekil 6 – Cihaz telemetri detayları.
Cihaz alarmlarına göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz alarmlarına göz atabilirler.
Şekil 7 – Cihaz alarmları.
Cihaz etkinliklerine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, “Olaylar” sekmesini kullanarak belirli bir cihaza ilişkin olayları gözden geçirebilirler. Yaşam döngüsü olayları ve istatistikler yakında kullanılabilir olacak.
Cihaz ilişkilerini yönetin #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz ilişkilerini yönetebilirler.
Şekil 8 – Cihaz ilişkileri
Cihaz Profilleri #
Genel Bakış #
Tenant yöneticisi, cihaz profillerini kullanarak birden fazla cihaz için ortak ayarları yapılandırabilir. Her cihazın aynı anda yalnızca bir profil olabilir.
Deneyimli Fast IoT Platform kullanıcıları, cihaz türlerinin Cihaz Profili lehine kullanımdan kaldırıldığını fark edeceklerdir. Güncelleme betiği, benzersiz Cihaz Türleri temel alınarak Cihaz Profilleri oluşturacak ve bunları ilgili cihazlara atayacaktır.
Cihaz Profili’nde mevcut olan ayarlara daha yakından bakalım.
Cihaz Profili ayarları #
Kural Zinciri #
Varsayılan olarak, Kök Kural Zinciri, herhangi bir cihaz için gelen tüm mesajları ve olayları işler. Ancak, farklı cihaz türleriniz arttıkça, Kök Kural Zinciri daha karmaşık hale gelebilir. Platform kullanıcılarının çoğu, cihaz türüne bağlı olarak farklı kural zincirlerine mesaj göndermek amacıyla Kök Kural Zinciri oluşturur.
Bu sıkıcı ve zaman alıcı görevden kaçınmak için, Fast IoT Platform ile cihazlarınız için özel bir Kural Zinciri belirtebilirsiniz. Yeni Kural Zinciri, tüm telemetri, cihaz etkinliği (aktif/pasif) ve cihaz yaşam döngüsü (oluşturuldu/güncellendi/silindi) olaylarını alacaktır. Bu ayar, Hem Cihaz Profili sihirbazında hem de Cihaz Profili detaylarında mevcuttur.
Şekil 1 – Yeni Cihaz profili oluşturma.
Queue (İşlem Önceliklendirme) Adı #
Sistemin varsayılan davranışı, tüm cihazlardan gelen giriş mesajlarını ve olaylarını Ana kuyruğu (Queue) kullanarak depolamaktır. Taşıma katmanı, bu mesajları Ana kuyruğa gönderir ve Kural Motoru, yeni mesajları almak için periyodik olarak kuyruğu kontrol eder.
Ancak, farklı cihazlar için farklı kuyruklar kullanmak gerekebilir. Örneğin, Yangın Alarmı/Duman Dedektörü sensörlerinin veri işlemesini diğer cihazlardan ayırmak isteyebilirsiniz. Böylece, milyonlarca su sayacının neden olduğu yoğun yük altında bile, Yangın Alarmı mesajı gecikmesiz işlenecektir. Ayrı kuyrukların olması ayrıca özelleştirilmiş gönderme ve işleme stratejilerinin uygulanabilmesine olanak tanır.
Bu ayarı Cihaz Profili sihirbazı veya Cihaz Profili detaylarından ayarlayabilirsiniz.
Özel bir kuyruk (queue) kullanmayı tercih ederseniz, kullanmadan önce sistem yöneticisi tarafından yapılandırılması gerektiğini unutmayın.
Şekil 2 – Cihaza queue ekleme.
Aktarım yapılandırması #
Fast IoT platformunun mevcut sürümü, Varsayılan, MQTT, CoAP, LWM2M ve SNMP olmak üzere aşağıdaki iletişim protokollerini desteklemektedir.
Şekil 3 – Aktarım protokolü seçimi.
Varsayılan taşıma türü #
Varsayılan taşıma protokolü, önceki sürümlerle uyumluluğu korumak amacıyla tasarlanmıştır. Varsayılan taşıma protokolünü kullanarak, cihazlarınızla bağlantı kurmak için platformun varsayılan MQTT, HTTP, CoAP ve LwM2M API’lerini kullanmaya devam edebilirsiniz. Varsayılan taşıma protokolü için özel bir yapılandırma ayarı gerektirilmez.
MQTT taşıma türü #
MQTT iletişim protokolü, gelişmiş MQTT iletişim ayarlarına izin verir. Artık telemetri yükleme API’si ve özellik güncelleme API’si ile karşılık gelen zaman serisi verileri ve özellik güncellemeleri için özel MQTT konu filtreleri tanımlamak mümkündür.
MQTT iletişim protokolü aşağıdaki ayarlara sahiptir:
MQTT cihaz konu filtreleri #
Özel MQTT konu filtreleri, tekli ‘+’ ve çoklu seviyeli ‘#’ joker karakterlerini destekleyerek, JSON veya Protobuf kullanarak bir yük gönderen neredeyse herhangi bir MQTT tabanlı cihaza bağlanmanıza olanak sağlar.
Şekil 3.1 – MQTT cihaz konu filtreleri
Aşağıdaki görüntüde gösterilen yapılandırmayı kullanarak, aşağıdaki komutu kullanarak zaman serisi verileri yayınlayabilirsiniz:
mosquitto_pub -h ‘IP_ADRES’ -i ‘c1’ -u ‘t1’ -P ‘secret’ -t ‘/telemetry’ -m ‘{“humidity”: 10.3}’ |
ve öznitelik güncellemeleri aşağıdaki komut kullanılarak yayınlanabilir:
mosquitto_pub -h ‘IP_ADRES’ -i ‘c1’ -u ‘t1’ -P ‘secret’ -t ‘/attributes’ -m ‘{“firmwareVersion”: “1.3”}’ |
Bir örnek inceleyelim:
Adım 1. Cihaz profili içinde MQTT cihaz konusu filtresini belirtin.
Adım 2. ‘c1’ istemci kimliği, ‘t1’ kullanıcı adı ve ‘secret’ parolasıyla cihazınız için temel MQTT kimlik bilgilerini sağlayın.
Adım 3. Terminal kullanarak zaman serisi verileri yayınlayın.
Adım 4. Gönderilen veriler cihazın “Son telemetri” sekmesinde görüntülenecektir.
Şekil 3.2.1 – Telemetri ve öznitelikler konu filtreleri belirtilir.
Şekil 3.2.2 – Cihaz kimlik bilgileri belirtilir.
MQTT cihaz yükü #
Varsayılan olarak, platform cihazların verileri JSON aracılığıyla göndermesini bekler. Ancak, yapılandırılmış verileri seri hale getirmenin dilden ve platformdan bağımsız bir yolu olan Protokol Tamponları veya Protobuf aracılığıyla veri göndermek de mümkündür. Bu, iletilen verilerin boyutunu en aza indirmek için uygun bir yöntemdir.
Fast IoT platformunun mevcut sürümü, telemetri yüklemeleri ve öznitelik yüklemeleri için özelleştirilebilir proto şemalarını destekler ve aşağı yönlü mesajlar (RPC çağrıları ve öznitelik güncellemeleri gibi) için bir şema tanımlama becerisini uygular.
Şekil 3.3 – MQTT cihaz yükü Protobuf seçilir.
Şekil 3.4 – Öznitelikler ve RPC istek proto şemaları.
Şekil 3.5 – RPC yanıt protokolü şeması
Fast IoT platform şu anda, Protobuf yapılarını dinamik olarak ayrıştırdığı için OneOf, extensions ve maps gibi bazı Protobuf özelliklerini desteklememektedir.
Diğer yük biçimleriyle uyumluluk
Varsayılan olarak etkin olduğunda, platform Protobuf yük veri formatını kullanır. Ayrıştırma hatası durumunda, platform JSON yük veri formatını kullanmaya çalışır. Bu, firmware güncellemeleri sırasında geriye dönük uyumluluğu sağlamak için kullanışlıdır. Örneğin, ilk firmware sürümü JSON kullanırken, yeni sürüm Protobuf kullanabilir. Cihaz filosu için firmware güncelleme sürecinde, hem Protobuf hem de JSON formatını aynı anda desteklemek gereklidir.
Ancak, geriye dönük uyumluluk modunun etkinleştirilmesi hafif bir performans azalmasına neden olabilir. Bu nedenle, tüm cihazlar güncellendikten sonra bu modun devre dışı bırakılması önerilir.
Şekil 3.6 – Geriye dönük uyumluluk modu devre dışı edilir.
CoAP taşıma türü #
CoAP taşıma türü, CoAP taşıma için gelişmiş ayarlar sağlar. CoAP için cihaz türünü seçmenize olanak tanır.
Şekil 3.7 – Aktarım türünün CoAP olması durumu.
CoAP cihaz tipi: Varsayılan #
Varsayılan olarak, CoAP cihaz türü “Varsayılan”, temel CoAP API’sını destekleyen JSON CoAP cihaz yüküne sahiptir, aynı şekilde Varsayılan taşıma türü gibi. Ancak, veri göndermek için “CoAP cihaz yükü” parametresini “Protobuf” olarak değiştirerek Protocol Buffers yoluyla veri göndermek mümkündür.
Protocol Buffers veya Protobuf, yapılandırılmış verileri seri hale getirmenin dilden ve platformdan bağımsız bir yoludur. İletilen verilerin boyutunu en aza indirmek uygundur.
Fast IoT Platform platformunun mevcut sürümü, telemetri yüklemeleri ve öznitelik yüklemeleri için özelleştirilebilir proto şemaları destekler ve aşağı bağlantı mesajları (RPC çağrıları ve öznitelik güncellemeleri) için bir şema tanımlama becerisini uygular.
Şekil 3.7.1 – Cihaz yükü Protobuf seçilir. Telemetri proto şeması.
Şekil 3.7.2 – RPC istek proto şeması ve RPC yanıt protokolü şeması.
Fast IoT Platform, protobuf yapılarını dinamik olarak ayrıştırdığı için, OneOf, uzantılar ve haritalar gibi belirli protobuf özelliklerini şu anda desteklememektedir.
CoAP cihaz tipi: Roltek NB-IoT #
Mevcut Fast IoT Platformu sürümü, aşağıdaki Roltek NB-IoT sensörleriyle entegrasyon yapabilmektedir: sıcaklık, nem, hava basıncı, diferansiyel basınç, açık/kapalı, sızıntı ve I/O.
Alarm Kuralları #
Fast IoT Platform kullanıcıların Alarm Kuralları ayarlamalarına olanak sağlar. Bu özellik oldukça güçlüdür ancak bazı programlama bilgisi gerektirir. Ancak, yeni sürüm, Alarm Kuralları en popüler alarm tiplerini yapılandırmayı kolaylaştırmak için tanıtılmıştır. Bu, kullanıcıların alarmlar için işlem mantığı kurmak için Rule Engine uzmanı olmaları gerekmediği anlamına gelir. Arka planda, Rule Engine, Alarm Kurallarını “Device Profile” kural düğümü kullanarak değerlendirir.
Alarm Kuralları, Alarm Türü, Oluşturma Koşulları, Anahtar Filtreleri, Koşul Türü, Program, Detaylar, Temizleme koşulu ve Gelişmiş ayarlar gibi birkaç özelliğe sahiptir. Örneğin, Oluşturma Koşulları, Alarmın oluşturulması veya güncellenmesi için karşılanması gereken kriterleri belirtir. Ciddiyet, bir alarm oluşturmak / güncellemek için kullanılır ve cihaz profili alarm kuralları içinde benzersiz olmalıdır. Anahtar Filtreler, öznitelikler veya telemetri değerlerine karşı mantıksal ifadeler belirler. Koşul Türü basit, süre veya tekrarlayan olabilir. Program, kuralın etkin olduğu zaman aralığını tanımlar.
Örnek 1. Basit alarm koşulları #
İşte 10 dereceden büyük olduğunda Kritik bir alarm oluşturmak için adımlar:
Cihaz profiline girin ve düzenleme moduna geçin.
“Alarm kuralı ekle” düğmesine tıklayın.
Alarm Türünü girin ve kırmızı “+” işaretine tıklayın.
“Anahtar Filtresi Ekle” düğmesine tıklayın.
“Zamanseri” anahtar türünü seçin ve anahtar adı olarak “sıcaklık” ı girin. “Değer türünü” “Sayısal” olarak değiştirin. “Ekle” ye tıklayın.
“büyüktür” işlemini seçin ve eşik değeri olarak 10’u girin. “Ekle” ye tıklayın.
“Kaydet” e tıklayın.
Değişiklikleri uygulayın.
Bu adımları takip ederek, sıcaklık 10 dereceden büyük olduğunda Kritik bir alarm oluşturulur.
Şekil 4.1.1 – Cihaz alarm kuralları sayfası.
Şekil 4.1.2 – Alarm kuralı ekleme.
Şekil 4.1.3 – Alarm tipi seçimi ve kural koşulu oluşturma.
Şekil 4.1.4 – Kural koşuluna anahtar filtre ekleme.
Şekil 4.1.5 – Anahtar filtre değerleri seçilir.
Şekil 4.1.6 – Filtre operasyonu ve değeri seçilir.
Şekil 4.1.7 – Eklenen filtre kaydedilmelidir.
Şekil 4.1.8 – Değişiklikleri uygulayın.
Örnek 2. Süreli alarm durumu #
Örnek 1’i değiştirerek sadece belirli bir süre boyunca sıcaklık belirli bir eşik değerini aştığında alarmların tetiklenmesini istediğimizi varsayalım. Bu amaca ulaşmak için, alarm koşulunu düzenlememiz ve koşul tipini “Basit”ten “Süre”ye değiştirmemiz gerekiyor. Ayrıca süre değerini ve birimini belirtmeliyiz.
İşte takip edilmesi gereken adımlar:
Adım 1. Alarm koşulunu düzenleyin ve koşul tipini “Süre” olarak değiştirin. Süre değerini ve birimini belirleyin. Koşulu kaydedin.
Adım 2. Bu adımları izleyerek, sıcaklık eşik değerini bir dakika boyunca aştığında yalnızca alarmlar tetiklenecektir.
Şekil 4.2.1 – Alarm kural koşulu düzenleme.
Şekil 4.2.2 – Değişiklikleri uygulayın.
1 dakika sürenin yerine, belirli bir cihazın, müşterinin veya tenantnın ayarlarına bağlı olarak dinamik bir değer kullanmak istediğinizi varsayalım.
Bu amaçla, sunucu tarafı özellikleri kullanmalısınız.
Lütfen cihazınız için “highTemperatureDurationThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri “1” olarak ayarlayın.
İşte yapmanız gereken adımlar:
Cihazınız için “highTemperatureDurationThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri “1” olarak ayarlayın.
Özelliği kaydedin.
Bu özelliği oluşturarak, alarm koşulundaki alarm gecikmesi için dinamik bir değer olarak kullanabilirsiniz. Bu, alarmın süre eşiğini cihaz, müşteri veya tenant ayarlarına göre ayarlamanıza olanak tanır.
Yeni oluşturduğunuz sunucu taraflı nitelikleri alarm koşulundaki gecikme süresinin dinamik bir değeri olarak kullanmak için şu adımları izleyin:
Adım 3. Alarm koşulunu düzenleyin ve alarm gecikme süresinin dinamik değerine geçmek için “Dinamik değere geçiş” butonuna tıklayın.
Adım 4. Mevcut cihaz, mevcut müşteri veya mevcut tenant ayarlarını kullanıp alarm eşiği değerinin alacağı niteliği belirtin. “Sahibinden devral” seçeneğini de seçebilirsiniz. Bu, eşik değerinin cihaz düzeyinde belirtilmemesi durumunda müşteriden alınmasını sağlar. Nitelik değeri hem cihaz hem de müşteri düzeylerinde belirtilmemişse, kural değeri tenant niteliklerinden alır.
Adım 5. Tüm değişiklikleri kaydedin.
Bu adımları izleyerek, alarm gecikme eşiği değeri, cihaz, müşteri veya tenant ayarlarına göre dinamik olarak belirlenecektir.
Şekil 4.2.3 – “Dinamik değere geçiş” butonuna tıklayın.
Şekil 4.2.4 – “Sahibinden devral” seçeneği seçilerek eşik değerinin belirtilmediği durumda müşteriden alınması sağlanır.
Örnek 3. Tekrarlanan alarm durumu #
Örnek 1’i değiştirerek sadece sensör belirlenen eşik değerini üç kez üst üste aştığında alarmı tetiklemek istediğimizi varsayalım.
Bu amaçla alarm koşulunu düzenlememiz ve koşul tipini “Basit”ten “Tekrarlayan”a çevirmemiz gerekiyor. Ayrıca “3”ü “Olay Sayısı” olarak belirtmeliyiz.
Adım 1. Alarm koşulunu düzenleyin ve koşul tipini “Tekrarlayan” olarak değiştirin. Alarmı tetiklemek için “Olay Sayısı” olarak “3”ü belirtin. Bu değer, cihazınız için herhangi bir özellik belirtilmemişse varsayılan olarak kullanılacaktır. Koşulu kaydedin.
Adım 2. Değişiklikleri kaydedin.
Şekil 4.3.1 – Alarm koşulunu düzenleyin ve koşul tipini “Tekrarlayan” olarak değiştirin. Alarmı tetiklemek için “Olay Sayısı” olarak “3”ü seçin.
Şimdi varsayalım ki alarm koşulunun aşılan sayısı, belirli bir cihaz, müşteri veya tenant ayarlarına bağlı dinamik bir değerle değiştirmek istiyoruz.
Bu amaçla sunucu tarafı özellikleri kullanmalısınız.
Cihazınız için “highTemperatureRepeatingThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri olarak “3”ü belirtin.
Adım 4. “Tekrarlayan” alarm koşulunun dinamik değerine gitmek için “Dinamik değere geç” düğmesine tıklayın.
Şekil 4.3.2 – “Tekrarlayan” alarm koşulunun dinamik değerine gitmek için “Dinamik değere geç” butonuna tıklayın.
Adım 5. “Geçerli cihaz”, “geçerli müşteri” veya “geçerli tenant” ayarlarından birini seçin ve alarmın tetiklenmesi için eşik değeri ne kadar aşılmalıdır, bu değeri belirtin. Ayrıca “Sahibinden devral” seçeneğini de işaretleyebilirsiniz. Devralmak, eşik değerinin cihazda belirtilmemişse müşteriden alınmasına olanak tanır. Hem cihaz hem de müşteri düzeyinde özellik değeri belirtilmemişse kural tenant özelliklerinden değeri alacaktır.
Şekil 4.3.2 – “Geçerli cihaz”, “geçerli müşteri” veya “geçerli tenant” ayarlarından birini seçin ve alarmın tetiklenmesi için eşik değeri ne kadar aşılmalıdır, bu değeri belirtin. Ayrıca “Sahibinden devral” seçeneğini de işaretleyebilirsiniz.
Adım 6. Tüm değişiklikleri kaydedin.
Bu adımları takip ederek, alarm koşulu yalnızca sıcaklık eşik değeri üst üste üç kez aşıldığında tetiklenecektir veya cihaz, müşteri veya tenant ayarları için sunucu tarafı özelliği tarafından belirlenen dinamik değere göre tetiklenecektir.
Örnek 4. Alarm kuralını sil #
Varsayalım ki buzdolabındaki sıcaklık normale döndüğünde alarmı otomatik olarak kapatmak istiyoruz. İşte adımlar:
Adım 1: Cihaz profilini açın ve düzenleme moduna geçin. Ardından, “Alarm temizleme koşulu ekle” butonuna tıklayın.
Şekil 4.4.1 – “Alarm temizleme koşulu ekle” butonuna tıklayın.
Adım 2: Yeni bir koşul eklemek için kırmızı “+” işaretine tıklayın.
Şekil 4.4.2 – Yeni koşul ekleme.
Adım 3: Bir anahtar filtresi ekleyin ve “Ekle” düğmesine tıklayın.
Şekil 4.4.3 – Anahtar filtre ekleme.
Adım 4: Alarm kural koşulunu kaydedin.
Adım 5: Tüm değişiklikleri uygulayın.
Bu adımları takip ederek, buzdolabındaki sıcaklık normale döndüğünde alarm otomatik olarak kapanacaktır.
Örnek 5. Alarm kuralı zamanlamasını tanımlayın #
Çalışma saatleri boyunca alarmları değerlendirmek istediğimizi varsayalım.
Adım 1: Alarm kuralının zamanlamasını düzenleyin.
Şekil 4.5.1 – Alarm kuralının zamanlamasını düzenleyin.
Adım 2: Alarm kuralının değerlendirileceği haftanın günlerini, saat aralığını ve zaman dilimini seçin. Ardından “Kaydet”e tıklayın.
Şekil 4.5.2 – Alarm kuralının değerlendirileceği haftanın günlerini, saat aralığını ve zaman dilimini seçin.
Adım 3: Tüm değişiklikleri uygulayın.
Bu adımları takip ederek, alarm kuralı sadece belirtilen çalışma saatleri boyunca alarmları değerlendirecektir.
Örnek 6. Gelişmiş eşikler #
Dashboard UI üzerinden kullanıcılarımızın eşik değerlerini değiştirmelerine ve her cihaz için belirli alarmları etkinleştirip devre dışı bırakmalarına izin vermek istiyoruz. Bunun için alarm kuralı koşullarında dinamik değerler kullanacağız ve iki öznitelik kullanacağız: boolean tipinde temperatureAlarmFlag ve numeric tipinde temperatureAlarmThreshold. Amacımız “temperatureAlarmFlag = True VE temperatureAlarmThreshold’tan büyük olan sıcaklıklarda” alarm oluşturmaktır. Bu adımları takip edin:
Adım 1: Sıcaklık anahtar filtrenizi düzenleyin ve değer tipini dinamik olarak değiştirin.
Şekil 4.6.1 – Sıcaklık anahtar filtresini düzenleyin ve değer tipini dinamik olarak değiştirin.
Adım 2: Dinamik kaynak türü seçin ve “temperatureAlarmThreshold” değerini girin, ardından “Güncelle”ye tıklayın. Opsiyonel olarak “Sahibinden miras al” seçeneğini işaretleyebilirsiniz. Miras alma, cihaz düzeyinde belirtilmemişse müşteriden eşik değerini almamızı sağlar. Öznitelik değeri hem cihaz hem de müşteri düzeyinde belirtilmemişse, kural tenant özniteliklerinden değeri alır.
Şekil 4.6.2 – Dinamik kaynak türü seçin ve “temperatureAlarmThreshold” değerini girin, ardından “Güncelle”ye tıklayın.
Adım 3: temperatureAlarmFlag için başka bir anahtar filtre ekleyin.Tekrar “Ekle”ye tıklayın.
Şekil 4.6.3 – temperatureAlarmFlag için başka bir anahtar filtre eklenir.
Adım 4: “Kaydet”e tıklayın ve tüm değişiklikleri uygulayın.
Adım 5: Cihaz özniteliklerini elle veya komut dosyası aracılığıyla sağlayın.
Şekil 4.6.4 – Cihaz özniteliklerini elle veya komut dosyası aracılığıyla sağlayın.
Bu adımları takip ederek, kullanıcılarımız Dashboard UI üzerinden eşik değerlerini değiştirebilecek ve her cihaz için belirli alarmları etkinleştirebilecek ve devre dışı bırakabileceğiz.
Örnek 7. tenant veya müşteri özelliklerine dayalı dinamik eşikler #
Örnek 6’da, bir cihazın “temperatureAlarmFlag” özniteliğinin değerine bağlı olarak bir kuralın etkinleştirilip devre dışı bırakılması nasıl yapılacağı gösterilmiştir. Ancak, bir müşteri veya tenantya ait tüm cihazlar için belirli bir kuralı etkinleştirip devre dışı bırakmak isterseniz, her bir cihaz için özniteliği yapılandırmak zahmetli olabilir. Bu süreci basitleştirmek için, alarm kuralını tenant veya müşteri özniteliğinin değeriyle karşılaştırmak için bir sabit değerle yapılandırabilirsiniz. Bunun için, “Sabit” anahtar tipini seçin ve bir dinamik değerle karşılaştırılabilen bir değer belirtin. Ardından, bu yapılandırmayı uygulayın. Bu, her bir cihazı manuel olarak yapılandırmadan belirli bir kuralı bir tenantya veya müşteriye ait tüm cihazlar için kolayca etkinleştirip devre dışı bırakmanıza olanak tanır.
Şekil 4.7.1 – Anahtar türü ve değeri seçin. Tenant veya müşteri özniteliğinin değeriyle filtreleyin.
Yukarıda bahsedilen yöntem kullanılarak, cihaz telemetri/özellikleri ile tenant veya müşteri özellikleri üzerinde filtrelerin birleştirilmesi ve kuralların etkinleştirilmesi veya devre dışı bırakılması mümkündür.
Cihaz profili kural düğümü #
Cihaz profilinde tanımlanan alarm kurallarına dayanarak, cihaz profilinde oluşturulan ve silinen alarm sorumluluğu cihaz profilinde kural düğümüne aittir. Varsayılan olarak, bu düğüm işleme zincirindeki ilk düğümdür. Düğüm tüm gelen mesajları işler ve özellik ve telemetri değerlerine uygun olarak tepki verir.
Şekil 4.8 – Cihaz profili kural zinciri
Kural düğümünde iki önemli ayar vardır:
Alarm kurallarının durumunu saklama – bu ayar, kural düğümünün işleme durumunu saklamasını zorlar. Varsayılan olarak devre dışıdır. Bu ayar, süre veya tekrarlayan koşullarınız varsa kullanışlıdır. Örneğin, “Sıcaklık 1 saat boyunca 50’den büyüktür” şeklinde bir koşulunuz varsa ve 50’den büyük ilk olay saat 13:00’te bildirildiyse, 2:00’de alarm almanız gerekmektedir (sıcaklık koşulları değişmediği varsayılırsa). Ancak, 1:00’den sonra ve 2:00’den önce sunucuyu yeniden başlatırsanız, kural düğümünün veritabanından durumu araması gerekir. Bu ayarı etkinleştirmek, “Alarm kurallarının durumunu getir” seçeneği ile birlikte alarmın yükseltilmesine izin verecektir. Bu ayar devre dışı bırakılırsa, kural düğümü alarm oluşturmaz. Performans nedenleriyle varsayılan olarak bu ayarı devre dışı bırakılır. Etkinleştirildiğinde ve gelen mesaj en az bir alarm koşuluna uyuyorsa, durumu kalıcı hale getirmek için ek yazma işlemi gerçekleşecektir.
Alarm kurallarının durumunu getir – bu ayar, kural düğümünün başlatılmak üzere işlemin durumunu geri yüklemesini zorlar. Bu ayar da varsayılan olarak devre dışıdır. Bu ayar, süre veya tekrarlayan koşullarınız varsa kullanışlıdır. “Alarm kurallarının durumunu saklama” seçeneğiyle birlikte çalışmalıdır, ancak nadir durumlarda “Alarm kurallarının durumunu saklama” seçeneği etkin olsa bile bu ayarı devre dışı bırakmak isteyebilirsiniz. Sık sık veri gönderen birçok cihazınız varsa, başlatma işlemi sırasında durumu veritabanından yüklemekten kaçınabilirsiniz. Kural düğümü, belirli bir cihazdan gelen ilk mesaj geldiğinde durumu veritabanından getirecektir.
Şekil 4.9 – Alarm kuralı durumları.
Alarmlar hakkında bildirimler #
Eğer Fast IoT Platform’da alarm kurallarını ayarladıysanız, Fast IoT Platform’un alarm oluşturduğu veya güncellediği durumlarda bir bildirim almak isteyebilirsiniz. Bunu yapmak için, cihaz profili kural düğümünde bulunan çıkış ilişki tiplerini kullanabilirsiniz. Bu tipler arasında ‘Alarm Oluşturuldu’, ‘Alarm Önceliği Güncellendi’ ve ‘Alarm Temizlendi’ bulunur. Aşağıda bir örnek kural zinciri verilmiştir, ancak önce sistem yöneticisi tarafından SMS/e-posta sağlayıcılarının yapılandırıldığını onaylamalı veya kural düğümlerinde kendi ayarlarınızı yapmalısınız.
Daha fazla yönlendirme için mevcut kılavuzlara başvurabilirsiniz, örneğin alarm durumunda e-posta gönderme kılavuzuna odaklanarak (‘e-posta’ ve ‘e-posta gönderme’ düğümlerine odaklanarak) veya Telegram bildirimleri kılavuzuna. Ancak, çoğu durumda yinelenen bildirimler almamak için ‘Alarm Güncellendi’ adlı ek bir çıkış ilişki tipi de olduğunu ve bu ilişki tipinin yok sayılması gerektiğini unutmamak önemlidir.
Şekil 4.10 – Kural zincirine send email ve send sms düğümleri eklenir.
Cihaz sağlama #
Cihaz tanımlama, bir cihazın imalat süreci sırasında veya sonrasında Fast IoT Platform’da otomatik olarak kaydolmasını sağlar.
Varlık Profilleri #
Genel Bakış #
Varlık Profillerini kullanarak, tenant yöneticisi birden fazla varlık için ortak ayarları yapılandırabilir. Herhangi bir anda, her varlık yalnızca bir profil içerebilir. Gelişmiş Fast IoT Platform kullanıcıları, varlık türünün Asset Profile’a tercih edildiğini fark etmiş olabilirler. Güncelleme betiği benzersiz Varlık Türleri temel alınarak otomatik olarak Asset Profili oluşturacak ve uygun varlıklara atayacaktır.
Varlık Profilleri, varlık verilerinin işlenmesi için Kural Motoru tarafından kullanılacak Kural Zinciri ve Sıra’yı seçme imkanı sağlar. Asset Profili içinde mevcut olan ayarları inceleyelim.
Varlık Profili Oluştur #
Bir Varlık Profili oluşturmak için, Profil sekmesinde Asset Profilleri’ne gidin ve yeni bir varlık profili eklemek için artı simgesine tıklayın.
Şekil 1 – Asset profili oluşturma.
Varlık Profili ayarları #
Kural Zinciri #
Varsayılan olarak, Ana Kural Zinciri, herhangi bir varlık için gelen tüm mesajları ve etkinlikleri işler. Ancak, birden çok varlık türünüz varsa, Ana Kural Zinciriniz giderek karmaşık hale gelebilir. Çok sayıda platform kullanıcısı, varlık türüne bağlı olarak belirli kural zincirlerine mesaj göndermek için Ana Kural Zincirini oluşturur.
Bu tekrarlayan görevin yükünden kurtulmak için Fast IoT Platform, varlıklarınız için özel bir Kural Zinciri belirleme özelliğini tanıttı. Yeni Kural Zinciri, varlık öznitelikleri güncellemelerini ve oluşturma / güncelleme / silme gibi varlık yaşam döngüsü olaylarını işleyecektir. Bu ayar, Varlık Profili ayrıntılarında bulunabilir.
Şekil 2 – Asset profiline kural ekleme.
Kuyruk (İşlem Önceliği) #
Varsayılan olarak, herhangi bir varlıktan gelen tüm giriş olayları Ana kuyruğa kaydedilir. API katmanı bu kuyruğa mesaj gönderir ve Kural Motoru yeni mesajları sorgular. Ancak, farklı varlıklar için farklı kuyruklar kullanmak isteyebilirsiniz. Örneğin, acil varlık verilerinin ve diğer varlıkların veya cihazların veri işleme işlemlerini izole etmek isteyebilirsiniz. Böylece, sisteminiz milyonlarca su sayacı tarafından oluşturulan yüksek yükünü bile yaşasa, önemli varlık yapılandırma değişiklikleri gecikmesiz olarak işlenecektir. Kuyrukları ayırma, farklı gönderim ve işleme stratejilerini özelleştirmenize de olanak tanır.
Bu seçenek, bir Varlık Profili oluştururken ve Varlık Profili ayrıntılarında kullanılabilir.
Şekil 3 – listeden mevcut bir kuyruğu seçin.
Edges #
Fast IoT Platform, bir dizi kenar yönetimi özelliğini desteklemek için Web UI ve REST API kullanır
Edge ekleme ve silme #
Fast IoT Platform bulut hizmeti, tenant yöneticisinin yeni kenarları kaydetmesine veya mevcut olanları kaldırmasına olanak tanır.
Şekil 1 – Edge ekleme.
Edge Id, key ve secret alma #
Tenant yöneticisi ve müşteri kullanıcıları, sırasıyla Kenar Kimliğini panoya kopyalamak için “Kenar Kimliğini Kopyala” düğmesini, Kenar anahtarını kopyalamak için “Kenar Anahtarını Kopyala” düğmesini ve Kenar gizli bilgisini kopyalamak için “Kenar Gizli Bilgisini Kopyala” düğmesini kullanabilirler.
Şekil 2 – Edge id,key ve secret kopyalama.
Müşterilere edge atama #
Tenant yöneticisi, belirli kenarları müşterilere atama yeteneğine sahiptir. Bu, müşteri kullanıcılarının REST API’leri veya Web UI kullanarak kenar verilerini almasını sağlar.
Şekil 3 – Müşterilere edge atama.
Varlıklara edge atama #
Tenant yöneticisi, aşağıdaki grupları/varlıkları edge’e atamak/atamaktan çıkarmak için şu fonksiyonlara sahiptir: kullanıcı(lar), varlık(lar), cihaz(lar), varlık görünümü(leri), gösterge paneli(ler) ve kural zinciri(leri).
Şekil 4 – Varlıklara edge atama.
Edge kural zincirleri ve kural düğümleri oluşturun #
Edge kural motoru oluşturma yetkisi tenant yöneticisine verilir.
Kural zincirini varsayılan yap #
Tenant yöneticisi, kenar kural zincirini varsayılan olarak ayarlamak için yeteneğe sahiptir.
Edge kural düğümleri ekle #
Tenant yöneticisi, ‘Push to Cloud’ ve ‘Push to Edge Nodes’ seçeneklerini dahil edebilir.
Edge niteliklerini yönet #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, edge yönetimi için sunucu taraflı özellikleri kontrol etme yeteneğine sahiptir.
Edge etkinliklerine göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, belirli bir edge ile ilgili olayları görüntülemek için ‘Olaylar’ sekmesini kullanabilirler. Her edge, buluttan kenara doğru mesaj geçmişini gösteren ‘Downlink’ olay türüne sahiptir.
Edge ilişkilerini yönetin #
Tenant yöneticisi ve kullanıcı grubu kullanıcıları, edge ilişkilerini yönetme yeteneğine sahiptirler.
Varlıklar #
Fast IoT Platform, Web UI ve REST API kullanarak aşağıdaki varlık yönetimi özelliklerini sağlar.
Varlık ekleme ve silme #
Tenant yöneticisi, Fast IoT Platform üzerinde yeni varlıklar kaydetme veya var olanları silme yeteneğine sahiptir.
Şekil 1 – Varlıklar sayfası.
Varlık Kimliği Alın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, ‘Varlık Kimliğini Kopyala’ düğmesine tıklayarak varlık kimliğini panoya kopyalayabilirler.
Şekil 2 – Varlık kimliğini kopyalama.
Varlıkları müşterilere atama #
Tenant yöneticisi, belirli bir kullanıcı grubuna varlıkları atama yetkisine sahiptir. Bu, kullanıcı grubuna kullanıcılarının REST API’leri veya Web UI aracılığıyla varlık verilerini almasını sağlar.
Şekil 3 – Varlıkları kullanıcı grubuna atama.
Varlık özniteliklerini yönetin #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık sunucu tarafı özniteliklerini yönetme yetkisine sahiptirler.
Şekil 4 – Varlık öznitelikleri.
Varlık alarmlarına göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık uyarılarını görüntüleme yetkisine sahiptirler.
Şekil 5 – Varlık alarmları.
Varlık etkinliklerine göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, belirli bir varlıkla ilişkili olayları ‘Etkinlikler’ sekmesini kullanarak görüntüleme yeteneğine sahiptirler. Yaşam döngüsü olayları ve istatistikler yakında mevcut olacaktır.
Varlık ilişkilerini yönetme #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık ilişkilerini yönetme yeteneğine sahiptirler.
Şekil 6 – Varlık ilişkileri.
Varlık Görünümleri #
Özelliklere Genel Bakış #
Varlık Görünümleri (EV’ler), Fast IoT Platform‘da yeni sürümle kullanılmaya başlanan bir özelliktir. Bu özellik, Fast IoT Platform kullanıcıları tarafından yoğun bir şekilde talep edildi. SQL veritabanı görünümleri gibi, altındaki tabloların dış dünyaya maruz kalma derecesini sınırlayan Fast IoT Platform EV’ler, Cihaz veya Varlığın telemetrisi ve özniteliklerinin müşterilere maruz kalma derecesini sınırlandırır. Bir tenant yöneticisi olarak, her bir Cihaz veya Varlık için birden fazla EV oluşturabilir ve bunları farklı kullanıcı gruplarına atayabilirsiniz.
Desteklenen kullanım durumları:
Özel cihaz veya varlık verilerini aynı anda birden fazla kullanıcı grubuyla paylaşma. EV’ler özelliği öncesinde Fast IoT Platform‘un güvenlik modeli kısıtlamaları nedeniyle mümkün değildi.
Belirli müşteri kullanıcılarının toplanan verileri (örneğin sensör okumaları) görüntülemesine izin verilirken, pil seviyesi, sistem hataları vb. hata ayıklama bilgileri gizlenebilir.
Cihaz Hizmeti (DaaS) modeli, farklı zamanlarda cihaz tarafından toplanan verilerin farklı müşterilere ait olması durumunda kullanılabilir.
Mimari #
Fast IoT Platform‘daki bir Varlık Görünümü (Entity View) aşağıdaki bilgileri içerir:
TenantId – görünüm sahibine bir bağlantıyı temsil eder;
CustomerId – görünüme erişimi olan müşteriye bir bağlantıyı temsil eder;
EntityId – hedef cihaza veya varlığa bir bağlantıyı temsil eder;
Ad ve tür – görüntüleme ve arama amaçlı kullanılan düzenli Fast IoT Platform varlık alanları;
Başlangıç ve bitiş zamanı – hedef cihaz telemetrisine erişimi sınırlamak için kullanılan zaman aralığını temsil eder. Müşteriler belirtilen aralığın dışındaki varlık telemetrisini göremezler;
Zaman serisi anahtarları – görüntüleyici tarafından erişilebilen zaman serisi veri anahtarları listesi;
Özellik anahtarları – görüntüleyici tarafından erişilebilen özellik adları listesi.
Şekil 1 – Öğe görünümü ekleme.
Şekil 2 – Öğe görünümü ekleme. Paylaşılan öznitelikler ve zaman serisi verileri eklendi.
Fast IoT Platform‘un telemetri ve nitelik güncellemelerini nasıl ele aldığını ve bu değişikliklerin Entity Views’e nasıl etki ettiğini anlamak önemlidir.
Zaman serisi verileri görünümü #
Fast IoT Platform verileri zaman serilerinde hedef varlık adına veritabanında saklar. Zaman serileri verilerinin hiçbiri Entity Views’e kopyalanmaz. Kullanıcı bir dashboard’a eriştiğinde veya bir REST API çağrısı yaptığında, aşağıdaki işlemler gerçekleştirilir:
İstek başlangıç ve bitiş zaman damgaları doğrulanır ve Entity View başlangıç ve bitiş zamanı içine sığacak şekilde ayarlanır. Bu nedenle, bir dashboard 1 yıllık veri almaya çalışırsa ancak EV yalnızca 6 ay veriye erişime izin verirse, işlem başarısız olacaktır.
İstek zaman serileri veri anahtarları, Entity View’de sağlanan zaman serisi veri anahtarlarına göre doğrulanır ve ayarlanır. Bu nedenle, bir dashboard, bu belirli Entity View için yasaklanmış telemetri anahtarlarını almayı denerseniz, istek başarısız olacaktır.
Nitelikler görünümü #
Fast IoT Platform‘da bir Varlık Görünümünü kaydettiğiniz veya güncellediğinizde, belirtilen öznitelikler otomatik olarak Hedef Varlıktan kopyalanır. Ancak, performansı artırmak için, Hedef Varlık öznitelikleri her öznitelik değişikliğinde Varlık Görünümüne yayılmaz. Otomatik yayılımı etkinleştirmek için, kural zincirinizde bir “görünüme kopyala” (copy yo view) kural düğümü yapılandırabilir ve “Öznitelikler Gönderildi” (Post attributes) ve “Öznitelikler Güncellendi” (Attributes Updated) mesajlarını yeni kural düğümüne bağlayabilirsiniz.
Şekil 3 – Root Rule Chain kural zinciri.
Gelecekteki iyileştirmeler
Fast IoT Platform Yol Haritası aşağıdaki planlı güncellemeleri içerir:
Cihaz görünümünde RPC (Uzaktan Prosedür Çağrısı) isteklerini etkinleştirme veya devre dışı bırakma seçeneği eklendi.
Belirli bir görünüm için erişilebilen veya yayılabilen belirli bir alarm listesinin yapılandırılmasına izin verilmesi.
Toplu Provizyon #
Genel Bakış #
Fast IoT Platform, CSV dosyası kullanarak çeşitli varlık türleri için toplu provizyon yapma yeteneği sağlar. Bunlar şunları içerir:
Cihazlar
Varlıklar
Farklı varlıklar aşağıdaki parametrelere sahip olabilir:
Varlıklar aşağıdaki parametrelere sahip olabilir:
Öznitelikler: Varlıklarla ilişkili statik ve yarı-statik anahtar-değer çiftleri. Örnekler arasında seri numarası, model ve firmware sürümü yer alır.
Telemetri verileri: Depolama, sorgulama ve görselleştirme için erişilebilir zaman serisi veri noktaları. Örnekler arasında sıcaklık, nem ve pil seviyesi yer alır.
Kimlik bilgileri: Cihazın, cihazda çalışan uygulamalar aracılığıyla Fast IoT Platform sunucusuna bağlanmak için kullandığı bilgiler.
Varlıkları İçe Aktar #
Birden çok varlık aynı anda oluşturulacaksa, her satırın belirli parametrelerle bir varlık oluşturması için bir CSV dosyası oluşturmak gereklidir. Belirli bir varlık için bazı ayarlar gerekli değilse, ilgili hücre boş bırakılabilir. Ayrıca, “Name”, “Type” ve “Label” adında önceden tanımlanmış sütun tipleri olan üç rezerve parametre adı vardır.
1. Adım: Bir dosya seçin #
Veri aktarmak için bir CSV dosyasını sisteme yükleyin.
Şekil 1 – Cihazı içe aktarma.
Şekil 2 – Aktarmak istediğiniz dosyayı yükleyin.
2. Adım: Yapılandırmayı içe aktarın #
Dosya yüklendikten sonra, aşağıdaki parametreler yapılandırılmalıdır:
CSV ayırıcısı: Veri satırındaki değerler arasındaki ayırma karakteri.
İlk satır sütun isimlerini içerir: Bu seçenek etkinleştirildiğinde, dosyanın ilk satırı bir sonraki adımda parametre isimleri için varsayılan değerler olarak kullanılacaktır.
Öznitelik/Gözetleme Verilerini Güncelle: Bu parametre etkinleştirildiğinde, isimleri Fast IoT Platform sistemindeki var olan varlıklarla eşleşen tüm varlıkların parametre değerleri güncellenecektir. Aksi takdirde, bu parametre devre dışı bırakıldığında, isimleri Fast IoT Platform sisteminde zaten var olan tüm varlıklar için bir hata mesajı görüntülenecektir.
Şekil 3 – CSV sınırlayıcı “,” olmalıdır.
3. Adım: Sütun türünü seçin #
Bu aşamada, yüklenen dosyanın sütunları ile Fast IoT Platform’undaki ilgili veri tipleri arasında bir bağlantı kurmak gerekir. Ayrıca, öznitelik/gözetleme anahtarının varsayılan adı belirlenebilir veya değiştirilebilir.
Şekil 4 – Sütun türünü seçin.
Şekil 5 – Sütun türü Access token olabilir.
4. Adım: Yeni varlıklar oluşturma #
Input verisi işleniyor.
5. Adım: Tamamlandı #
Sorgu işleminin sonucunda oluşan çıktı, oluşturulan/güncellenen varlıkların toplam sayısını ve işlem sırasında meydana gelen hataların sayısını gösterir.
Şekil 6 – İçe aktarma tamamlandı.
Şekil 7 – Aktarılan cihazlar oluşma zamanına göre sıralanmıştır.
Kullanım örneği #
Varsayalım ki 10 cihazı aynı anda oluşturmak ve bunlara erişim belirteci atamak istiyoruz.
Örnek dosya:
name,type,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8,Data9,Data10 Device 1,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF45 Device 2,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF46 Device 3,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF47 Device 4,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF48 Device 5,testImport,123,,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF49 Device 6,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF50 Device 7,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF51 Device 8,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF52 Device 9,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF53 Device 10,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF54 |
Not: Dosya en az iki sütun içermelidir: varlık adı ve tür.
CSV dosyası düzenleyici kullanılarak oluşturulan dosya, 10 cihaz için veriler içerir. Ayrıca, Device 5 için “Data2” parametresi atlandı, Data2 değeri bu cihaz için oluşturulmayacaktır.
Dosya yükleme #
Cihazlar -> Cihazı içe aktar’a gidin
Örnek dosya yükleyin: test-import-device.csv
Yapılandırmayı içe aktar #
Yüklenen dosyayı yapılandırmak için şu adımları izleyin:
CSV ayırıcısı: Düzenleyicinizde kullanılan ayırma simgesini seçin. Örnek dosyada ayırıcı “,” olarak kullanılmıştır.
İlk satır sütun isimlerini içerir: Örnek dosya sütun isimleri içerdiği için bu seçenek seçili bırakılmalıdır.
Öznitelik/göstergeleri güncelle: Fast IoT Platform’da var olan cihazların özelliklerini güncellemek yerine yeni cihazlar ekleyeceğimiz için bu seçeneği işaretlemeyin.
Sütun türünü seçin #
Tablonun ilk sütunu yüklenen dosyanın ilk satırını gösterir. Önceki adımda “İlk satır sütun adlarını içeriyor” kutucuğu seçildiği için üçüncü sütun için değerler zaten ilk satıra göre oluşturulmuştur.
Değişiklik yapmak için, üçüncü satırın sütun türünü “Timeseries” olarak değiştirin ve özellik/telemetri anahtar değerini “Sıcaklık” olarak ayarlayın. Tablodaki son satır, erişim anahtarını belirler, bu nedenle “Sunucu” özelliğini “Erişim anahtarı” olarak değiştirin.
Not: “Name”, “Type” ve “Access token” sütun türleri sadece bir satır için seçilebilir.
İçe aktarma tamamlandı #
Oluşturma işlemi tamamlandıktan sonra, istatistik bilgileri sunulacaktır. Verilen örnekte, 8 cihaz başarıyla oluşturulurken, 2 cihaz oluşturma işlemi sırasında hata ile karşılaştı. Hatanın nedeni, örnek dosyadaki Cihaz 1, Cihaz 2 ve Cihaz 3’ün aynı belirteci taşımasıdır, bu Fast IoT Platform sistemi tarafından izin verilmemektedir.
Kural Zincirleri #
Kural Zincirleri Yönetim UI sayfası yapılandırılmış tenant kural zincirleri tablosunu gösterir. Aşağıdaki işlemleri yapabilirsiniz:
Yeni Kural Zinciri Oluşturma veya İçe Aktarma
Kural Zincirini JSON’a Dışa Aktarma
Kural Zincirini Kök Kural Zinciri olarak İşaretleme
Kural Zincirini Silme
Şekil 1 – Kurallar sayfası.
Kural Zincirlerini içe/dışa aktarma #
Kural Zinciri dışa aktarma #
Bir kural zincirini JSON formatında dışa aktarmak için, Rule Chains sayfasına gitmeniz ve dışa aktarmak istediğiniz belirli kural zincirini bulmanız gerekir. Ardından, kural zincirine karşılık gelen satırda bulunan dışa aktarma düğmesine tıklamanız yeterlidir. Bu, kural zinciri yapılandırmasını JSON formatında kaydetmenizi sağlar ve ihtiyaç duyulduğunda aynı veya farklı bir Fast IoT Platform örneğine aktarılabilir.
Şekil 2 – Kuralı dışa aktarma.
Kural içe aktarma #
Bir kural zincirini içe aktarmak için, Rule Chains sayfasına gidip Rule chains tablosunun sağ üst köşesindeki “+” düğmesini bulmanız gerekiyor. Bu düğmeye tıkladığınızda açılan menüden “Import rule chain” seçeneğini seçebilirsiniz. Ardından, içe aktarmak istediğiniz kural zinciri yapılandırmasını içeren JSON dosyasını seçebilirsiniz.
Şekil 3 – Kuralı içe aktarma.
Not 1: Bir kural zinciri içe aktarıldığında, varsayılan olarak bir kök kural zinciri olmayacaktır.
Not 2: İçe aktarılan Kural Zinciri, diğer Kural Zincirlerine başvurular içeriyorsa (Kural Zinciri düğümü aracılığıyla), Kural Zincirini kaydetmeden önce bu referansları güncellemeniz gerekecektir.
Sorun giderme #
Kural zinciri içe aktarılırken, değişiklikleri kaydetmeden önce güncellenmesi gereken Kural Zinciri düğümü aracılığıyla diğer Kural Zincirlerine yapılan referanslar gibi bazı sorunlar olabilir.
Gösterge Panelleri #
Önkoşullar #
Bu kılavuzun daha hızlı anlaşılabilmesi ve öğrenme sürecinin hızlandırılabilmesi için, Fast IoT Platform cihazları ve gösterge panoları hakkında bilgi sahibi olmak için öncelikle Başlangıç Kılavuzu‘nu takip etmeniz önerilir.
Giriş #
Fast IoT Platform, panolar oluşturma ve yönetme özelliği sunar.
Her bir panel, birçok bileşeni içerebilir. Panolar, cihazlar, varlıklar vb. gibi birçok varlıktan verileri görüntülemek için kullanılır ve müşterilere atanabilirler.
Bu kılavuz, panoların oluşturulması ve yönetimi ile ilgili ana kavramları ve çeşitli yapılandırma ayarlarını kapsayacaktır.
Görüntü Paneli ekleme #
Eğer yeni bir gösterge paneli oluşturmak istiyorsanız, şu adımları takip edin:
Sol taraftaki ana menü aracılığıyla Gösterge Panelleri bölümüne erişin.
Sağ üst köşede bulunan “+” işaretini arayın ve üzerine tıklayın.
Yeni gösterge paneliniz için bir başlık sağlamanız gereken bir iletişim kutusu açılacaktır. İsteğe bağlı olarak bir açıklama da ekleyebilirsiniz.
Son olarak, işlemi tamamlamak için “Ekle” düğmesine tıklayın.
Şekil 3.1.1 – Gösterge Paneli Oluştur
Şekil 3.1.2 – Gösterge Paneli ekle.
Herkese açık hale getir #
Bir gösterge panelini herkese açık olarak paylaşmak ve bir bağlantı almak için şu adımları izleyin:
Gösterge Panelleri bölümüne gidin.
Paylaşmak istediğiniz gösterge panelini seçin ve yanındaki “Paylaş” simgesine tıklayın.
Gösterge panelini herkese açık hale getirmek istediğinizi onaylamak için açılan iletişim kutusunda “Evet”e tıklayın.
Gösterge paneline tıklayarak ayrıntılarını açın.
Gösterge paneli ayrıntılarında, herkese açık bağlantının yanındaki “Kopyala” düğmesine tıklayın.
Şimdi, kopyaladığınız bağlantıyı kullanarak gösterge panelini başkalarıyla paylaşabilirsiniz.
Diğerlerinin verilerine erişebilmeleri için ilgili cihazları, varlıkları ve varlık görünümlerini de herkese açık hale getirdiğinizden emin olmayı unutmayın.
Şekil 3.1.3 – Gösterge panelini herkese açık hale getirme.
Şekil 3.1.4 – İşaretli ikon ile paneli tekrar gizli hale getirebilirsiniz.
Genel Bakış #
Bir gösterge paneli ile çalışmaya başlamadan önce, hangi özelliklerin hangi eylemlerden sorumlu olduğunu anlamak için arayüzüyle tanışın.
Başlık #
Düzenlenebilir gösterge paneli başlığı, gösterge panelinin sol üst köşesinde yer alır. Gösterge paneli başlığı, uygulama gezinmesini kolaylaştırmak için uygulama kırıntıları içinde de görüntülenir. Başlığı gösterge paneli ayarlarından değiştirebilir ve ayarlayabilirsiniz.
Düzenleme modu #
Gösterge paneli düzenleme moduna girmek için ekranın sağ alt köşesinde bulunan “kalem” düğmesini kullanın. Düzenleme moduna geçtikten sonra, gösterge paneli araç çubuğundan yeni widget’lar ekleyebilir ve denetimlere erişebilirsiniz. Ayrıca, yapılan değişiklikleri kaydetmek için “Değişiklikleri Uygula” düğmesini veya kaydedilmemiş değişiklikleri geri almak için “Değişiklikleri Reddet” düğmesini kullanabilirsiniz.
Şekil 3.2.1 – Düzenleme moduna girin.
Şekil 3.2.2 – Değişiklikleri kaydedin veya iptal edin.
Araç Çubuğu #
Dashboard araç çubuğu, durumları yönetme, düzenlemeleri yapma, ayarları, takma adları, filtreleri yönetme ve ilgili simgeleri kullanarak zaman penceresini yapılandırma gibi çeşitli özelliklere erişim sağlar.
Bazı simgeler (istatistikler, düzen, ayarlar), sadece “düzenle” modunda görünür. Diğer tüm simgeler ise “görünüm” ve “düzenleme” modunda görülebilir. Ayarlar kullanılarak, bu simgeler gizlenebilir veya varsayılan olarak araç çubuğunun küçültülmüş olacak şekilde yapılandırılabilir.
Şekil 3.2.3 – Dashboard araç çubuğu.
Şekil 3.2.4 – Dashboard düzenleme modu araç çubuğu.
Varlık Takma Adları #
Varlık takma adları (entity aliases), panoda hangi varlıkların (cihazlar, varlıklar vb.) görüntüleneceğini belirler. Bir takma adı, bir veya daha fazla cihaza referans olarak ele alınabilir ve bu referanslar statik veya dinamik olabilir.
Bir statik takma adı örneği, tek varlık takma adıdır. Bir varlık, takma adı iletişim kutusunda bir kez yapılandırılır. Cihaza erişim izni olan tüm kullanıcılar aynı verileri görür.
Bir dinamik takma adı örneği, cihaz türü takma adıdır. Belirli bir türdeki tüm cihazları (örneğin “Termometre”) gösterir. Bu takma adı dinamiktir çünkü cihaz listesi, panoya erişen kullanıcıya bağlıdır. tenant yöneticisi olarak giriş yaptıysanız, bu takma adı tüm termometre cihazlarına çözülecektir. Ancak, müşteri kullanıcısı olarak giriş yaptıysanız, bu takma adı, o müşteriye atanmış/ait termometre cihazlarına çözülecektir.
Şekil 3.2.4 – Varlık takma adı (Öğe kısa adı) ekleme.
Şekil 3.2.5 – Varlık adı bilgileri doldurulur.
Şekil 3.2.6 – Varlık adı eklendi. Kaydedin.
Varlık Filtreleri #
Varlık filtreleri, varlık takma adı tarafından çözülen varlık listesini filtrelemek için belirli kriterleri belirlemenizi sağlar. İllüstrasyon olarak, binlerce termometre cihazınızın olduğu ve belirli koşulları karşılayanları, örneğin belirli bir model ve pil seviyesine sahip olanları görüntülemek istediğinizi düşünelim. Termometre modelinin bir özellik olarak ve pil seviyesinin bir zaman serisi verisi olarak depolandığını varsayalım. Bu durumda, “DHT22” modeline sahip ve pil seviyesi %20’den düşük olanları kontrol eden bir filtre tanımlayabilirsiniz.
Filtreyi eklerken, Filtre adının yanındaki kaydırıcıyı ayarlayarak kullanıcılara düzenleme izni verme seçeneğiniz olduğuna dikkat etmek gerekmektedir.
Şekil 3.2.7 – Varlık filtresi ekleme.
Şekil 3.2.8 – Anahtar filtre ekleme.
Şekil 3.2.9 – Modelin “DHT22” olup olmadığını kontrol eden filtre.
Şekil 3.2.9 – Yeni bir anahtar filtre ekleme.
Şekil 3.2.10 – Bataryanın “20” seviyesinden düşük olup olmadığını kontrol eden filtre.
Şekil 3.2.11 – Anahtar filtreler eklendikten ‘ekle’ butonuna basılarak filtre eklenir.
Şekil 3.2.12 – Eklenen filtre.
Filtreler, bir öznitelik veya zaman serisi anahtarının en son değerine yalnızca uygulanır. Bu özellik, tarihsel zaman serisi değerlerini “filtrelemek” için kullanılmamalıdır.
Bir anahtar için birden fazla mantıksal ifadeyi birleştirerek “karmaşık” filtreler oluşturabilirsiniz. Örneğin: “(A > 0 ve A < 20) veya (A > 50 ve A < 100)”. Ayrıca, “ve” operatörünü kullanarak farklı anahtarlar için iki ifadeyi birleştirebilirsiniz, örneğin: “(A > 0 ve A < 20) ve (B > 50 ve B < 100)”.
Şu anda, “(A > 0 ve A < 20) veya (B > 50 ve B < 100)” gibi farklı anahtarları birleştirmek için “veya” operatörü kullanılamamaktadır.
Widget’lar #
Widget türleri #
Fast IoT Platform’daki tüm IoT gösterge panelleri, Widget Kütüphanesi’nde bulunan widget’lar kullanılarak oluşturulur. Her widget, veri görselleştirme, uzaktan cihaz kontrolü, alarm yönetimi ve özel HTML içeriği görüntüleme gibi çeşitli son kullanıcı işlevleri sağlar.
Beş tür widget bulunmaktadır:
Zaman serisi widget’ları belirli bir zaman aralığı için verileri görüntülemek için kullanılır. Bu pencere gerçek zamanlı olabilir (örneğin son 24 saat) veya geçmişe yönelik olabilir (örneğin Aralık 2020). Çizelge widget’ları, zaman serisi verilerini görüntülemek için bir örnektir ve özellikle özellik verileri yerine zaman serisi verilerini görüntülemek üzere tasarlanmıştır.
En son değer widget’ları belirli bir özniteliğin veya zaman serisi anahtarının en son değerlerini görüntüler. Örneğin, bir cihaz modeli veya son sıcaklık okuması.
Kontrol widget’ları, cihazlarınıza Uzak Yöntem Çağrısı (RPC) komutları göndermenize olanak tanır ve böylece çalışmalarının çeşitli yönlerini kontrol etmenizi sağlar. Örneğin, termostat cihazında istenen sıcaklığı ayarlamak için kontrol widget’larını kullanabilirsiniz.
Alarm widget’ları, cihazlar veya Fast IoT Platform sistemi tarafından üretilen alarmları görüntülemenize olanak tanır.
Statik widget’lar, değişkenliği sınırlı olan verileri görüntülemek için tasarlanmıştır; örneğin, bir kat planı veya sık sık değişmeyen şirket bilgileri.
Gösterge paneline widget ekleme #
Fast IoT Platform panonuzda bir widget eklemek için şu adımları izlemelisiniz:
Düzenleme moduna geçmek için ekranın sağ alt köşesindeki kalem simgesine tıklayın.
Ekranın ortasındaki büyük işarete veya ekranın sağ alt köşesindeki “+” simgesine tıklayın ve “Yeni widget ekle” iletişim kutusunu açın.
“Ayaklıklar” gibi bir widget paketi seçin.
Aranan widget’i mümkün olan en kısa sürede bulmak için arama çubuğunu kullanın, büyüteç simgesine tıklayın ve widget adını girin. Örneğin, “Zaman Serisi Çizgi Grafiği” widget’ı seçin ve “Widget Ekle” iletişim kutusunu açmak için üzerine tıklayın.
Şekil 4.1 – Düzenleme modunu aç.
Şekil 4.2 – Yeni gösterge oluştur.
Şekil 4.3 – Charts gösterge paketini seçin.
Şekil 4.4 – Timeseries Line Chart göstergesini seçin.
Widget iletişim kutusu ve ayarları #
Fast IoT Platform’daki bir widget, widget türü, bir veya daha fazla veri kaynağı, temel ve gelişmiş ayarlar ve ekleyebileceğiniz işlemlerden oluşur. Bu nedenle, “Widget Ekle” iletişim kutusu bir widget tanımlamak için dört sekme içerir. Veri kaynağı yapılandırması zorunlu olan tek yapılandırmadır. Çoğu durumda, diğer yapılandırma sekmelerini varsayılan değerlerinde bırakabilirsiniz.
1. Widget veri ayarları #
Widget veri ayarları, bir veya birden fazla veri kaynağı eklemek için kullanılır. Bir veri kaynağı, bir veri kaynağı türü, bir varlık takma adı, isteğe bağlı bir filtre ve veri anahtarlarının (varlık zaman serileri) bir listesi kombinasyonundan oluşur. Veri kaynağı, widget’ın hangi varlıkları kullanması gerektiğini (takma ad ve filtre bazında) ve bu varlıklar için hangi veri anahtarlarının alınması gerektiğini belirler.
Şekil 5.1 – Gösterge ekle.
Örneğin, “Termometre” cihazlarının modeli “DHT22” olan ve pil seviyesi %20’den az olan tüm cihazlar için sıcaklık ve nem değerlerini almak için bir veri kaynağı yapılandırmak istediğimizi varsayalım. Önceki bölümde yapılandırdığımız “Termometre” takma adını ve “DHT22 Termometrelerinin Düşük Pil Seviyesi” filtresini kullanacağız.
Şekil 5.2 – Veri anahtarları eklenir.
Yukarıdaki örnekte, “sıcaklık” ve “nem” iki veri anahtarıdır. Veri kaynağı için kullanılabilen veri anahtarı listesi widget türüne bağlıdır:
Zaman serisi widget’ları, veri kaynağındaki zaman serisi veri anahtarlarını ve zaman aralığını seçmenizi sağlar.
En son değer widget’ları, zaman serisi, öznitelikler ve varlık alanları seçmenizi sağlar.
Statik ve kontrol widget’ları veri kaynağı gerektirmez.
Alarm widget’ları, zaman serisi, öznitelikler, varlık ve alarm alanları da dahil olmak üzere tüm veri anahtarlarını seçmenize olanak tanır. Ek olarak, zaman aralığı ve alarm filtresi yapılandırabilirsiniz.
Gereken zaman serisi veya öznitelik anahtarını veritabanında henüz yoksa, yine de anahtarı veri kaynağına ekleyebilirsiniz ve cihaz verileri Fast IoT Platform’a gönderildiğinde widget hemen verileri görüntülemeye başlayacaktır.
Şekil 5.3 – Yeni veri anahtarı oluşturulur.
Ayrıca, değer yanında görüntülenecek sembolü seçme ve virgülden sonra kaç basamak gösterileceğini belirleme seçeneğiniz vardır. Bu ayarlar, tüm eksenler için aynı ayarları uygulamak istiyorsanız kullanışlıdır. Örneğin, birden fazla cihaz için sıcaklık okumaları gösteriyorsanız, ‘°C’ veya ‘°F’ sembolünü ekleyebilirsiniz. Ancak sıcaklık ve nem gibi farklı veri türlerini görüntülüyorsanız, bu veri anahtarlarını ayrı ayrı veri anahtarı ayarları kullanarak yapılandırmanız gerekir.
Şekil 5.4 – Veri yapılandırmaları
Başka bir seçeneğiniz de, widget’ın gelen veri olmadığında gösterilecek alternatif bir mesajı tanımlamaktır. Veri geldiğinde, mesaj kaybolur ve gelen veri görüntülenir.
Şekil 5.5 – Veri olmadığında görüntülenecek mesaj
Şekil 5.6 – Sonuç
Şekil 5.7
2. Widget veri kaynağı türleri #
Varlık veri kaynağı
Belirli bir varlık takma adından veri almak için Entity veri kaynağı özelliğini kullanabilirsiniz. İşte bir dashboard bileşenindeki tüm mevcut cihazları görüntülemek için bu özelliği nasıl kullanacağınızın örneği:
Panoyu açın ve düzenleme moduna girmek için ekranın sağ alt köşesindeki kalem simgesine tıklayın.
Araç çubuğunda bulunan “Entity takma adı” düğmesine tıklayın, ardından Entity takma adı iletişim kutusunun sol alt köşesinde “Takma adı ekle” seçeneğini seçin.
“Takma adı ekle” iletişim kutusunda, bir takma adı belirleyin ve filtre tipini “Varlık türü” olarak seçin. İlgili varlık türünü seçin (bu örnekte Cihaz varlık türünü kullanın). Takma adı oluşturmak için “Ekle” düğmesine tıklayın.
Son olarak, iletişim kutusunun sağ alt köşesindeki “Kaydet” düğmesine tıklayarak oluşturulan takma adını kaydedin.
Takma adı oluşturulduktan sonra, belirtilen varlık türü ile ilgili verileri görüntülemek için bir veri kaynağı olarak kullanabilirsiniz. Bu örnekte, takma adını kullanarak dashboard bileşenindeki tüm mevcut cihazların bir listesini görüntüleyebilirsiniz.
Bir takma ad ekledikten sonra, verileri görüntülemek için bir bileşen eklemeniz gerekiyor:
Ekranın ortasındaki büyük işarete tıklayın ve “Yeni bileşen ekle” seçeneğini seçin.
Kartlar bileşen paketini seçin. Bir varlık listesi görüntülemek için en uygun bileşen, Entity table bileşenidir, bu nedenle onu seçin.
Şimdi, bir veri kaynağı eklemenin zamanı geldi:
Varlık türünü seçin, önceden eklenen varlık takma adını seçin. İletişim kutusunun sol alt köşesindeki “Kaydet” düğmesine tıklayın.
Bir veri kaynağı özelleştirdikten sonra, “Widget ekle” iletişim kutusunun sol alt köşesindeki “Ekle” düğmesine tıklayın.
Varlık veri kaynağı kullanılarak tüm cihazları görüntüleyen bir bileşen eklenmiştir.
Varlık sayısı veri kaynağı
Fast IoT Platform, yeni bir özellik olan Entity count veri kaynağını ekledi. Bu özellik, kullanıcıların varlıkların sayısını bir bileşende görüntülemelerine ve böylece cihazların, varlıkların vb. sayısını kolayca belirlemelerine olanak tanır.
Bu özelliği göstermek için mevcut cihazların toplam sayısını görüntüleyen bir bileşen oluşturalım:
Bir gösterge paneli açın ve ekranın alt sağ köşesindeki kurşun kalem simgesine tıklayarak düzenleme moduna geçin.
Araç çubuğundaki “Varlık alias” düğmesine tıklayın ve ardından Varlık alias iletişim kutusunun sol alt köşesinde “Alias ekle” seçeneğini seçin.
“Alias ekle” iletişim kutusunda bir alias adı belirtin ve “Varlık türü” filtresi türünü seçin. İlgili varlık türünü seçin (bu örnekte Cihaz varlık türünü kullanın). Alias oluşturmak için “Ekle” düğmesine tıklayın.
Son olarak, iletişim kutusunun sağ alt köşesinde bulunan “Kaydet” düğmesine tıklayarak oluşturulan alias’ı kaydedin.
Varlık alias’ı oluşturduktan sonra, varlıkların sayısını görüntülemek için Entity count veri kaynağını kullanabilirsiniz. Bunun için:
Ekranın ortasındaki “Yeni bileşen ekle” düğmesine tıklayın.
Kartlar bileşen paketini seçin ve Entity count bileşenini seçin.
“Varlık türü” açılır menüsünden önceden oluşturulan varlık alias’ı seçin.
Bileşeni istediğiniz gibi özelleştirin ve eklemek için “Ekle” düğmesine tıklayın.
Artık daha önce oluşturduğunuz varlık alias’ına dayalı olarak mevcut cihazların toplam sayısını görüntüleyen bir bileşeniniz var.
Alias ekledikten sonra verileri görüntülemek için bir widget eklemeniz gerekiyor:
Ekranın ortasındaki “Yeni widget ekle” düğmesine tıklayın.
Kartlar widget paketini seçin. Aradığınız widget’ı hızlı bir şekilde bulmak için arama çubuğunu kullanın. Bunun için, büyüteç simgesine tıklayın ve aradığınız widget’ın adını yazın. Var olan varlıkların sayısını görüntülemek için Simple card widget’ı kullanabilirsiniz.
Widget’ı istediğiniz gibi özelleştirin ve eklemek için “Ekle” düğmesine tıklayın.
Yeni bir veri kaynağı eklemek için şu adımları izleyin:
“Varlıkların sayısı” türünü seçin ve daha önce eklenen varlık takma adını seçin.
Etiketi değiştirmek isterseniz, kalem simgesine tıklayın. Açılan diyalog kutusunda etiketin adını değiştirebilir, rengini ayarlayabilir, verinin yanında görüntülenecek benzersiz bir simge kişiselleştirebilir ve ondalık basamak sayısını belirtebilirsiniz. Değişiklikleri dialog penceresinin sol alt köşesindeki “Kaydet” düğmesine tıklayarak kaydedin.
Veri kaynağının özelleştirilmesini tamamladıktan sonra, “Widget Ekle” iletişim kutusunun sol alt köşesindeki “Ekle” düğmesine tıklayın.
Cihaz sayım widget’ı eklenmiş olsa da, varsayılan widget özel simgesi (C°) hala mevcut. Kaldırmak için şu adımları izleyin:
Widget düzenleme moduna girin.
Veri sekmesine gidin.
Özel simge satırını bulun ve mevcut özel simgeyi silin veya istediğiniz simgeyle değiştirin.
Ayrıca ondalık noktadan sonra kaç basamak olacağını belirtebilirsiniz.
Değişiklikleri yaparken, diyalog penceresinin sağ üst köşesindeki turuncu onay işaretine tıklayarak kaydetmeyi unutmayın.
Şimdi elimizde mevcut olan cihazların toplam sayısını gösteren bir araç bulunuyor.
İşlev veri kaynağı
Veri olmadığında ancak bir aracın görselleştirmesini test etmek istediğinizde, işlev veri kaynağı kullanılır. Örneğin, bir takma ad atamamış veya herhangi bir telemetri almamış olsanız bile, bir aracın nasıl veri gösterdiğini görmek isteyebilirsiniz.
Veri göstermek için aşağıdaki adımlar izlenmelidir:
Ekranın ortasındaki “Yeni araç ekle” simgesine tıklayarak bir araç ekleyin.
Kartlar araç paketini seçin.
Varlıkların görselleştirilmesi için Enity table aracını seçin, çünkü en uygun seçenek budur.
Şimdi sistemimize bir veri kaynağı eklemenin zamanı geldi. Bunun için, Varlık türünü seçin ve önceden eklenmiş olan varlık takma adını seçin. Ardından, seçiminizi onaylamak için iletişim kutusunun sol alt köşesinde bulunan “Kaydet” düğmesine tıklayın.
Veri kaynağını istediğiniz gibi özelleştirdikten sonra, ilerlemek için Ekle widgetı iletişim kutusunun sol alt köşesinde bulunan “Ekle” düğmesine tıklayın. Belirli veri kaynağından veri gösterme işlevine sahip widgetı kullanarak, widgetın bilgileri nasıl sunacağını belirleyebiliriz.
3. Veri anahtarları #
Veri anahtarı, widget’ta kullanmak istediğiniz zaman serisi, öznitelik veya varlık alanını belirtmek için kullanılır. Veri anahtarının tanımı, türünü (zaman serisi, öznitelik veya varlık alanı) ve gerçek anahtar değerini içerir.
Mevcut öznitelik anahtarları listesi, cihazınızın veya varlığınızın tüm istemci, sunucu ve paylaşılan özniteliklerinin bir listesidir.
Mevcut zaman serisi anahtarları listesi, cihazlarınızın Fast IoT Platform’a rapor ettiği zaman serisi verilerine veya kural motoru veya REST API aracılığıyla kaydettiğiniz zaman serisi verilerine bağlıdır.
Varlık alanları listesi varlık türüne bağlıdır ve gelecekte genişletilebilir:
Cihazlar, varlıklar ve varlık görünümleri şu alanlara sahiptir: oluşturma zamanı, varlık türü, adı, türü, etiketi ve ek bilgi.
Kullanıcının şu alanları vardır: oluşturulma zamanı, adı, soyadı, e-posta ve ek bilgi.
Müşterinin şu alanları vardır: oluşturma zamanı, varlık türü, e-posta, başlık, ülke, eyalet, şehir, adres, posta kodu, telefon ve ek bilgi.
3.1. Temel veri anahtarı ayarları
Temel veri anahtarı ayarlarında, birkaç parametreyi özelleştirmek için seçenekleriniz vardır. Bu parametreler arasında anahtarın adını ve rengini değiştirme, etiket adını değiştirme, özel bir sembolü değerin yanında gösterme (yalnızca Zaman Serisi anahtarı için geçerli), gösterilecek ondalık basamak sayısını belirleme ve “Post işleme işlevini kullan” seçeneğini etkinleştirme veya devre dışı bırakma yer alır.
Örneğin, Kartlar paketindeki Varlıklar tablosunun temel veri anahtarı ayarlarını inceleyerek konuyu daha iyi anlayabiliriz.
Anahtar (Key). Anahtarın adını değiştirme yeteneğine sahipsiniz. Belirli bir anahtarla ilişkili verileri göstermek için “Anahtar” alanında anahtar adını belirtmeniz gerekmektedir. Anahtar adını değiştirdikten sonra “Kaydet”e tıklayın. Önemli bir not olarak belirtmek gerekir ki, üç tür anahtar vardır: Öznitelikler (Attributes), Zaman Serileri (Time Series), Varlık Alanı (Entity Field) ve Alarm Alanı (yalnızca Alarm widget’ı için). Verilerin doğru şekilde görüntülenmesi için, anahtar adını aynı türdeki mevcut bir anahtarla eşleştirmek önemlidir. Eğer istenen zaman serisi veya öznitelik anahtarı henüz veritabanında mevcut değilse, yine de veri kaynağına anahtar ekleyebilirsiniz. Cihaz, veriyi Fast IoT Platform’a gönderdiği anda widget, verileri göstermeye başlayacaktır.
Etiket Adı (Label). Widget’da veri sütunu adını özelleştirmek için, etiket adını değiştirebilirsiniz. Etiket için istediğiniz adı girin ve diyalog kutusunun alt sağ köşesinde bulunan “Kaydet” düğmesine tıklayın.
Renk (Color). Bir widget’taki her anahtar (key) farklı bir renk atanmıştır. Bazı widget’larda (örneğin, Grafik), widget’ta görüntülenen grafik çizgisinin rengi anahtarın rengiyle eşleşir. Anahtarın rengini değiştirmek için, anahtarla ilişkili renkli daireye tıklayın, istenen renk etiketini seçin ve “Seç”e tıklayın.
Özel sembolün değerin yanında görüntülenmesi için widget’ınızda istediğiniz sembolü belirleyebilirsiniz. İlgili alana istediğiniz karakteri girin ve “Kaydet”e tıklayın.
Ondalık ayırıcının sonrasında görüntülenecek basamak sayısını özelleştirmek isterseniz, ilgili alanda istediğiniz sayıyı belirtebilirsiniz. İstediğiniz değeri girdikten sonra, “Kaydet”e tıklayın.
Anahtarın Toplanması
Fast IoT Platform’da en son değerler widget’ları varsayılan olarak bir zaman penceresine sahip değildir. Ancak, En Son Değerler widget’ındaki herhangi bir veri anahtarında birleştirme işlevselliğini etkinleştirirseniz, zaman penceresi kontrolü görüntülenir. Göstermek istediğiniz her telemetri anahtarı için ayrı ayrı birleştirme yapabilir ve aynı zamanda veritabanında saklamak zorunda kalmazsınız. Zaman penceresi yapılandırması, gerçek zamanlı aralıklar (Mevcut Saat/Gün/Ay) ve ‘Geçmiş’ zaman aralıkları ile sınırlıdır. Performans nedenleriyle, ‘son 30 dakika’ veya ‘son 24 saat’ gibi gerçek zamanlı aralıklar desteklenmez. Birleştirme işlevselliğini telemetri olarak saklamak isterseniz, aşağıdaki bağlantıda daha fazla ayrıntı bulabilirsiniz.
Toplama seçenekleri:
Min veya Max: Bu işlev belirtilen aralıktaki minimum veya maksimum değeri seçer. Güç kablosundaki güç dalgalanmaları, hava kirliliği düzeyleri, ekipman yükü vb. gibi zirve negatif veya pozitif değerleri tespit etmek için kullanılabilir.
Average (Ortalama): Bu işlev, seçilen aralıktaki telemetrideki ölçümlerin toplamını alarak bu değeri aynı aralıktaki telemetri sayısına böler ve böylece aritmetik ortalamayı hesaplar. Örneğin, haftalık yakıt tüketimini, desibel cinsinden akustik gürültüyü, fan hızını, sinyal kalitesini vb. hesaplamak için kullanılabilir.
Sum: Bu fonksiyon, belirtilen dönem için tüm telemetri verilerini özetler. Toplam kilometrede araç kilometre sayısının hesaplanması, su tüketiminin izlenmesi, boşta kalma süresinin takibi gibi çeşitli amaçlar için kullanılabilir.
Sayım (Count): Bu işlev, seçilen dönemde iletilen toplam mesaj sayısını hesaplar. Pil gücüyle çalışan cihazların yapılandırılması ve optimize edilmesi, sensör aktivasyon hassasiyetinin değerlendirilmesi vb. gibi amaçlar için kullanışlı olabilir.
Delta fonksiyonu, belirli bir zaman aralığı için toplanan değerler ile ilgili zaman penceresi aralığı için karşılık gelen değerler arasındaki farkı hesaplamak için kullanışlı bir araçtır.
“Karşılaştırma periyodu“, geçmiş aralığı referans alarak seçilen seçeneğe göre ayarlayan bir parametredir. Varsayılan seçenek olan “Önceki aralık” gibi birkaç seçenek mevcuttur. Bu seçenek, sadece zaman aralığını değil, “Geçerli gün” veya “Geçerli gün şimdiye kadar” gibi aralık türlerini de dikkate alır.
Örneğin, seçilen seçenek “Geçmiş – Şu ana kadar geçen ay” ise, aralık 1.09.22 ile 25.09.22 arasında olacak ve önceki aralık 1.08.22 ile 25.08.22 arasında olacaktır.
‘Day ago‘ seçeneği, geçmiş aralığın başlangıcından ve sonundan 24 saat çıkarır. Örneğin, ‘Geçerli gün’ ve ‘Delta – Gün önce’ seçenekleri için su tüketimini hesaplarken:”
“Week ago” ifadesi, geçerli gün aralığından 168 saat önceki bir aralığı ifade eder. Örneğin, belirli bir metrik için ortalama verileri inceliyorsak, geçmiş aralık şu anki günden önceki dönemi ifade eder. Bir hafta önceki delta, yine aynı metrik için, şu anki günden bir hafta önceki aralığı ifade eder.
“Month ago” ifadesi, geçmiş aralıkla aynı süreye sahiptir ve geçmiş aralıktan çıkarılır. Örneğin, mevcut ay Şubat (28 gün) ise, “ay önce” aralığı tam önceki ay değil, önceki 28 günü ifade eder.
Örneğin, toplam su tüketimini analiz ediyorsak, geçmiş aralık şu anki güne kadar olan dönemi ifade eder. “Ay önce” delta, aynı metrik ama şu anki geçmiş aralıktan bir ay önceki 28 günlük aralığı ifade eder.
“Year ago” ifadesi, geçmiş aralıktan 365 gün önceki bir aralığı ifade eder.
Karşılaştırma yapmak gerekiyorsa, önceki ayın verilerini ve geçen yılın aynı ayına ait verileri toplayabiliriz.
“Özel aralık” seçeneği, özel gereksinimlerimize göre bireysel aralıklar ayarlamamıza olanak sağlar. Bu seçenek için maksimum izin verilen değer ‘int’ veri türüyle sınırlıdır. Örneğin, özel bir aralık ayarlamak için ‘7200000’ gibi bir değer kullanarak 12 saatlik bir aralığı belirtebiliriz.
Delta hesaplama sonucu seçeneği, sonucun nasıl görüntüleneceğini belirlememize olanak tanır:
Önceki Değer: Karşılaştırılan aralığın toplama değerini gösterir, mevcut tarih aralığı değil.
Delta (mutlak): Karşılaştırılan aralıklar arasındaki farkı gösterir ve varsayılan seçenek olarak ayarlanır.
Delta (yüzde): Sonucu önceki aralığa göre yüzde olarak gösterir. Bu seçenek için kullanılan formül şu şekildedir: (Aralık Değeri – Önceki Aralık Değeri)/Önceki Aralık Değeri*100.
Ayrıca, isteklerimize göre çıktı verilerini değiştirmek için veri son işleme işlevini kullanabiliriz. Bu işlevi kullanmak için “Veri son işleme işlevini kullan” onay kutusunu işaretlemeli ve aşağıdaki alana istediğimiz işlevi girmeliyiz. Son olarak, sağ alt köşedeki “Kaydet” düğmesine tıklamanız gerekiyor.
3.2. Gelişmiş veri anahtarı ayarları
Gelişmiş veri anahtarları yapılandırması, bir widget’taki belirli bir veri anahtarının sütununda görünürlük, stil ve görünümü belirlemekten sorumludur. Varlık tablo widget’ı, alarm tablo widget’ı ve varlık yönetici widget’ı demeti aynı gelişmiş veri anahtarı yapılandırmasını paylaşır. Grafikler widget’ı demeti ise kendi benzersiz gelişmiş veri anahtarı yapılandırmasına sahiptir. Öte yandan, diğer tüm widget demetleri yalnızca temel veri anahtarı yapılandırma seçeneklerine sahiptir.
Daha fazla bilgi için buradaki bağlantıyı takip edebilirsiniz.
4. Widget zaman penceresi #
Bir widget zaman aralığı, zaman serisi veya alarm verilerini almak için kullanılacak zaman aralığını ve toplama işlevini belirler. Her widget varsayılan olarak, panonun araç çubuğunda belirlenen ana zaman penceresini kullanır. Ancak, varsayılan zaman penceresi, “Pano zaman penceresini kullan” onay kutusunu işaretleyerek geçersiz kılınabilir. Ayrıca, bir belirli widget için zaman penceresi seçimini kullanıcıdan gizlemek istiyorsak “Zaman penceresini göster” onay kutusunu seçerek bunu yapabiliriz.
Daha fazla bilgi için buradaki bağlantıyı takip edebilirsiniz.
5. Alarm filtresi #
Alarm widgetlerinin zaman aralığı yapılandırmasının yanı sıra, alarm durumlarına, önemine ve tipine göre filtreleme yapma seçeneği de sunarlar. Kullanıcılar, alarm durumları ve önemleri için bir kombinasyon seçebilirler. Ayrıca belirli alarm tipleri de tanımlanabilir ve iletilen alarmların aranması da etkinleştirilebilir.
Temel widget ayarları #
Varsayalım ki sadece widget veri yapılandırması adımını kullanarak termometreleri görüntülemek için “Zaman Serisi Çizgi Grafiği” widget’ını eklediniz. Benzer bir widget göreceksiniz (gerçek çizgileri grafikte görebilmek için veri göndermeniz/simüle etmeniz gerektiğini unutmayın):
Temel widget ayarlarını kullanarak widget’ı özelleştireceğiz ve her ayarın widget üzerindeki etkisini göstereceğiz.
1. Widget Başlığı #
Widget başlığı, ipucu ve başlık stiline özelleştirme yapmak mümkündür. Ayrıca başlığa bir simge de ekleyebilir ve simge rengini ve boyutunu kontrol edebilirsiniz. Aşağıdaki örnek, bu ayarları nasıl yapılandıracağınızı ve sonuçlarını göstermektedir.
Yukarıdaki resimde görülen başlık stili:
{ “fontSize”: “15px”, “fontWeight”: 600 } |
2. Widget Stili #
Widget, özelleştirmek için CSS özelliklerini kullanarak kişisel bir stile sahip olabilir. Bu stil, widget’in ana div öğesine uygulanacaktır.
Ayrıca, “Drop shadow” onay kutusunu seçerek widget gölgesini devre dışı bırakabilir ve “Enable fullscreen” onay kutusunu seçerek tam ekranı devre dışı bırakabilirsiniz. Bu ayarlar varsayılan olarak etkindir.
Widget’ın arka plan rengi, metin rengi, dolgu ve kenar boşluğunu da ayarlayabilirsiniz. Yapılandırmaya ve karşılık gelen sonuca aşağıda bakabilirsiniz.
Lütfen burada gösterilen stil ve arka plan renginin sadece örnekler olduğunu ve kesinlikle rehberlerimize uymadığını unutmayın.
Yukarıdaki ekrandan Widget stili:
{ “border”: “3px solid #2E86C1”, “cursor”: “pointer” } |
3. Gösterge ayarları #
Çizgi grafikleri için “Göstergeyi görüntüle” seçeneği varsayılan olarak etkindir ve minimum, maksimum, ortalama ve toplam değerleri görüntüler. Diğer widget’lar ise bu seçeneği devre dışı bırakır.
Gösterge görüntülendiğinde, yönünü, konumunu ve dahil edilecek verileri (min, max, average, total) seçebilirsiniz, veri anahtarlarını sıralamayı da seçebilirsiniz.
Veri anahtar konfigürasyonunda, gösterge her bir yapılandırılmış veri anahtarı etiketi için görüntülenir. Aynı widget’ta birden fazla cihaz bulunduğunda, göstergede veya açıklama aracında hangi cihazın hangi kayda karşılık geldiğini bulmak zor olabilir. Gösterge ve açıklama aracındaki netlik için, veri anahtar konfigürasyonunda “${entityName}” veya “${entityLabel}” kullanmalısınız.
Aşağıdaki yapılandırma ve ilgili sonuca bakın:
4. Mobil mod ayarları #
Mobil Mod ayarları iki seçenek içerir:
Sıralama – Mobil modda görüntülenen widget’ların öncelik sıralamasını belirleyen bir tam sayıdır (mobil modda tüm widget’lar tek bir dikey sütunda görüntülenir). Bu sütundaki widget’ları özel bir sıraya yerleştirmek isterseniz, her bir widget için farklı sıralama değerleri yapılandırabilirsiniz.
Yükseklik – Bu seçenek 1 ile 10 arasında bir tamsayı değer alır ve widget’in yüksekliğini orijinal yüksekliğine bakılmaksızın 70px (1) ile 700px (10) aralığında Mobil Modda ayarlar. Örneğin, bir değer 5 olarak ayarlandığında, widget yüksekliği 350px olacaktır (70 * 5). Değer belirtilmezse, widget’ın orijinal yüksekliği kullanılacaktır.
Gelişmiş widget ayarları #
Gelişmiş widget ayarları, widget uygulamasına özeldir. Bu ayarlar, widget’ı ince ayar yapmanıza olanak tanır. Örneğin, “Timeseries – Flot” widget’ı, çizgi stilini ve genişliğini yapılandırmanıza, önceki zaman aralığıyla karşılaştırmayı etkinleştirmenize ve eşleşme etiketinde varlık özniteliklerini kullanmanıza olanak tanır.
Widget işlemleri #
Actions, durum geçişlerini hızlı ve kolay bir şekilde yapılandırmak, diğer panolara gitmek veya mevcut panoyu güncellemek için kullanılır. Hangi kaynakların kullanılabileceği widget’e bağlıdır, ancak tüm widget’ler için seçebileceğiniz eylem türü aynı kalır. Eylemler, gereken widget’in Düzenleme modunda ayarlanır. Eylemleri kullanmayı tam olarak anlamak için, widget’inize bir Durum eklemeniz gerekmektedir.
Widget eylemleri hakkında daha fazla bilgi için ilgili belgelendirmeye başvurun.
Zaman penceresi #
Dashboard zaman aralığı, zaman serisi veya alarm verilerini almak için kullanılacak zaman aralığını ve birleştirme işlevini temsil eder. Zaman aralığı, açıkça yapılandırılmadıkça, tüm zaman serisi ve alarm widget’ları tarafından kullanılır.
Zaman serisi widget’ı durumunda, Fast IoT Platform, zaman penceresine uygun bir zaman damgasına sahip telemetriyi alır. Alarm widget’ı durumunda ise Fast IoT Platform, zaman penceresine uygun yaratılma zamanına sahip alarm verilerini alır.
Zaman aralığı iki modda çalışabilir:
Gerçek zamanlı mod – Bu modda, widget’lar sunucudan sürekli güncellemeler alır ve zaman aralığına uygun olan verileri güncel zaman damgasına göre otomatik olarak gösterirler.
Tarih modu – Bu modda, widget’lar yalnızca ilk yüklemede veri alır ve WebSockets üzerinden başka güncellemeler almazlar.
Veri birleştirme işlevi sadece zaman serisi verileri için geçerlidir ve alarm verileri için geçerli değildir. Şu anda beş birleştirme işlevi mevcuttur: Min, Max, Ortalama, Toplam ve Sayım. Özel işlev olan Hiçbiri, birleştirmeyi devre dışı bırakmak için kullanılır. Veri birleştirme, tüm zaman serisi verilerini UI’a getirmek istemediğinizde ve bunu veritabanı seviyesinde önceden birleştirmek istediğinizde yararlıdır. Birleştirme işlevlerinin kullanımı, istemci tarayıcısının ağ genişliğini ve hesaplama gücünü azaltır. Büyük miktarda ham veriye sahipseniz, mümkün olduğunca birleştirme işlevlerini kullanmanızı öneririz.
Son X dakika / saat / günün yanı sıra (Geçerli Gün, Önceki Gün, Önceki Ay vb.) önceden tanımlanmış aralıkları kullanabilirsiniz. Geçerli gün aralığı 24 saat (gece yarısından ertesi gün gece yarısına kadar) anlamına gelirken, Bugüne Kadar aralığı gece yarısından, zaman aralığı güncellendiği zamana kadar olan süreyi ifade eder. Diğer tüm aralıklar aynı şekilde ayırt edilir.
Bazı durumlarda, zaman aralıkları uzun olabilir ve zaman damgalarını değiştirmeden verileri daha yakından incelemek isteyebilirsiniz. Bu amacı gerçekleştirmek için yakınlaştırma özelliğini kullanabilirsiniz. Yakınlaştırmak için, sağ fare düğmesini basılı tutun ve daha yakından incelemek istediğiniz alanın üzerine fareyi hareket ettirin. Grafik orjinal boyutuna geri dönmek için widget’a çift tıklayın.
Varsayılan olarak, panolar tarayıcı tarafından sağlanan zaman dilimini kullanır. Ancak, artık tarayıcınız için veya belirli bir ülke için zaman dilimini ayarlamak mümkündür. İstenen zaman dilimini hızlıca bulmak için zaman dilimi çubuğunda adını yazmaya başlayabilirsiniz.
Ayarlar #
Dashboard ayarları, genel görünümünü özelleştirme ve geliştirme imkanı sunar. Kullanıcı deneyimini geliştirmek için Dashboard’u özelleştirmeye başlamak için ilk adım, sayfanın sağ alt köşesinde bulunan “Kalem” simgesine tıklayarak Düzenleme moduna girmektir (Düzenleme moduna gir).
Edit moduna girdikten sonra, pencerenin üst kısmında bulunan “Dişli Çark” simgesine tıklayarak, Dashboard Ayarları açılabilir.
Durum denetleyicisi #
İlk özelleştirilebilir özellik, Durum Denetleyicisidir. Varsayılan olarak, “entity” olarak ayarlanmıştır, bu nedenle tüm özelliklerin kullanılabilir olduğundan ve Gösterge Panelinin mümkün olduğunca kullanıcı dostu olduğundan emin olmak için bu şekilde bırakmak önerilir.
Araç çubuğunu açık tut #
“Araç çubuğunu açık tut” onay kutusu, Gösterge Tablosu sayfasında araç çubuğunun görüntülenmesini kontrol eder. Bu araç çubuğu, farklı gösterge panoları arasında geçiş yapma, zaman aralığını düzenleme, gösterge panelini dışa aktarma ve tam ekran moduna geçirme gibi çeşitli işlevleri sağlar.
“Araç çubuğunu gizle” kutusu onaylanırsa, araç çubuğu gizlenir. Yerine, ekranın sağ üst köşesinde üç nokta simgesi görünür. Bu simgeye tıkladığınızda, önceden gizlenmiş olan araç çubuğu ortaya çıkar.
Gösterge Panelinin Başlığı #
Gösterge Paneli Başlığını görmek için, “Gösterge paneli başlığını görüntüle” onay kutusunu seçmeniz gerekiyor. Başlık için varsayılan metin rengi siyahtır. “Başlık rengi” parametresini kullanarak rengi ve saydamlığı kolayca ayarlayabilirsiniz. Farklı bir renk seçmek için, renkli daireye tıklayın ve kaydırıcıyı istediğiniz renge getirin. Değiştirilmiş başlık, Gösterge Panelinin sol üst köşesinde görüntülenir.
Gösterge Paneli Araç Çubuğu Ayarları #
Display Dashboard selection, Display entities selection, Display filters, Display timewindow ve Display export onay kutuları, Gösterge Paneli’nde ilgili seçeneklerin görünürlüğünü belirler.
“Filtreler” seçeneği, yalnızca oluşturulduğunda araç çubuğu panelinde görüntülenir. Filtre oluşturulduysa, ancak müşterinin cihaz göstergelerini değiştirme yetkisini sınırlamak isterseniz, ilgili onay kutusunu işaretlemeden filtreyi araç çubuğu panelinde görüntüleme seçeneğini devre dışı bırakabilirsiniz.
Renk #
“Renk” satırı, Gösterge Tablonuzu düzenlerken görebileceğiniz metin mesajlarının rengini belirler. Rengi, satırın solundaki renkli daireye tıklayarak ayarlayabilirsiniz. Küçük bir pencere açılacak ve kaydırıcıları hareket ettirerek metnin rengini ve saydamlığını ayarlayabilirsiniz. Varsayılan renk siyahtır. Örneğin, henüz bir bileşen gösterge tablonuza eklenmediyse ve rengi değiştirirseniz, “Yeni bileşen ekle” mesajı da buna göre değişir.”
Kapasite #
Sütun sayısı
Dashboard’ınızı düzenlerken, özellikle widget’ların boyutunu ve konumunu ayarlarken, gri arka plan üzerinde beyaz ızgarayı fark edebilirsiniz. Bu ızgaralar, bir Dashoard’ta yatay olarak kaç widget’ın sığabileceğini belirler. Varsayılan olarak, 24 sütun vardır, ancak ihtiyacınıza göre sayılarını artırabilir veya azaltabilirsiniz. Minimum sütun sayısı 10, maksimum ise 1000’dir.
Widget’lar arasındaki kenar boşluğu
Margin türü, ara bileşenler arasındaki boşluğu belirler. Varsayılan olarak, kenar boşluğu 10 olarak ayarlanmıştır. Ara bileşenler arasındaki boşluğu kaldırmak için, “Margin between widgets” satırına 0 yerleştirerek sıfıra ayarlayabilirsiniz veya boşluğu artırmak için kenar boşluğunu artırabilirsiniz. Maksimum kenar boşluğu 50’dir.
Düzen yüksekliğini otomatik doldur
“Otomatik Doldur Düzen Yüksekliği” onay kutusu varsayılan olarak işaretlenmemiş durumdadır, bu sayede widget’ların boyutunu serbestçe ayarlayabilirsiniz. Bu seçeneği işaretlerseniz, Dashboard’daki tüm widget’lar ekranın dikey alanına otomatik olarak doldurulacaktır.
Arka plan ayarları #
Arka plan rengi #
Dashboard’ın arka plan rengini özelleştirmek için “Arka plan rengi” seçeneğini kullanabilirsiniz. Renk seçiciyi açmak için renkli daireye tıklayın ve kaydırıcıları kullanarak istediğiniz rengi ve şeffaflığı seçin. Seçtiğiniz renk belirledikten sonra, değişiklikleri uygulamak için “Kaydet” düğmesine tıklayın. Kaydettikten sonra, özelleştirilmiş arka plan rengini Dashboard’unuzda görebilirsiniz.
Arka plan görüntüsü #
Bu seçenek, resmi arka plan olarak ayarlamanızı sağlar. Bunun için, uygun alana bir resim sürükleyip bırakmanız veya bilgisayarınızdaki bir klasörden yüklemeniz gerekiyor. Seçtikten sonra, Ayarlar penceresinin sol tarafında bir resim önizlemesi görünecektir. Resmin pozisyonunu daha hassas bir şekilde ayarlamak için açılır menüyü tıklayın ve resmin arka plan alanını nasıl dolduracağını seçin. Örneğin, “cover” seçeneğini seçin ve ardından değişikliği görmek için “Kaydet”e tıklayın.
Mobil düzen ayarları #
Varsayılan olarak, mobil cihazlarda “Otomatik Doldur Düzeni Yüksekliği” onay kutusu işaretli değildir, böylece widget’ların boyutunu serbestçe ayarlayabilirsiniz. Bu seçeneği işaretlerseniz, Dashboard’daki tüm widget’lar ekranın dikey alanını otomatik olarak dolduracaktır.
“Mobil satır yüksekliği” ayarı, mobil cihazınızdaki widget’ların yüksekliğini belirler. Varsayılan olarak, yükseklik 70px olarak ayarlanmıştır, ancak daha küçük veya daha büyük hale getirebilirsiniz. Minimum mobil satır yüksekliği 5px, maksimum ise 200px’dir.
Düzenler #
Bir panodaki widget’ları düzenlemek için düzenlemeler kullanabilirsiniz. Bir düzeni yönetmek için, düzenleme moduna girmek için ekranın sağ alt köşesindeki “Kalem” simgesine tıklayın. Düzenleme modunda olduktan sonra, Dashboard penceresinin sol üst köşesindeki üç dikdörtgenli “Düzenlemeleri yönet” düğmesine tıklayın. Bu, düzenlemeleri kontrol etmek için küçük bir pencere açacaktır.
Ana düzen, şu anda yönetmekte olduğunuz ana düzen olarak adlandırılır. Temel olarak, bu sizin kontrol panelinizdir. “Ana” olarak adlandırılan büyük mavi kare düğmeye tıklarsanız, Arayüz Düzeni Ayarları penceresi açılır. Düzen ayarları, Kontrol Paneli Ayarları’ndaki Kapasite ve Arkaplan ayarlarıyla benzerdir.
Eğer “Divider” onay kutusunu işaretlerseniz, Kontrol Paneli iki ayrı bölüme bölünecektir. Her bölüm için kendi ayarlarını ve arayüzünü yapılandırabilirsiniz.
Farklı görünümlerin elde edilebileceğini göstermek için her iki düzenlemeyi tamamen farklı şekillerde yapılandıracağız. Eşlik eden ekran görüntüsü, iki düzenleme arasındaki ayar farklılıklarını vurgular (bu sadece bir örnektir ve öneri değildir). Gerekli ayarlamaları yaptıktan sonra, güncellenmiş sürümleri görüntülemek için Düzenler penceresindeki “Kaydet” düğmesine tıklamanız yeterlidir.
Durumlar #
Durumlar özelliği, gösterge tablonuzda hiyerarşik bir yapı oluşturmanıza yardımcı olmak için tasarlanmıştır. Durumları etkili bir şekilde kullanmak için, gerekli durumlar arasında hızlı gezinmenize olanak tanıyan bir widget’a özel bir eylem atamanız gerekir. Başlamak için, “Yönet” etiketi ile işaretlenmiş, sol üst köşede iki katmanlı kareler düğmesine tıklamanız gerekir. Bu, gösterge tablosu durumu yapılandırma seçenekleriyle birlikte bir pencere açar.
Henüz hiçbir durum oluşturmadığınız için, yalnızca “Kök Durum” olarak adlandırılan gösterge tablonuzun ana durumu vardır. Ek durumlar oluşturduktan sonra, “Kalem” simgesine (Gösterge Tablo Durumunu Düzenle) tıklayarak kök durumu kolayca değiştirebilirsiniz ve “Kök Durum” onay kutusunu seçebilirsiniz.
Yeni bir durum eklemek için, pencerenin sağ üst köşesindeki “+” düğmesine tıklamanız yeterlidir. Bu, yeni bir durum oluşturma için küçük bir pencere açacaktır. Duruma bir isim verin ve bir Durum Kimliği adı otomatik olarak isimden oluşacaktır, ancak ihtiyaç halinde değiştirebilirsiniz.
Bir widget arasında gezinmek için belirli bir eylem atanmalıdır. Eylem eklemek için, widget’ın sağ üst köşesindeki “kalem” simgesine tıklayarak widget yapılandırma alanına erişmelisiniz. Oradan, “Eylem” hücresine gidin ve yeni bir eylem eklemek için “+” simgesine tıklayın. Bu, “Eylem ekle” penceresini açacaktır.
Eylem kaynağı, bir hedefe ulaşmak için tamamlanması gereken belirli bir görevi ifade eder.
Ad alanı, eylem için tercih edilen başlığı seçmenizi sağlar.
Simge alanı, eylemi temsil etmek için bir sembol seçmenize olanak tanır.
Tip alanı, eylemin hedefini belirler.
Senaryomuzda, Type alanı “Yeni bir dashboard durumuna geç” olarak ayarlanmalıdır. Bu seçenek seçildikten sonra, “Hedef dashboard durumu” satırı belirecek ve yeni oluşturulan bir durum seçmenizi isteyecektir. Yeni durum için yapılandırmayı tamamladıktan sonra, “Kaydet” düğmesine tıklayın. Yeni durum, Eylem listesinde görüntülenecektir. Değişiklikleri uygulamak için pencerenin sağ üst köşesindeki turuncu onay işaretine tıklayın.
“Eylem hücre butonu” eylemi seçildiğinden, eylemi etkinleştirmek için widget’ın satırına tıklamamız gerekiyor. Tıkladıktan hemen sonra seçilen duruma aktarılacağız.
Bir durumu bir varlık adından sonra adlandırmak için, durum adı olarak ${entityName} kullanın. Böylece eylem tetiklendiğinde, adı eylemde yer alan varlık adıyla aynı olan bir duruma yönlendirileceksiniz.
Gösterge panelini içe aktar #
Bir JSON formatındaki gösterge tablosunu içe aktarmak için şu adımları izleyin: Gösterge tablosu grubuna gidin ve sayfanın sağ üst köşesinde bulunan “+” düğmesine tıklayın. Ardından, “Gösterge tablosu içe aktar” seçeneğini seçin. Bu, gösterge tablosu içe aktarma penceresini açacaktır. JSON dosyasını yüklemek için talimatları takip edin ve ardından içe aktarmayı başlatmak için “İçe aktar” düğmesine tıklayın.
Dışa aktar #
Fast IoT Platform’da, bir gösterge panelini veya belirli bir bileşeni JSON formatında yapılandırma dosyası olarak dışa aktarabilirsiniz. Bu dosya, gösterge paneli veya bileşen yapılandırmanızı başka bir Fast IoT Platform örneğine aktarmak için kullanılabilir.
Gösterge panelini dışa aktar #
Fast IoT Platform’da bir dashboard’u dışa aktarmak için şu adımları izleyin:
Kontrol panelindeki Dashboards bölümüne gidin ve listeden dışa aktarmak istediğiniz dashboard’u bulun.
Listedeki dashboard isminin karşısında bulunan “Export dashboard” düğmesine tıklayın.
Kontrol panelindeki tüm ayarları içeren JSON formatındaki bir yapılandırma dosyası bilgisayarınıza kaydedilecektir.
Fast IoT Platform’da bir dashboard’u dışa aktarmak için bunu doğrudan Dashboard’dan yapabilirsiniz. Sadece dashboard’u açın ve ekranın sağ üst köşesinde bulunan “Dashboard’ı dışa aktar” düğmesine tıklayın.
Widget Kitaplığı #
Giriş #
Fast IoT Platform IoT gösterge panoları, Widget Kütüphanesi’nden alınan widget’lar kullanılarak oluşturulur. Her widget, veri görselleştirme, uzaktan cihaz kontrolü, alarm yönetimi ve özel statik HTML içeriğinin görüntülenmesi gibi farklı son kullanıcı işlevleri sağlar.
Widget Türleri #
Her bir widget, sağladığı özelliklere göre belirli bir widget türünü temsil eder. Fast IoT Platform’da beş widget türü bulunmaktadır:
En Son Değerler;
Zaman Serisi;
RPC (Kontrol widget’ı);
Alarm widget’ı;
Statik widget.
Fast IoT Platform’daki her widget, widget türünü tanımlayan belirli özellikler sağlamak üzere tasarlanmıştır. Fast IoT Platform’da beş ana widget türü vardır:
En son değerler widget’ı: Bu widget türü, cihaz özniteliklerinin veya telemetrisinin en son değerlerini gösterir.
Zaman serisi widget’ı: Bu widget, cihaz özniteliklerinin veya telemetrisinin geçmiş değerlerini grafiksel bir formatta gösterir.
RPC (Uzak Prosedür Çağrısı) widget’ı: Bu widget, bir cihaza komut göndermek ve yanıtı almak için bir yol sağlar.
Alarm widget’ı: Bu widget, cihaz alarmlarını ve mevcut durumlarını görüntüler.
Statik widget: Bu widget, cihaz verileriyle ilgisi olmayan özel HTML içeriğini görüntülemek için kullanılır.
Şekil 1.1.1 – Widget türleri
Şekil 1.1.2 – Alarm göstergesi türünde widget
Şekil 1.1.3 – Kontrol göstergesi türünde widget
Fast IoT Platform’da her widget türü için belirli bir veri kaynağı yapılandırması ve ilgili API widget’ı bulunmaktadır. Her widget, verileri görselleştirmek için veri kaynaklarına ihtiyaç duyar. Mevcut veri kaynağı türleri, widget türüne bağlı olarak değişir ve şunları içerir:
Hedef cihaz – RPC widget’ında hedef cihazı belirtmek için kullanılır.
Alarm kaynağı – alarm widget’larında bir kaynak varlık üzerindeki alarm ve ilgili alanları görüntülemek için kullanılır.
Varlık – zaman serisi ve son değerler widget’larında kullanılır. Hedef varlık, zaman serisi anahtarı veya öznitelik adı belirtilmelidir.
Varlık sayısı – son değerler widget’larında kullanılır. Hedef varlık belirtilmelidir.
Fonksiyon – zaman serisi ve son değerler widget’larında hata ayıklama için kullanılır. Cihaz verilerini görselleştirmek için bir JavaScript işlevi belirtilmesine olanak tanır.
Son değerler #
En Son Değerler (Latest Values) widget türü, belirli bir varlık özniteliğinin veya zaman serisi veri noktasının (örneğin herhangi bir Ölçü Aleti veya Varlık Tablosu widget’ı) en son değerlerini gösterir. Bu tür widget’lar, varlık özelliği veya zaman serisi değerlerini veri kaynağı olarak kullanır. Örneğin, Digital Gauge widget’ı, mevcut sıcaklık değerini görüntüler.
Şekil 1.2.1 – Gösterge paketlerinden ‘Digital gauges’ paketi seçilir.
Şekil 1.2.2 – ‘Digital thermometer’ göstergesi seçilir.
Şekil 1.2.3 – Bu araç tipi, varlık zaman serilerinin değerlerini veri kaynağı olarak kullanır.
Şekil 1.2.4 – Mevcut güç değerini gösteren Dijital Gösterge.
Zaman serisi #
“Zaman Serisi” widget türü, belirli bir zaman dilimi için tarihsel değerleri veya belirli bir zaman aralığındaki en son değerleri gösterir (“Zaman Serisi Çizgi Grafiği” veya “Zaman Serisi Sütun Grafiği” gibi). Bu widget türleri sadece varlık zaman serisi değerlerini veri kaynağı olarak kullanır. Gösterilen değerlerin zaman aralığını belirlemek için Zaman Aralığı ayarları kullanılır. Zaman aralığı, panoda veya widget ayrıntılarında belirlenebilir ve gerçek zamanlı olarak veya geçmişteki sabit bir zaman aralığında olabilir. Tüm bu ayarlar Zaman Serisi widget yapılandırmasının bir parçasıdır. Verilen örnekte, “Zaman Serisi Çizgi Grafiği”, cihazın gerçek zamanlı hız değerini gösterir.
Şekil 1.3.1 – Charts gösterge paketlerinden ‘Timeseries Line Chart’ göstergesi seçilir.
Şekil 1.3.2 – Bu tür widget’lar veri kaynağı olarak yalnızca varlıkların zaman değerlerini kullanır.
Şekil 1.3.3 – Zaman Serisi Çizgi Grafiği
RPC (Kontrol widget’ı) #
Kontrol aracı, cihazlara uzak prosedür çağrısı (RPC) gönderme olanağı sağlar ve cihazın yanıtını işler ve gösterir (örneğin, “Raspberry Pi GPIO Kontrolü” aracı). RPC araçları, hedef cihazı RPC komutlarının hedef uç noktası olarak belirleyerek yapılandırılır. Örnekte, “Temel GPIO Kontrolü” aracı GPIO anahtar komutları gönderir ve mevcut GPIO anahtar durumunu algılar.
Şekil 1.4.1 – Gösterge paketlerinden ‘GPIO widgets’ paketi seçilir.
Şekil 1.4.2 – ‘Basic GPIO Control’ göstergesi seçilir.
Şekil 1.4.3 – RPC araçları, RPC komutları için hedef uç noktası olarak hedef cihazı belirterek yapılandırılır.
Şekil 1.4.3 – RPC widget örneği ‘Basic GPIO Control’.
Alarm Widget’ı #
Bir Alarm aracı, belirli bir zaman aralığındaki belirli bir varlıkla ilgili alarmları sunan bir görüntüleme türüdür ve “Alarm tablosu” gibi bir şeydir. Widget, bir varlığı alarm kaynağı olarak seçerek ve ilgili alarm alanlarını belirterek yapılandırılır. Zaman Serileri araçları gibi, Alarm araçları da görüntülenen alarmlar için zaman çerçevesini yapılandırmak için kullanıcılara izin verir.
Alarm aracının yapılandırması, “Alarm Durumu”, “Alarm Şiddeti” ve “Alarm Türü” gibi parametreleri içerir. “Alarm Durumu” parametresi, alınan alarmların durumunu belirtir. “Alarm Şiddeti” parametresi, saniye cinsinden ölçülen alarmların alınma sıklığını kontrol eder. “Alarm Türü” parametresi, farklı türdeki alarmlar arasındaki farkı belirlemeye ve kök nedenlerini belirlemeye yardımcı olur. Örneğin, “Yüksek Sıcaklık” ve “Düşük Nem” gibi iki farklı alarm, bu parametre aracılığıyla tanımlanabilir.
“Alarm Tablosu” aracı örneği, cihazın en son alarmını gerçek zamanlı olarak görüntüler ve kullanıcılara cihazın durumu hakkında güncel bilgi sağlar.
Bir Alarm aracı, belirli bir zaman aralığındaki belirli bir varlıkla ilgili alarmları sunan bir görüntüleme türüdür ve “Alarm tablosu” gibi bir şeydir. Widget, bir varlığı alarm kaynağı olarak seçerek ve ilgili alarm alanlarını belirterek yapılandırılır. Zaman Serileri araçları gibi, Alarm araçları da görüntülenen alarmlar için zaman çerçevesini yapılandırmak için kullanıcılara izin verir.
Alarm aracının yapılandırması, “Alarm Durumu”, “Alarm Şiddeti” ve “Alarm Türü” gibi parametreleri içerir. “Alarm Durumu” parametresi, alınan alarmların durumunu belirtir. “Alarm Şiddeti” parametresi, saniye cinsinden ölçülen alarmların alınma sıklığını kontrol eder. “Alarm Türü” parametresi, farklı türdeki alarmlar arasındaki farkı belirlemeye ve kök nedenlerini belirlemeye yardımcı olur. Örneğin, “Yüksek Sıcaklık” ve “Düşük Nem” gibi iki farklı alarm, bu parametre aracılığıyla tanımlanabilir.
“Alarm Tablosu” aracı örneği, cihazın en son alarmını gerçek zamanlı olarak görüntüler ve kullanıcılara cihazın durumu hakkında güncel bilgi sağlar.
Şekil 1.5.1 – Alarm Widgets paketinden ‘Alarms table’ göstergesi seçilir.
Şekil 1.5.2 – Cihaz için en son alarmı gerçek zamanlı olarak gösteren ‘Alarms table’ widget’ı.
Statik #
Statik widget türü, özelleştirilebilir sabit HTML içeriği göstermek için tasarlanmıştır (örneğin, “HTML kartı”). Bu widget’lar herhangi bir veri kaynağına bağlı değildir ve genellikle istenen statik HTML içeriği ve isteğe bağlı olarak CSS stilleri belirtilerek yapılandırılır. Örneğin, belirtilen HTML içeriğini gösteren bir Statik widget örneği olan “HTML kartı” vardır.
Şekil 1.6.1 – Cards paketinden ‘HTML Card’ göstergesi seçilir.
Şekil 1.6.2 – Statik widget tipi, statik HTML içeriği ve isteğe bağlı olarak CSS stilleri belirterek yapılandırılır.
Şekil 1.6.3 – Statik widget’ına bir örnek, belirtilen HTML içeriğini gösteren ‘HTML Card’ göstergesi.
Widget Kitaplığı (Paketler) #
Widget paketleri amaçlarına göre gruplandırılır ve System-level (Sistem seviyesi) veya Tenant-level (tenant seviyesi) Widget’lar olarak sınıflandırılır. Fast IoT Platform kurulumu sırasında temel bir set sistem seviyesi Widget paketi bulunur.
System-level (Sistem seviyesi) paketler Sistem yöneticisi tarafından yönetilir ve sistemdeki herhangi bir tenant tarafından kullanılabilir. Diğer yandan, Tenant-level (Tenant seviyesi) paketleri yalnızca tenantları ve müşterileri tarafından erişilebilir ve tenant yöneticisi tarafından yönetilebilir. Kendi widget’larınızı eklemek isterseniz, rehberde belirtilen talimatları takip ederek bunu yapabilirsiniz.
Şekil 1.7.1 – Gösterge paketleri sayfası
Şekil 1.7.2 – Gösterge paketleri sayfası- devamı
Alarm Widget’ları #
Alarm Widget paketi, belirli varlıklar için alarm görselleştirmesi sağlamak üzere tasarlanmıştır, hem gerçek zamanlı hem de geçmiş modlarında kullanılabilir.
Şekil 1.8.1 – Belirli varlıklar için alarm görselleştirme, hem gerçek zamanlı hem de geçmiş zamanlı modunda kullanılabilir.
Analog Göstergeler #
Analog Göstergeler paketi, sıcaklık, nem, hız ve diğer tamsayı veya ondalık değerler için görselleştirme sağlamak üzere tasarlanmıştır.
Şekil 1.9.1 – Sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için kullanılır.
Kartlar #
Kart paketi, zaman serisi verilerinin veya özniteliklerinin tablo veya kart widget’larında görselleştirilmesi için kullanışlıdır.
Grafikler #
Grafikler paketi, belirli bir zaman aralığı içinde tarihsel veya gerçek zamanlı verilerin görselleştirilmesi için tasarlanmıştır.
Şekil 1.10.1 – Zaman penceresi ile tarihsel veya gerçek zamanlı verilerin görselleştirilmesi için kullanılır.
Kontrol Widget’ları #
Kontrol Widget’ları paketi, mevcut durumun görselleştirilmesine olanak sağlar ve hedef cihazlara RPC komutlarının gönderilmesini kolaylaştırır.
Şekil 1.11.1 – Hedef cihazlara RPC komutları gönderme ve mevcut durumun görselleştirilmesi için kullanılır.
Tarih Widget’ları #
Tarih Widget’ları paketi, kullanıcıların panoda diğer widget’ların tarih aralığını değiştirmelerine olanak tanır.
Şekil 1.12.1 – Kontrol panelindeki diğer araçlar için veri aralığını değiştirmek amacıyla kullanılır.
Dijital Göstergeler #
Dijital Göstergeler paketi, sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için tasarlanmıştır.
Şekil 1.13.1 – Sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için kullanılır.
Varlık Yöneticisi Widget’ları #
“Entity Admin Widgets”, karmaşık widget şablonları olup, kullanıcılara cihaz ve varlıkları listeleme, oluşturma, güncelleme ve silme imkanı sağlayan önceden tasarlanmış şablonlardır.
Şekil 1.14.1 – Cihazların ve varlıkların listelenmesi ile oluşturulması/güncellenmesi/silinmesi için kullanılır.
Ağ Geçidi Widget’ları #
Gateway Widgetlar paketi, uzantıların yönetimini kolaylaştırmak için tasarlanmıştır.
Şekil 1.15.1 – Uzantıları yönetmek için kullanılır.
GPIO Widget’ları #
GPIO Widget paketi, hedef cihazların GPIO durumunu görselleştirme ve kontrol etme işlevi sağlamak için tasarlanmıştır.
Şekil 1.16.1 – Hedef cihazlar için GPIO durumunun görselleştirilmesi ve kontrolü için kullanılır.
Giriş Widget’ları #
Giriş Widget’ları paketi, bir varlığın özniteliklerini değiştirmek için kullanıcıların olanak sağlaması amacıyla tasarlanmıştır.
Şekil 1.17.1 – Varlık özniteliklerini değiştirmek için kullanılır.
Harita Widget’ları #
Harita bileşenleri paketi, cihazların coğrafi konumlarını görselleştirmek ve gerçek zamanlı ve tarihsel modlarda rotalarını takip etmek için değerlidir.
Şekil 1.18.1 – Cihazların coğrafi konumlarının görselleştirilmesi ve cihazların rotalarının hem gerçek zamanlı hem de geçmiş işletimler için kullanılır.
Navigasyon Widget’ları #
Gezinme bileşenleri paketi, kullanıcının ana panelini oluşturmada yardımcıdır.
Şekil 1.19.1 – Kullanıcının ana kontrol panelini tanımlamak için kullanılır.
Widget’ları Planlama #
Zamanlama bileşenleri paketi, esnek zamanlama yapılandırmalarıyla çeşitli etkinlikleri planlamak için faydalıdır. Bu özellik sadece PE ve PaaS’ta mevcuttur.
Widget Paketi Ekleme #
Eğer sistem yöneticisi yeni bir bileşen paketi eklerse, otomatik olarak bir sistem bileşen paketi haline gelir, bu da sadece yöneticinin bileşen türlerini düzenleme, silme ve eklemeye yetkisi olduğu anlamına gelir. tenant yöneticileri de bileşen paketleri oluşturabilirler, ancak sadece kendi oluşturdukları bileşen paketlerini değiştirme iznine sahiptirler. Bu kılavuzu takip ederek her zaman kendi bileşenlerinizi uygulayabilir ve ekleyebilirsiniz.
Yeni bir bileşen paketi oluşturmak için şunları yapmalısınız:
Sol taraftaki ana menüden bileşen paketi sayfasına gidin.
Ekranın sağ üst köşesindeki “+” simgesine tıklayın ve açılır menüden “Yeni bileşen paketi oluştur” seçeneğini seçin.
Şekil 2.1.1 – Yeni gösterge paketi oluştur.
Açılan iletişim kutusunda, yeni paketin adını girin. Bir resim ve açıklama eklemek isteğe bağlıdır.
Şekil 2.1.2 – Gösterge paketi ekle.
Yaptığınız değişiklikleri kaydetmek için “Ekle” düğmesine tıklayın.
Lütfen unutmayın ki bileşen paketleri alfabetik sıraya göre düzenlendiğinden, yeni oluşturulan paket ikinci sayfada görünebilir.
Şekil 2.1.3 – Yeni gösterge paketi başarıyla eklendi.
Bileşen paketini ekledikten sonra, paketinize farklı widget türlerine ait widget’lar ekleyebilirsiniz.
Şekil 2.1.4 – Paketinize farklı widget türlerinden widget’lar ekleyebilirsiniz.
Widget Paketleri Dışa/İçe Aktarma #
Widget Paketleri Dışa Aktarma #
Bir bileşen paketi JSON formatında dışa aktarılabilir ve aynı veya farklı Fast IoT Platform örneğine içe aktarılabilir.
Bir bileşen paketini dışa aktarmak için şu adımları izleyin:
Bileşen Kitaplığı sayfasına gidin.
Dışa aktarmak istediğiniz gösterge paketi satırındaki dışa aktarma düğmesine tıklayın.
Şekil 3.1.1 – Gösterge paketini dışa aktar.
Widget Paketi İçe Aktarma #
Bir widget paketini içe aktarmak, dışa aktarmakla çok benzer. Bir widget paketini içe aktarmak için şu adımlar izlenir:
Widget Kitaplığı sayfasına gidin.
“Widget Paketleri” sayfasının sağ üst köşesindeki “+” düğmesine tıklayın.
Açılır menüden “Widget paketi içe aktar” seçeneğini seçin.
Şekil 3.2.1 – Gösterge paketini içe aktar.
Widget paketi içe aktarma penceresi açılacak ve JSON dosyasını yüklemeniz istenecektir.
Bilgisayarınızdan dosyayı sürükleyip bırakın ve “İçe Aktar” düğmesine tıklayarak widget paketini kütüphaneye ekleyin.
Şekil 3.2.2 – Widget paketinizi ekleyin.
Widget Türleri Dışa/İçe Aktarma #
Bir widget paketinden belirli bir widget türünü JSON formatında dışa aktarmak ve aynı veya farklı Fast IoT Platform örneğine aktarmak mümkündür.
Widget Türü Dışa Aktarma #
Belli bir widget türünü dışa aktarmak için şu adımları izlemelisiniz:
Widgets Kitaplığı sayfasına gidin.
İlgili widget paketini açın.
İlgili widget türü kartındaki dışa aktarma düğmesine tıklayın.
Şekil 4.1.1 – Widget türünü dışa aktarma
Widget Türü İçe Aktarma #
Sadece sistem yöneticileri, sistem (varsayılan) widget paketlerini değiştirme yetkisine sahiptir. Bu, yalnızca sistem widget paketini silme, paket içindeki widget’ları düzenleme ve silme, yeni widget’ları pakete ekleme veya içe aktarma işlemlerini gerçekleştirebilecekleri anlamına gelir. Bir sistem yöneticisi düzeyinde yeni bir widget paketi oluşturarak, tenantlarının hesaplarında bir sistem paketi olarak görüntülenecek ve onları değiştiremeyecekler. Bununla birlikte, tenantlar kendi widget paketlerini oluşturabilirler ve paket içinde oluşturulan widget türlerini yönetme tam yetkisine sahiptirler.
Bir widget türünü içe aktarmak için şu adımları izleyebilirsiniz:
Widgets Kütüphanesi sayfasına gidin.
Widget paketini açın.
Ekranın sağ alt köşesindeki “+” düğmesine tıklayın.
İçe aktarma düğmesine tıklayın.
Widget türü içe aktarma penceresinde, bir açılır pencere görüntülenecek ve JSON dosyasını yüklemek için size bir dosya yükleme seçeneği sunulacaktır. Bilgisayarınızdan dosyayı sürükleyip bırakın ve widget türünü pakete eklemek için “İçe Aktar” düğmesine tıklayın.
Şekil 4.2.1 – İçe aktarma için önce ‘+’ butonuna tıklayın. Dilerseniz ‘x’ ikonuyla widget türünü silebilirsiniz.
Şekil 4.2.2 – ‘içe aktar’ butonuna tıklayın.
Şekil 4.2.3 – Dosyanızı yükleyin ve içe aktarın.
FAST IoT PLATFORM’a Başlarken
Giriş #
Bu öğreticinin amacı, FAST IoT PLATFORM’un en yaygın kullanılan özelliklerinin temel kullanımını göstermektir. Bu öğretici sonunda şunları yapabileceksiniz:
- Cihazları FAST IoT PLATFORM’a bağlama;
- Cihazlardan FAST IoT PLATFORM’a veri gönderme
- Gerçek zamanlı son kullanıcı paneli oluşturma;
- Eşikler tanımlama ve alarm tetikleme;
- Yeni alarmlar hakkında e-posta, sms veya diğer sistemler üzerinden bildirim gönderme.
- Örnek uygulama: sıcaklık sensöründen verileri bağlayacağız ve görselleştireceğiz.
Adım 1: Cihaz Tanımlama #
Manuel olarak cihazı kurmak için şu adımları izleyin:
- FAST IoT PLATFORM’a giriş yapın ve “Cihazlar” sayfasına gidin.
- Tablodaki sağ üst köşedeki “+” simgesine tıklayın.
- Seçeneklerden “Yeni cihaz ekle” seçeneğini seçin.
- Cihaza ad verin, örneğin “Yeni Cihazım”.
- Cihazı eklemek için “Ekle” düğmesine tıklayın.
- Yeni oluşturduğunuz cihaz, varsayılan olarak oluşturma zamanına göre sıralanmış tablonun en üstünde görünecektir.
Şekil 1.1 – Ana sayfadan cihazlar sayfasına gidin.
Şekil 1.2 – Cihazlar sayfasının sağ üst köşesindeki “+” simgesine tıklayın. “Yeni cihaz ekle” seçeneğini seçin.
Şekil 1.3 – Cihaz adını girin.
Şekil 1.4 – Yeni oluşturduğunuz cihaz, varsayılan olarak oluşturma zamanına göre sıralanmış tablonun en üstünde görünecektir.
Ayrıca, aşağıdaki seçeneklerden de yararlanabilirsiniz:
- Çoklu cihazları CSV dosyası kullanarak arayüz üzerinden kurmak için toplu kurulum kullanın.
- Cihaz yazılımının cihazı otomatik olarak yapılandırmasını sağlayan cihaz kurulumunu uygulayın, bu sayede her cihazı elle ayarlamaya gerek kalmaz.
- Diğer varlıkların ve cihazların programatik olarak kurulması için REST API kullanın.
Adım 2: Cihazı Bağla #
Cihazı bağlamak için öncelikle cihaz kimlik bilgilerini almanız gerekir. Fast IoT Platform, çeşitli cihaz kimlik bilgisi türlerini destekler, ancak bu kılavuz için varsayılan otomatik olarak oluşturulan erişim belirteci kimlik bilgilerini kullanmanız önerilir.
Bunu nasıl yapacağınız aşağıdaki gibidir:
Tablodaki cihaz satırına tıklayın ve cihaz detaylarını açın.
“Erişim belirteci kopyala” düğmesine tıklayın. Bu, belirteci panonuza kopyalar.
Erişim belirtecini güvenli bir yerde saklayın.
Şekil 2.1 – Cihaz ayrıntılarına gidin.
Şekil 2.2 – Erişim şifresini kopyalayın.
Şimdi cihazınız adına telemetri verilerini yayınlamaya hazırsınız.
Adım 3: Pano Oluştur #
Bir panel oluşturulacak ve en popüler widget’lar eklenecektir. Aşağıdaki talimatları izleyin.
Adım 3.1: Dashboard (Pano) Oluştur #
Dashboard sayfasını açın. Sağ üst köşedeki “+” simgesine tıklayın. “Yeni gösterge paneli oluştur” seçeneğini seçin.
Dashboard için bir isim girin. Örneğin, “Yeni Gösterge Paneli” gibi. Dashboard eklemek için “Ekle” butonuna tıklayın.
Dashboardlar Varsayılan olarak oluşturma zamanlarına göre sıralandığından, yeni oluşturduğunuz dashboard listenin en üstünde olmalıdır. “Gösterge panelini aç” simgesine tıklayabilirsiniz.
Şekil 3.1.1 – Yeni gösterge paneli oluşturun.
Şekil 3.1.2 – Gösterge paneline ad verin.
Şekil 3.1.3 – Gösterge paketini açın.
Adım 3.2: Entity Alias Ekle #
Alias, widget’larda kullanılan tek bir veya birden fazla varlığın referansıdır. Alias statik veya dinamik olabilir. Basitliği koruyan, tek bir varlığı (“Bizim durumumuzda Yeni Cihazım”) referans alan “Single entity” aliasını kullanacağız. Birden fazla aygıtı referans alan bir alias oluşturmak da mümkündür. Örneğin, belirli bir tipteki aygıtlar veya belirli bir varlığa bağlı olan aygıtlar.
Düzenleme moduna girin. Sağ alt köşedeki kalem butonuna tıklayın.
Ekranın sağ üst kısmındaki “öğe kısa adları” simgesine tıklayın. Boş bir liste göreceksiniz.
“Alias Ekle” butonuna tıklayın.
Alias ismi girin, örneğin “Cihazım”. “Tek Varlık” Filtre türünü seçin. Tür olarak “Device”ı seçin ve otomatik tamamlama için “Yeni” yazın. Otomatik tamamlamadan aygıtınızı seçin ve üzerine tıklayın.
“Ekle” butonuna ve sonra “Kaydet” butonuna tıklayın .
Son olarak, değişiklikleri kaydetmek için panel düzenleyicisinde “Değişiklikleri uygula” düğmesine tıklayın. Daha sonra tekrar düzenleme moduna girin.
Şekil 3.2.1 – Düzenleme modunu açın.
Şekil 3.2.2 – Öğe kısa adlarına gidin.
Şekil 3.2.3 – Kısa ad ekleyin.
Şekil 3.2.4 – Kısa ad bilgilerini doldurun.
Şekil 3.2.5 – Kısa adı kaydedin.
Şekil 3.2.6 – Değişiklikleri uygulayın.
Adım 3.3: Tablo Widget’ı Ekle #
Tablo widget’ını eklemek için widget kütüphanesinden seçmeliyiz. Widget’lar widget paketleri olarak gruplanır. Her widget bir veri kaynağına sahiptir ve bu veri kaynağı widget’ın görüntülemek istediği verileri belirler. Adım 2’de gönderdiğimiz “sıcaklık” verilerinin en son değerini görüntülemek için veri kaynağını yapılandırmalıyız.
Başlamak için, “Yeni widget ekle” düğmesine tıklayarak düzenleme moduna girin.
Sonra, “Kartlar” widget paketini seçin. Paket içindeki göstergelerden ve “Son değerler” sekmesini seçin. Entities widget’ının başlığına tıklayın. “Widget Ekle” penceresi açılacaktır.
Veri kaynağı eklemek için “Ekle” düğmesine tıklayın. Widget birden fazla veri kaynağına sahip olabilir ancak şimdilik sadece bir tanesini kullanacağız.
“Cihazım” entity alias’ını seçin ve sağdaki giriş alanına tıklayın. Mevcut veri noktaları ile bir otomatik tamamlama özelliği görünecektir. “Temperature” veri noktasını seçin ve “Ekle” düğmesine tıklayın.
Widget’ı daha büyük yapmak için sadece widget’ın sağ alt köşesini sürükleyin. İsterseniz widget’ı gelişmiş ayarlarla düzenleyebilirsiniz.
Şekil 3.3.1 – Yeni gösterge ekleyin.
Şekil 3.3.2 – Cards paketini ve ardından Entities table göstergesini seçin.
Şekil 3.3.3 – Veri kaynağı ekleyin.
Şekil 3.3.4 – Veri kaynağı bilgilerini doldurun.
Şekil 3.3.5 – Değişiklikleri kaydedin.
Tebrikler! İlk widget’ı eklediniz. Şimdi yeni telemetri okumaları gönderebilir ve hemen tabloda görüntüleyebilirsiniz.
Adım 3.4: Chart (Grafik) Widget Ekle #
Chart widget’ını eklemek için, widget kütüphanesinden seçmemiz gerekiyor. Chart widget, belirli bir veri anahtarı olan “sıcaklık” için birden fazla tarihsel değeri görüntüler. Ayrıca Chart widget için zaman penceresini ayarlamamız gerekiyor.
Başlamak için, ekranın sağ alt köşesindeki “Yeni widget ekle” simgesine tıklayarak düzenleme moduna girin.
Sonra, “Yeni widget oluştur” simgesine tıklayın.
Widget gruplarından, “Grafikler” grubunu seçin ve aşağı kaydırarak “Timeseries – Flot” grafik widget’ını seçin.
Veri kaynağını eklemek için “Veri kaynağı ekle” butonuna tıklayın.
“Cihazım” Alias’ı seçin ve “sıcaklık” anahtarını seçin. “Ekle” butonuna tıklayın.
Widget’ı istediğiniz yere koyun ve gerektiği kadar boyutunu değiştirin. Değişikliklerinizi kaydetmeyi unutmayın.
2.adımda belirtildiği gibi, yeni telemetri okumalarını birden fazla kez gönderin. Varsayılan olarak, widget sadece bir dakika veri görüntüler.
Zaman penceresini değiştirmek isterseniz, düzenleme moduna girin ve zaman seçim penceresini açın. Aralığı ve agregasyon işlevini istediğiniz gibi değiştirin ve değişiklikleri kaydedin.
Şekil 3.4.1 – Düzenleme modunu açın.
Şekil 3.4.2 – Yeni gösterge ekleyin.
Şekil 3.4.3 – Yeni gösterge oluşturun.
Şekil 3.4.4 – Charts paketini seçin.
Şekil 3.4.5 – Timeseries Line Chart göstergesini seçin.
Şekil 3.4.6 – Veri kaynağı ekleyin.
Şekil 3.4.7 – Veri kaynağı bilgilerini doldurun.
Şekil 3.4.8 – Widget’ı konumlandırın.
Şekil 3.4.9 – Değişiklikleri kaydedin.
Şekil 3.4.10 – Zaman penceresini değiştirmek isterseniz, zaman seçim penceresinden aralığı ve veri toplama fonksiyonunu değiştirin.
Tebrikler! Bir Chart widget’ı eklediniz. Artık yeni telemetri okuması gönderebilirsiniz ve tabloda görüntüleyebilirsiniz.
Adım 3.5: Alarm Widget Ekle #
Bir Alarm Widget’ını dashboard’ınıza eklemek için:
Düzenleme düğmesine tıklayarak Düzenleme moduna giriş yapın.
Ekranın sağ alt köşesinde “Yeni Widget Ekle” simgesine tıklayın.
Seçeneklerden “Yeni Widget Oluştur” simgesini seçin.
“Alarm Widget’ları” paketini seçin ve sonra “Alarmlar” widget başlığına tıklayın.
Alarm kaynağı olarak “Varlık” ve takma ad olarak “Cihazım” seçin. Sonra “Ekle” butonuna tıklayın.
Aşağı kaydırarak yeni eklenen Alarm Widget’ını bulun ve dashboard’ın sağ üst köşesine sürükleyip bırakın.
Widget’ı boyutunu istediğiniz gibi ayarlayın ve değişiklikleri kaydedin.
Şekil 3.5.1 – Düzenleme moduna geçin.
Şekil 3.5.2 – Yeni gösterge ekleyin.
Şekil 3.5.3 – Yeni gösterge oluşturun.
Şekil 3.5.4 – Alarm Widgets paketini seçin.
Şekil 3.5.5 – Alarms table göstergesini seçin.
Şekil 3.5.6 – Alarm kaynağı ekleyin.
Şekil 3.5.7 – Widget’ı konumlandırın.
Şekil 3.5.8 – Değişiklikleri kaydedin.
Tebrikler! Bir alarm widget’ı eklediniz. Şimdi alarm kurallarını yapılandırma ve bazı alarmları çalıştırma zamanı.
Adım 4: Alarm Kurallarını Yapılandırın #
Sıcaklık okuması 25 derecenin üzerinde ise bir alarm kuralı ayarlamak istiyoruz. Bunun için cihaz profiline girip yeni bir alarm kuralı ekleyeceğiz. Bu durumda “Yeni Cihazımız” için “Varsayılan” profili kullanıyoruz. Her cihaz için ayrı bir profil oluşturmak önerilir, ancak basitlik için bu adımı atlayacağız.
Alarm kuralı eklemek için şu adımları izleyin:
Cihaz profilleri sayfasına gidin.
Profil ayrıntılarını açmak için varsayılan profil satırına tıklayın.
“Alarm Kuralları” sekmesini seçin ve düzenleme modunu açın.
“Alarm Kuralı Ekle” yi tıklayın.
Alarm tipini seçin ve koşul eklemek için “+” simgesini tıklayın.
Koşulu belirtmek için “Anahtar Filtresi Ekle” düğmesini tıklayın.
Anahtar tipini seçin, anahtar adını girin, değer tipini seçin ve “Ekle” yi tıklayın.
Operasyonu seçin ve eşik değerini girin. Ardından “Ekle” yi tıklayın.
“Kaydet” i tıklayın.
Son olarak, cihaz profiline yapılan değişiklikleri kaydetmek için “Değişiklikleri Uygula” yı tıklayın.
Şekil 4.1 – Cihaz profilleri sayfasına gidin.
Şekil 4.2 – Default cihaz ayrıntılarına gidin.
Şekil 4.3 – Alarm kuralları sekmesine geçin.
Şekil 4.4 – Alarm kuralı ekleyin.
Şekil 4.5 – Alarm tipini belirtin ve alarm koşulu ekleyin.
Şekil 4.6 – Anahtar filtre ekleyin.
Şekil 4.7 – Anahtar bilgilerini doldurun.
Şekil 4.8 – Filtre ekleyin.
Şekil 4.9 – Kaydedin.
Şekil 4.10 – Değişiklikleri kaydedin.
Adım 5: Alarm Oluştur #
Bu noktada, alarm kuralımız işlevsel durumda (Adım 4’e bakınız) ve alarmı etkinleştirmek için cihazdan güncellenmiş telemetri göndermemiz gerekiyor (Adım 2’ye bakınız). Alarmı tetiklemek için sıcaklık okumasının 26 veya daha yüksek olması gerektiğini unutmayın. Yeni bir sıcaklık okuması gönderdiğimiz anda, gösterge tablosunda yeni bir alarm görünecektir.
Sıcaklıkla ilgili yeni telemetri, kullanıcının tanıyabileceği ve temizleyebileceği yeni bir alarmı etkinleştirir.
Kullanıcı alarmları onaylayabilir ve silebilir.
Şekil 5.1 – Gelen alarmlar panelde görüntülenir.
Şekil 5.2 – Kullanıcı alarmı onaylayıp silebilir.
Adım 6: Alarm Bildirimleri #
Alarm bildirimleri için e-posta veya SMS ayarlamak oldukça basittir. Alarm kuralı örneklerine ve alarm bildirimleriyle ilgili belgelere bakmanızı öneririz.
Şu anda FAST IoT PLATFORM, SMS bildirimleri göndermek için AWS SNS ve Twilio’yu desteklemektedir. Her iki hizmet de ücretsiz değildir ve bir hesap oluşturmanız gerekmektedir. Ancak, REST API çağrı düğümünü kullanarak diğer SMS/E-POSTA ağ geçitleriyle entegre olmak mümkündür.
Adım 7: Müşteriye Cihaz ve Dashboard Atayın #
Müşterilere panolar atama yeteneği, FAST IoT PLATFORM’un en önemli özelliklerinden biridir. Farklı cihazları farklı müşterilere atayabilir ve birden çok müşteriye atanacak bir veya daha fazla panoyu oluşturabilirsiniz. Her müşteri, kendi cihazlarını görüntüleyebilecek ancak farklı bir müşteriye ait verilere veya cihazlara erişimi olmayacaktır.
Adım 7.1: Kullanıcı Oluşturun #
Aşağıdaki talimatları izleyerek, “Yeni Kullanıcı” başlıklı bir müşteri oluşturalım:
Kullanıcı Grupları sayfasına gidin.
Kullanıcı eklemek için “+” işaretine tıklayın.
Kullanıcı başlığını ekleyin ve “Ekle”yi tıklayın.
Şekil 6.1.1 – Kullanıcı Grupları sayfasına gidin.
Şekil 6.1.2 – Kullanıcı ekleyin.
Şekil 6.1.3 – Kullanıcı adını girin.
Adım 7.2: Müşteriye Cihaz Atayın #
Müşteriye cihaz atama işlemi yapalım. Müşteri kullanıcıları cihazlara telemetri okuma ve yazma yeteneğine sahip olacaklar ve cihazlara komut gönderebilecekler.
Cihazlar sayfasını açın. “Yeni Cihaz” için “kullanıcı grubuna ata”yı tıklayın.
“Yeni Kullanıcı”yı seçin ve “Ata”yı tıklayın.
Şekil 6.2.1 – Cihazlar sayfasına gidin ve kullanıcı grubuna ata penceresini açın.
Şekil 6.2.2 – Kullanıcıyı seçin.
Adım 7.3: Müşteriye Dashboard Atayın #
Kullanıcımızla panomuzu paylaşalım. Müşteri kullanıcıları, panomuza salt okunur erişim yetkisine sahip olacaklardır.
Panoları açın. “Atanmış müşterileri yönet”i tıklayın.
“My New Customer”ı seçin ve “Güncelle”yi tıklayın.
Şekil 6.3.1 – Gösterge paneli sayfasına gidin ve atanan kullanıcı gruplarını yönet penceresini açın.
Şekil 6.3.2 – Kullanıcıyı seçin.
Adım 7.4: Müşteri İçin Kullanıcı Oluşturun #
Son olarak, müşteriye ait, hem panoya hem de cihaza salt okunur erişimi olan bir kullanıcı oluşturalım. İsterseniz, pano web arayüzüne kullanıcı girişi yapıldığında panonun otomatik olarak görüntülenmesini ayarlayabilirsiniz.
“Müşteriler” sayfasına geri dönün ve “müşteri kullanıcılarını yönet” simgesine tıklayın.
“Kullanıcı ekle” simgesine tıklayın.
Müşteri kullanıcısı olarak giriş yapacağınız e-postayı belirtin ve “Ekle” ye tıklayın.
Aktivasyon bağlantısını kopyalayın ve güvenli bir yere kaydedin. Şifreyi belirlemek için daha sonra kullanacaksınız.
Kullanıcı ayrıntılarını açın.
Düzenleme moduna geçin.
Varsayılan panoyu seçin ve “Her zaman tam ekran” seçeneğini işaretleyin. Değişiklikleri kaydedin.
Şekil 6.4.1- Kullanıcı grubu kullanıcılarını yönet penceresini açın.
Şekil 6.4.2 – Kullanıcı ekleyin.
Şekil 6.4.3 – Kullanıcı bilgilerini doldurun.
Şekil 6.4.4 – Etkinleştirme bağlantısını kopyalayın.
Şekil 6.4.5 – Kullanıcı ayrıntılarını açın.
Şekil 6.4.6 – Düzenleme modunu açın.
Şekil 6.4.7 – Bilgileri doldurun ve kaydedin.
Adım 7.5: Müşteri Kullanıcısını Aktive Edin #
Şifreyi belirlemek için aktivasyon bağlantısını kullanın. “Şifre Oluştur”u tıklayın. Otomatik olarak bir müşteri kullanıcısı olarak giriş yapacaksınız.
Müşteri Kullanıcısı olarak giriş yaptınız. Verilere göz atabilir ve alarm durumlarını tanımlayabilir/silebilirsiniz.
Şekil 6.5.1 – Kopyaladığınız bağlantıya giderek şifre oluşturun.
Şekil 6.5.2 – Verileri ve alarmları kontrol edin.
PROJE YARDIM SAYFALARI #
Mail Ayarları #
FAST IoT PLATFORM Sistem Yöneticisi, kullanıcılara aktivasyon ve şifre sıfırlama e-postalarını dağıtmak için kullanılacak bir SMTP sunucusuna bağlantı yapılandırabilir. Bu yapılandırma adımı, üretim ortamlarında gereklidir. Platformu değerlendiriyorsanız, önceden hazırlanmış demo hesapları çoğu kullanım durumunda yeterlidir.
NOT: Sistem Posta ayarları, yalnızca kullanıcı oluşturma ve şifre sıfırlama işlemi sırasında kullanılır ve sistem yöneticisi tarafından kontrol edilir. Tenant yöneticisi, kural motoru tarafından üretilen alarmları dağıtmak için e-posta kural düğümü kurabilir.
Sistem posta ayarlarını yapılandırmak için aşağıdaki adımlar gereklidir.
Adım 1: Sistem Yöneticisi Olarak Oturum Açın #
Varsayılan hesabı kullanarak bir sistem yöneticisi olarak FAST IoT PLATFORM örneği WEB kullanıcı arabiriminizde oturum açın.
Adım 2: Yönetici E-posta Adresini Değiştirin #
WEB UI’nin sağ üst köşesindeki menü simgesine sağ tıklayın ve ‘Profil’ seçeneğini seçin. ‘sysadmin@roltek.com.tr’ adresini kendi e-posta adresinizle değiştirin. Ardından tekrar yönetici olarak giriş yapın.”
Adım 3: ‘Giden Posta’yı Açın ve SMTP Sunucusu Ayarlarını Doldurun #
Sistem Ayarları -> Giden Posta yolunu izleyin ve formu doldurun. ‘Test E-Postası Gönder’ düğmesine tıklayın.
‘Adım 2’de belirttiğiniz e-posta adresine bir test e-postası gönderilecektir. Yapılandırmada bir hata oluşması durumunda, hata günlüğü ile birlikte bir açılır pencere almanız gerekmektedir.
Adım 3.1: Sendgrid Yapılandırma Örneği #
SendGrid yapılandırması oldukça basit ve doğrudandır. İlk olarak, SendGrid hesabı oluşturmanız gerekiyor. Ücretsiz deneyebilirsiniz ve ücretsiz plan, platform değerlendirmesi için muhtemelen yeterli olacaktır.
Hesabınızı oluşturduktan sonra, karşılama sayfasına yönlendirileceksiniz. Şimdi SMTP Relay kimlik bilgilerinizi sağlayabilirsiniz. Aşağıdaki ekran görüntüsüne bakın.
Şekil 1 – Sendgrid karşılama sayfası
Lütfen bir sonraki sayfada SMTP relay seçeneğini seçin.
Şekil 2 – SMTP Relay seçilir.
API anahtar adını doldurduktan ve oluşturduktan sonra, ekrandan ayarları FAST IoT PLATFORM posta ayarları formuna kopyalayıp yapıştırabileceksiniz.
Şekil 3 – SMTP yapılandırma
Ayarları kopyalayıp yapıştırın, ‘Mail’den’ alanını güncelleyin ve ‘Test E-postası Gönder’ düğmesine tıklayın.
Şekil 4 – Test postası gönderin.
Başarılı bir testle ilgili bildirim aldığınızda, doldurulan verileri kaydedin. Ayrıca SendGrid web sitesinde doğrulamayı tamamlayabilirsiniz.
Şekil 5 – Doğrulamayı tamamlayın.
Adım 3.2: Gmail Yapılandırma Örneği #
Gmail kullanmak için iki ek adım atmanız gerekecek. İlk olarak, daha az güvenli uygulamalara izin vermeniz gerekiyor. İkinci olarak, iki adımlı doğrulamayı etkinleştirmeniz ve bir uygulama şifresi oluşturmanız gerekiyor. İkinci adım zorunlu olmasa da, şiddetle tavsiye edilir.
Bunun hazır olmasıyla birlikte, aşağıdaki bilgileri kullanarak Gmail hesabınızı kurabilmeniz gerekmektedir.
Şekil 6 – Gmail yapılandırma
G Suite hesapları için benzer ayarlar mevcuttur, ancak daha az güvenli uygulamaları etkinleştirmek vb. için sistem yöneticinize başvurmanız gerekebilir. Ayrıca onay kutusunu kullanarak TLS’yi etkinleştirebilir / devre dışı bırakabilirsiniz.
Adım 4: Yapılandırmayı Kaydet #
Test e-postası aldığınızda, SMTP sunucu yapılandırmasını kaydedebilirsiniz.
Şekil 7 – Yapılandırmayı kaydedin.
SMS Sağlayıcı Ayarları #
https://roltek.com.tr/docs/user-guide/ui/sms-provider-settings/
FAST IoT PLATFORM Sistem Yöneticisi, alarm mesajlarını SMS yoluyla dağıtmak için kullanılacak SMS sağlayıcısını yapılandırabilir. SMS mesajlarını kullanmayı planlıyorsanız, üretim ortamlarında bu yapılandırma adımı gereklidir.
Kurumsal yönetici, kural motoru tarafından üretilen alarmları dağıtmak için sms kural düğümünü kurabilir.
Sistem SMS sağlayıcı ayarlarını yapılandırmak için şu adımlar gereklidir:
Adım 1. Sistem yöneticisi olarak Fast Iot Platform UI’ye giriş yapın. Sistem ayarlarını açın.
Adım 2. SMS sağlayıcı ayarlarını açın ve mevcut sağlayıcılardan birini seçin: AWS SNS veya Twilio.
Adım 3 (AWS SNS). AWS SNS’yi seçtiyseniz AWS Erişim Anahtarı Kimliği ve Gizli Erişim Anahtarı alanlarını doldurun. “Kaydet” düğmesine tıklayın.
Adım 3 (Twilio). Twilio hesap SID ve Token bilgilerini doldurun. “Gönderen” olarak kullanılacak telefon numarasını belirtin ve “Kaydet” düğmesine tıklayın.
Kural Motoruna Genel Bakış #
https://roltek.com.tr/docs/user-guide/rule-engine-2-0/overview/
FAST IoT PLATFORM Kural Motoru, karmaşık olayları işlemek için tasarlanmış sofistike bir sistemdir ve son derece özelleştirilebilir ve yapılandırılabilir. Kural motoru kullanarak, IoT cihazlarından ve ilgili varlıklardan gelen gelen mesajları filtreleyebilir, zenginleştirebilir ve dönüştürebilirsiniz. Ayrıca, bildirimler veya harici sistemlerle iletişim gibi çeşitli eylemleri tetikleyebilirsiniz.
Anahtar kavramlar #
Kural Motoru Mesajı #
Bir Kural Motoru Mesajı, sistem içindeki çeşitli mesajları temsil eden seri hale getirilebilir ve değiştirilemez bir veri yapısıdır. Bunlar şunları içerebilir:
Cihazlardan Gelen Telemetri, Öznitelik Güncellemeleri veya RPC Çağrıları
Varlık yaşam döngüsü olayları, örneğin varlık oluşturulduğunda, güncellendiğinde, silindiğinde, atandığında, atamadan çıkarıldığında veya öznitelikler güncellendiğinde
Cihaz durumu olayları, örneğin bir cihaz bağlandığında, bağlantısı kesildiğinde, aktif veya etkisiz hale geldiğinde vb.
Diğer sistem olayları
Bir Kural Motoru Mesajı, aşağıdaki bilgileri içerir:
Mesaj Kimliği: zaman temelli, evrensel benzersiz tanımlayıcı
Mesajın Kaynağı: Mesajı başlatan cihaz, varlık veya diğer varlık tanımlayıcısı
Mesaj Türü: örn. “Telemetri Gönder” veya “Etkinlik Yok”
Mesaj Yükü: gerçek mesaj yükünü içeren JSON gövdesi
Meta veri: mesaj hakkında ek veriler içeren anahtar-değer çiftleri listesi.
Kural Düğümü #
Bir Kural Düğümü, Rule Engine’in temel bir bileşenidir ve her seferinde tek bir gelen mesajı işler ve bir veya daha fazla çıkan mesaj oluşturur. Kural Düğümü, Kural Motorunun ana mantıksal birimidir. Bir Kural Düğümü, gelen mesajları filtreleyebilir, zenginleştirebilir veya dönüştürebilir, işlemler yapabilir veya harici sistemlerle iletişim kurabilir.
Kural Düğümü Bağlantısı #
Kural Düğümleri, diğer Kural Düğümlerine bağlanabilir. Her bağlantı, ilişki türüne sahiptir ve ilişkinin mantıksal anlamını tanımlayan bir etiket kullanılır. Kural düğümü, çıkış mesajını ürettiğinde her zaman mesajın bir sonraki düğümlere yönlendirilmesinde kullanılan ilişki türünü belirtir.
Tipik kural düğümü ilişki türleri arasında “Başarılı” ve “Başarısız” bulunur. Mantıksal işlemleri temsil eden Kural Düğümleri, “Doğru” veya “Yanlış” olarak adlandırılabilmektedir. Bazı belirli kural düğümleri, “Post Telemetri”, “Öznitelikler Güncellendi”, “Varlık Oluşturuldu” vb. gibi tamamen farklı ilişki türleri kullanabilir.
Bazı Kural Düğümleri özel bağlantı adlarını destekler. Özel bağlantı adınızı girin ve “Yeni bir tane oluştur!” bağlantısını tıklayın:
Şekil 1.1 – Kural ekleme
Tüm bağlantı adları büyük/küçük harfe duyarlıdır.
Kural Zinciri #
Rule Chain, bir dizi kural düğümü ve aralarındaki ilişkilerin mantıksal bir gruptur. Örneğin, aşağıdaki kural zinciri:
Tüm telemetri mesajlarını veritabanına kaydeder.
Mesajdaki sıcaklık alanı 50 dereceden yüksekse “Yüksek Sıcaklık Alarmı” yükseltir.
Mesajdaki sıcaklık alanı -40 dereceden düşükse “Düşük Sıcaklık Alarmı” yükseltir.
Sıcaklık kontrolü betiklerinde mantıksal veya sözdizimsel hatalar oluşursa, başarısızlıkları konsola kaydeder.
Şekil 1.2 – Kural Zinciri
Tenant yöneticisi tek bir Kök Kural Zinciri ve isteğe bağlı olarak birden fazla diğer kural zincirini tanımlama yeteneğine sahiptir. Kök Kural Zinciri, tüm gelen mesajları işleyecek ve ilave işleme için diğer kural zincirlerine yönlendirebilecektir. Diğer kural zincirleri de mesajları farklı kural zincirlerine yönlendirebilir.
Örneğin, aşağıdaki kural zinciri şunları yapacaktır:
Mesajdaki sıcaklık alanı 50 dereceden yüksek ise “Yüksek Sıcaklık Alarmı” tetiklenecektir.
Mesajdaki sıcaklık alanı 50 dereceden düşük ise “Yüksek Sıcaklık Alarmı” silinecektir.
“Oluşturuldu” ve “Silindi” alarm bildirimleri, ilgili kullanıcılara bildirimler yöneten harici bir kural zincirine iletilir.
Şekil 1.3 – Kural zinciri örneği
Mesaj İşleme Sonucu #
Mesaj işleme sürecinin üç olası sonucu vardır: Başarılı, Başarısız ve Zaman Aşımı. İşleme zincirindeki son kural düğümü başarıyla mesajı işlediğinde, mesaj işleme denemesi “Başarılı” olarak işaretlenir. Bir kural düğümü, mesaj işlemede “Başarısızlık” üretir ve bu hatayı işlemek için başka bir kural düğümü yoksa, mesaj işleme denemesi “Başarısız” olarak işaretlenir. İşleme süresi toplamı, yapılandırılabilir bir eşik değerini aştığında, mesaj işleme denemesi “Zaman Aşımı” olarak işaretlenir.
Aşağıdaki diyagramı görüntüleyin ve olası senaryoları inceleyelim:
Şekil 1.4 – Kural zinciri örneği
Eğer “Dönüşüm” betiği başarısız olursa, mesaj “Başarısız” olarak işaretlenmez çünkü “Başarısızlık” ilişkisi ile bağlı bir “Veritabanına Kaydet” düğümü vardır. “Dönüşüm” betiği başarılı olursa, REST API çağrısı ile “Harici Sistem”e gönderilecektir. Eğer harici sistem yük altındaysa, REST API çağrısı bir süre “asılı” kalabilir. Mesaj paketi işleme için toplam zaman aşımı 20 saniye olarak varsayalım. Dönüşüm betiği yürütme süresini yok sayalım çünkü <1ms’dir. Eğer “Harici Sistem” 20 saniye içinde yanıt verirse, mesaj başarılı bir şekilde işlenecektir. Benzer şekilde, “Veritabanına Kaydet” çağrısı başarılı olursa, mesaj başarılı bir şekilde işlenecektir. Ancak, eğer harici sistem 20 saniye içinde yanıt vermezse, mesaj işleme denemesi “zaman aşımı” olarak işaretlenecektir. Benzer şekilde, “Veritabanına Kaydet” çağrısı başarısız olursa, mesaj “Başarısız” olarak işaretlenecektir.
Kural Motoru Sırası #
Yeni belgelere bakın
Kuyruk Gönderme Stratejisi #
Yeni belgelere bakın
Kuyruk İşleme Stratejisi #
Yeni belgelere bakın
Varsayılan Kuyruklar #
Yeni belgelere bakın
Kural Düğüm Tipleri #
Mevcut kural düğümleri amaçlarına göre kategorize edilir:
Filtre düğümleri mesajları filtrelemek ve yönlendirmek için kullanılır.
Zenginleştirme düğümleri gelen mesajların meta verilerini güncellemek için kullanılır.
Dönüştürme düğümleri gelen mesajların kaynağı, tipi, yükü ve meta verileri gibi alanlarını değiştirmek için kullanılır.
Eylem düğümleri gelen mesajlara dayalı çeşitli eylemler gerçekleştirir.
Harici düğümler harici sistemlerle etkileşim kurmak için kullanılır.
Yapılandırma #
Her Kural Düğümü, Kural Düğümü Uygulamasına bağlı olarak belirli yapılandırma parametrelerine sahip olabilir. Örneğin, “Filtre – betik” kural düğümü, gelen verileri işleyen özel bir JS işlevi aracılığıyla yapılandırılabilir. “Harici – e-posta gönder” düğüm yapılandırması, posta sunucusu bağlantı parametrelerini belirlemenize olanak tanır.
Kural Düğümü yapılandırma penceresi, Kural Zinciri düzenleyicisinde düğüme çift tıklanarak açılabilir.
Şekil 2.1 – Kural Düğümü yapılandırma penceresi
Test script functions #
Bazı kural düğümleri, kullanıcıların TBEL/JS işlevlerini test etmelerine izin veren belirli bir UI özelliğine sahiptir. Filtre Fonksiyonunu Test Et’e tıkladığınızda, girdi parametrelerini değiştirip işlevin çıktısını doğrulamanıza olanak tanıyan JS Düzenleyicisini göreceksiniz.
Şekil 2.2 – Test script fonksiyonları
Aşağıdaki bileşenleri belirleyebilirsiniz:
Mesaj türünü sol üst alandaki alanda belirleyin.
Mesaj yükünü sol taraftaki Mesaj bölümünde belirleyin.
Metadata’yı sağ taraftaki Metadata bölümünde belirleyin.
Gerçek TBEL/JS betiğini Filtre bölümünde belirleyin.
Test’e tıkladıktan sonra, çıktı sağ taraftaki Çıktı bölümünde görüntülenecektir.
Rule Engine İstatistikleri #
Fast IoT Platform ekibi, her tenant için otomatik olarak yüklenen Kural Motoru istatistikleri için varsayılan bir gösterge paneli oluşturmuştur. Buna erişmek için “Api Kullanımı” → “İstatistikleri Görüntüle” seçeneğine gidin (aşağıdaki ekran görüntüsüne bakın).
Şekil 3.1 – Sol menüden API Kullanımı sayfasına gidin.
Şekil 3.2 – İstatikleri görüntüleyin
İstatistiklerin toplanması varsayılan olarak etkinleştirilmiştir ve yapılandırma özellikleri aracılığıyla yönetilebilir. Aşağıdaki gösterge tablosunda, işleme sırasında meydana gelen hatalar ve temel nedenleri hakkında değerli bilgileri gözlemleyebilirsiniz.
Şekil 3.3 – Kural motoru istatistikleri
Hata Ayıklama #
Fast IoT Platform, her bir Kural Düğümü için gelen ve giden mesajları inceleme olanağı sunar. Hata ayıklama işlemini kolaylaştıran bu özelliği etkinleştirmek için kullanıcıların ana yapılandırma penceresinde “Hata ayıklama modu” onay kutusunun işaretli olduğundan emin olmaları gerekmektedir (Yapılandırma bölümündeki ilk resim bunu gösterir).
Hata ayıklama modu etkinleştirildikten sonra, kullanıcılar gelen ve giden mesajlarla ilgili bilgileri ve bunların ilgili ilişki türlerini görebilirler.
Import/Export #
Kural zincirinizi başka bir Fast IoT Platform örneğine aktarmak veya JSON formatında kaydetmek için platformun sağladığı dışa aktarma işlevini kullanabilirsiniz. Başlamak için, Kural Zincirleri sayfasına gidin ve aktarmak istediğiniz belirli kural zincirini bulun. Ardından, ilgili kural zinciri kartındaki dışa aktarma düğmesine tıklayın. Bu, farklı bir Fast IoT Platform örneğinde aynı kural zincirini yeniden oluşturmak için gerekli olan tüm verileri içeren bir JSON dosyası oluşturacaktır.
Fast Iot Platform örneğinize JSON formatında bir kural zinciri yüklemek için şu adımları izleyin: Kural Zincirleri sayfasına gidin, ekranın sağ alt köşesinde bulunan büyük “+” düğmesini bulun ve üzerine tıklayın. Bu, yeni bir pencere açacak ve burada içe aktarma düğmesini seçebileceksiniz. İçe aktarma düğmesine tıkladıktan sonra, içe aktarmak istediğiniz kural zinciri verilerini içeren JSON dosyasını seçebilirsiniz. Dosyayı seçtikten sonra, Fast Iot Platform verileri doğrulayacak ve kural zincirini örneğinize içe aktaracaktır.
docs/user-guide/rule-engine-2-0/filter-nodes/#check-relation-filter-node :
Düğümleri Filtrele #
Mesaj filtreleme ve yönlendirme amaçları için kullanılır. Aşağıda mevcut olan nodların bir listesi bulunmaktadır.
Varlık Profili Anahtarı (Asset profile switch) #
Bu özellik, varlık profili adının harf büyüklüğüne duyarlı olarak gelen mesajların yönlendirilmesine olanak tanır. Sürüm 3.4.4’ten beri mevcuttur.
Çıktı
Kural düğümünün çıkış bağlantısı, “Dondurucu Odası”, “Bina” vb. gibi varlık profili adına bağlanmıştır. Daha fazla bilgi için lütfen kural düğümünün bağlantılarına bakınız.
Kullanım örneği
Platformun deneyimli kullanıcıları, her varlık profili için özel kural zincirleri yapılandırarak Varlık Profillerinden yararlanır. Bu, Varlık Oluşturuldu, Silindi, Öznitelik Güncellendi vb. gibi platform tarafından oluşturulan mesajları otomatik olarak yönlendirmek için uygun bir yoldur. Ancak, çoğu mesaj sensör verilerinden oluşur. Diyelim ki “Dondurucu Odası” ve “Kazan Odası” adlı iki odada sıcaklık sensörleri bulunmakta ve bu odalar, “İçerir” tipi ilişki kullanılarak sıcaklık cihazlarıyla ilişkilendirilmiştir. Aşağıdaki kural zinciri, mesajın kaynağını cihazdan ilişkili varlığa değiştirir ve gelen mesajları uygun “Dondurucu Odası” veya “Kazan Odası” kural zincirine yönlendirir.
Şekil 1 – Kural zinciri: asset profile switch
Kural zincirini indirebilir ve içeri aktarabilirsiniz, ancak lütfen unutmayın ki “kural zinciri” düğümleri, mevcut ortamınızda var olmayan kural zincirlerine işaret edecektir.
Cihaz Profili Anahtarı (Device profile switch) #
Gelen mesajlar, cihaz profili adına göre yönlendirilebilir. Cihaz profil adı büyük/küçük harfe duyarlıdır. Bu özellik v3.4.4’ten beri mevcuttur.
Çıktı
Kural düğümünün çıkış bağlantısı, “Sıcaklık sensörü”, “Nem sensörü” gibi cihaz profil adına karşılık gelir. Daha fazla bilgi için lütfen kural düğümü bağlantılarına başvurun.
Kullanım örneği
Platformun deneyimli kullanıcıları Cihaz Profillerini kullanarak her bir cihaz profili için özel Kural Zincirleri yapılandırır. Bu genellikle faydalı bir yaklaşımdır, ancak cihaz verileri başka bir mesaj kaynağından elde edildiğinde durum farklı olabilir. Örneğin, BLE ile MQTT ağı geçidi ve BLE farlıklar kullanıyorsanız, ağ geçidinin taşıdığı veri genellikle farlığın MAC adresi ve farlık verisini içerir:
{“mac”: “7085C2F13DCD”, “rssi”: -25, “payload”: “AABBCC”} |
Varsayalım farklı beacon profilleriniz var – iç mekan hava kalitesi (“IAQ sensörü”) ve sızıntı sensörleri (“Sızıntı sensörü”). Aşağıdaki kural zinciri, mesaj kaynağını gateway’den cihaza değiştirir ve mesajı ilgili kural zincirine yönlendirir:
Şekil 2 – Kural zinciri: device profile switch
“Rule zincirleri” düğümleri ortamınızda mevcut olmayan rule zincirlerine işaret edebilir. Rule zincirini indirebilir ve içe aktarabilirsiniz, ancak buna dikkat ediniz.
Alarm Durumu Kontrolü (Check alarm status) #
Bu fonksiyon, Alarm durumunun belirtilen durumlardan biriyle eşleşip eşleşmediğini doğrular.
Yapılandırma
Alarm durumu filtresi, ‘Active Acknowledged’, ‘Active Unacknowledged’, ‘Cleared Acknowledged’ ve ‘Cleared Unacknowledged’ dahil olmak üzere bir dizi alarm durumunu içerir.
Şekil 3.1 – Alarm Durumu Kontrolü için kural düğümü ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Aşağıda listelenen kural zinciri, onaylanan alarmın halen aktif olup olmadığını veya zaten temizlendiğini kontrol eder.
Şekil 3.2 – Kural zinciri: check alarm status
Kural zincirini indirme ve içe aktarma seçeneğine sahipsiniz.
Alanların Varlığını Kontrol Et (Check fields presence) #
Bu işlev, mesaj ve/veya meta verilerinde belirtilen alanların varlığını kontrol eder. Mesaj ve meta verileri genellikle bir JSON nesnesi olarak temsil edilir. Kullanıcı, mesaj ve/veya meta veri alanlarının adlarını yapılandırmada belirler.
Yapılandırma
Mesaj alan adları, mesajda bulunması gereken alan adlarının listesine atıfta bulunur.
Meta veri alan adları, meta veride bulunması gereken alan adlarının listesine atıfta bulunur.
‘Belirtilen tüm alanların mevcut olduğunu kontrol edin’ onay kutusu, kullanıcının belirtilen tüm alanların mevcutluğunu kontrol etmesine (seçili ise) veya en az bir alanın mevcutluğunu kontrol etmesine (seçili değilse) olanak tanır.
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Yapılandırma ekran görüntüsüne bakınız.
İlişkiyi Kontrol Et (Check relation) #
Bu işlev, mesajın göndericisi ile diğer varlıklar arasındaki ilişkinin varlığını doğrular. Eğer ‘belirli bir varlığa ilişkinin kontrol edilmesi’ seçeneği seçilirse, kullanıcı ilişkili bir varlığın adını belirtmelidir. Aksi takdirde, kural düğümü, yön ve ilişki türü kriterlerini karşılayan herhangi bir varlıkla olan ilişkinin varlığını doğrular.
Yapılandırma
‘Belirli bir varlığa ilişkinin kontrol edilmesi’ onay kutusu, kullanıcının ilişkiyi kontrol etmek için belirli bir varlık belirlemesine olanak tanır.
‘Yön’ seçeneği, ilişkinin yönünü yapılandırır. Bu, ilişkinin belirli/herhangi bir varlıktan göndericiye doğru olan yönünü belirler. Aşağıdaki örneğe bakınız.
‘İlişki türü’ seçeneği, kullanıcının keyfi bir ilişki türünü tanımlamasına olanak tanır. Varsayılan ilişki türleri ‘İçerir’ ve ‘Yönetir’ olsa da, kullanıcı herhangi bir türde bir ilişki oluşturabilir.
Şekil 4 – İlişki kontrolü için düğüm ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Varsayalım ki bir sıcaklık sensörünüz hem ofis içinde hem de depolarda bulunuyor. Verileri işlerken, sensörün ofiste mi yoksa depoda mı olduğunu bilmek isteyebilirsiniz. Bunun için, ofisteki sensör cihazından Ofis varlığına “OfficeToDevice” ilişkisi oluşturmanız gerekir.
Bu özel durum için kural düğümünü nasıl yapılandıracağınızı öğrenmek için yapılandırma ekran görüntüsüne bakınız.
Varlık Türü (Entity type) #
Bu işlev, gelen mesajları mesajın kaynağı olan varlığın türüne göre filtreler. Gelen mesajın kaynağı olan varlığın türü, filtreye belirtilen değerlerden birine eşit olup olmadığını doğrular.
Yapılandırma
Kaynak Türleri Filtresi, Cihaz, Varlık, Kullanıcı vb. gibi varlık türlerinin bir listesidir.
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Yapılandırma ekran görüntüsüne bakınız.
Varlık Türü Anahtarı (Entity type switch) #
Bu fonksiyon, gelen mesajları mesajın kaynak varlık türüne göre yönlendirir.
Çıktı
Kural düğümünün çıkış bağlantısı, mesajın kaynağı olan varlık türüne karşılık gelir. Örneğin: “Cihaz”, “Varlık”, “Kullanıcı” vb.
Örnek
Varsayalım ki farklı varlıklardan gelen mesajları tek bir kural zincirinde işliyorsunuz. Mesaj akışını varlık türüne göre ayırmak isteyebilirsiniz. Aşağıdaki örneğe bakın:
Şekil 5 – Kural zinciri: entity type switch
Mesaj Türü (Message type) #
Bu süreç, gelen mesajları önceden belirlenmiş veya özelleştirilmiş mesaj türlerine göre filtrelemeyi ve sıralamayı içerir. Her gelen mesajın mesaj türünün, belirlenmiş filtre değerlerinden herhangi birine karşılık gelip gelmediğini doğrular.
Yapılandırma
Mesaj türleri filtresi, önceden belirlenmiş mesaj türlerinin bir listesini içerir ve özel mesaj türlerini de dahil etme seçeneği sunar.
Şekil 6 – Mesaj türü için kural düğümü ekleme.
Mesaj Türü Anahtarı (Message type switch) #
Gelen mesajlar, mesaj türü değerine göre ilgili zincirlere yönlendirilir. Gelen mesajın tanınan bir mesaj türü varsa, ilgili zincire yönlendirilir. Aksi takdirde, “Diğer” zincire gönderilir.
Özel mesaj türleri kullanılıyorsa, gereken yönlendirme mantığı yapılandırılmış olan mesaj türüne yönlendirmek için Mesaj Türü Değiştirici Düğümü’nün “Diğer” zinciri üzerinden bu mesajlar yönlendirilebilir.
Çıktı
Kural düğümünün çıkış bağlantısı, mesajın kaynağı olan varlık türüne karşılık gelir. Örneğin: “Cihaz”, “Varlık”, “Kullanıcı” vb.
Örnek
Varsayalım ki farklı varlıklardan gelen mesajları tek bir kural zincirinde işliyorsunuz. Mesaj akışını varlık türüne göre ayırmak isteyebilirsiniz. Aşağıdaki örneğe bakın:
Şekil 7 – Kural zinciri: message type switch
Script #
Bir gelen mesaj, TBEL (tavsiye edilen) veya düz JavaScript kullanarak oluşturulabilen bir Boolean işlevi değerlendirmek için kullanılır. Script işlevi, üç parametre kabul eden ve Boolean bir değer döndüren şekilde olmalıdır.
Yapılandırma
TBEL/JavaScript işlevi üç girdi parametresini kabul eder:
msg, genellikle bir JSON nesnesi veya dizi olarak sunulan mesaj yüküdür.
metadata, mesajla ilişkili meta verileridir. Anahtar-Değer eşleştirme olarak temsil edilir ve hem anahtarlar hem de değerler dize biçimindedir.
msgType, dize mesaj türüdür.
Şekil 8 – Script kural düğümü ekleme
Çıktı
Çıktı bağlantı türleri: “Doğru” veya “Yanlış”.
Örnek
Mesaj yükü, “msg” değişkeni kullanılarak erişilebilir, örneğin: “msg.sıcaklık < 10;”
Mesaj meta verileri, “metadata” değişkeni üzerinden erişilebilir, örneğin: “metadata.deviceType === ‘DHT11’;”
Mesaj türü, “msgType” değişkeni kullanılarak erişilebilir, örneğin: “msgType === ‘POST_TELEMETRY_REQUEST'”
Aşağıdaki örnek, işlevin nasıl kullanılacağını göstermektedir:
if(msgType === ‘POST_TELEMETRY_REQUEST‘) { if(metadata.deviceType === ‘vehicle‘) { return msg.humidity > 50; } else if(metadata.deviceType === ‘controller‘) { return msg.temperature > 20 && msg.humidity > 60; } } return false; |
TBEL/JavaScript koşulu test filtresi kullanılarak doğrulanabilir.
Bu düğümün nasıl kullanıldığına dair gerçek hayat örnekleri şu öğreticilerde bulunabilir:
Switch #
Bu düğüm, gelen mesajları bir veya daha fazla çıkış bağlantısına yönlendirir. Düğüm, yapılandırılmış bir TBEL (önerilen) veya JavaScript işlevini yürütür ve bir dizi dize (bağlantı adları) döndürür.
Yapılandırma
TBEL/JavaScript fonksiyonu, 3 girdi parametresi alır:
msg – genellikle bir JSON nesnesi veya dizi olan bir mesaj yüküdür.
metadata – mesaj metadata’sını temsil eder. Anahtar-değer eşleştirmesi olarak gösterilir. Her iki anahtar ve değer de string’tir.
msgType – string mesaj türüdür.
Script, bir sonraki bağlantı adlarının bir dizisini döndürmelidir. Mesajın yönlendirileceği bağlantı adlarını belirtir. Eğer döndürülen dizi boş ise, mesaj hiçbir düğüme yönlendirilmez ve atılır.
Şekil 9.1 – Switch kural düğümü ekleme.
Çıktı
Kural düğümünün çıkış bağlantısı, komut dosyası yürütmesinin sonucuna karşılık gelir. Örneğin, “Düşük Sıcaklık Telemetrisi”, “Normal Sıcaklık Telemetrisi”, “Boş Durum” vb. Bkz. kural düğümü bağlantıları için daha fazla ayrıntı.
Örnek
Verilen cümleleri yeniden yazmak için aşağıdaki örneklerden yararlanabilirsiniz:
Mesaj veri yükü, “msg” değişkeni üzerinden erişilebilir. Örneğin, sıcaklığın 10’dan az olduğunu kontrol etmek için “msg.temperature < 10” ifadesini kullanabilirsiniz.
Mesajın meta verileri, “metadata” değişkeni aracılığıyla erişilebilir. Örneğin, müşterinin adının “John” olduğunu doğrulamak için “metadata.customerName === ‘John'” ifadesini kullanabilirsiniz.
Mesajın türü, “msgType” değişkeni aracılığıyla erişilebilir. Örneğin, mesajın türünün “POST_TELEMETRY_REQUEST” olduğunu kontrol etmek için “msgType === ‘POST_TELEMETRY_REQUEST'” ifadesini kullanabilirsiniz.
if (msgType === ‘POST_TELEMETRY_REQUEST‘) { if (msg.temperature < 18) { return [‘Low Temperature Telemetry‘]; } else { return [‘Normal Temperature Telemetry‘]; } } else if (msgType === ‘POST_ATTRIBUTES_REQUEST‘) { if (msg.currentState === ‘IDLE‘) { return [‘Idle State‘, ‘Update State Attribute‘]; } else if (msg.currentState === ‘RUNNING‘) { return [‘Running State‘, ‘Update State Attribute‘]; } else { return [‘Unknown State‘]; } } return []; |
TBEL’de bir JavaScript koşulunu doğrulamak için, test filtre fonksiyonunu kullanabilirsiniz.
Şekil 9.2 – Kural zinciri: switch
GPS Geofencing Filtresi #
Gelen mesajlar, GPS tabanlı coğrafi sınırlama (geofencing) kullanılarak filtrelenir. Bu, gelen mesajdan enlem ve boylam parametrelerinin çıkarılmasını ve bunların yapılandırılmış çevreye göre karşılaştırılmasını içerir.
Enlem anahtar adı: Bu, konum tabanlı bir mesaj için enlem bilgisini içeren mesaj alanının adıdır.
Boylam anahtar adı: Bu, konum tabanlı bir mesaj için boylam bilgisini içeren mesaj alanının adıdır.
Çevre tipi: Bu, bir eylemi veya bildirimi tetikleyen konumun etrafındaki alanın şekline işaret eder. Polygon veya Circle olabilir.
Çevreyi mesaj meta verilerinden al: Bu, konum için çevrenin bir cihaza veya varlığa özgü olduğu ve bir cihaz/varlık özniteliği olarak depolandığı durumlarda etkinleştirilmesi gereken bir onay kutusu seçeneğidir.
Çevre anahtar adı: Bu, çevre bilgisini depolayan meta veri anahtarının adıdır.
Polygon çevre tipi için: Poligon tanımı, koordinatlar dizisi içeren bir dizedir. Her koordinat için format [enlem, boylam] şeklindedir. Dizi çift köşeli parantez içinde olmalı ve her koordinat virgülle ayrılmalıdır. Örnek format: [[lat1, lon1],[lat2, lon2],[lat3, lon3], … , [latN, lonN]]
Circle çevre tipi için: Çember çevresi merkez noktası ve aralığıyla tanımlanır. Merkez enlem ve boylamı, çemberin merkez koordinatlarıdır. Aralık, çemberin yarıçapını belirten bir çift hassas kayan nokta değeridir. Aralık birimleri aşağıdaki seçeneklerden biri olarak belirtilebilir: Meter, Kilometer, Foot, Mile, Nautical Mile.
Eğer “Fetch perimeter from message metadata” seçeneği etkinleştirilirse ve “Perimeter key name” yapılandırılmamışsa, kural düğümü varsayılan meta veri anahtar adlarını kullanacaktır. Poligon çevre tipi için varsayılan meta veri anahtar adı “perimeter”dir. Daire çevre tipi için varsayılan meta veri anahtar adları “centerLatitude”, “centerLongitude”, “range” ve “rangeUnit”tir.
Dairenin çevresinin tanımı sunucu taraflı bir nitelik olarak saklanır ve yapısı belirli bir uygulama tarafından belirlenir.
{“latitude”: 48.198618758582384, “longitude”: 24.65322245153503, “radius”: 100.0, “radiusUnit”: “METER” } |
Kullanılabilir yarıçap birimleri: METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE;
Çıktı
Çıkış bağlantı türleri “True” veya “False” olarak ayarlanabilir. “Başarısızlık” bağlantısı, iki durumda kullanılır: a) Gelen mesajda veri veya meta veride yapılandırılmış enlem veya boylam anahtarı yoksa veya b) çevre tanımı eksikse.
Örnekler
Sabit daire çevresi
Kyiv’in merkezinde bulunan Ukrayna Bağımsızlık Anıtı’na cihazın 100 metre içinde olup olmadığını doğrulamak istediğinizi varsayalım. Anıtın enlem ve boylam koordinatları şöyledir: enlem = 50.4515652, boylam = 0.5236963. Kural düğümünün kurulumu oldukça basittir:” olarak çevrilebilir.
Şekil 10.1 – Gps Geofencing kural düğümü ekleme (Circle perimeter)
Sabit çokgen çevresi
Ahır hayvanlarının konumunu izleme temel senaryosunu ele alalım. Kural düğümünü, koyunun belirtilen alan çevresinde olup olmadığını izlemek için yapılandıralım:
Çiftlik arazisinin sabit çokgen koordinatlarını kullanacağız:
[[48.19736726399899, 24.652353415807884], [48.19800374220741, 24.65060461551745], [48.19918370897885, 24.65317953619048], [48.19849718616351, 24.65420950445969]] |
Aşağıdaki koordinatları mesajda sağlarsanız, kural düğümünün ‘True’ döndürüp döndürmediğini test edebilirsiniz:
{ latitude: 48.198618758582384, longitude: 24.65322245153503 } |
Şekil 10.2 – Gps Geofencing kural düğümü ekleme (Polygon perimeter)
Dynamic çember/polygon çevresi
Hayvan yer tespiti izleme işleminin daha karmaşık bir örneğine bakalım, burada koyunlar farklı çiftliklerde bulunabilir. Diyelim ki Farm A ve Farm B adında iki çiftliğimiz var. Her hayvan takip cihazı, Farm A veya Farm B varlıklarına bağlı olarak ilişkilendirilir.
Şekil 10.3 – Her hayvan takip cihazı, Farm A veya Farm B varlıklarına bağlı olarak ilişkilendirilir.
JSON değeri olarak “perimeter” adında bir sunucu tarafı özelliği yapılandıracağız:
“[[48.19736726399899, 24.652353415807884], [48.19800374220741, 24.65060461551745], [48.19918370897885, 24.65317953619048], [48.19849718616351, 24.65420950445969]]”; |
Şekil 10.4 – JSON değeri olarak “perimeter” adında bir sunucu tarafı özelliği yapılandırılmıştır.
Aşağıdaki kural zinciri, ilgili varlıktan (Çiftlik A) özelliği alacak ve geofencing düğümünde kullanacaktır:
Şekil 10.5 – Kural zinciri: gps geofencing filter
Kural düğümü yapılandırması oldukça basittir. Lütfen perimeter anahtar adının öneki olmadan olduğunu unutmayın:
Şekil 10.6 – Perimeter anahtar adının öneki varsa kaldırın.
Kural zincirini indirebilir ve içeri aktarabilirsiniz, ancak lütfen “kural zinciri” düğümlerinin “Sheep Tracker Generator” düğümünde var olmayan bir cihaza işaret edeceğine dikkat edin. Örneği çoğaltmak için cihazı ve varlığı sağlamanız gerekecektir.
/docs/user-guide/rule-engine-2-0/filter-nodes/
Zenginleştirme Düğümleri #
Zenginleştirme düğümleri, gelen mesajların meta verilerini güncellemek için kullanılır.
Deltayı hesapla #
Şekil 1.1 – Deltayı hesaplama düğümü
Önceki ve mevcut zaman serisi okumalarını karşılaştırarak ‘delta’ hesaplaması yapılıp mesaja eklemek, mesajın kaynağı olan cihaz, varlık veya müşteri bağlamında gerçekleştirilir. Bu işlevsellik özellikle akıllı sayaçlama uygulamaları için faydalıdır. Örneğin, su sayım cihazı sadece bir kez gün içinde darbe sayacının mutlak değerini rapor ediyorsa, güncel gün tüketimini belirlemek için önceki ve mevcut gün değerleri karşılaştırılmalıdır.
İşte yapılandırma parametreleri:
Giriş değeri anahtarı (varsayılan: ‘pulseCounter’): delta hesaplaması için kullanılan anahtarı belirtir.
Çıkış değeri anahtarı (varsayılan: ‘delta’): zenginleştirilmiş mesajda delta değerini depolayacak anahtarı belirtir.
Ondalıklı sayılar: delta hesaplaması için hassasiyeti ayarlar.
Son değerler için önbelleği kullan (varsayılan: etkin): en son değerlerin bellekte önbelleğe alınmasını etkinleştirir.
Delta değeri negatifse ‘Başarısızlık’ bildir (varsayılan: etkin): delta değeri negatif olduğunda mesaj işleme sürecinin başarısız olmasını zorlar.
Mesajlar arasına nokta ekle (varsayılan: devre dışı): mevcut ve önceki mesajlar arasındaki sürenin değerini ekler.
Kural düğümü ilişkileri:
Kural düğümü, gelen mesajda aşağıdaki ilişkilerden biriyle birlikte mesaj üretir:
Başarılı – ‘Girdi değeri anahtarı’ parametresi aracılığıyla yapılandırılan anahtar gelen mesajda mevcutsa;
Diğer – ‘Girdi değeri anahtarı’ parametresi aracılığıyla yapılandırılan anahtar gelen mesajda mevcut değilse;
Başarısızlık – ‘Negatif delta durumunda ‘Başarısızlık’ olarak belirt’ seçeneği etkinleştirildiyse ve delta hesaplaması negatif bir değer döndürürse;
Bir örnek üzerinden kural düğümünün davranışını inceleyelim. Aşağıdaki yapılandırmayı varsayalım:
Şekil 1.2 – Kural düğümü ekle
Aynı cihaz tarafından gönderilen ve sıralandığı şekilde kural düğümüne ulaşan aşağıdaki mesajları varsayalım:
msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510425000”} msg: {“pulseCounter”: 73}, metadata: {“ts”: “1616510485000”} msg: {“temperature”: 22}, metadata: {“ts”: “1616510486000”} msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510487000”} |
Çıktı aşağıdaki şekilde olacaktır:
msg: {“pulseCounter”: 42, “delta”: 0, “periodInMs”: 0}, metadata: {“ts”: “1616510425000”}, relation: Success msg: {“pulseCounter”: 73, “delta”: 31, “periodInMs”: 60000}, metadata: {“ts”: “1616510485000”}, relation: Success msg: {“temperature”: 22}, metadata: {“ts”: “1616510486000”}, relation: Other msg: {“pulseCounter”: 42}, metadata: {“ts”: “1616510487000”}, relation: Failure |
Müşteri özellikleri #
Şekil 2.1 – Müşteri özellikleri düğümü
Düğüm, mesaj kaynakçısının müşteri varlığını arar ve müşterinin özelliklerini veya en son telemetri değerini mesaj meta verilerine ekler.
Yönetici, orijinal özellik adı ile meta veri özellik adı arasındaki eşleştirmeyi yapılandırabilir.
Düğüm yapılandırmasında ‘En Son Telemetri’ onay kutusu bulunur. Bu onay kutusu seçili ise, düğüm yapılandırılmış anahtarlar için en son telemetriyi alacaktır. Aksi takdirde, düğüm sunucu kapsamı özelliklerini alacaktır.
Şekil 2.1 – Müşteri özellikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler mevcutsa, bunlar çıkış mesajı meta verilerinde yer alacaktır. Diğer düğümlerde alınan özniteliklere erişmek için “metadata.temperature” şablonunu kullanabilirsiniz.
Kabul edilen Mesaj Kaynak Türleri: Müşteri, Kullanıcı, Varlık, Cihaz’dır. Desteklenmeyen bir kaynak türü bulunursa, bir hata oluşur.
Eğer kaynak, atanan Müşteri varlığı yoksa, Başarısızlık zinciri kullanılır; aksi takdirde, Başarı zinciri kullanılır.
Not: Metadata’dan bir değeri almak için ${metadataKey} ve mesaj gövdesinden bir değeri almak için $[messageKey] kullanabilirsiniz.
Örnek: Aşağıdaki metadata’ya sahip olduğunuzu varsayalım: {“country”: “İngiltere”}. Ek olarak, bir anahtarın bir ülke adı olduğu ve bir başkent şehri olduğu bir özniteliğiniz var ({“İngiltere”: “Londra”}).
Amaç, metadata’daki ülkeden öznitelikteki başkent şehrini almak ve sonucu “city” anahtarıyla metadata’ya eklemektir. Bunu yapmak için kaynak özniteliği olarak ${country} ve hedef özniteliği olarak “city” kullanabilirsiniz.
Sonuç, {“city”: “Londra”} olacaktır.
Bu düğümün nasıl kullanıldığına dair gerçek hayat örneğini, aşağıdaki öğreticide görebilirsiniz:
Cihaz özellikleri #
Şekil 3.1 – Cihaz özellikleri düğümü
Düğüm, yapılandırılmış sorguyu kullanarak mesaj kaynakçısının ilgili cihaz varlığını bulur ve cihazın özniteliklerini (müşteri/paylaşılan/sunucu kapsamı) ve en son telemetri değerini mesaj meta verilerine ekler.
Öznitelikler aşağıdaki kapsam öneki ile meta verilerine eklenir:
Paylaşılan öznitelik: shared_
İstemci öznitelik: cs_
Sunucu öznitelik: ss_
Telemetri: önek kullanılmaz
Örneğin, paylaşılan öznitelik ‘version’, ‘shared_version’ adıyla Metadata’ya eklenecektir. İstemci öznitelikleri ‘cs_’ ön eki kullanacak. Sunucu öznitelikleri ‘ss_’ ön eki kullanacak. Son telemetri değeri, ön ek kullanılmadan Mesaj Metadata’sına eklenir.
‘Cihaz ilişkisi sorgusu’ yapılandırmasında yönetici gerekli Yönlendirme ve ilişki derinlik seviyesini seçebilir. Ayrıca İlişki türü, gereksinim duyulan Cihaz türleri kümesiyle yapılandırılabilir.
Şekil 3.2 – Cihaz özellikleri düğümü yapılandırması
Eğer birden fazla ilişkili varlık bulunursa, sadece ilk varlık özellik zenginleştirmesi için kullanılır ve diğer varlıklar atılır.
İlişkili bir varlık bulunamazsa başarısızlık zinciri kullanılır; aksi takdirde başarı zinciri kullanılır.
Bir özellik veya telemetri bulunamazsa, mesaj metadata’sına eklenmez ve hala başarı zinciri üzerinden yönlendirilir.
Çıkış mesajı metadata’sı, yalnızca yapılandırılmış özellikler varsa bunları içerecektir.
Diğer düğümlerde alınan özelliklere erişmek için ‘metadata.sıcaklık’ şablonunu kullanabilirsiniz.
Not: Kural Düğümü, çıkış mesajında seçilen en az bir anahtarın mevcut olmadığı durumlarda başarısızlıkların raporlanmasını etkinleştirme/devre dışı bırakma yeteneğine sahiptir.
Şekil 3.3 – Başarısızlık raporlaması
Originator öznitelikleri #
Şekil 4.1 – Originator özellikleri düğümü
Bu düğüm, mesaj kaynağı özniteliklerini (istemci/paylaşılan/sunucu kapsamı) ve mesaj metadata’sına en son telemetri değerini ekler.
Öznitelikler, aşağıdaki kapsam öneki ile meta verilere eklenir:
Aşağıdaki şekilde, öznitelikler kapsam öneki ile metadataya eklenir:
Paylaşılan öznitelik: shared_
İstemci özniteliği: cs_
Sunucu özniteliği: ss_
Telemetri: önek kullanılmaz.
Örneğin, ‘version’ adlı bir paylaşılan öznitelik ‘shared_version’ adıyla metadata’ya eklenir. İstemci öznitelikleri ‘cs_’ ön eki kullanırken, sunucu öznitelikleri ‘ss_’ ön eki kullanır. En son telemetri değeri, önek olmadan Mesaj Metadata’ya eklenir.
Şekil 4.2 – Cihaz özellikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler mevcutsa, çıkış mesajı metadata’si onları içerecektir.
Diğer düğümlerde alınan özniteliklere erişmek için ‘metadata.cs_temperature’ şablonunu kullanabilirsiniz.
Not: Kural Düğümü, en az bir seçili anahtarın çıkış mesajında mevcut olmadığında başarısızlık bildirimini etkinleştirmeyi/devre dışı bırakmayı sağlar.
Şekil 4.3 – Başarısızlık raporlaması
Originator alanları #
Şekil 5.1 – Originator alanları düğümü
Düğüm, mesaj kaynak varlığının alan değerlerini alır ve bunları mesaj meta verilerine ekler. Yönetici, alan adı ile meta veri öznitelik adı arasındaki eşleştirmeyi yapılandırabilir. Belirtilen alan, Mesaj Kaynak varlığı alanlarının bir parçası değilse, yok sayılacaktır.
Şekil 5.2 – Originator alanları düğümü yapılandırması
Desteklenen mesaj kaynak türleri şunlardır: Tenant, Customer, User, Asset, Device, Alarm, Rule Chain.
Desteklenmeyen bir kaynak türü bulunursa, hata zinciri kullanılır; aksi takdirde başarı zinciri kullanılır.
Bir alan değeri bulunamazsa, mesaj metadata’sına eklenmez ve başarı zinciri ile iletilmeye devam eder.
Gönderilen mesaj metadata’sı, yalnızca varsa yapılandırılmış öznitelikleri içerecektir.
Diğer düğümlerde alınan özniteliklere erişmek için ‘metadata.devType’ şablonu kullanılabilir.
İlgili Özellikler Düğümü #
Şekil 6.1 – İlgili özellikler düğümü
Node, yapılandırılmış sorguyu kullanarak Mesaj Kaynağı varlığının İlgili Varlığını bulur ve Nitelikleri veya En Son Telemetri değerini Mesaj Meta Verilerine ekler.
Yönetici, orijinal nitelik adı ile Meta Veri niteliği adı arasındaki eşlemeyi yapılandırabilir.
‘Relations query’ yapılandırmasında, Yönetici gerekli Yönü ve ilişki derinlik seviyesini seçebilir. Ayrıca, Gereken İlişki Türü ve Varlık Türleri ile bir dizi İlişki filtresi yapılandırılabilir.
Düğüm yapılandırmasında ‘En Son Telemetri’ onay kutusu bulunmaktadır. Bu onay kutusu seçiliyse, düğüm yapılandırılmış anahtarlar için en son telemetriyi alacaktır. Aksi takdirde, düğüm sunucu kapsamı niteliklerini alacaktır.
Şekil 6.2 – İlgili özellikler düğümü yapılandırması
Şekil 6.3 – İlgili özellikler düğümü yapılandırması
Eğer birden fazla ilgili varlık bulunursa, sadece ilk varlık öznitelik zenginleştirmesi için kullanılır ve diğer varlıklar atılır.
Eğer hiç ilgili varlık bulunamazsa başarısızlık zinciri kullanılır, aksi takdirde başarı zinciri kullanılır.
Gönderilen Mesaj Meta Verisi, yapılandırılmış öznitelikleri varsa içerecektir.
Diğer düğümlerde getirilen özniteliklere erişmek için şablon olarak ‘metadata.tempo’ kullanabilirsiniz.
Not: ‘${metadataKey}’ ile meta veriden ve ‘$[messageKey]’ ile mesaj gövdesinden bir değer kullanabilirsiniz.
Bu özellik için bir örnek, Müşteri Öznitelikleri düğümünün açıklamasında görebilirsiniz.
Bu düğümün nasıl kullanıldığına dair bir gerçek hayat örneğini aşağıdaki öğreticide bulabilirsiniz:
Tenant Öznitelikleri Düğümü #
Şekil 7.1 – Tenant Öznitelikleri düğümü
Node, mesaj kaynağı varlığının Tenant’ını belirler ve Tenant Özniteliklerini veya en son telemetri değerini Mesaj Meta verilerine dahil eder.
Yönetici, orijinal öznitelik adı ile Meta veri öznitelik adı arasındaki eşleşmeyi özelleştirebilir.
Node yapılandırması, “En Son Telemetri” olarak adlandırılan bir onay kutusu içerir. Bu seçenek etkinleştirilirse, Node belirtilen anahtarlar için en güncel telemetri verilerini alacaktır. Onay kutusu seçilmezse, Node sunucuya özgü öznitelikleri alacaktır.
Şekil 7.2 – Tenant Öznitelikleri düğümü yapılandırması
Eğer yapılandırılmış öznitelikler varsa, Giden Mesaj Meta verileri de bunları içerecektir. Başka düğümlerde alınan özniteliklere erişmek için ‘metadata.tempo’ şablonunu kullanabilirsiniz.
Mesaj kaynağı, aşağıdaki tiplerden biri olabilir: Tenant, Müşteri, Kullanıcı, Varlık, Cihaz, Alarm, Kural Zinciri. Desteklenmeyen bir kaynak türü tespit edilirse, bir hata oluşacaktır.
Kaynak, atanan bir Tenant Varlığı yoksa Başarısızlık zinciri kullanılır; aksi takdirde, Başarı zinciri kullanılır.
Not: Metadata’dan bir değer almak için ${metadataKey} ve mesaj gövdesinden bir değer almak için $[messageKey] kullanabilirsiniz.
Bu özelliğin bir örneği, Müşteri öznitelikleri düğümünün açıklamasında bulunabilir.
Originator telemetri #
Şekil 8.1 – Originator telemetri düğümü
Node, düğüm yapılandırmasında seçilen belirli bir zaman aralığından Mesaj Kaynağı telemetri değerlerini Mesaj Meta verilerine ekler.
Şekil 8.2 – Originator telemetri düğümü yapılandırması
Telemetri değerleri, önek olmadan Mesaj Meta verilerine eklenir.
Kural düğümünün üç alım modu vardır:
FIRST: Zaman aralığının başlangıcına en yakın olan verileri veritabanından alır.
LAST: Zaman aralığının sonuna en yakın olan verileri veritabanından alır.
ALL: Belirtilen zaman aralığındaki tüm telemetri verilerini veritabanından alır.
Şekil 8.3 – Kural düğümü alım modları
Eğer alım modu olarak FIRST veya LAST seçilirse, Giden Mesaj Meta verileri JSON öğelerini(key/değer) içerecektir.
Eğer alım modu olarak ALL seçilirse, telemetri verileri bir dizi olarak alınacaktır.
Not: Kural düğümü, 1000 kayıt boyutuna kadar sınırlı sayıda kaydı bir diziye çıkarmak için yeteneklidir.
Elde edilen dizi, zaman damgası ve ilgili değerler içeren JSON nesnelerinden oluşacaktır.
Not: Zaman aralığının sonu, her zaman başlangıcından büyük olmalıdır.
Eğer ‘Use metadata interval patterns’ seçeneği işaretlendiyse, kural düğümü başlangıç ve bitiş aralığı desenlerini (metadata’dan) kullanacaktır.
Bu desenlerin birimleri UNIX epoktan (1 Ocak 1970 00:00:00 UTC) itibariyle milisaniye cinsindendir.
Şekil 8.4 – Kural düğümü başlangıç ve bitiş aralığı desenleri
Eğer Mesaj metadata’da herhangi bir desen eksikse, çıkış mesajı başarısızlık zinciri üzerinden yönlendirilir.
Ayrıca, herhangi bir desen geçersiz veri türüne sahipse, çıkış mesajı yine başarısızlık zinciri üzerinden yönlendirilir.
Ayarlanmış olan telemetri alanları varsa ve seçilen aralığa aitse, çıkış mesajı metadata’sı onları içerecektir.
Eğer bir öznitelik veya telemetri değeri bulunamazsa, Message Metadata’ya eklenmez ve yine de Başarı zinciri üzerinden yönlendirilir.
Diğer düğümlerde elde edilen telemetriye erişmek için şablon olarak şu kullanılabilir: JSON.parse(metadata.temperature).
Not: Kural düğümü, Fetch modu ALL (TÜMÜ) olarak ayarlandığında telemetri örneklemesi sırasını seçebilme yeteneğine sahiptir.
Şekil 8.5 – Kural düğümü yapılandırmaları
Bu düğümün gerçek hayatta nasıl kullanıldığına dair örnekleri aşağıdaki öğreticilerde bulabilirsiniz:
Tenant Ayrıntıları Düğümü #
Şekil 9.1 – Tenant ayrıntıları düğümü
Kural Düğümü, Tenant detaylarından alanları mesaj gövdesine veya meta verilere ekler.
Düğüm yapılandırmasında, ‘Mesaj meta verilerine seçilen detayları ekle’ adlı bir onay kutusu bulunur. Bu onay kutusu seçildiğinde, mevcut alanlar mesaj verileri yerine mesaj meta verilerine eklenir.
Şekil 9.2 – Varlık detayları eklenir.
Seçilen ayrıntılar, öneki ‘tenant_‘ ile birlikte metadatalara eklenir. Var ise yapılandırılmış ayrıntılar, giden mesajda bulunacaktır.
Diğer düğümlerde alınan ayrıntılara erişmek için aşağıdaki şablonlardan birini kullanabilirsiniz:
metadata.tenant_address
msg.tenant_address
Eğer Originator atanmış bir Tenant Varlığına sahip değilse, başarısızlık zinciri kullanılır. Aksi takdirde başarı zinciri kullanılır.
Müşteri Ayrıntıları Düğümü #
Şekil 10.1 – Müşteri ayrıntıları düğümü
Kural Düğümü, Müşteri ayrıntılarından gelen alanları mesaj gövdesine veya meta verilere ekler.
Düğüm yapılandırmasında ‘Mesaj meta verilerine seçilen ayrıntıları ekle’ adlı bir onay kutusu bulunur. Bu onay kutusu seçildiğinde, mevcut alanlar mesaj verileri yerine mesaj meta verilerine eklenir.
Şekil 10.2 – Varlık detayları seçilir.
Seçilen detaylar ‘customer_‘ önekiyle metadata’ya eklenir. Varlarsa, çıktı mesajı yapılandırılmış detayları içerecektir.
Diğer düğümlerde getirilen ayrıntılara erişmek için şu şablonlardan birini kullanabilirsiniz:
metadata.customer_email
msg.customer_email
Aşağıdaki Mesaj Kaynağı tiplerine izin verilir: Varlık, Aygıt, Varlık Görünümü. Desteklenmeyen bir kaynak türü bulunursa bir hata fırlatılır.
Kaynak, müşteri varlığı atanmadıysa Hata zinciri kullanılır, aksi takdirde Başarı zinciri kullanılır.
https://Fast IoT Platform.io/docs/user-guide/rule-engine-2-0/transformation-nodes/
Dönüşüm Düğümleri #
Dönüşüm Düğümleri, Giriş Mesajı alanlarını, örneğin Kaynak, Mesaj Türü, Yük ve Meta verilerini değiştirmek için kullanılır.
Change originator #
Şekil 1.1 – Change originator düğümü
Fast IoT Platform’da gelen tüm Mesajlar, Mesajı gönderen varlığı tanımlayan bir köken alanı içerir. Bu bir Cihaz, Varlık, Müşteri, Tenant vb. olabilir.
Bu düğüm, gönderilen bir Mesajın başka bir varlık tarafından işlenmesi gerektiği durumlarda kullanılır. Örneğin, bir Cihaz telemetri gönderirse telemetri, daha yüksek bir seviyedeki Varlık veya bir Müşteriye kopyalanmalıdır. Bu durumda, Yönetici, Zaman Serisini Kaydet Düğümünden önce bu düğümü eklemelidir.
Köken alanı şunlara değiştirilebilir:
Originator Müşterisi
Originator Tenantı
İlişki Sorgusu tarafından tanımlanan İlgili Varlık
‘İlişkiler sorgusu’ yapılandırmasında, Yönetici gerekli yönlendirme ve ilişki derinlik seviyesini seçebilir. Ayrıca, gereken İlişki türü ve Varlık Türleriyle bir dizi ilişki filtresi yapılandırılabilir.
Şekil 1.2 – Change originator düğümü yapılandırmaları
Eğer birden fazla İlgili Varlık bulunursa, yalnızca ilk varlık yeni originator olarak kullanılır ve diğer varlıklar atılır.
İlgili bir varlık/Müşteri/Tenant bulunamazsa Hata zinciri kullanılır, aksi takdirde Başarı zinciri kullanılır.
Giden Mesaj yeni originator kimliğine sahip olacak.
Script Dönüşüm Düğümü #
Şekil 2.1 – Script dönüşüm düğümü
Bu Düğüm, yapılandırılmış JavaScript işlevini kullanarak Mesaj içeriğini, Meta verilerini veya Mesaj türünü değiştirir.
JavaScript işlevi 3 girdi parametresi alır:
msg – Mesaj içeriği
metadata – Mesaj meta verileri
msgType – Mesaj türü
Komut dosyası aşağıdaki yapıyı döndürmelidir:
{ msg: new payload, metadata: new metadata, msgType: new msgType } |
Şekil 2.2 – Script yapılandırma
Sonuç nesnesindeki tüm alanlar isteğe bağlıdır ve belirtilmediği takdirde orijinal mesajdan alınacaktır.
Bu Düğümden giden çıktı, yapılandırılmış JavaScript fonksiyonunu kullanarak oluşturulan yeni bir Mesaj olacaktır.
JavaScript dönüştürme işlevi “JavaScript Fonksiyonunu Test Et” seçeneği kullanılarak doğrulanabilir.
Örnek
Düğüm, payload olan bir Mesaj alır:
{ “temperature”: 22.4, “humidity”: 78 } |
Orjinal Metadata:
{ “sensorType” : “temperature” } |
Düğüm, aşağıdaki payload ile bir Mesaj alır:
Orijinal Mesaj Türü – POST_TELEMETRY_REQUEST
Aşağıdaki değişiklikler yapılmalıdır:
Mesaj türü ‘CUSTOM_UPDATE’ olarak değiştirilecek.
Payload’a ‘version’ adında ve ‘v1.1’ değerinde ek bir özellik eklenecek.
Metadata’da ‘sensorType’ özellik değeri ‘roomTemp’ olarak değiştirilecek.
Aşağıdaki dönüştürme işlevi tüm gerekli değişiklikleri gerçekleştirecektir:
var newType = “CUSTOM_UPDATE”; msg.version = “v1.1”; metadata.sensorType = “roomTemp” return {msg: msg, metadata: metadata, msgType: newType}; |
Bu düğümü nasıl kullanacağınızla ilgili gerçek hayat örneklerini şu öğreticilerde bulabilirsiniz:
E-postaya Dönüştürme Düğümü #
Şekil 3.1 – E-postaya dönüştürme düğümü
Bu Düğüm, Mesaj metadata’sından türetilen değerler kullanılarak e-posta alanlarını doldurarak Mesajı bir E-posta Mesajına dönüştürür. Çıktı Mesaj türünü, daha sonra Send Email Düğümü tarafından kabul edilebilen ‘SEND_EMAIL’ olarak ayarlar. Tüm e-posta alanları metadata’dan gelen değerler kullanılarak yapılandırılabilir. Bu Düğüm, HTML sayfaları ve resimlerin gönderilmesini destekler.
Şekil 3.2 – Kural düğümü ekleme
Örneğin, gelen Mesaj’ın meta verilerinde ‘deviceName’ alanı varsa ve e-posta gövdesi değerini içermelidir. Bu durumda ‘deviceName’ değeri, aşağıdaki örnekte gösterildiği gibi e-posta şablonunda “${deviceName}” olarak referans verilebilir:
Device ${deviceName} has high temperature |
Eğer HTML veya resim göndermek isterseniz, posta gövdesi tipi olarak HTML veya Dynamic seçebilirsiniz. Daha fazla bilgi için “E-posta İçinde HTML veya Resim Gönderme” örneklerine başvurabilirsiniz.
Ek olarak, gelen Mesaj metadata’sında bir veritabanında saklanan dosyalara referans içeren bir ‘attachments’ alanı varsa, bu düğüm e-posta ekleri hazırlayabilir. Bu özellik Fast IoT Platform tarafından desteklenen File Storage özelliğinin bir parçasıdır.
Bu Düğümün nasıl kullanılacağına dair gerçek hayattan örnekleri şu öğreticilerde bulabilirsiniz:
Akış Düğümleri #
Akış Düğümleri, mesaj işleme akışını yönetmek için kullanılır.
Onay Düğümü #
Bu düğüm, mesajları başarılı bir şekilde işlendi veya onaylandı olarak işaretlemek için tasarlanmıştır. Daha fazla bilgi için mesaj işleme sonuçlarına bakınız. Bu, mesajın başarılı bir şekilde işlendiğini kural motoruna bildirir.
Bu düğüm özellikle başarısız mesajları yeniden işlemek istemediğiniz durumlarda faydalıdır. Örneğin, aşağıdaki kural zinciri yalnızca önemli mesajlar için başarısız mesajları yeniden işler. Önemsiz bir mesajın başarısız olması durumunda, başarısızlık göz ardı edilecektir.
Şekil 1 – Onay düğümü örneği
Not: “Acknowledge” kural düğümünün işlem zincirinde en sona konulmasını öneriyoruz. Teorik olarak, “acknowledge” düğümünden sonra başka kural düğümleri ekleyebilirsiniz. Ancak bu, OOM hatalarına neden olabilir. Örneğin, sonraki kural düğümleri mesajları yavaş işleyebilir. İşlenmemiş mesajlar bellekte birikecek ve fazla miktarda RAM tüketebilecektir.
Onay Düğümü #
Bu düğüm, seçilen kural motoru kuyruğuna mesajın bir kopyasını yayımlar. Hedef kuyruk, kopyalanan mesajın yayımlanmasını doğruladığında, orijinal mesaj başarılı bir şekilde işlenmiş olarak işaretlenir.
Bu, bir mesajı yüksek öncelikli olarak işaretlemek veya mesajın kaynağına göre sıralı olarak gruplanmış şekilde işlemek istediğinizde faydalıdır. Daha fazla bilgi için varsayılan kuyruklara bakabilir veya kendi kuyruğunuzu tanımlayabilirsiniz.
Kural Zinciri Düğümü #
Bu düğüm, seçilen kural zincirine mesajı iletiyor. Hedef kural zinciri, çıktı düğümü kullanarak işleme sonuçlarını da çıktılayabilir. Çıktı düğümü, kural zincirlerinin yeniden kullanımına ve işleme mantığının modüllere (kural zincirlerine) ayrıştırılmasına olanak tanır.
Örneğin, gelen mesajları doğrulayan ve geçerli ve geçersiz mesajları ayrı ayrı işleyen bir kural zinciri oluşturabilirsiniz.
Şekil 2 – Kural Zinciri düğümü örneği
Mesaj doğrulama mantığı diğer kural zincirlerinde yeniden kullanılabilir. Bu amaçla, doğrulama mantığı ayrı bir kural zincirine çıkarılır.
Şekil 3 – Kural Zinciri düğümü örneği
Lütfen doğrulama kuralları zincirindeki “Çıkış” düğümlerinin kullanımına dikkat edin. Bu çıkış düğümlerinin isimleri, ana kurallar zincirindeki “kural zinciri düğümü”nün çıkış ilişkileriyle eşleşmelidir.
Çıkış Düğümü #
Çağrıcı kurallı zincirle birlikte kullanılır. Mesaj işleme sonucunu çağrıcı kural zincirine yayınlamanıza olanak tanır. Çıktı kural düğüm adı, çıktı mesajının ilişki türüne karşılık gelir ve çağrıcı kural zincirindeki diğer kural düğümlerine mesajları iletmek için kullanılır. Örnek için kural zincir düğümü belgelerine bakın.
Dış Düğümler #
Dışsal Düğümler, harici sistemlerle etkileşim kurmak için kullanılır.
AWS SNS Düğümü #
Şekil 1.1 – AWS SNS düğümü
Bu düğüm, mesajları AWS SNS’e (Amazon Simple Notification Service) yayınlamak için kullanılır.
Yapılandırma:
Şekil 1.2 – AWS SNS yapılandırmaları.
Topic ARN deseni – mesaj yayınlama için doğrudan konu adı belirtilebilir veya Mesaj meta verilerini kullanarak gerçek ARN Konu adı çözümlenebilecek desen kullanılabilir.
AWS Access Key ID ve AWS Secret Access Key, programatik erişime sahip bir AWS IAM Kullanıcısının kimlik bilgileridir. AWS erişim anahtarları hakkında daha fazla bilgi burada bulunabilir.
AWS Bölgesi, SNS Konularının oluşturulduğu bölge ile eşleşmelidir. Mevcut AWS Bölgeleri listesi burada bulunabilir.
Aşağıdaki örnekte, konu adı cihaz tipine bağlıdır ve Meta verilerinde “deviceType” alanı olan bir mesaj vardır:
Kontrolcünün konusunda bir ileti yayınlamak için, bu kalıbı Konu ARN kalıbına ayarlamamız gerekiyor:
Çalışma zamanında, desen arn:aws:sns:us-east-1:123456789012:controller olarak çözümlenecektir.
Düğüm, tam mesaj yükünü SNS’e yayınlayacaktır. Gerekirse, kural zinciri, doğru yükü SNS’e göndermek için bir dönüşüm düğümü zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden giden mesaj, yanıt messageId ve requestId’ı Mesaj meta verilerinde içerecektir. Orijinal mesaj yükü, türü ve başlatıcı değiştirilmeyecektir.
AWS SQS Düğümü #
Şekil 2.1 – AWS SQS düğümü
Bu düğüm, mesajları AWS SQS’ye (Amazon Simple Queue Service) yayınlamak için kullanılır.
Yapılandırma:
Şekil 2.2- AWS SQS yapılandırmaları.
Bu düğüm için kuyruk türü SQS’dir (Amazon Simple Queue Service) ve Standart veya FIFO olabilir.
Kuyruk URL kalıbı, kuyruk URL’sini oluşturmak için kullanılır ve doğrudan mesaj yayınlamak için bir kuyruk URL’si veya mesaj metadata kullanarak gerçek kuyruk URL’sine çözülecek bir kalıp olabilir.
Gecikme parametresi belirli bir mesajın belirli bir süre geciktirilmesinde kullanılır.
Mesaj öznitelikleri, mesajla birlikte yayınlanacak isteğe bağlı bir öznitelik listesidir.
AWS Access Key ID ve AWS Secret Access Key, programatik erişimle bir AWS IAM Kullanıcısının kimlik bilgileridir.
AWS erişim anahtarları hakkında daha fazla bilgi burada bulunabilir. AWS Bölgesi, SQS Kuyruk(lar)ının oluşturulduğu bölgeyle eşleşmelidir. AWS Bölgeleri’nin güncel listesi burada bulunabilir.
Örneğin, aşağıdaki örnekte kuyruk URL’si cihaz tipine bağlıdır ve metadata’da “deviceType” alanı bulunur:
Kontrolcünün kuyruğuna mesaj yayınlamak için, bu modeli Kuyruk URL modelinde ayarlamamız gerekiyor:
Çalışma zamanında, desen https://sqs.us-east-1.amazonaws.com/123456789012/controller’e çözümlenecektir.
Düğüm, tam Mesaj gövdesini SQS’e gönderecektir. Gerektiğinde, Kural Zinciri, doğru Pay yükünü SQS’e göndermek için Dönüşüm Düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Yayınlanan öznitelikler, SQS’de mesaj yayınlamak için isteğe bağlı bir öznitelik listesi olabilir. İkisi de, AD ve DEĞER, hem statik değerler olabilir hem de Mesaj meta verilerini kullanarak çözülebilecek desenler olabilir.
FIFO kuyruğu seçilirse, Mesaj Kimliği yinelenen kimliği ve Mesaj kaynağı Grup Kimliği olarak kullanılacaktır.
Bu düğümden çıkan mesaj, yanıt messageId, requestId, messageBodyMd5, messageAttributesMd5 ve sequenceNumber’ı içerecektir. Orijinal mesaj yükü, türü ve kaynak değiştirilmeyecektir.
Kafka Düğümü #
Şekil 3.1 – Kafka düğümü
Kafka Düğümü, mesajları Kafka brokerlarına göndermekten sorumludur. Herhangi bir mesaj türüne sahip mesajları işleyebilir ve kaydediciyi kullanarak kayıt, Kafka sunucusuna gönderir.
Yapılandırma:
Şekil 3.2 – Kafka düğümü yapılandırmaları
Kafka Düğümü, Kafka brokerlarına mesaj gönderebilir ve herhangi bir türde mesaj bekler. Kafka üreticisi aracılığıyla kayıt, Kafka sunucusuna gönderilir.
Konu deseni, statik bir dize veya ${deviceType} gibi mesaj meta veri özelliklerini kullanarak çözülen bir desen olabilir.
Önyükleme sunucuları parametresi, virgülle ayrılmış Kafka brokerlarının bir listesini belirtir.
Otomatik olarak yeniden deneme sayısı parametresi, bağlantı başarısız olursa bir mesajı yeniden gönderme girişimleri sayısını belirler.
Üretilen toplu boyut parametresi, aynı bölümle ilişkili mesajların gruplandığı toplu boyutunu byte cinsinden belirtir.
Yerel olarak önbelleğe alma süresi parametresi, maksimum yerel önbellek penceresi süresini milisaniye cinsinden ayarlar, müşteri önbellek maksimum boyut parametresi ise mesaj göndermek için maksimum önbellek boyutunu byte cinsinden belirtir.
Onay sayısı parametresi, düğümün isteği tamamlandı olarak kabul etmeden önce alınması gereken onay sayısını belirler.
Anahtar serileştirici, varsayılan olarak org.apache.kafka.common.serialization.StringSerializer, ve değer serileştirici de, varsayılan olarak org.apache.kafka.common.serialization.StringSerializer’dır.
Diğer özellikler, Kafka broker bağlantısı için eklenilebilir.
Düğüm, Kafka konusuna tam mesaj yükünü gönderecektir. Gerektiğinde, kural zinciri, Kafka’ya doğru yükü göndermek için bir dönüşüm düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden çıkan mesaj metadata özelliklerinde yanıt ofseti, bölüm ve konu bilgilerini içerecektir. Orijinal mesaj yükü, türü ve kaynak değiştirilmeyecektir.
Not: Confluent Cloud’u bir Kafka brokerı olarak kullanmak istiyorsanız, aşağıdaki özellikleri eklemelisiniz:
Şekil 3.3 – Confluent Cloud Kafka broker olarak kullanılacaksa eklenilecek özellikler.
CLUSTER_API_KEY – Küme ayarlarından erişim anahtarınız.
CLUSTER_API_SECRET – Küme ayarlarından erişim sırrınız.
MQTT Düğümü #
Şekil 4.1 – MQTT düğümü
Gelen mesaj yükünü, en az bir kez hizmet kalitesi (QoS) ile yapılandırılmış MQTT broker konusuna yayınlayın.
Yapılandırma:
Şekil 4.1 – MQTT düğümü yapılandırmaları
Konu Deseni – Sabit bir dize veya Mesaj Meta veri özelliklerini kullanarak çözülebilen bir desen olabilir, örneğin ${deviceType}.
Ana Bilgisayar – MQTT broker ana bilgisayarı.
Port – MQTT broker bağlantı noktası.
Bağlantı Zaman Aşımı – MQTT broker’a bağlanmak için saniye cinsinden zaman aşımı.
Müşteri Kimliği – MQTT broker’a bağlanmak için kullanılan isteğe bağlı bir istemci kimliği. Belirtilmezse, varsayılan oluşturulan istemci kimliği kullanılır.
Müşteri Kimliğine Servis Kimliği Ekle – İsteğe bağlı bir bayrak. Etkinleştirildiğinde, sunucu kimliği müşteri kimliğinin bir soneki olarak eklenir. Her bir düğümdeki kural düğümlerinin hatalar olmadan brokere bağlanmasına izin vermek için mikro hizmetler modunda çalıştırırken faydalıdır.
Temiz Oturum – Etkinleştirildiğinde, brokera kalıcı olmayan bir bağlantı kurar.
SSL Etkinleştir/Devre Dışı Bırak – Güvenli iletişimi etkinleştirir/devre dışı bırakır.
Kimlik Bilgileri – MQTT bağlantı kimlik bilgileri. Anonim, Temel veya PEM olabilir.
Harici MQTT broker için farklı kimlik doğrulama kimlik bilgileri desteklenir:
Anonim – Kimlik doğrulama yok
Temel – Kimlik doğrulamada kullanılan kullanıcı adı/parola çifti
PEM – Kimlik doğrulamada PEM sertifikaları kullanılır
PEM kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
CA sertifikası dosyası
Sertifika dosyası
Özel anahtar dosyası
Özel anahtar parolası
Yayınlanan Gövde – Düğüm, tam Mesaj yükünü MQTT konusuna gönderir. Gerekirse, doğru Yükü MQTT brokerine göndermek için Dönüşüm Düğümlerinin zincirini kullanmak için kural zinciri yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, orijinal Mesaj, Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Hata zinciri kullanılır.
Azure IoT Hub Düğümü #
Şekil 5.1 – Azure IoT Hub düğümü
Yapılandırma:
Şekil 5.2 – Azure IoT Hub düğümü yapılandırmaları
Topic – IoT Hub konuları hakkında daha fazla bilgi için, şu bağlantıyı kullanın.
Hostname – Azure IoT Hub hostname.
Device ID – Azure IoT Hub’daki cihaz kimliğiniz.
Credentials – Azure IoT Hub bağlantı kimlik bilgileri. Paylaşılan Erişim İmzası veya PEM olabilir.
Azure IoT Hub için farklı kimlik doğrulama kimlik bilgileri desteklenir:
Paylaşılan Erişim İmzası – Kimlik doğrulamada SAS anahtarı kullanılır.
PEM – Kimlik doğrulamada PEM sertifikaları kullanılır.
Paylaşılan Erişim İmzası kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
SAS Key – Azure IoT Hub’daki cihazınızdan bir anahtar.
CA sertifikası dosyası, varsayılan olarak Baltimore sertifikası kullanılır. Sertifikalar hakkında daha fazla bilgi burada bulunabilir.
PEM kimlik bilgisi türü seçildiğinde, aşağıdaki yapılandırma sağlanmalıdır:
CA sertifikası dosyası, varsayılan olarak Baltimore sertifikası kullanılır. Sertifikalar hakkında daha fazla bilgi burada bulunabilir.
Sertifika dosyası
Özel anahtar dosyası
Özel anahtar şifresi.
Yayınlanan içerik – Düğüm, tam Mesaj verisini Azure IoT Hub cihazına gönderir. Gerektiğinde, kural zinciri, doğru Payload’ın Azure IoT Hub’a gönderilmesi için bir Dönüşüm Düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, orijinal Mesaj, başarı zinciri aracılığıyla sonraki düğümlere iletilir; aksi takdirde, hata zinciri kullanılır.
RabbitMQ Düğümü #
Şekil 6.1 – RabbitMQ düğümü
Gelen mesajın içeriğini RabbitMQ’ya yayınla.
Yapılandırma:
Şekil 6.2 – RabbitMQ düğümü yapılandırmaları
Exchange isim deseni – mesajın gönderileceği exchange. Statik bir dize veya Mesaj Meta verileri özelliklerini kullanarak çözülen bir desen olabilir. Örneğin, ${deviceType}.
Routing anahtar deseni – yönlendirme anahtarı. Statik bir dize veya Mesaj Meta verileri özelliklerini kullanarak çözülen bir desen olabilir. Örneğin, ${deviceType}.
Mesaj özellikleri – isteğe bağlı yönlendirme başlıkları. Desteklenen başlıklar arasında BASIC, TEXT_PLAIN, MINIMAL_BASIC, MINIMAL_PERSISTENT_BASIC, PERSISTENT_BASIC ve PERSISTENT_TEXT_PLAIN bulunur.
Host – bağlantılar için kullanılacak varsayılan ana bilgisayar.
Port – bağlantılar için kullanılacak varsayılan port.
Sanal ana bilgisayar – broker’a bağlanırken kullanılacak sanal ana bilgisayar.
Kullanıcı adı – broker’a bağlanırken kullanılacak AMQP kullanıcı adı.
Parola – broker’a bağlanırken kullanılacak AMQP parolası.
Otomatik kurtarma – otomatik bağlantı kurtarmayı etkinleştirir veya devre dışı bırakır.
Bağlantı zaman aşımı – bağlantı TCP kurulum zaman aşımı milisaniye cinsinden; sonsuz için sıfır.
El sıkışma zaman aşımı – AMQP 0-9-1 protokolü el sıkışma zaman aşımı, milisaniye cinsinden.
Müşteri özellikleri – bağlantı başlangıcında sunucuya gönderilen ek özellikler.
Yayınlanan gövde – düğüm mesajın tam yükünü RabbitMQ’ya gönderecektir. Gerekirse, kural zinciri, doğru yükü göndermek için Dönüşüm Düğümlerinin bir zincirini kullanacak şekilde yapılandırılabilir.
Başarılı bir mesaj yayınlama durumunda, özgün Mesaj Başarı zinciri aracılığıyla sonraki düğümlere iletilir, aksi takdirde Hata zinciri kullanılır.
REST API Çağrı Düğümü #
Şekil 7.1 – REST API Çağrı düğümü
Harici bir REST sunucusuna REST API çağrıları yapmak.
Yapılandırma:
Şekil 7.2 – REST API Çağrı düğümü yapılandırmaları
Endpoint URL pattern – Statik bir dize veya Mesaj Meta Veri özellikleri kullanılarak çözümlenebilen bir desen olabilir. Örneğin, ${deviceType}.
Request method – GET, POST, PUT, DELETE.
Headers – İstek başlıkları, başlık veya değer, statik bir dize veya Mesaj Meta Veri özellikleri kullanılarak çözümlenebilen bir desen olabilir.
Endpoint URL
URL, statik bir dize veya bir desen olabilir. Desenleri çözümlemek için sadece Mesaj meta verileri kullanılır. Desenlerde kullanılan özellik adları Mesaj meta verilerinde bulunmalıdır, aksi takdirde düz desen URL’ye eklenir.
Örneğin, Mesaj yükü, değeri container olan bir deviceType özelliği içeriyorsa, bu desen:
http://localhost/api/${deviceType}/update
aşağıdaki gibi çözümlenecektir:
http://localhost/api/container/update
Headers
Başlık adı ve değerlerinin bir koleksiyonu yapılandırılabilir. Bu başlıklar REST isteğine eklenir. Konfigüre etmek için desen kullanılabilir, örneğin ${deviceType}. Sadece mesaj meta verileri, desenleri çözmek için kullanılır. Bu nedenle, desenlerde kullanılan özellik adları, mesaj meta verilerinde mevcut olmalıdır. Aksi takdirde, düz desen başlığa eklenecektir.
Düğüm, yapılandırılmış REST uç noktasına tam Mesaj yükünü istek gövdesi olarak gönderecektir. Gerektiğinde, kural zinciri, doğru yük göndermek için dönüşüm düğümleri zinciri kullanacak şekilde yapılandırılabilir.
Bu düğümden giden mesaj, yanıt durumu, durum kodu, durum nedeni ve yanıt başlıklarını mesaj meta verilerinde içerecektir. Giden mesaj yükü, yanıt gövdesiyle aynı olacaktır. Orijinal mesaj tipi ve gönderici değiştirilmeyecektir.
İstek gövdesi olarak tek bir dosya göndermek için, mesaj meta verilerine veritabanında depolanan dosya UUID’si ile “attachments” alanı ekleyin. Bu durumda, herhangi bir mesaj verisi yoksayılır ve sadece dosya içeriği gönderilir. İstek içerik tipini tanımlamak için şu gibi başlık ayarlarını kullanın:
Content-Type: application/json; charset=UTF-8
Tek bir dosya göndermek için mesaj meta verilerine örnek:
Not: Bu özellik Fast IoT Platform Professional Edition tarafından desteklenen Dosya Depolama özelliğinin bir parçasıdır.
Başarılı bir istek durumunda, çıkış mesajı Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Hata zinciri kullanılır.
E-posta Gönderme Düğümü #
Şekil 8.1 – E-posta gönderme düğümü
Bu düğüm, yapılandırılmış e-posta sunucusunu kullanarak gelen iletileri gönderir. Bu düğüm, yalnızca To Email dönüştürme düğümü kullanılarak oluşturulan iletilerle çalışır. Lütfen bu düğümü To Email düğümü ile Başarı zinciri kullanarak bağlayın.
Yapılandırma:
Şekil 8.2 – E-posta gönderme düğümü yapılandırmaları
Bu düğüm, yapılandırılmış posta sunucusunu kullanarak gelen bir mesajı gönderir. Etkinleştirilmişse, sistem düzeyinde yapılandırılan varsayılan posta sunucusu kullanılacaktır. SMTP protokolü ve sunucu ana bilgisayarı ve bağlantı noktası belirtilebilir, ayrıca okuma zaman aşımı da belirtilebilir. Sunucu tarafından destekleniyorsa, TLS etkinleştirilirse STARTTLS komutu kullanılacaktır. Posta sunucusu için kullanıcı adı ve şifre gerekiyorsa, bunlar da belirtilebilir.
Bu düğüm, sistem düzeyinde yapılandırılan varsayılan posta sunucusuyla çalışabilir. Varsayılan sistem SMTP ayarlarının nasıl yapılandırılacağı hakkında daha fazla bilgi için lütfen belgelerimize başvurun. Bu düğüm için belirli bir posta sunucusu gerekiyorsa, “Sistem SMTP ayarlarını kullan” onay kutusunu devre dışı bırakın ve posta sunucusunu manuel olarak yapılandırın.
Ayrıca, bu düğüm, gelen mesajın veritabanında depolanan dosyalara referans içeren bir “hazırlanmış eklentiler” metadata alanına sahip olması durumunda e-posta ekleri oluşturabilir. Birden çok ek desteklenir ve birden çok dosya göndermek için virgülle ayrılmış UUID’ler kullanılabilir. İşte bir mesaj metadata örneği:
E-posta başarılı bir şekilde gönderildiğinde, özgün mesaj Başarı zinciri üzerinden bir sonraki düğüme aktarılacaktır. Aksi takdirde, Hata zinciri kullanılacaktır.
Bu düğümün nasıl kullanıldığına dair gerçek hayat örneğini şu öğreticide görebilirsiniz:
SMS Gönderme Düğümü #
Bu düğüm, gelen mesajdaki meta veri alanlarından SMS mesajı oluşturabilir ve bunu AWS SNS veya Twilio SMS sağlayıcıları kullanarak gönderebilir. Bu kural düğümü için hata ayıklama modunu etkinleştirmenizi öneririz.
Yapılandırma:
Şekil 9.1 – SMS gönderme düğümü
Etkinleştirildiğinde, düğüm sistem düzeyinde yapılandırılmış varsayılan SMS sağlayıcısını kullanır. Daha fazla ayrıntı için SMS sağlayıcı ayarlarına bakınız. ‘Alıcı Telefon Numaraları’ alanı birden çok telefon numarasının belirtilmesine izin verir ve SMS mesaj şablonu da yapılandırılabilir. Bu alanlarda da mesaj metadata alanlarına başvurulabilir.
Bu düğüm sistem düzeyinde yapılandırılmış varsayılan SMS sağlayıcısıyla çalışabilir. Eğer SMS mesajı tüm alıcılara başarıyla gönderilirse, orijinal mesaj Başarı zinciri üzerinden bir sonraki düğüme geçirilecek, aksi takdirde Hata zinciri kullanılacaktır.
Eylem Düğümleri #
Eylem Düğümleri, gelen mesajlara bağlı olarak çeşitli eylemler gerçekleştirir.
Matematik İşlev Düğümü #
Kural düğümü matematiksel işlevleri uygular ve sonucu mesajda ve/veya veritabanında kaydeder. Desteklenen fonksiyonların listesi aşağıdaki tabloda verilmiştir:
fonksiyon | bağımsız değişken sayısı | tanım | referans |
ADD | 2 | x+y | |
SUB | 2 | x-y | |
MULT | 2 | x*y | |
DIV | 2 | x/y | |
SIN | 1 | Bir açının trigonometrik sinüsünü verir. | |
SINH | 1 | Bir çift değerin hiperbolik sinüsünü döndürür. x’in hiperbolik sinüsü (ex – e-x)/2 olarak tanımlanır, burada e, Euler sayısıdır. | |
COS | 1 | Bir açının trigonometrik kosinüsünü verir. | |
COSH | 1 | Bir çift değerin hiperbolik kosinüsünü döndürür. x’in hiperbolik kosinüsü (ex + e-x)/2 olarak tanımlanır, burada e, Euler sayısıdır. | |
TAN | 1 | Bir açının trigonometrik tanjantını verir. | |
TANH | 1 | Bir çift değerin hiperbolik tanjantını döndürür. | |
ACOS | 1 | Bir değerin ark kosinüsünü döndürür; döndürülen açı 0,0 ila pi aralığındadır. | |
ASIN | 1 | Bir değerin ark sinüsünü döndürür; döndürülen açı -pi/2 ila pi/2 aralığındadır. | |
ATAN | 1 | Bir değerin yay tanjantını döndürür; döndürülen açı -pi/2 ila pi/2 aralığındadır. | |
ATAN2 | 2 | Dikdörtgen koordinatların (x, y) kutupsal koordinatlara (r, teta) dönüştürülmesinden teta açısını döndürür. | |
EXP | 1 | e’nin doğal logaritmaların tabanı olduğu ex değerini döndürür. | |
EXPM1 | 1 | ex-1’i döndürür. x’in 0’a yakın değerleri için expm1(x) + 1’in tam toplamının ex’in gerçek sonucuna exp(x)’ten çok daha yakın olduğuna dikkat edin. | |
SQRT | 1 | Double değerinin doğru yuvarlanmış pozitif karekökünü verir. | |
CBRT | 1 | Bir çift değerin küp kökünü döndürür. | |
GET_EXP | 1 | Bir çiftin gösteriminde kullanılan yansız üssü döndürür. | |
HYPOT | 2 | Ara taşma veya taşma olmadan sqrt(x2 +y2) döndürür. | |
LOG | 1 | Bir çift değerin doğal logaritmasını (e tabanı) verir. | |
LOG10 | 1 | Bir çift değerin 10 tabanındaki logaritmasını döndürür. | |
LOG1P | 1 | Bağımsız değişken ve 1’in toplamının doğal logaritmasını döndürür. Küçük x değerleri için log1p(x)’in sonucunun ln(1 + x)’in gerçek sonucuna log(‘un kayan noktalı değerlendirmesinden çok daha yakın olduğunu unutmayın. 1.0+x). | |
CEIL | 1 | Argümandan büyük veya ona eşit olan ve matematiksel bir tamsayıya eşit olan en küçük (negatif sonsuza en yakın) çift değeri döndürür. | |
FLOOR | 1 | Bağımsız değişkenden küçük veya ona eşit olan ve matematiksel bir tamsayıya eşit olan en büyük (pozitif sonsuza en yakın) çift değeri döndürür. | |
FLOOR_DIV | 2 | Cebirsel bölümden küçük veya ona eşit olan en büyük (pozitif sonsuza en yakın) uzun değeri döndürür. | |
FLOOR_MOD | 2 | Uzun bağımsız değişkenlerin taban modülünü döndürür. | |
ABS | 1 | Double değerinin mutlak değerini döndürür. | |
MIN | 2 | İki çift değerden küçük olanı döndürür. | |
MAX | 2 | İki çift değerden büyük olanı döndürür. | |
POW | 2 | İkinci bağımsız değişkenin üssüne yükseltilen ilk bağımsız değişkenin değerini döndürür. | |
SIGNUM | 1 | Bağımsız değişkenin işaret işlevini döndürür; bağımsız değişken sıfırsa sıfır, bağımsız değişken sıfırdan büyükse 1.0, bağımsız değişken sıfırdan küçükse -1.0. | |
RAD | 1 | Derece cinsinden ölçülen bir açıyı, radyan cinsinden ölçülen yaklaşık olarak eşdeğer bir açıya dönüştürür. | |
DEG | 1 | Radyan cinsinden ölçülen bir açıyı, derece cinsinden ölçülen yaklaşık olarak eşdeğer bir açıya dönüştürür. | |
CUSTOM | 1 | Karmaşık matematik ifadelerini belirtmek için bu işlevi kullanın. Örneğin, (x – 32) / 1.8) kullanarak Fahrenheit’i Celsius’a dönüştürün. |
Bu kural düğümü beş tür argüman destekler:
Sabit
Mesaj gövdesinden değer
Mesaj meta verilerinden değer
Mesaj kaynakçısına (cihaz, varlık, vb.) ait olan özniteliğin değeri. Değer sayısal bir tür olmalı veya ondalıklı sayıya dönüştürülebilir bir dize olmalıdır.
Mesaj kaynakçısına (cihaz, varlık, vb.) ait olan en son zaman serilerinin değeri. Değer sayısal bir tür olmalı veya ondalıklı sayıya dönüştürülebilir bir dize olmalıdır.
Bu kural düğümünün temel kullanım durumu, gelen mesaj verilerine dayanarak bir veya daha fazla değeri veritabanından değiştirmektir. Örneğin, cihaz tarafından bildirilen delta su tüketimine dayanarak toplam su tüketimini artırabilirsiniz.
Alternatif kullanım durumu, basit JS betik düğümlerini daha hafif ve performanslı bir uygulamayla değiştirmektir. Örneğin, CUSTOM işlemi kullanarak Fahrenheit’tan Celsius’a dönüştürebilirsiniz (C = (F – 32) / 1.8), ifadesi: (x – 32) / 1.8).
Çalışma, mesaj kaynakçısı (ör. cihaz) ve sunucu düğümü kapsamında senkronize edilir. Farklı kural zincirlerinde kural düğümleriniz varsa, aynı kaynaktan gelen mesajları sunucu düğümü kapsamında senkron olarak işleyeceklerdir.
Fonksiyonun sonucu, mesaj gövdesine veya meta verilerine eklenebilir. Ayrıca sonucu veritabanında bir öznitelik veya zaman serisi olarak kaydedebilirsiniz.
Alarm Düğümü Oluştur #
Şekil 1.1 – Alarm Oluşturma düğümü
Bu düğüm, mesaj kaynaklı için yapılandırılmış alarm tipi ile en son alarmı yüklemeye çalışır. Eğer temizlenmemiş bir alarm varsa güncellenir; aksi takdirde yeni bir alarm oluşturulur.
Düğüm Yapılandırması:
Alarm Detayları Oluşturma betiği
Alarm Tipi – alarm tipini temsil eden herhangi bir dize
Alarm Şiddeti – {KRİTİK | ÖNEMLİ | KÜÇÜK | UYARI | BELİRSİZ}
Yayılmış mı? – alarmın tüm üst ilişkili varlıklara yayılması gerekip gerekmediği.
Not: Fast IoT Platformu kural düğümü şu özelliklere sahiptir:
Mesajdan alarm yapılandırmasını okuyun
Mesaj meta verilerindeki alanlarla desen kullanarak alarm tipini alın.
Şekil 1.2 – Alarm türü ve şiddeti seçilir.
Alarm yayılımını, ilişki türlerine göre üst varlıklara filtreleyin:
Şekil 1.3 – İlişki türlerine göre filtreleme.
Alarm Detayları Oluşturma betiği, alarm detaylarını içeren bir JsonNode oluşturmak için kullanılır. Alarm içinde ek parametreleri depolamak için faydalıdır. Örneğin, orijinal mesaj yükünden veya meta verilerden nitelik adı/değer çiftlerini kaydedebilirsiniz.
Alarm Detayları Oluşturma betiği, detay nesnesini döndürmelidir.
Şekil 1.4 – Alarm detayları oluşturucu.
Mesaj yükü, örneğin msg.temperature kullanılarak erişilebilir.
Mesaj meta verileri metadata özelliği kullanılarak erişilebilir, örneğin metadata.customerName.
Mesaj türü, örneğin msgType kullanılarak erişilebilir.
İsteğe bağlı olarak, önceki Alarm Detayları metadata.prevAlarmDetails özelliği kullanılarak erişilebilir. Önceki alarm yoksa, bu alan Metadata’da mevcut olmayacaktır. metadata.prevAlarmDetails, ham bir dize alanıdır ve nesneye dönüştürmek için aşağıdaki yapının kullanılması gerektiğine dikkat edin:
Alarm Detayları Oluşturma betiği fonksiyonu, Test JavaScript fonksiyonu kullanılarak doğrulanabilir.
Örnek Detay Oluşturma Fonksiyonu:
Bu fonksiyon, önceki alarmdan ‘count’ özelliğini alır ve artırır. Ayrıca gelen mesaj yükünden ‘temperature’ özniteliğini Alarm detaylarına yerleştirir.
Alarm şu özelliklerle oluşturulacak veya güncellenecek:
Alarm ayrıntıları: Alarm Ayrıntıları Oluşturma komut dosyasından dönen bir nesne.
Alarm durumu: yeni bir alarm oluşturulursa durum ACTIVE_UNACK olacaktır. Mevcut bir alarm güncellenirse durum değişmeyecektir.
Ciddiyet: Node Yapılandırmasından bir değer.
Yayılım: Node Yapılandırmasından bir değer.
Alarm tipi: Node Yapılandırmasından bir değer.
Alarm başlangıç zamanı: yeni bir alarm oluşturulursa başlangıç zamanı mevcut sistem zamanı olacaktır. Mevcut bir alarm güncellenirse başlangıç zamanı değişmeyecektir.
Alarm bitiş zamanı: mevcut sistem zamanı.
Çıkış mesajı şu yapıya sahip olacaktır:
Mesaj Türü: ALARM
Originator: gelen mesajdaki kaynak ile aynı
Payload: yeni oluşturulan / güncellenen alarmın JSON temsili
Metadata: orijinal Mesaj Meta Veri alanındaki tüm alanlar
Yeni bir alarm oluşturulduktan sonra, Çıkış mesajı Meta Veri alanının içinde isNewAlarm adında ek bir özellik içerecektir ve değeri true olacaktır. Mesaj, Oluşturulan zinciri aracılığıyla iletilir.
Mevcut bir alarm güncellendikten sonra, Çıkış mesajı Meta Veri alanının içinde isExistingAlarm adında ek bir özellik içerecektir ve değeri true olacaktır. Mesaj, Güncellenen zinciri aracılığıyla iletilir.
İşte bir çıkış mesajı yükü örneği:
Bu düğümün gerçek hayatta nasıl kullanıldığını görebileceğiniz bir örnek, aşağıdaki eğitimde bulunabilir:
Alarm Düğümünü Temizle #
Şekil 2.1 – Alarm temizleme düğümü
Bu düğüm, mesaj kaynağı için yapılandırılmış Alarm Türü’ne sahip en son Alarm’ı yükler ve varsa Alarm’ı temizler.
Düğüm yapılandırması:
Alarm Detayları Oluşturucu betiği
Alarm Türü: Alarm Türünü temsil eden herhangi bir dize.
Not: Kural düğümü mesaj metadata alanlarından bir desen kullanarak alarm türünü alabilme yeteneğine sahiptir.
Şekil 2.2 – Alarm türü.
Alarm Detayları Oluşturma betiği, Alarm Detayları JsonNode’unu güncellemek için kullanılır. Bu, alarm içinde ek parametreler depolamak için faydalıdır. Örneğin, orijinal mesaj yükü veya metadata’dan öznitelik adı/değer çiftlerini kaydedebilirsiniz.
Alarm Detayları Oluşturma betiği, detay nesnesini döndürmelidir.
Şekil 2.3 – Alarm detayları oluşturucu.
Mesaj yükü msg özelliği aracılığıyla erişilebilir, örneğin msg.temperature.
Mesaj meta verileri metadata özelliği aracılığıyla erişilebilir, örneğin metadata.customerName.
Mesaj türü msgType özelliği aracılığıyla erişilebilir, örneğin msgType.
Geçerli Alarm Detayları metadata.prevAlarmDetails aracılığıyla erişilebilir.
metadata.prevAlarmDetails, ham bir dize alanıdır ve aşağıdaki yapının kullanılarak bir nesneye dönüştürülmesi gerektiğine dikkat edin:
“Alarm Details Builder” betiği fonksiyonu, “Test JavaScript” fonksiyonu kullanılarak doğrulanabilir.
Örnek bir Detay Oluşturucu Fonksiyon:
Bu fonksiyon, önceki alarmdaki “count” özelliğini alır ve bir artırır. Ayrıca, gelen mesaj yükündeki “sıcaklık” özniteliğini alarm ayrıntılarına yerleştirir.
Bu düğüm, mevcut alarmı aşağıdaki şekilde günceller:
Alarm durumunu zaten onaylandıysa CLEARED_ACK’e, aksi takdirde CLEARED_UNACK’e değiştirir.
Temizleme zamanını mevcut sistem zamanına ayarlar.
Alarm detaylarını, Alarm Detayları Oluşturucu betiğinden dönen yeni nesne ile günceller.
Alarm mevcut değil veya zaten temizlendiğinde, özgün mesaj Yanlış zinciri aracılığıyla bir sonraki düğümlere aktarılır. Aksi takdirde, yeni bir mesaj Temizlendi zinciri aracılığıyla iletilir.
Çıkış mesajı aşağıdaki yapıya sahip olacaktır:
Mesaj Türü: ALARM
Originator: giriş mesajındaki kaynakla aynı
Payload: Temizlenen alarmın JSON temsili
Metadata: özgün mesaj meta verilerindeki tüm alanlar. Ayrıca Meta verileri içindeki ek özellik -> isClearedAlarm ile true değeri de eklenecektir.
İşte bir çıkış mesajı yükünün örneği:
Bu düğümün gerçek hayatta nasıl kullanıldığını görebileceğiniz bir örnek, aşağıdaki eğitimde bulunabilir:
Gecikme Düğümü #
Şekil 3.1 – Gecikme düğümü
Bu düğüm gelen mesajları yapılandırılabilir bir süre için geciktirir.
Yapılandırma:
Şekil 3.2 – Yapılandırma ayarları.
Bu, gelen mesajların belirli bir süre askıya alınabileceği ve aynı anda kuyruğa alınabilecek mesaj sayısının sınırlandığı bir sistemle ilgilidir. Askıya alınmış bir mesaj için belirtilen gecikme süresi dolduğunda, mesaj Başarı zinciri aracılığıyla bir sonraki düğüme yönlendirilecektir. Ancak, bekleyen mesajların maksimum sınırı aşıldığında, bir sonraki mesaj Başarısızlık zinciri aracılığıyla yönlendirilecektir.
Generator Düğümü #
Şekil 4.1 – Generator düğümü.
Bu, JavaScript fonksiyonunu kullanarak yapılandırılabilir bir periyotla mesaj oluşturan bir sisteme işaret etmektedir. Düğüm yapılandırması, saniye cinsinden mesaj oluşturma sıklığını, mesaj kaynakını ve gerçek mesajı oluşturacak JavaScript fonksiyonunu içerir. JavaScript fonksiyonu, önceki oluşturulan mesajın yükünü temsil eden prevMsg, önceki oluşturulan mesajın meta verilerini temsil eden prevMetadata ve önceki oluşturulan mesajın tipini temsil eden prevMsgType olmak üzere üç girdi parametresi alır.
Script aşağıdaki yapıyı döndürmelidir:
Şekil 3.2 – Yapılandırma ayarları.
Sonuç nesnesindeki tüm alanlar isteğe bağlıdır ve açıkça belirtilmediyse önceki oluşturulan mesajdan alınacak değerlerle doldurulacaktır.
Bu düğümden giden mesaj, yapılandırılmış JavaScript fonksiyonunu kullanarak oluşturulan yeni bir mesaj olacaktır.
JavaScript oluşturma fonksiyonu, Test JavaScript fonksiyonunu kullanarak test edilebilir.
Bu düğme, bir kural zincirinde hata ayıklama amaçları için kullanılabilir.
Log Düğümü #
Şekil 4.1 – Log Düğümü
Bu düğüm, yapılandırılmış bir JavaScript fonksiyonu kullanarak gelen mesajları bir dizeye dönüştürür ve son değeri Fast IoT Platform log dosyasına kaydeder.
Kayıt, INFO log seviyesinde yapılır.
JavaScript fonksiyonu, mesaj meta verileri olan metadata, mesaj yükü olan msg ve mesaj tipi olan msgType olmak üzere üç girdi parametresi alır.
Script, bir dize değeri döndürmelidir.
Şekil 4.1 – Script fonksiyonu
JavaScript dönüştürme fonksiyonu, Test JavaScript işlevi kullanılarak test edilebilir.
Bu düğümün nasıl kullanıldığını gösteren gerçek bir örnek için aşağıdaki öğreticideki “RPC Çağrılarına Yanıt Verme” bölümüne bakabilirsiniz.
RPC Çağrı Yanıtlama Düğümü #
Şekil 5.1 – RPC Çağrı Yanıtlama Düğümü
Bu düğüm, bir RPC çağrısının başlatıcısına yanıt gönderir. Gelen tüm RPC istekleri mesajlar olarak Kural Zinciri’nden geçirilir ve her RPC isteğinin bir istek kimliği alanı vardır. Bu alan, istekleri ve yanıtları eşleştirmek için kullanılır. Mesaj başlatıcısı, RPC yanıtı mesaj başlatıcısına yönlendirildiği için bir cihaz varlığı olmalıdır.
Düğüm yapılandırmasında özel bir istek kimliği alanı eşlemesi bulunur. Eşleme belirtilmezse, varsayılan olarak requestId metadata kullanılır.
Şekil 5.2 – Request Id Metadata
RPC istekleri MQTT, HTTP ve CoAP gibi farklı taşıyıcılar aracılığıyla alınabilir. Mesaj yükü örneği şöyledir:
Aşağıdaki durumlarda, iletiler Failure zinciri üzerinden yönlendirilecektir:
Gelen mesajın kaynak cihazı bir Cihaz varlığı değilse
İstek kimliği Mesaj metadata’sında bulunmuyorsa
Gelen mesajın yükü boşsa
Bu düğümün nasıl kullanıldığına dair gerçek hayat örneğini aşağıdaki öğreticide bulabilirsiniz:
RPC Çağrı İsteği Düğümü #
Şekil 6.1 – RPC Çağrı İsteği Düğümü
Bu düğüm, RPC isteklerini cihaza gönderir ve yanıtı bir sonraki kural düğümlerine yönlendirir. Mesaj kaynağı, yalnızca bir cihaza RPC isteği gönderilebildiği için bir cihaz varlığı olmalıdır.
Düğüm yapılandırmasında, cihazdan yanıt beklemek için belirlenen zaman aşımını belirtmek için bir Zaman Aşımı alanı bulunur.
Şekil 6.2 – Zaman aşımı alanı
RPC istekleri için mesaj yükü, yöntem ve parametreler alanlarını içermesi gereken doğru formatta olmalıdır.
Eğer mesaj yükü (payload) requestId alanını içeriyorsa, bu değer cihaza yönelik RPC isteğini tanımlamak için kullanılır. Aksi takdirde, rastgele bir requestId oluşturulur.
Giden mesaj, gelen mesajla aynı kaynak ve metadata’ya sahip olacaktır. Cihazdan gelen yanıt, mesaj yüküne eklenir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilir:
Gelen mesaj kaynağı bir cihaz varlığı değilse.
Gelen mesaj method veya params alanlarını içermiyor ise.
Yapılandırılmış zaman aşımı sırasında yanıt alınamazsa.
Aksi takdirde, mesaj Başarı zinciri üzerinden yönlendirilir.
Nitelikleri Kaydet Düğümü #
Şekil 7.1 – Nitelikleri Kaydet düğümü
Bu düğüm, gelen mesajın yükündeki öznitelikleri veritabanına kaydeder ve öznitelikleri mesaj kaynakçısı tarafından tanımlanan varlıkla ilişkilendirir. Yapılandırılan kapsam, özniteliklerin kapsamını belirlemek için kullanılır.
Desteklenen kapsam türleri şunlardır:
Müşteri öznitelikleri
Paylaşılan öznitelikler
Sunucu öznitelikleri
Şekil 7.2 – Varlık nitelikleri kapsamı
Bu düğüm, POST_ATTRIBUTES_REQUEST mesaj türü ile gelen mesajları bekler. Eğer mesaj türü POST_ATTRIBUTES_REQUEST değilse, mesaj başarısızlık zinciri üzerinden yönlendirilecektir.
Özellikler mevcut API (HTTP / MQTT / CoAP / vb.) üzerinden yüklenmişse, doğru yük verisi ve türüne sahip bir mesaj Kök Kural Zincirinin giriş düğümüne iletilir.
Kural zinciri içinde özelliklerin kaydedilmesini tetiklemek gerektiğinde, kural zinciri mesaj yükünü beklenen formata dönüştürmek ve mesaj türünü POST_ATTRIBUTES_REQUEST olarak ayarlamak üzere yapılandırılmalıdır. Bunun için Script Transformation düğümü kullanılabilir.
Beklenen mesaj yükü örneği şu şekildedir:
Eğer öznitelikler başarıyla kaydedilirse, orijinal mesaj Başarı zinciri üzerinden bir sonraki düğüme geçirilir. Aksi takdirde, Hata zinciri kullanılır.
Zaman Serisi Kaydetme Düğümü #
Şekil 8.1 – Zaman serisi kaydetme düğümü
Bu düğüm, gelen mesajın zaman serisi verilerini veritabanına kaydeder ve bunları mesaj kaynağı tarafından belirlenen varlıkla ilişkilendirir. Yapılandırılan TTL değeri, zaman serisi verilerinin geçerlilik süresini belirler. 0 değeri, verilerin süresinin asla dolmayacağı anlamına gelir.
Şekil 8.2 – Varsayılan TTL süresi
Ayrıca, ‘Skip latest persistence‘ bayrağı true olarak ayarlandığında, gelen anahtarlar için en son zaman serisi verilerinin (‘ts_kv_latest’ tablosu) değerlerinin güncellenmesini devre dışı bırakabilirsiniz. Bu özellik yüksek yüklü kullanım durumlarında veritabanındaki baskıyı azaltmak için faydalı olabilir. Ancak, lütfen bu özelliğin sadece panolarda gelişmiş filtreleme gerektirmeyen kullanım durumlarında etkinleştirilmesi gerektiğini unutmayın. En son değeri almak için, tarihsel veriler 1 adet limit ile DESC sıralamasıyla alınabilir.
Şekil 8.3 – Güncellemeleri devre dışı bırak.
Bu düğüm, POST_TELEMETRY_REQUEST mesaj türüyle gelen mesajları bekler. Mesaj türü POST_TELEMETRY_REQUEST değilse, mesaj Failure zinciri üzerinden yönlendirilir.
Zaman serisi verileri mevcut bir API (HTTP / MQTT / CoAP / vb.) üzerinden yayınlandığında, doğru payload ve türdeki bir mesaj, Kök Kural Zincirinin Giriş düğümüne iletilir.
Zaman serisi verileri kaydetmenin kural zinciri içinde tetiklenmesi gerektiği durumlarda, kural zinciri mesaj yükünü beklenen formata dönüştürmek ve mesaj türünü POST_TELEMETRY_REQUEST olarak ayarlamak için yapılandırılmalıdır. Bu, Script Transformation düğümü kullanılarak yapılabilir.
Mesaj Meta verileri, ts alanını içermelidir. Bu alan, yayınlanan telemetrinin milisaniye cinsinden zaman damgasını belirler.
Ayrıca, mesaj Meta verileri TTL alanını içeriyorsa, değeri zaman serisi verilerinin süresini belirlemek için kullanılır. Aksi takdirde, düğüm yapılandırmasındaki TTL kullanılır.
Çoklu kaynaklardan (cihazlar, varlıklar vb.) gelen mesajları birleştirirken, mesaj işleme zaman damgası yerine mesaj zaman damgasını kullanmak için ‘useServerTs’ parametresini etkinleştirebilirsiniz.
Sıralı işleme durumlarında, platform mesajların kuyruğa gönderilme sıralarına göre işlendiğini garanti eder. Ancak, birden fazla cihaz/sunucu tarafından kaynaklanan mesajların zaman damgaları kuyruğa gönderilmeden önce senkronize olmayabilir. DB katmanı, yeni kaydın önceki kayıttan daha eski bir zaman damgası taşıması durumunda “nitelikler” ve “en son değerler” tablolarının güncellemelerini yoksaymak için belirli optimizasyonlara sahiptir.
Tüm mesajların doğru şekilde işlenmesini sağlamak için, bu parametreyi sıralı mesaj işleme senaryoları için etkinleştirmelisiniz.
Beklenen mesaj yükü örneği şöyledir:
Eğer zaman serisi verilerinin kaydedilmesi başarılı olursa, orijinal mesaj Başarı zinciri aracılığıyla bir sonraki düğümlere iletilir. Aksi takdirde, Başarısızlık zinciri kullanılır.
Özel Tabloya Kaydet #
Şekil 9.1 – Özel Tabloya Kaydetme düğümü
Bu düğüm, gelen mesaj yükünden gelen verileri önceden belirlenmiş özel bir Cassandra veritabanı tablosuna kaydeder. Bu tablonun öntakısının ‘cs_tb_’ olması gerektiğinden, veri ekleme işlemi sırasında ortak TB tablolarına veri eklenmesi önlenir.
Lütfen bu kural düğümünün yalnızca Cassandra DB için kullanılabileceğini unutmayın.
Yapılandırma:
Yönetici, özel tablo adını öntakısız olarak belirlemelidir: cs_tb_.
Şekil 9.2 – Özel tablo adı
Yönetici, mesaj alan adları ile tablo sütun adları arasındaki eşleştirmeyi yapılandırabilir. Eşleştirme anahtarı $entityId ise, bu mesajın kaynağı tarafından tanımlanır ve uygun sütun adına (eşleştirme değeri) mesaj kaynağı kimliği yazılır.
Şekil 9.3 – Yönetici, mesaj alan adları ile tablo sütun adları arasındaki eşleştirmeyi yapılandırabilir.
Eğer belirtilen mesaj alanı mesaj verilerinde bulunmuyorsa veya JSON ilkel bir veri tipi değilse, çıkış mesajı Failure zinciri üzerinden yönlendirilir. Aksi takdirde, mesaj Success zinciri üzerinden yönlendirilir.
Not: Lütfen yapılandırmada metadata anahtarlarını kullanmadığınızdan emin olun, yalnızca veri anahtarları desteklenir.
Müşteriye Atama Düğümü #
Şekil 10.1 – Müşteriye atama düğümü
Mesaj kaynak varlığını bir müşteriye atayın.
İzin verilen Mesaj Kaynak türleri şunlardır: Varlık, Cihaz, Varlık Görünümü ve Gösterge Paneli.
Düzenli müşteri adı kalıbına göre hedef müşteriyi bulur ve bu müşteriye kaynak varlığı atar.
Müşteri mevcut değilse ve ‘Mevcut değilse yeni müşteri oluştur‘ ayarı etkinleştirilmişse yeni bir müşteri oluşturulur.
Yapılandırma:
Şekil 10.2 – Müşteri yapılandırmaları.
“Müşteri adı kalıbı” doğrudan müşteri adı veya mesaj metadata kullanarak gerçek müşteri adına çözülebilen bir kalıp olabilir.
“Eğer mevcut değilse yeni müşteri oluştur” seçeneği işaretlenirse, müşteri mevcut değilse yeni bir müşteri oluşturulur.
“Müşteriler önbellek süresi”, bulunan müşteri kayıtlarının depolanmasına izin verilen maksimum süreyi saniye cinsinden belirtir. 0 değeri, kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilir:
Kaynak varlık tipi desteklenmiyorsa.
Hedef müşteri mevcut değilse ve “Eğer mevcut değilse yeni müşteri oluştur” seçeneği işaretlenmemişse.
Diğer durumlarda mesaj Başarı zinciri üzerinden yönlendirilecektir.
Müşteriden Atamayı Kaldırma Düğümü #
Şekil 11.1 – Müşteriden atamayı kaldırma düğümü
Aşağıdaki Mesaj Kaynak Varlığı tipleri desteklenir: Varlık (Asset), Cihaz (Device), Varlık Görünümü (Entity View), Gösterge Paneli (Dashboard).
Müşteriyi müşteri adı kalıbına göre bulur ve kaynak varlığın bu müşteriden atanmasını kaldırır.
Yapılandırma:
Şekil 11.2 – Müşteri yapılandırmaları.
“Müşteri adı deseni”, doğrudan müşteri adı veya mesaj metadata kullanarak gerçek müşteri adına çözülebilecek bir desen olarak ayarlanabilir.
“Müşterilerin önbellek süresi”, bulunan müşteri kayıtlarını depolamak için izin verilen maksimum zaman aralığını saniye cinsinden belirtir. Değer 0, kayıtların asla süresinin dolmayacağı anlamına gelir.
Aşağıdaki durumlarda mesaj Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef müşteri mevcut değilse.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilecektir.
İlişki Oluşturma Düğümü #
Şekil 12.1 – İlişki oluşturma düğümü
Bu düğüm, mesajın kaynağına göre seçilen varlıktan, belirli bir yönde ve tipte bir ilişki oluşturur.
Aşağıdaki Mesaj Kaynağı türleri izin verilir: Asset, Device, Entity View, Customer, Tenant ve Dashboard.
Düğüm, metadata anahtar kalıplarıyla hedef varlığı bulur ve sonra kaynak varlık ile hedef varlık arasında bir ilişki oluşturur.
Seçilen varlık türü Asset, Device veya Customer ise, kural düğümü yeni bir varlık oluşturur ve “Yeni Varlık Oluştur” onay kutusu işaretlenmişse varlık yoksa.
Not: Seçilen varlık türü Asset veya Device ise, iki desen ayarlamanız gerekir: varlık adı kalıbı ve varlık türü kalıbı. Aksi takdirde, yalnızca ad kalıbı ayarlanmalıdır.
Yapılandırma:
Şekil 12.2 – Varlık yapılandırmaları.
“Direction” iki tipe izin verir: “From” ve “To”.
“Relation type“, mesaj kaynağı varlığına yönlendirilmiş bağlantıların türünü belirler. Varsayılan tipler “Contains” ve “Manages” listeden seçilebilir.
“Name pattern” ve “Type pattern”, doğrudan bir varlık adı/tipi veya mesaj meta verileri kullanılarak çözülecek bir kalıp olabilir.
“Entities cache expiration time“, bulunan hedef varlık kayıtlarını saklamak için izin verilen maksimum zaman aralığını saniye cinsinden belirtir. 0 değeri kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj şu durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef varlık mevcut değilse.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilir.
Not: Kural düğümü şunları yapabilir:
Yön ve tür temelinde gelen mesajın kaynağındaki mevcut ilişkileri kaldırın.
Şekil 12.3 – Mevcut ilişkileri kaldır.
Gelen mesajın kaynağını seçilen varlık olarak değiştirin ve çıkış mesajlarını başka bir varlık olarak işleyin.
Şekil 12.4 – Originator’ü ilgili varlık olarak değiştir
İlişki Silme Düğümü #
Şekil 13.1 – İlişki silme düğümü
Bu düğüm, seçilen varlıktan mesajın kaynağına doğru olan ilişkiyi türüne ve yönüne göre siler.
İzleyici kaynağı türleri şunları içerir: Varlık, Aygıt, Varlık Görünümü, Müşteri, Tenant ve Kontrol Paneli.
Düğüm, hedef varlığı varlık adı kalıbına göre bulur ve kaynak varlık ile bu varlık arasındaki ilişkiyi siler.
Yapılandırma:
Şekil 13.2 – İlişki yapılandırmaları.
“Direction” iki tür kabul eder: “From” ve “To”.
“Relation type”, mesaj kaynak varlık ile yönlendirilmiş bağlantı türünü belirler. Varsayılan türler “Contains” ve “Manages” açılır menü listesinden seçilebilir.
“Name pattern“, doğrudan bir varlık adı veya mesaj meta verilerini kullanarak gerçek varlık adına çözülebilecek bir desen olarak ayarlanabilir.
“Entities cache expiration time“, bulunan hedef varlık kayıtlarını saklamak için izin verilen maksimum süreyi saniye cinsinden belirler. 0 değeri, kayıtların asla süresinin dolmayacağı anlamına gelir.
Mesaj, aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Kaynak varlık türü desteklenmiyorsa.
Hedef varlık yoksa.
Diğer durumlarda, mesaj Başarı zinciri üzerinden yönlendirilecektir.
Not: Kural düğümü, aşağıdaki onay kutusunu devre dışı bırakarak, yönlendirme ve tipe bağlı olarak gelen mesajın kaynağından belirtilen varlığa veya varlık listesine yönelik ilişkiyi silme yeteneğine sahiptir: “Yalnızca belirtilen varlıklarla ilişkiyi silin.”
Şekil 13.3 – Yalnızca belirtilen varlıklarla olan ilişki silinir.
GPS Geofencing Etkinlikleri Düğümü #
Şekil 14.1 – GPS Geofencing etkinlikleri düğümü
Bu düğüm, GPS tabanlı parametrelere göre gelen mesajları üretir. Gelen mesaj verilerinden veya meta verilerinden enlem ve boylamı çıkarır ve coğrafi çitlerle ilgili yapılandırma parametrelerine göre farklı olaylar döndürür.
Şekil 14.2 – Enlem ve boylam parametreleri alınır.
Varsayılan olarak, kural düğümü mesaj meta verilerinden çevre bilgilerini alır. Ancak, “Mesaj meta verilerinden çevre bilgilerini al” seçeneği işaretli değilse, ek bilgiler yapılandırılmalıdır.
Mesaj meta verilerinden çevre bilgilerini al
Çevre tipi, bir alanın tanımlanması için mevcut iki seçeneği belirler: Çokgen ve Daire.
Gelen mesajın meta verileri, ‘çevre’ adlı bir anahtar içermeli ve aşağıdaki veri yapısını içermelidir:
Çokgen
[[latitude1,longitude1],[latitude2,longitude2], … ,[latitudeN,longitudeN]] |
Daire
{“latitude”:“value1”,“longitude”:“value2”,“radius”:“value3”,“radiusUnit”:“KILOMETER”} |
“latitude” ve “longitude” anahtarları bir noktanın koordinatlarını temsil eder.
“radius” anahtarı, koordinat noktasından daireye olan mesafeyi belirtir.
Bu anahtarlar için tüm değerler, çift hassasiyetli kayan nokta veri tipinde olmalıdır.
“radiusUnit” anahtarı, METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE gibi belirli bir listeden seçilmiş bir değer içermelidir (büyük harfler zorunludur).
Düğüm yapılandırmasından çevre bilgilerini al
Çevre tipine bağlı olarak bir alanın tanımlanması için iki seçenek vardır:
Çokgen
Şekil 14.3 – Çevre türünün çokgen(polygon) olduğu yapılandırma.
Daire
Şekil 14.4 – Çevre türünün daire(circle) olduğu yapılandırma.
Olay Türleri:
Geofencing kural düğümü, dört tür olayı yönetir:
Giriş – Gelen mesajdaki enlem ve boylam ilk kez gereken çevre alanına ait olduğunda bildirilir.
Çıkış – Gelen mesajdaki enlem ve boylam artık ilk kez gereken çevre alanına ait değilse bildirilir.
İçeride ve Dışarıda olayları, mevcut durumu bildirmek için kullanılır.
Yönetici, içeride veya dışarıda olayları bildirme süresi eşiğini yapılandırabilir. Örneğin, minimum içeride kalma süresi 1 dakika olarak ayarlandığında, mesaj kaynağı, alana girdikten 60 saniye sonra çevre içinde kabul edilir. Minimum dışarıda kalma süresi, mesaj kaynağının çevrenin dışında kabul edilme zamanını belirler.
Şekil 14.5 – Olayları bildirme süresi eşiği yapılandırması.
Başarısızlık zinciri, aşağıdaki durumlarda tetiklenecektir:
Gelen mesaj, veri veya meta verilerinde ne bir enlem ne de boylam anahtarı içermediğinde.
Çevre tanımı eksik olduğunda.
Buluta Aktarma Düğümü #
Şekil 15.1 – Buluta aktarma düğümü
Bu düğüm, mesajları edge’den cloud’a göndermek için tasarlanmıştır. Bu amaçla sadece edge üzerinde kullanılabilir. Bu düğüm tarafından bir mesaj alındığında, cloud olayına dönüştürülür ve yerel veritabanına kaydedilir. Düğüm mesajları doğrudan cloud’a göndermez, ancak olay(lar)ı cloud kuyruğunda depolar. Aşağıdaki kaynak türleri desteklenir:
DEVICE
ASSET
ENTITY_VIEW
DASHBOARD
TENANT
CUSTOMER
EDGE
Ek olarak, düğüm tarafından aşağıdaki mesaj türleri desteklenir:
POST_TELEMETRY_REQUEST
POST_ATTRIBUTES_REQUEST
ATTRIBUTES_UPDATED
ATTRIBUTES_DELETED
ALARM
Eğer edge olayı veritabanına başarılı bir şekilde kaydedilirse, mesaj Başarı yönlendirme yoluyla yönlendirilir.
Şekil 15.2 – Kural düğümü ekleme.
Mesaj aşağıdaki durumlarda Başarısızlık zincirine yönlendirilecektir:
Düğüm, edge olayını veritabanına kaydetmekte başarısız olursa,
Desteklenmeyen kaynak türü alınırsa,
Desteklenmeyen mesaj türü alınırsa.
Kenara itin (Edge’e Gönderin) #
Şekil 16.1 – Edge’e gönderme düğümü
Bu düğüm, buluttan kenara mesaj göndermek için bulut örneklerinde kullanılır. Mesaj kaynağı, belirli bir kenara atanmış olmalıdır veya mesaj kaynağı EDGE varlığı kendisidir. Bu düğüm, bir mesaj aldığında, bunu kenar olayına dönüştürür ve veritabanına kaydeder. Düğüm, mesajları doğrudan kenara göndermez, ancak olay(ları) kenar(edge) kuyruğunda depolar. Aşağıdaki kaynak türleri desteklenir:
DEVICE
ASSET
ENTITY_VIEW
DASHBOARD
TENANT
CUSTOMER
EDGE
Ek olarak, düğüm tarafından desteklenen şu mesaj türleri vardır:
POST_TELEMETRY_REQUEST
POST_ATTRIBUTES_REQUEST
ATTRIBUTES_UPDATED
ATTRIBUTES_DELETED
ALARM
Edge olayı başarıyla veritabanına kaydedildiyse, mesaj Başarı yönlendirmesi aracılığıyla yönlendirilir.
Şekil 16.2 – Kural düğümü ekleme.
Mesaj aşağıdaki durumlarda Başarısızlık zinciri üzerinden yönlendirilecektir:
Düğüm, kenar olayını veritabanına kaydedemedi.
Desteklenmeyen kaynak türü alındı.
Desteklenmeyen mesaj türü alındı.
Tenantlar #
Fast IoT Platform, kutudan çıkan bir Multitenancy desteği sunar. Böylece, cihazları sahibi veya üreten bireysel veya kurumsal bir varlık olarak ele alabileceğiniz Fast IoT Platform Tenant’ını ayrı bir işletme varlığı olarak ele alabilirsiniz.
Sistem yöneticisi, tenant varlıklarını oluşturma yeteneğine sahiptir.
Şekil 1 – Tenantlar sayfası.
Sistem yöneticisi, her Tenant için “Tenant Yöneticisi” rolüne sahip çoklu kullanıcılar oluşturabilir ve bunu Tenant ayrıntılarındaki “Tenant Yöneticilerini Yönet” düğmesine tıklayarak yapabilir.
Şekil 2 – Tenant detayları sayfası.
Tenant Yöneticisi şu işlemleri gerçekleştirebilir:
Cihazları sağlama ve yönetme.
Varlıkları sağlama ve yönetme.
Müşterileri oluşturma ve yönetme.
Gösterge panolarını oluşturma ve yönetme.
Kural motorunu yapılandırma.
Varsayılan widget’ları Widget Kütüphanesi kullanarak ekleme veya değiştirme.
Yukarıda listelenen tüm işlemler REST API aracılığıyla kullanılabilir.
Tenant Ekleme #
Yeni bir kiracı eklemek için lütfen şu talimatları izleyin:
Sol taraftaki menüden Tenantlarlar’ı seçin. Ardından yeni bir Tenant eklemek için artı simgesine tıklayın.
Şekil 3.1 – Yeni bir Tenant eklemek için artı simgesine tıklayın.
Pencere açıldığında, tüm kiracı bilgilerini düzenleyebilirsiniz. Başlık ve tenant profil alanlarını doldurmanız önemlidir. Ayrıca, tenantın ülkesi, şehri, adresi, telefon numarası ve e-posta adresini isteğe bağlı olarak ekleyebilirsiniz.
Şekil 3.2 – Tenant ekleme sayfası
Sistem yöneticisi olarak, kiracı ayrıntıları sayfasına erişiminiz bulunmaktadır. Burada özellikleri, son telemetriyi görüntüleyebilir, ana paneli atayabilir ve tenant kimliğini kopyalayabilirsiniz
Şekil 3.3 – Tenant yönetimi
Tenant Yöneticisi Ekleme #
Sistem yöneticisi, her kiracı içinde Kiracı yöneticisi rolüne sahip birden çok kullanıcı oluşturma yeteneğine sahiptir.
Bir Tenant yöneticisi eklemek için lütfen aşağıdaki talimatları izleyin:
Oluşturduğunuz kiracıya tıklayın.
“Tenant yöneticilerini yönet” seçeneğine tıklayın.
Yeni bir kullanıcı eklemek için artı simgesine tıklayın.
Şekil 4 – Tenant yöneticisi ekleme
Yeni bir kullanıcı oluşturduktan sonra, sistem yöneticisi kullanıcının ayrıntılarını düzenleyebilir ve aşağıdaki işlem sekmelerini kullanabilir:
Kullanıcı hesabını devre dışı bırakmak için “Kullanıcı Hesabını Devre Dışı Bırak” seçeneğini kullanabilir.
Kiracı yöneticisi kullanıcısı için etkinleştirme bağlantısını göstermek için “Etkinleştirme Bağlantısını Göster” seçeneğini kullanabilir.
Kullanıcının e-posta kutusuna hesap etkinleştirme e-postasını yeniden göndermek için “Etkinleştirmeyi Yeniden Gönder” seçeneğini kullanabilir.
Kiracı yöneticisi olarak giriş yapmak için “Kiracı Yöneticisi Olarak Giriş Yap” seçeneğini kullanabilir ve FAST IoT Platformuna Kiracı yöneticisi arayüzünden erişebilir.
Sistem yöneticisi, kullanıcı ayrıntıları sayfasından ve kiracı yöneticileri listesinden kullanıcıları silme yeteneğine de sahiptir.
Tenant Yöneticisi olarak oturum açın #
Gerektiğinde, kullanıcının bakış açısından kullanıcı arayüzünü görüntülemek için Tenant yöneticisi olarak giriş yapabilirsiniz.
Şekil 5 – Tenant yöneticisi olarak oturum açın.
Tenant Yöneticisi aşağıdaki görevleri gerçekleştirmek için yetkilidir:
Cihazları tedarik etmek ve yönetmek.
Varlıkları tedarik etmek ve yönetmek.
Müşterileri oluşturmak ve yönetmek.
Gösterge panolarını oluşturmak ve yönetmek.
Kural motorunu yapılandırmak.
Varsayılan widget’ları Widget Kütüphanesi’ni kullanarak eklemek veya değiştirmek.
Yukarıda bahsedilen tüm işlemler REST API kullanılarak gerçekleştirilebilir.
Bir Tenantı Silme #
Ayrıca, Tenant ayrıntıları penceresinde Tenantı silme seçeneği bulunmaktadır.
Şekil 6 – Tenantı silme
Bunun yerine, gereken Kiracıyı tüm kullanıcılarıyla birlikte doğrudan Kiracılar listesinden silebilirsiniz.
Ayrıca, gibi çöp kutusu simgesine tıklayarak Tenantı tüm kullanıcılarıyla birlikte kolayca silebilirsiniz.
Tenant Profilleri #
Genel Bakış #
Sistem Yöneticisi Tenant Profillerini kullanarak birden fazla Tenant için ortak ayarları yapılandırabilir. Her Tenantın yalnızca tek bir profil kaydı vardır.
Tenant profilinde mevcut olan ayarları tek tek inceleyelim.
Varlık Sınırları #
Bu ayar grubu, Sistem Yöneticisinin her Tenant tarafından oluşturulabilecek maksimum varlık sayısını yapılandırmasına olanak tanır.
Fast IoT Platform’da, sınırlar aşağıdaki varlıklar için belirlenebilir: cihazlar, varlıklar, müşteriler, kullanıcılar, panolar ve kural zincirleri.
Şekil 1 – Tenant profili ayrıntıları.
API Sınırları ve Kullanımı #
Bu grup ayarlar, her bir Tenant’ın ayda gerçekleştirebileceği maksimum mesaj, API çağrısı vb. sayısını bir Sistem Yöneticisinin yapılandırmasına olanak tanır. Fast IoT Platform API kullanımı hakkında istatistikleri sürekli olarak toplar ve analiz eder. İstatistiklerin tipik güncelleme aralığı 1 dakikadır.
Fast IoT Platform, API Kullanımını altı ana bileşen için takip eder: Taşıma, Kural Motoru, JS işlevleri, Telemetri Kalıcılığı, E-posta ve SMS hizmetleri. Platform, ilgili API sınırından birini aştığında bileşeni devre dışı bırakır. Örneğin, bir Tenantnın cihazları ayda 100 milyondan fazla mesaj üretirse, platform bu Tenantya ait tüm bağlantıları devre dışı bırakır. API kullanımı devre dışı bırakıldığında veya belirli bir eşiğe ulaştığında (genellikle %80), Fast IoT Platform Tenant Yöneticisini e-posta yoluyla bilgilendirir.
Her bir sınırlamayı ayrı ayrı inceleyelim:
Taşıma Mesajları, cihazınızın sunucuya gönderdiği herhangi bir mesajı ifade eder. Bu, telemetri, öznitelik güncellemesi, RPC çağrısı vb. olabilir.
Taşıma Veri Noktaları, telemetri veya öznitelik mesajlarınızın içerdiği anahtar-değer çiftlerinin sayısını ifade eder. Örneğin, aşağıdaki mesaj 5 veri noktası içerir, çünkü “jsonKey” bir veri noktasına karşılık gelir.
Eğer bir String veya JSON anahtarı 512 karakterden daha büyük bir değere sahipse, platform bunu birden fazla veri noktası olarak sayar.
Kural Motoru yürütümleri, mevcut Tenantya ait olan kural düğümünün her yürütülmesini ifade eder. Tek bir telemetri mesajı birden fazla Kural Motoru yürütmesini tetikleyebilir ve Jeneratör düğümlerinden gelen periyodik mesajlar da sayılır.
JavaScript yürütümleri, Tenant Yöneticileri tarafından tanımlanan özel bir fonksiyonun her yürütülmesini ifade eder. Bu, “Script” filtresinin işlenmesi, bir dönüşüm düğümü ve veri dönüştürücünün çağrılmasını içerir.
Veri noktası depolama günleri, veritabanında depolanacak veri noktalarının sayısını, depolama süresinin gün sayısı ile çarparak hesaplanır. TTL parametresi, verilerin depolanacağı gün sayısını çıkarmak için kullanılır. Örneğin, 30 gün boyunca 3 veri noktasını depoladığınızda, bu 90 depolama veri noktası günüdür. Tenant profilindeki “Varsayılan Depolama TTL Günleri” parametresi, varsayılan TTL’yi yapılandırmak için kullanılabilir, Tenant Yöneticisi, “Kaydet Zaman Serisi” kural düğümü yapılandırması veya telemetri isteğindeki “TTL” parametresi kullanarak varsayılan TTL’yi geçersiz kılabilir.
Alarmlar TTL, alarmların veritabanında kaç gün saklanacağını ifade eder.
Gönderilen Alarmlar toplam alarm sayısını ifade eder (varsayılan olarak bir ay).
Gönderilen e-postalar, sistem SMTP sağlayıcısını (ayarlar) kullanarak kural motorundan gönderilen e-posta sayısını ifade eder. Tenant Yöneticileri, platformun Community ve Professional Sürümlerinde özel SMTP ayarlarını tanımlayabilirler. Özel SMTP ayarlarıyla gönderilen e-postalar API sınırlarını etkilemez.
Gönderilen SMS’ler, sistem SMS sağlayıcısını kullanarak kural motorundan gönderilen SMS sayısını ifade eder. Tenant Yöneticileri, platformun Community ve Professional Sürümlerinde özel SMS sağlayıcı ayarlarını tanımlayabilirler. Özel SMTP ayarlarıyla gönderilen SMS’ler API sınırlarını etkilemez.
API Kullanım Kontrol Paneli #
Bir Tenant Yöneticisi olarak, saatlik, günlük ve aylık API kullanımınız hakkında bilgi sağlayan API Kullanımı gösterge paneline erişiminiz vardır. Bu gösterge paneli, API sınırlarının durumunu hızlıca incelemenizi sağlar.
Şekil 2 – API kullanımı paneli.
Rate Limitleri #
Bu yapılandırma ayarları, Sistem Yöneticisinin platformun belirli bir cihaz için (cihaz düzeyi) veya tek bir Tenant’a ait tüm cihazlar için işleyebileceği maksimum istek sayısını ayarlamasına olanak tanır. Hız sınırları, jeton kova algoritması kullanılarak uygulanır.
Hız sınırı tanımı, bir değer ve bir zaman aralığı içerir. Örneğin, “1000:60” 60 saniyelik bir aralıkta işlenebilecek maksimum 1000 mesajı gösterir. Birden fazla aralık virgüllerle belirtilebilir. Örneğin, “100:1,1000:60” sistemde saniyede 100 mesajlık art arda gelen yükleri işleyebilir, ancak 60 saniyede en fazla 1000 kez işlem yapabilir.
Şekil 3 – Tenant profili Rate limit ayarlamaları.
#
Kullanıcı Grupları #
Genel Bakış #
Müşteri, Tenant cihazlarını ve varlıklarını satın alan veya kullanan ayrı bir işletme birimi, birey veya örgütü ifade eder. Bu müşteri, milyonlarca cihaz ve varlık ile ilişkilendirilmiş çoklu kullanıcılara sahip olabilir.
Kullanıcı Ekleme #
Eğer bir Tenant yöneticisi iseniz, yeni bir müşteri ekleyebilmek için aşağıdaki adımları takip edebilirsiniz:
Sol taraftaki menüye gidin ve Kullanıcı Grupları’nı seçin.
Şekil 1 – Ana sayfadaki sol menüden Kullanıcı Grupları’na gidin.
Yeni bir öğe açmak için, ekranın sağ üst köşesindeki artı işaretine tıklayın.
Şekil 2 – Yeni kullanıcı grubu ekleme.
Pencere açıldıktan sonra, Müşteri başlığını yazın. Ayrıca, ülke adı, şehir, adres ve telefon numarası gibi ek bilgileri de isteğe bağlı olarak belirtebilirsiniz. Yeni oluşturulan Müşteri’nin verilerini kaydetmek için Ekle düğmesine basın.
Şekil 3 – Kullanıcı bilgileri doldurulur.
Ilgili sekme üzerine tıklayarak, Tenant yöneticisi Müşteri ayrıntıları sayfasından kullanıcıları, varlıkları, cihazları, panoları ve kenarları doğrudan yönetebilir. Ayrıca, Tenant yöneticisi bu ayrıntılardan müşteri kimliğini kopyalayabilir. Herhangi bir bilgiyi değiştirmek için sadece kalem simgesine tıklayın.
Aşağıdaki gibi, Tenant ayrıca ana panoyu atayabilir ve Müşteri ayrıntıları penceresinde araç çubuğunun görünürlüğünü seçebilir.
Daha fazla yardım için, sağ üst köşedeki Soru işaretine tıklayarak kullanıcı kılavuzuna erişebilirsiniz.
Şekil 4 – Soru işareti ikonu yardım sayfasına yönlendirir.
Bir müşteriye varlıklar tahsis etmek için, Varlıkları Yönet‘e tıklayın. Varlık listesinden istenen varlığı seçin ve Atama’yı tıklayın. Tüm atanan varlıklar müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye cihaz atamak için, Cihazları Yönet‘i tıklayın. Entity açılır menüsünden cihazı seçin ve Atama’yı tıklayın. Tüm atanan cihazlar müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye bir gösterge paneli atamak için, Gösterge Panellerini Yönet‘i tıklayın. Entity listesinden gösterge panelini seçin ve Atama’yı tıklayın. Tüm atanan gösterge panelleri müşteri tarafından görülebilir hale gelecektir.
Bir müşteriye uç atamak için, Uçları Yönet‘i tıklayın. Entity listesinden kenarı seçin ve Atama’yı tıklayın. Tüm atanan kenarlar müşteri tarafından görülebilir hale gelecektir.
Tenant yöneticisi bir müşteriyi silmek için aşağıdaki yöntemlerden birini kullanabilir:
Müşteri detayları sayfasında bulunan Sil müşteri sekmesine tıklayın.
Şekil 5 – Kullanıcı grubu detaylarından kullanıcı grubu silinebilir.
Aşağıdaki resimde gösterildiği gibi, Müşteriler listesindeki Çöp Kutusu simgesine tıklayın.
Şekil 6 – Kullanıcı grupları sayfasından satır sonundaki ikon ile kullanıcı grubu silinebilir.
Bir Tenant yöneticisi olarak, bir veya birden fazla Müşteri ve Müşteri Kullanıcısı ekleyebilirsiniz. Ayrıca, Müşteri kullanıcılarına farklı cihazlar ve panolar atayabilir ve belirli görüntüleme izinleri sağlayabilirsiniz.
NOT: Müşteriyi silmek, bu rolle ilişkili tüm verilerin ve kendisi düzeyinin kaybedilmesine neden olur.
Müşteri Kullanıcısı Ekleme #
Müşteri Kullanıcısı eklemek için, Kullanıcıları Yönet sekmesini seçin ve yeni bir kullanıcı eklemek için artı simgesine tıklayın.
Şekil 7 – Kullanıcıları yönet sekmesinden yeni kullanıcı oluşturulabilir.
Burada müşteri kullanıcısı oluşturma süreci hakkında daha fazla bilgi edinin.
Kullanıcılar #
Genel Bakış #
Fast IoT Platform platformunda üç seviyede rol bulunmaktadır ve her seviyede kullanıcı oluşturulabilir:
Sistem yöneticisi: Sistem yöneticisi, bir Tenant yöneticisi kullanıcısı oluşturabilir.
Tenant yöneticisi: Tenant yöneticisi, bir Müşteri kullanıcısı oluşturabilir.
Müşteri kullanıcısı: Bu rol, Tenant yöneticisi tarafından atanan gösterge panoları ve diğer varlıkları görüntüleme iznine sahiptir. Ancak, Müşteri kullanıcısı kendi başına herhangi bir müşteri veya alt müşteri oluşturamaz.
Sistem yöneticisi #
Sistem yöneticisi iseniz, bir Kullanıcı oluşturmak için aşağıdaki adımları izleyebilirsiniz:
Sol taraftaki menüde “Tenantlar” a gidin, Tenant yöneticilerine gidin ve artı işaretine tıklayarak yeni bir kullanıcı ekleyin.
Şekil 1 – Tenant Adminleri sayfası
E-postayı doldurduktan ve Kullanıcı Ekle penceresinde etkinleştirme yöntemini seçtikten sonra, isteğe bağlı olarak isim ve açıklama da ekleyebilirsiniz, ardından sistem yöneticisi de yapabilir, yeni kullanıcı oluşturmak için Ekle düğmesine tıklayın.
Şekil 2 – Yeni kullanıcı oluşturma.
Etkinleştirme bağlantısı yöntemini kullanmak için, ok’a tıklayarak bağlantıyı kopyalayın ve kullanıcının kullandığı bir tarayıcıya veya mesajlaşma uygulamasına yapıştırın; aşağıda bir etkinleştirme bağlantısı örneği verilmiştir.
Şekil 3 – Kullanıcı hesabı etkinleştirme bağlantısı.
Etkinleştirme e-postası seçeneğini seçtiyseniz, Fast IoT Platform hesabınızın etkinleştirilmesi ile ilgili mesajı e-posta kutunuzu kontrol edin, “Hesabınızı Etkinleştirin” seçeneğine tıklayın ve şifre oluşturma sürecini takip edin.
NOT: Fast IoT Platform’dan bir e-posta almadan önce, sistem yöneticisi düzeyinde bir posta sunucusu kurmak gereklidir. Talimatlar için posta ayarlarına başvurabilirsiniz.
Bir kullanıcı oluşturulduktan sonra, sistem yöneticisi Tenant ayrıntıları sayfasındaki eylem sekmelerini kullanabilir. Bu sekmeler aşağıdaki seçenekleri içerir:
Kullanıcı hesabını devre dışı bırakma
Tenant yönetici kullanıcısı için aktivasyon bağlantısını görüntüleme
Kullanıcının e-posta kutusuna hesap aktivasyon e-postasını yeniden gönderme
Tenant yönetici olarak oturum açarak Fast IoT Platform platformuna Tenant yönetici arayüzünden erişme
Tenant yöneticisini Tenant kullanıcı listesinden silme, aynı zamanda Sistem Yöneticisi için bir seçenektir.
Şekil 4 – Kullanıcı fonksiyonları.
Eğer yönetici Kullanıcı Hesabını Devre Dışı Bırak seçeneğini seçerse, kullanıcı hesabının başarıyla devre dışı bırakıldığını doğrulayan bir mesaj görüntülenecektir. Ayrıca sekme, Kullanıcı Hesabını Etkinleştir olarak değişecektir. Daha fazla açıklama için lütfen aşağıdaki resme bakınız.
Şekil 5 – Kullanıcı hesabı devre dışı bırakma.
Devre dışı bırakılmış bir hesabı olan bir kullanıcı platforma erişmeye çalıştığında, aşağıdaki hata mesajıyla karşılaşacaktır.
Şekil 6 – Devre dışı bırakılmış hesap.
Benzer şekilde, yönetici Kullanıcı Hesabını Etkinleştir seçeneğini seçtiğinde, kullanıcı hesabının başarıyla etkinleştirildiğini belirten bir mesaj sol üst köşede görünecektir. Sekme, Kullanıcı Hesabını Devre Dışı Bırak olarak değişecektir. Daha fazla açıklama için lütfen aşağıdaki resme bakınız.
Şekil 7 – Kullanıcı hesabı etkinleştirme.
Tenant Yöneticisi #
Bir Tenant yöneticisi olarak yeni bir kullanıcı eklemek için aşağıdaki adımları izleyebilirsiniz.
Kullanıcı Grupları sekmesine gidin, ‘kullanıcı grubu kullanıcılarını yönet’ ikonuyla kullanıcılara gidin ve yeni bir kullanıcı oluşturmak için artı simgesine tıklayın.
Şekil 8 – Yeni kullanıcı oluştur.
Kullanıcı ekle penceresinde e-posta adresini girin ve aktivasyon yöntemini seçin. Tenant yöneticisi isteğe bağlı olarak ad ve açıklama ekleyebilir. Gerekli tüm bilgiler girildikten sonra, Ekle’ye tıklayın.
Şekil 9 – Kullanıcı bilgilerini ekleyin.
Kullanıcı oluşturduktan sonra, Tenant Yöneticisi kullanıcı ayrıntıları sayfasında mevcut olan eylem sekmelerini kullanabilir.
Kullanıcı ayrıntıları sayfasındaki mevcut eylem sekmeleri şunlardır:
“Kullanıcı Hesabını Devre Dışı Bırak” – Bu seçenek daha önce açıklandığı gibi, Tenant Yöneticisinin kullanıcı hesabını devre dışı bırakmasına izin verir.
“Aktivasyon Bağlantısını Göster” – Bu seçenek, Müşteri kullanıcısı için aktivasyon bağlantısını gösterir.
“Aktivasyonu Yeniden Gönder” – Bu seçenek, kullanıcının e-posta adresine başka bir aktivasyon e-postası gönderir.
“Müşteri Kullanıcısı Olarak Giriş Yap” – Bu seçenek, Tenant Yöneticisinin Fast IoT Platform platformuna, Müşteri kullanıcısının kullanıcı arayüzünden erişmesini sağlar.
Tenant Yöneticisi ayrıca, ‘Kullanıcı Sil’ butonu ile müşteri kullanıcısını müşteri listesinden kaldırma yetkisine sahiptir.
Aşağıdaki resimde gösterildiği gibi, Tenant yöneticisi varsayılan panoyu atama ve tam ekran modunu etkinleştirme seçeneğine sahiptir.
Şekil 10 – Varsayılan panel ve her zaman tam ekran seçenekleri bulunur.
Benzer şekilde, aşağıdaki resimde gösterildiği gibi, Tenant yöneticisi Müşteri kullanıcısı için bir ana panoyu atamayı ve panonun araç çubuğunu gizlemeyi tercih edebilir.
Şekil 11 – Ana pano ataması yapılabilir ve araç çubuğu görünürlüğü düzenlenebilir.
ÖNEMLİ NOT: Bir varsayılan pano ve bir ana pano atamak için birlikte yapılacak herhangi bir işlem gerekli değildir, çünkü varsayılan pano kullanıcının hesabına giriş yaptığında göreceği ilk panodur.
Herhangi bir sorunuz varsa, lütfen sağ üst köşedeki soru işaretine tıklayın.
Müşteri Kullanıcı Arayüzü #
Ana sayfa olarak varsayılan kontrol paneli #
Müşteri kullanıcısı hesabına giriş yaptığında, varsayılan pano ilk gördüğü şeydir. Tenant yöneticisi tam ekran varsayılan bir pano atarsa, Müşteri kullanıcısı aşağıdaki örnekte görüldüğü gibi soldaki menü olmadan panoyu görebilir. Panonun araç çubuğu her zaman kullanıcı için erişilebilir olacak ve kullanıcı, bir tane atanmışsa, başka bir panoya geçebilecek ve gerçek zamanlı aralıklar belirleyebilecektir. Ek olarak, bu panoyu dışa aktarma seçeneği bulunmaktadır.
Şekil 12 – Tam ekran modunda anasayfa varsayılan kontrol paneli.
Eğer tam ekran modu seçilmediyse, Müşteri kullanıcıları sol taraftaki menü sekmeleri arasında geçiş yaparak, Tenant yöneticisi tarafından atanmış olan tüm varlıkları, cihazları, varlıkları, edge ve panoları görüntüleyebilirler. Aşağıdaki panolu örnek bu işlevselliği göstermektedir.
Şekil 13 – Tam ekran modu seçilmediği durumda sayfa görünümü.
Ana sayfa olarak ana gösterge paneli #
Eğer Tenant yöneticisi bir dashboard’u ana sayfa dashboard’u olarak atarsa, Müşteri kullanıcısı bu dashboard’u kendi ana sayfasında görecektir. Ana sayfa dashboard’u araç çubuğunu gizle seçeneği seçilirse, Müşteri kullanıcısı ana sayfa dashboard’unu araç çubuğu olmadan görebilir.
Şekil 14 – Ana sayfa paneli.
Ya da kullanıcı, araç çubuğunu kullanarak gerçek zamanlı aralıklar belirleyebilir ve gösterge panelini dışa aktarabilir.
Şekil 15 – Cihazlar(Devices) Gösterge paneli.
Müşteri kullanıcısı, profil ayarlarında ev sayfası panosunu değiştirme veya ev sayfası panosu araç çubuğunu gizleme seçeneğine sahiptir.
Şekil 16 – Kullanıcı profil sayfası.
Cihazlar #
Fast IoT platformu, bir Web UI ve REST API kullanarak aşağıdaki cihaz yönetimi özelliklerini desteklemektedir.
Cihaz ekleme ve silme #
Tenant yöneticisi, Fast IoT Platform’da yeni cihazlar kaydedebilir veya silebilir.
Şekil 1 – Cihazlar sayfası.
Cihaz kimlik bilgilerini yönet #
Tenant yöneticisi, cihaz kimlik bilgilerini yönetme yeteneğine sahiptir. Mevcut sürüm, erişim belirteçleri ve X.509 sertifikalarına dayalı kimlik bilgilerini desteklemektedir.
Şekil 2 – Cihaz kimlik bilgileri.
Cihaz Kimliği Alın #
“Cihaz Kimliğini Kopyala” düğmesi, hem Tenant yöneticisi hem de müşteri kullanıcıların cihaz kimliğini panoya kopyalamasına olanak tanır.
Şekil 3 – Cihaz kimliğini kopyalama.
Cihazları müşterilere atama #
Tenant yöneticisi belirli kullanıcı grubuna cihaz atayabilir. Bu, kullanıcı grubunun kullanıcılarının REST API’leri veya Web UI’yı kullanarak cihaz verilerini almasına olanak tanır.
Şekil 4 – Cihazları müşterilere atama
Cihaz özelliklerine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz özniteliklerine göz atabilirler.
Şekil 5 – Cihaz öznitelikleri.
Cihaz telemetrisine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz telemetri verilerine göz atabilirler.
Şekil 6 – Cihaz telemetri detayları.
Cihaz alarmlarına göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz alarmlarına göz atabilirler.
Şekil 7 – Cihaz alarmları.
Cihaz etkinliklerine göz atın #
Tenant yöneticisi ve müşteri kullanıcıları, “Olaylar” sekmesini kullanarak belirli bir cihaza ilişkin olayları gözden geçirebilirler. Yaşam döngüsü olayları ve istatistikler yakında kullanılabilir olacak.
Cihaz ilişkilerini yönetin #
Tenant yöneticisi ve müşteri kullanıcıları, cihaz ilişkilerini yönetebilirler.
Şekil 8 – Cihaz ilişkileri
Cihaz Profilleri #
Genel Bakış #
Tenant yöneticisi, cihaz profillerini kullanarak birden fazla cihaz için ortak ayarları yapılandırabilir. Her cihazın aynı anda yalnızca bir profil olabilir.
Deneyimli Fast IoT Platform kullanıcıları, cihaz türlerinin Cihaz Profili lehine kullanımdan kaldırıldığını fark edeceklerdir. Güncelleme betiği, benzersiz Cihaz Türleri temel alınarak Cihaz Profilleri oluşturacak ve bunları ilgili cihazlara atayacaktır.
Cihaz Profili’nde mevcut olan ayarlara daha yakından bakalım.
Cihaz Profili ayarları #
Kural Zinciri #
Varsayılan olarak, Kök Kural Zinciri, herhangi bir cihaz için gelen tüm mesajları ve olayları işler. Ancak, farklı cihaz türleriniz arttıkça, Kök Kural Zinciri daha karmaşık hale gelebilir. Platform kullanıcılarının çoğu, cihaz türüne bağlı olarak farklı kural zincirlerine mesaj göndermek amacıyla Kök Kural Zinciri oluşturur.
Bu sıkıcı ve zaman alıcı görevden kaçınmak için, Fast IoT Platform ile cihazlarınız için özel bir Kural Zinciri belirtebilirsiniz. Yeni Kural Zinciri, tüm telemetri, cihaz etkinliği (aktif/pasif) ve cihaz yaşam döngüsü (oluşturuldu/güncellendi/silindi) olaylarını alacaktır. Bu ayar, Hem Cihaz Profili sihirbazında hem de Cihaz Profili detaylarında mevcuttur.
Şekil 1 – Yeni Cihaz profili oluşturma.
Queue (İşlem Önceliklendirme) Adı #
Sistemin varsayılan davranışı, tüm cihazlardan gelen giriş mesajlarını ve olaylarını Ana kuyruğu (Queue) kullanarak depolamaktır. Taşıma katmanı, bu mesajları Ana kuyruğa gönderir ve Kural Motoru, yeni mesajları almak için periyodik olarak kuyruğu kontrol eder.
Ancak, farklı cihazlar için farklı kuyruklar kullanmak gerekebilir. Örneğin, Yangın Alarmı/Duman Dedektörü sensörlerinin veri işlemesini diğer cihazlardan ayırmak isteyebilirsiniz. Böylece, milyonlarca su sayacının neden olduğu yoğun yük altında bile, Yangın Alarmı mesajı gecikmesiz işlenecektir. Ayrı kuyrukların olması ayrıca özelleştirilmiş gönderme ve işleme stratejilerinin uygulanabilmesine olanak tanır.
Bu ayarı Cihaz Profili sihirbazı veya Cihaz Profili detaylarından ayarlayabilirsiniz.
Özel bir kuyruk (queue) kullanmayı tercih ederseniz, kullanmadan önce sistem yöneticisi tarafından yapılandırılması gerektiğini unutmayın.
Şekil 2 – Cihaza queue ekleme.
Aktarım yapılandırması #
Fast IoT platformunun mevcut sürümü, Varsayılan, MQTT, CoAP, LWM2M ve SNMP olmak üzere aşağıdaki iletişim protokollerini desteklemektedir.
Şekil 3 – Aktarım protokolü seçimi.
Varsayılan taşıma türü #
Varsayılan taşıma protokolü, önceki sürümlerle uyumluluğu korumak amacıyla tasarlanmıştır. Varsayılan taşıma protokolünü kullanarak, cihazlarınızla bağlantı kurmak için platformun varsayılan MQTT, HTTP, CoAP ve LwM2M API’lerini kullanmaya devam edebilirsiniz. Varsayılan taşıma protokolü için özel bir yapılandırma ayarı gerektirilmez.
MQTT taşıma türü #
MQTT iletişim protokolü, gelişmiş MQTT iletişim ayarlarına izin verir. Artık telemetri yükleme API’si ve özellik güncelleme API’si ile karşılık gelen zaman serisi verileri ve özellik güncellemeleri için özel MQTT konu filtreleri tanımlamak mümkündür.
MQTT iletişim protokolü aşağıdaki ayarlara sahiptir:
MQTT cihaz konu filtreleri #
Özel MQTT konu filtreleri, tekli ‘+’ ve çoklu seviyeli ‘#’ joker karakterlerini destekleyerek, JSON veya Protobuf kullanarak bir yük gönderen neredeyse herhangi bir MQTT tabanlı cihaza bağlanmanıza olanak sağlar.
Şekil 3.1 – MQTT cihaz konu filtreleri
Aşağıdaki görüntüde gösterilen yapılandırmayı kullanarak, aşağıdaki komutu kullanarak zaman serisi verileri yayınlayabilirsiniz:
mosquitto_pub -h ‘IP_ADRES’ -i ‘c1’ -u ‘t1’ -P ‘secret’ -t ‘/telemetry’ -m ‘{“humidity”: 10.3}’ |
ve öznitelik güncellemeleri aşağıdaki komut kullanılarak yayınlanabilir:
mosquitto_pub -h ‘IP_ADRES’ -i ‘c1’ -u ‘t1’ -P ‘secret’ -t ‘/attributes’ -m ‘{“firmwareVersion”: “1.3”}’ |
Bir örnek inceleyelim:
Adım 1. Cihaz profili içinde MQTT cihaz konusu filtresini belirtin.
Adım 2. ‘c1’ istemci kimliği, ‘t1’ kullanıcı adı ve ‘secret’ parolasıyla cihazınız için temel MQTT kimlik bilgilerini sağlayın.
Adım 3. Terminal kullanarak zaman serisi verileri yayınlayın.
Adım 4. Gönderilen veriler cihazın “Son telemetri” sekmesinde görüntülenecektir.
Şekil 3.2.1 – Telemetri ve öznitelikler konu filtreleri belirtilir.
Şekil 3.2.2 – Cihaz kimlik bilgileri belirtilir.
MQTT cihaz yükü #
Varsayılan olarak, platform cihazların verileri JSON aracılığıyla göndermesini bekler. Ancak, yapılandırılmış verileri seri hale getirmenin dilden ve platformdan bağımsız bir yolu olan Protokol Tamponları veya Protobuf aracılığıyla veri göndermek de mümkündür. Bu, iletilen verilerin boyutunu en aza indirmek için uygun bir yöntemdir.
Fast IoT platformunun mevcut sürümü, telemetri yüklemeleri ve öznitelik yüklemeleri için özelleştirilebilir proto şemalarını destekler ve aşağı yönlü mesajlar (RPC çağrıları ve öznitelik güncellemeleri gibi) için bir şema tanımlama becerisini uygular.
Şekil 3.3 – MQTT cihaz yükü Protobuf seçilir.
Şekil 3.4 – Öznitelikler ve RPC istek proto şemaları.
Şekil 3.5 – RPC yanıt protokolü şeması
Fast IoT platform şu anda, Protobuf yapılarını dinamik olarak ayrıştırdığı için OneOf, extensions ve maps gibi bazı Protobuf özelliklerini desteklememektedir.
Diğer yük biçimleriyle uyumluluk
Varsayılan olarak etkin olduğunda, platform Protobuf yük veri formatını kullanır. Ayrıştırma hatası durumunda, platform JSON yük veri formatını kullanmaya çalışır. Bu, firmware güncellemeleri sırasında geriye dönük uyumluluğu sağlamak için kullanışlıdır. Örneğin, ilk firmware sürümü JSON kullanırken, yeni sürüm Protobuf kullanabilir. Cihaz filosu için firmware güncelleme sürecinde, hem Protobuf hem de JSON formatını aynı anda desteklemek gereklidir.
Ancak, geriye dönük uyumluluk modunun etkinleştirilmesi hafif bir performans azalmasına neden olabilir. Bu nedenle, tüm cihazlar güncellendikten sonra bu modun devre dışı bırakılması önerilir.
Şekil 3.6 – Geriye dönük uyumluluk modu devre dışı edilir.
CoAP taşıma türü #
CoAP taşıma türü, CoAP taşıma için gelişmiş ayarlar sağlar. CoAP için cihaz türünü seçmenize olanak tanır.
Şekil 3.7 – Aktarım türünün CoAP olması durumu.
CoAP cihaz tipi: Varsayılan #
Varsayılan olarak, CoAP cihaz türü “Varsayılan”, temel CoAP API’sını destekleyen JSON CoAP cihaz yüküne sahiptir, aynı şekilde Varsayılan taşıma türü gibi. Ancak, veri göndermek için “CoAP cihaz yükü” parametresini “Protobuf” olarak değiştirerek Protocol Buffers yoluyla veri göndermek mümkündür.
Protocol Buffers veya Protobuf, yapılandırılmış verileri seri hale getirmenin dilden ve platformdan bağımsız bir yoludur. İletilen verilerin boyutunu en aza indirmek uygundur.
Fast IoT Platform platformunun mevcut sürümü, telemetri yüklemeleri ve öznitelik yüklemeleri için özelleştirilebilir proto şemaları destekler ve aşağı bağlantı mesajları (RPC çağrıları ve öznitelik güncellemeleri) için bir şema tanımlama becerisini uygular.
Şekil 3.7.1 – Cihaz yükü Protobuf seçilir. Telemetri proto şeması.
Şekil 3.7.2 – RPC istek proto şeması ve RPC yanıt protokolü şeması.
Fast IoT Platform, protobuf yapılarını dinamik olarak ayrıştırdığı için, OneOf, uzantılar ve haritalar gibi belirli protobuf özelliklerini şu anda desteklememektedir.
CoAP cihaz tipi: Roltek NB-IoT #
Mevcut Fast IoT Platformu sürümü, aşağıdaki Roltek NB-IoT sensörleriyle entegrasyon yapabilmektedir: sıcaklık, nem, hava basıncı, diferansiyel basınç, açık/kapalı, sızıntı ve I/O.
Alarm Kuralları #
Fast IoT Platform kullanıcıların Alarm Kuralları ayarlamalarına olanak sağlar. Bu özellik oldukça güçlüdür ancak bazı programlama bilgisi gerektirir. Ancak, yeni sürüm, Alarm Kuralları en popüler alarm tiplerini yapılandırmayı kolaylaştırmak için tanıtılmıştır. Bu, kullanıcıların alarmlar için işlem mantığı kurmak için Rule Engine uzmanı olmaları gerekmediği anlamına gelir. Arka planda, Rule Engine, Alarm Kurallarını “Device Profile” kural düğümü kullanarak değerlendirir.
Alarm Kuralları, Alarm Türü, Oluşturma Koşulları, Anahtar Filtreleri, Koşul Türü, Program, Detaylar, Temizleme koşulu ve Gelişmiş ayarlar gibi birkaç özelliğe sahiptir. Örneğin, Oluşturma Koşulları, Alarmın oluşturulması veya güncellenmesi için karşılanması gereken kriterleri belirtir. Ciddiyet, bir alarm oluşturmak / güncellemek için kullanılır ve cihaz profili alarm kuralları içinde benzersiz olmalıdır. Anahtar Filtreler, öznitelikler veya telemetri değerlerine karşı mantıksal ifadeler belirler. Koşul Türü basit, süre veya tekrarlayan olabilir. Program, kuralın etkin olduğu zaman aralığını tanımlar.
Örnek 1. Basit alarm koşulları #
İşte 10 dereceden büyük olduğunda Kritik bir alarm oluşturmak için adımlar:
Cihaz profiline girin ve düzenleme moduna geçin.
“Alarm kuralı ekle” düğmesine tıklayın.
Alarm Türünü girin ve kırmızı “+” işaretine tıklayın.
“Anahtar Filtresi Ekle” düğmesine tıklayın.
“Zamanseri” anahtar türünü seçin ve anahtar adı olarak “sıcaklık” ı girin. “Değer türünü” “Sayısal” olarak değiştirin. “Ekle” ye tıklayın.
“büyüktür” işlemini seçin ve eşik değeri olarak 10’u girin. “Ekle” ye tıklayın.
“Kaydet” e tıklayın.
Değişiklikleri uygulayın.
Bu adımları takip ederek, sıcaklık 10 dereceden büyük olduğunda Kritik bir alarm oluşturulur.
Şekil 4.1.1 – Cihaz alarm kuralları sayfası.
Şekil 4.1.2 – Alarm kuralı ekleme.
Şekil 4.1.3 – Alarm tipi seçimi ve kural koşulu oluşturma.
Şekil 4.1.4 – Kural koşuluna anahtar filtre ekleme.
Şekil 4.1.5 – Anahtar filtre değerleri seçilir.
Şekil 4.1.6 – Filtre operasyonu ve değeri seçilir.
Şekil 4.1.7 – Eklenen filtre kaydedilmelidir.
Şekil 4.1.8 – Değişiklikleri uygulayın.
Örnek 2. Süreli alarm durumu #
Örnek 1’i değiştirerek sadece belirli bir süre boyunca sıcaklık belirli bir eşik değerini aştığında alarmların tetiklenmesini istediğimizi varsayalım. Bu amaca ulaşmak için, alarm koşulunu düzenlememiz ve koşul tipini “Basit”ten “Süre”ye değiştirmemiz gerekiyor. Ayrıca süre değerini ve birimini belirtmeliyiz.
İşte takip edilmesi gereken adımlar:
Adım 1. Alarm koşulunu düzenleyin ve koşul tipini “Süre” olarak değiştirin. Süre değerini ve birimini belirleyin. Koşulu kaydedin.
Adım 2. Bu adımları izleyerek, sıcaklık eşik değerini bir dakika boyunca aştığında yalnızca alarmlar tetiklenecektir.
Şekil 4.2.1 – Alarm kural koşulu düzenleme.
Şekil 4.2.2 – Değişiklikleri uygulayın.
1 dakika sürenin yerine, belirli bir cihazın, müşterinin veya tenantnın ayarlarına bağlı olarak dinamik bir değer kullanmak istediğinizi varsayalım.
Bu amaçla, sunucu tarafı özellikleri kullanmalısınız.
Lütfen cihazınız için “highTemperatureDurationThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri “1” olarak ayarlayın.
İşte yapmanız gereken adımlar:
Cihazınız için “highTemperatureDurationThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri “1” olarak ayarlayın.
Özelliği kaydedin.
Bu özelliği oluşturarak, alarm koşulundaki alarm gecikmesi için dinamik bir değer olarak kullanabilirsiniz. Bu, alarmın süre eşiğini cihaz, müşteri veya tenant ayarlarına göre ayarlamanıza olanak tanır.
Yeni oluşturduğunuz sunucu taraflı nitelikleri alarm koşulundaki gecikme süresinin dinamik bir değeri olarak kullanmak için şu adımları izleyin:
Adım 3. Alarm koşulunu düzenleyin ve alarm gecikme süresinin dinamik değerine geçmek için “Dinamik değere geçiş” butonuna tıklayın.
Adım 4. Mevcut cihaz, mevcut müşteri veya mevcut tenant ayarlarını kullanıp alarm eşiği değerinin alacağı niteliği belirtin. “Sahibinden devral” seçeneğini de seçebilirsiniz. Bu, eşik değerinin cihaz düzeyinde belirtilmemesi durumunda müşteriden alınmasını sağlar. Nitelik değeri hem cihaz hem de müşteri düzeylerinde belirtilmemişse, kural değeri tenant niteliklerinden alır.
Adım 5. Tüm değişiklikleri kaydedin.
Bu adımları izleyerek, alarm gecikme eşiği değeri, cihaz, müşteri veya tenant ayarlarına göre dinamik olarak belirlenecektir.
Şekil 4.2.3 – “Dinamik değere geçiş” butonuna tıklayın.
Şekil 4.2.4 – “Sahibinden devral” seçeneği seçilerek eşik değerinin belirtilmediği durumda müşteriden alınması sağlanır.
Örnek 3. Tekrarlanan alarm durumu #
Örnek 1’i değiştirerek sadece sensör belirlenen eşik değerini üç kez üst üste aştığında alarmı tetiklemek istediğimizi varsayalım.
Bu amaçla alarm koşulunu düzenlememiz ve koşul tipini “Basit”ten “Tekrarlayan”a çevirmemiz gerekiyor. Ayrıca “3”ü “Olay Sayısı” olarak belirtmeliyiz.
Adım 1. Alarm koşulunu düzenleyin ve koşul tipini “Tekrarlayan” olarak değiştirin. Alarmı tetiklemek için “Olay Sayısı” olarak “3”ü belirtin. Bu değer, cihazınız için herhangi bir özellik belirtilmemişse varsayılan olarak kullanılacaktır. Koşulu kaydedin.
Adım 2. Değişiklikleri kaydedin.
Şekil 4.3.1 – Alarm koşulunu düzenleyin ve koşul tipini “Tekrarlayan” olarak değiştirin. Alarmı tetiklemek için “Olay Sayısı” olarak “3”ü seçin.
Şimdi varsayalım ki alarm koşulunun aşılan sayısı, belirli bir cihaz, müşteri veya tenant ayarlarına bağlı dinamik bir değerle değiştirmek istiyoruz.
Bu amaçla sunucu tarafı özellikleri kullanmalısınız.
Cihazınız için “highTemperatureRepeatingThreshold” adında bir sunucu tarafı özelliği oluşturun ve tam sayı değeri olarak “3”ü belirtin.
Adım 4. “Tekrarlayan” alarm koşulunun dinamik değerine gitmek için “Dinamik değere geç” düğmesine tıklayın.
Şekil 4.3.2 – “Tekrarlayan” alarm koşulunun dinamik değerine gitmek için “Dinamik değere geç” butonuna tıklayın.
Adım 5. “Geçerli cihaz”, “geçerli müşteri” veya “geçerli tenant” ayarlarından birini seçin ve alarmın tetiklenmesi için eşik değeri ne kadar aşılmalıdır, bu değeri belirtin. Ayrıca “Sahibinden devral” seçeneğini de işaretleyebilirsiniz. Devralmak, eşik değerinin cihazda belirtilmemişse müşteriden alınmasına olanak tanır. Hem cihaz hem de müşteri düzeyinde özellik değeri belirtilmemişse kural tenant özelliklerinden değeri alacaktır.
Şekil 4.3.2 – “Geçerli cihaz”, “geçerli müşteri” veya “geçerli tenant” ayarlarından birini seçin ve alarmın tetiklenmesi için eşik değeri ne kadar aşılmalıdır, bu değeri belirtin. Ayrıca “Sahibinden devral” seçeneğini de işaretleyebilirsiniz.
Adım 6. Tüm değişiklikleri kaydedin.
Bu adımları takip ederek, alarm koşulu yalnızca sıcaklık eşik değeri üst üste üç kez aşıldığında tetiklenecektir veya cihaz, müşteri veya tenant ayarları için sunucu tarafı özelliği tarafından belirlenen dinamik değere göre tetiklenecektir.
Örnek 4. Alarm kuralını sil #
Varsayalım ki buzdolabındaki sıcaklık normale döndüğünde alarmı otomatik olarak kapatmak istiyoruz. İşte adımlar:
Adım 1: Cihaz profilini açın ve düzenleme moduna geçin. Ardından, “Alarm temizleme koşulu ekle” butonuna tıklayın.
Şekil 4.4.1 – “Alarm temizleme koşulu ekle” butonuna tıklayın.
Adım 2: Yeni bir koşul eklemek için kırmızı “+” işaretine tıklayın.
Şekil 4.4.2 – Yeni koşul ekleme.
Adım 3: Bir anahtar filtresi ekleyin ve “Ekle” düğmesine tıklayın.
Şekil 4.4.3 – Anahtar filtre ekleme.
Adım 4: Alarm kural koşulunu kaydedin.
Adım 5: Tüm değişiklikleri uygulayın.
Bu adımları takip ederek, buzdolabındaki sıcaklık normale döndüğünde alarm otomatik olarak kapanacaktır.
Örnek 5. Alarm kuralı zamanlamasını tanımlayın #
Çalışma saatleri boyunca alarmları değerlendirmek istediğimizi varsayalım.
Adım 1: Alarm kuralının zamanlamasını düzenleyin.
Şekil 4.5.1 – Alarm kuralının zamanlamasını düzenleyin.
Adım 2: Alarm kuralının değerlendirileceği haftanın günlerini, saat aralığını ve zaman dilimini seçin. Ardından “Kaydet”e tıklayın.
Şekil 4.5.2 – Alarm kuralının değerlendirileceği haftanın günlerini, saat aralığını ve zaman dilimini seçin.
Adım 3: Tüm değişiklikleri uygulayın.
Bu adımları takip ederek, alarm kuralı sadece belirtilen çalışma saatleri boyunca alarmları değerlendirecektir.
Örnek 6. Gelişmiş eşikler #
Dashboard UI üzerinden kullanıcılarımızın eşik değerlerini değiştirmelerine ve her cihaz için belirli alarmları etkinleştirip devre dışı bırakmalarına izin vermek istiyoruz. Bunun için alarm kuralı koşullarında dinamik değerler kullanacağız ve iki öznitelik kullanacağız: boolean tipinde temperatureAlarmFlag ve numeric tipinde temperatureAlarmThreshold. Amacımız “temperatureAlarmFlag = True VE temperatureAlarmThreshold’tan büyük olan sıcaklıklarda” alarm oluşturmaktır. Bu adımları takip edin:
Adım 1: Sıcaklık anahtar filtrenizi düzenleyin ve değer tipini dinamik olarak değiştirin.
Şekil 4.6.1 – Sıcaklık anahtar filtresini düzenleyin ve değer tipini dinamik olarak değiştirin.
Adım 2: Dinamik kaynak türü seçin ve “temperatureAlarmThreshold” değerini girin, ardından “Güncelle”ye tıklayın. Opsiyonel olarak “Sahibinden miras al” seçeneğini işaretleyebilirsiniz. Miras alma, cihaz düzeyinde belirtilmemişse müşteriden eşik değerini almamızı sağlar. Öznitelik değeri hem cihaz hem de müşteri düzeyinde belirtilmemişse, kural tenant özniteliklerinden değeri alır.
Şekil 4.6.2 – Dinamik kaynak türü seçin ve “temperatureAlarmThreshold” değerini girin, ardından “Güncelle”ye tıklayın.
Adım 3: temperatureAlarmFlag için başka bir anahtar filtre ekleyin.Tekrar “Ekle”ye tıklayın.
Şekil 4.6.3 – temperatureAlarmFlag için başka bir anahtar filtre eklenir.
Adım 4: “Kaydet”e tıklayın ve tüm değişiklikleri uygulayın.
Adım 5: Cihaz özniteliklerini elle veya komut dosyası aracılığıyla sağlayın.
Şekil 4.6.4 – Cihaz özniteliklerini elle veya komut dosyası aracılığıyla sağlayın.
Bu adımları takip ederek, kullanıcılarımız Dashboard UI üzerinden eşik değerlerini değiştirebilecek ve her cihaz için belirli alarmları etkinleştirebilecek ve devre dışı bırakabileceğiz.
Örnek 7. tenant veya müşteri özelliklerine dayalı dinamik eşikler #
Örnek 6’da, bir cihazın “temperatureAlarmFlag” özniteliğinin değerine bağlı olarak bir kuralın etkinleştirilip devre dışı bırakılması nasıl yapılacağı gösterilmiştir. Ancak, bir müşteri veya tenantya ait tüm cihazlar için belirli bir kuralı etkinleştirip devre dışı bırakmak isterseniz, her bir cihaz için özniteliği yapılandırmak zahmetli olabilir. Bu süreci basitleştirmek için, alarm kuralını tenant veya müşteri özniteliğinin değeriyle karşılaştırmak için bir sabit değerle yapılandırabilirsiniz. Bunun için, “Sabit” anahtar tipini seçin ve bir dinamik değerle karşılaştırılabilen bir değer belirtin. Ardından, bu yapılandırmayı uygulayın. Bu, her bir cihazı manuel olarak yapılandırmadan belirli bir kuralı bir tenantya veya müşteriye ait tüm cihazlar için kolayca etkinleştirip devre dışı bırakmanıza olanak tanır.
Şekil 4.7.1 – Anahtar türü ve değeri seçin. Tenant veya müşteri özniteliğinin değeriyle filtreleyin.
Yukarıda bahsedilen yöntem kullanılarak, cihaz telemetri/özellikleri ile tenant veya müşteri özellikleri üzerinde filtrelerin birleştirilmesi ve kuralların etkinleştirilmesi veya devre dışı bırakılması mümkündür.
Cihaz profili kural düğümü #
Cihaz profilinde tanımlanan alarm kurallarına dayanarak, cihaz profilinde oluşturulan ve silinen alarm sorumluluğu cihaz profilinde kural düğümüne aittir. Varsayılan olarak, bu düğüm işleme zincirindeki ilk düğümdür. Düğüm tüm gelen mesajları işler ve özellik ve telemetri değerlerine uygun olarak tepki verir.
Şekil 4.8 – Cihaz profili kural zinciri
Kural düğümünde iki önemli ayar vardır:
Alarm kurallarının durumunu saklama – bu ayar, kural düğümünün işleme durumunu saklamasını zorlar. Varsayılan olarak devre dışıdır. Bu ayar, süre veya tekrarlayan koşullarınız varsa kullanışlıdır. Örneğin, “Sıcaklık 1 saat boyunca 50’den büyüktür” şeklinde bir koşulunuz varsa ve 50’den büyük ilk olay saat 13:00’te bildirildiyse, 2:00’de alarm almanız gerekmektedir (sıcaklık koşulları değişmediği varsayılırsa). Ancak, 1:00’den sonra ve 2:00’den önce sunucuyu yeniden başlatırsanız, kural düğümünün veritabanından durumu araması gerekir. Bu ayarı etkinleştirmek, “Alarm kurallarının durumunu getir” seçeneği ile birlikte alarmın yükseltilmesine izin verecektir. Bu ayar devre dışı bırakılırsa, kural düğümü alarm oluşturmaz. Performans nedenleriyle varsayılan olarak bu ayarı devre dışı bırakılır. Etkinleştirildiğinde ve gelen mesaj en az bir alarm koşuluna uyuyorsa, durumu kalıcı hale getirmek için ek yazma işlemi gerçekleşecektir.
Alarm kurallarının durumunu getir – bu ayar, kural düğümünün başlatılmak üzere işlemin durumunu geri yüklemesini zorlar. Bu ayar da varsayılan olarak devre dışıdır. Bu ayar, süre veya tekrarlayan koşullarınız varsa kullanışlıdır. “Alarm kurallarının durumunu saklama” seçeneğiyle birlikte çalışmalıdır, ancak nadir durumlarda “Alarm kurallarının durumunu saklama” seçeneği etkin olsa bile bu ayarı devre dışı bırakmak isteyebilirsiniz. Sık sık veri gönderen birçok cihazınız varsa, başlatma işlemi sırasında durumu veritabanından yüklemekten kaçınabilirsiniz. Kural düğümü, belirli bir cihazdan gelen ilk mesaj geldiğinde durumu veritabanından getirecektir.
Şekil 4.9 – Alarm kuralı durumları.
Alarmlar hakkında bildirimler #
Eğer Fast IoT Platform’da alarm kurallarını ayarladıysanız, Fast IoT Platform’un alarm oluşturduğu veya güncellediği durumlarda bir bildirim almak isteyebilirsiniz. Bunu yapmak için, cihaz profili kural düğümünde bulunan çıkış ilişki tiplerini kullanabilirsiniz. Bu tipler arasında ‘Alarm Oluşturuldu’, ‘Alarm Önceliği Güncellendi’ ve ‘Alarm Temizlendi’ bulunur. Aşağıda bir örnek kural zinciri verilmiştir, ancak önce sistem yöneticisi tarafından SMS/e-posta sağlayıcılarının yapılandırıldığını onaylamalı veya kural düğümlerinde kendi ayarlarınızı yapmalısınız.
Daha fazla yönlendirme için mevcut kılavuzlara başvurabilirsiniz, örneğin alarm durumunda e-posta gönderme kılavuzuna odaklanarak (‘e-posta’ ve ‘e-posta gönderme’ düğümlerine odaklanarak) veya Telegram bildirimleri kılavuzuna. Ancak, çoğu durumda yinelenen bildirimler almamak için ‘Alarm Güncellendi’ adlı ek bir çıkış ilişki tipi de olduğunu ve bu ilişki tipinin yok sayılması gerektiğini unutmamak önemlidir.
Şekil 4.10 – Kural zincirine send email ve send sms düğümleri eklenir.
Cihaz sağlama #
Cihaz tanımlama, bir cihazın imalat süreci sırasında veya sonrasında Fast IoT Platform’da otomatik olarak kaydolmasını sağlar.
Varlık Profilleri #
Genel Bakış #
Varlık Profillerini kullanarak, tenant yöneticisi birden fazla varlık için ortak ayarları yapılandırabilir. Herhangi bir anda, her varlık yalnızca bir profil içerebilir. Gelişmiş Fast IoT Platform kullanıcıları, varlık türünün Asset Profile’a tercih edildiğini fark etmiş olabilirler. Güncelleme betiği benzersiz Varlık Türleri temel alınarak otomatik olarak Asset Profili oluşturacak ve uygun varlıklara atayacaktır.
Varlık Profilleri, varlık verilerinin işlenmesi için Kural Motoru tarafından kullanılacak Kural Zinciri ve Sıra’yı seçme imkanı sağlar. Asset Profili içinde mevcut olan ayarları inceleyelim.
Varlık Profili Oluştur #
Bir Varlık Profili oluşturmak için, Profil sekmesinde Asset Profilleri’ne gidin ve yeni bir varlık profili eklemek için artı simgesine tıklayın.
Şekil 1 – Asset profili oluşturma.
Varlık Profili ayarları #
Kural Zinciri #
Varsayılan olarak, Ana Kural Zinciri, herhangi bir varlık için gelen tüm mesajları ve etkinlikleri işler. Ancak, birden çok varlık türünüz varsa, Ana Kural Zinciriniz giderek karmaşık hale gelebilir. Çok sayıda platform kullanıcısı, varlık türüne bağlı olarak belirli kural zincirlerine mesaj göndermek için Ana Kural Zincirini oluşturur.
Bu tekrarlayan görevin yükünden kurtulmak için Fast IoT Platform, varlıklarınız için özel bir Kural Zinciri belirleme özelliğini tanıttı. Yeni Kural Zinciri, varlık öznitelikleri güncellemelerini ve oluşturma / güncelleme / silme gibi varlık yaşam döngüsü olaylarını işleyecektir. Bu ayar, Varlık Profili ayrıntılarında bulunabilir.
Şekil 2 – Asset profiline kural ekleme.
Kuyruk (İşlem Önceliği) #
Varsayılan olarak, herhangi bir varlıktan gelen tüm giriş olayları Ana kuyruğa kaydedilir. API katmanı bu kuyruğa mesaj gönderir ve Kural Motoru yeni mesajları sorgular. Ancak, farklı varlıklar için farklı kuyruklar kullanmak isteyebilirsiniz. Örneğin, acil varlık verilerinin ve diğer varlıkların veya cihazların veri işleme işlemlerini izole etmek isteyebilirsiniz. Böylece, sisteminiz milyonlarca su sayacı tarafından oluşturulan yüksek yükünü bile yaşasa, önemli varlık yapılandırma değişiklikleri gecikmesiz olarak işlenecektir. Kuyrukları ayırma, farklı gönderim ve işleme stratejilerini özelleştirmenize de olanak tanır.
Bu seçenek, bir Varlık Profili oluştururken ve Varlık Profili ayrıntılarında kullanılabilir.
Şekil 3 – listeden mevcut bir kuyruğu seçin.
Edges #
Fast IoT Platform, bir dizi kenar yönetimi özelliğini desteklemek için Web UI ve REST API kullanır
Edge ekleme ve silme #
Fast IoT Platform bulut hizmeti, tenant yöneticisinin yeni kenarları kaydetmesine veya mevcut olanları kaldırmasına olanak tanır.
Şekil 1 – Edge ekleme.
Edge Id, key ve secret alma #
Tenant yöneticisi ve müşteri kullanıcıları, sırasıyla Kenar Kimliğini panoya kopyalamak için “Kenar Kimliğini Kopyala” düğmesini, Kenar anahtarını kopyalamak için “Kenar Anahtarını Kopyala” düğmesini ve Kenar gizli bilgisini kopyalamak için “Kenar Gizli Bilgisini Kopyala” düğmesini kullanabilirler.
Şekil 2 – Edge id,key ve secret kopyalama.
Müşterilere edge atama #
Tenant yöneticisi, belirli kenarları müşterilere atama yeteneğine sahiptir. Bu, müşteri kullanıcılarının REST API’leri veya Web UI kullanarak kenar verilerini almasını sağlar.
Şekil 3 – Müşterilere edge atama.
Varlıklara edge atama #
Tenant yöneticisi, aşağıdaki grupları/varlıkları edge’e atamak/atamaktan çıkarmak için şu fonksiyonlara sahiptir: kullanıcı(lar), varlık(lar), cihaz(lar), varlık görünümü(leri), gösterge paneli(ler) ve kural zinciri(leri).
Şekil 4 – Varlıklara edge atama.
Edge kural zincirleri ve kural düğümleri oluşturun #
Edge kural motoru oluşturma yetkisi tenant yöneticisine verilir.
Kural zincirini varsayılan yap #
Tenant yöneticisi, kenar kural zincirini varsayılan olarak ayarlamak için yeteneğe sahiptir.
Edge kural düğümleri ekle #
Tenant yöneticisi, ‘Push to Cloud’ ve ‘Push to Edge Nodes’ seçeneklerini dahil edebilir.
Edge niteliklerini yönet #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, edge yönetimi için sunucu taraflı özellikleri kontrol etme yeteneğine sahiptir.
Edge etkinliklerine göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, belirli bir edge ile ilgili olayları görüntülemek için ‘Olaylar’ sekmesini kullanabilirler. Her edge, buluttan kenara doğru mesaj geçmişini gösteren ‘Downlink’ olay türüne sahiptir.
Edge ilişkilerini yönetin #
Tenant yöneticisi ve kullanıcı grubu kullanıcıları, edge ilişkilerini yönetme yeteneğine sahiptirler.
Varlıklar #
Fast IoT Platform, Web UI ve REST API kullanarak aşağıdaki varlık yönetimi özelliklerini sağlar.
Varlık ekleme ve silme #
Tenant yöneticisi, Fast IoT Platform üzerinde yeni varlıklar kaydetme veya var olanları silme yeteneğine sahiptir.
Şekil 1 – Varlıklar sayfası.
Varlık Kimliği Alın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, ‘Varlık Kimliğini Kopyala’ düğmesine tıklayarak varlık kimliğini panoya kopyalayabilirler.
Şekil 2 – Varlık kimliğini kopyalama.
Varlıkları müşterilere atama #
Tenant yöneticisi, belirli bir kullanıcı grubuna varlıkları atama yetkisine sahiptir. Bu, kullanıcı grubuna kullanıcılarının REST API’leri veya Web UI aracılığıyla varlık verilerini almasını sağlar.
Şekil 3 – Varlıkları kullanıcı grubuna atama.
Varlık özniteliklerini yönetin #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık sunucu tarafı özniteliklerini yönetme yetkisine sahiptirler.
Şekil 4 – Varlık öznitelikleri.
Varlık alarmlarına göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık uyarılarını görüntüleme yetkisine sahiptirler.
Şekil 5 – Varlık alarmları.
Varlık etkinliklerine göz atın #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, belirli bir varlıkla ilişkili olayları ‘Etkinlikler’ sekmesini kullanarak görüntüleme yeteneğine sahiptirler. Yaşam döngüsü olayları ve istatistikler yakında mevcut olacaktır.
Varlık ilişkilerini yönetme #
Hem tenant yöneticisi hem de kullanıcı grubu kullanıcıları, varlık ilişkilerini yönetme yeteneğine sahiptirler.
Şekil 6 – Varlık ilişkileri.
Varlık Görünümleri #
Özelliklere Genel Bakış #
Varlık Görünümleri (EV’ler), Fast IoT Platform‘da yeni sürümle kullanılmaya başlanan bir özelliktir. Bu özellik, Fast IoT Platform kullanıcıları tarafından yoğun bir şekilde talep edildi. SQL veritabanı görünümleri gibi, altındaki tabloların dış dünyaya maruz kalma derecesini sınırlayan Fast IoT Platform EV’ler, Cihaz veya Varlığın telemetrisi ve özniteliklerinin müşterilere maruz kalma derecesini sınırlandırır. Bir tenant yöneticisi olarak, her bir Cihaz veya Varlık için birden fazla EV oluşturabilir ve bunları farklı kullanıcı gruplarına atayabilirsiniz.
Desteklenen kullanım durumları:
Özel cihaz veya varlık verilerini aynı anda birden fazla kullanıcı grubuyla paylaşma. EV’ler özelliği öncesinde Fast IoT Platform‘un güvenlik modeli kısıtlamaları nedeniyle mümkün değildi.
Belirli müşteri kullanıcılarının toplanan verileri (örneğin sensör okumaları) görüntülemesine izin verilirken, pil seviyesi, sistem hataları vb. hata ayıklama bilgileri gizlenebilir.
Cihaz Hizmeti (DaaS) modeli, farklı zamanlarda cihaz tarafından toplanan verilerin farklı müşterilere ait olması durumunda kullanılabilir.
Mimari #
Fast IoT Platform‘daki bir Varlık Görünümü (Entity View) aşağıdaki bilgileri içerir:
TenantId – görünüm sahibine bir bağlantıyı temsil eder;
CustomerId – görünüme erişimi olan müşteriye bir bağlantıyı temsil eder;
EntityId – hedef cihaza veya varlığa bir bağlantıyı temsil eder;
Ad ve tür – görüntüleme ve arama amaçlı kullanılan düzenli Fast IoT Platform varlık alanları;
Başlangıç ve bitiş zamanı – hedef cihaz telemetrisine erişimi sınırlamak için kullanılan zaman aralığını temsil eder. Müşteriler belirtilen aralığın dışındaki varlık telemetrisini göremezler;
Zaman serisi anahtarları – görüntüleyici tarafından erişilebilen zaman serisi veri anahtarları listesi;
Özellik anahtarları – görüntüleyici tarafından erişilebilen özellik adları listesi.
Şekil 1 – Öğe görünümü ekleme.
Şekil 2 – Öğe görünümü ekleme. Paylaşılan öznitelikler ve zaman serisi verileri eklendi.
Fast IoT Platform‘un telemetri ve nitelik güncellemelerini nasıl ele aldığını ve bu değişikliklerin Entity Views’e nasıl etki ettiğini anlamak önemlidir.
Zaman serisi verileri görünümü #
Fast IoT Platform verileri zaman serilerinde hedef varlık adına veritabanında saklar. Zaman serileri verilerinin hiçbiri Entity Views’e kopyalanmaz. Kullanıcı bir dashboard’a eriştiğinde veya bir REST API çağrısı yaptığında, aşağıdaki işlemler gerçekleştirilir:
İstek başlangıç ve bitiş zaman damgaları doğrulanır ve Entity View başlangıç ve bitiş zamanı içine sığacak şekilde ayarlanır. Bu nedenle, bir dashboard 1 yıllık veri almaya çalışırsa ancak EV yalnızca 6 ay veriye erişime izin verirse, işlem başarısız olacaktır.
İstek zaman serileri veri anahtarları, Entity View’de sağlanan zaman serisi veri anahtarlarına göre doğrulanır ve ayarlanır. Bu nedenle, bir dashboard, bu belirli Entity View için yasaklanmış telemetri anahtarlarını almayı denerseniz, istek başarısız olacaktır.
Nitelikler görünümü #
Fast IoT Platform‘da bir Varlık Görünümünü kaydettiğiniz veya güncellediğinizde, belirtilen öznitelikler otomatik olarak Hedef Varlıktan kopyalanır. Ancak, performansı artırmak için, Hedef Varlık öznitelikleri her öznitelik değişikliğinde Varlık Görünümüne yayılmaz. Otomatik yayılımı etkinleştirmek için, kural zincirinizde bir “görünüme kopyala” (copy yo view) kural düğümü yapılandırabilir ve “Öznitelikler Gönderildi” (Post attributes) ve “Öznitelikler Güncellendi” (Attributes Updated) mesajlarını yeni kural düğümüne bağlayabilirsiniz.
Şekil 3 – Root Rule Chain kural zinciri.
Gelecekteki iyileştirmeler
Fast IoT Platform Yol Haritası aşağıdaki planlı güncellemeleri içerir:
Cihaz görünümünde RPC (Uzaktan Prosedür Çağrısı) isteklerini etkinleştirme veya devre dışı bırakma seçeneği eklendi.
Belirli bir görünüm için erişilebilen veya yayılabilen belirli bir alarm listesinin yapılandırılmasına izin verilmesi.
Toplu Provizyon #
Genel Bakış #
Fast IoT Platform, CSV dosyası kullanarak çeşitli varlık türleri için toplu provizyon yapma yeteneği sağlar. Bunlar şunları içerir:
Cihazlar
Varlıklar
Farklı varlıklar aşağıdaki parametrelere sahip olabilir:
Varlıklar aşağıdaki parametrelere sahip olabilir:
Öznitelikler: Varlıklarla ilişkili statik ve yarı-statik anahtar-değer çiftleri. Örnekler arasında seri numarası, model ve firmware sürümü yer alır.
Telemetri verileri: Depolama, sorgulama ve görselleştirme için erişilebilir zaman serisi veri noktaları. Örnekler arasında sıcaklık, nem ve pil seviyesi yer alır.
Kimlik bilgileri: Cihazın, cihazda çalışan uygulamalar aracılığıyla Fast IoT Platform sunucusuna bağlanmak için kullandığı bilgiler.
Varlıkları İçe Aktar #
Birden çok varlık aynı anda oluşturulacaksa, her satırın belirli parametrelerle bir varlık oluşturması için bir CSV dosyası oluşturmak gereklidir. Belirli bir varlık için bazı ayarlar gerekli değilse, ilgili hücre boş bırakılabilir. Ayrıca, “Name”, “Type” ve “Label” adında önceden tanımlanmış sütun tipleri olan üç rezerve parametre adı vardır.
1. Adım: Bir dosya seçin #
Veri aktarmak için bir CSV dosyasını sisteme yükleyin.
Şekil 1 – Cihazı içe aktarma.
Şekil 2 – Aktarmak istediğiniz dosyayı yükleyin.
2. Adım: Yapılandırmayı içe aktarın #
Dosya yüklendikten sonra, aşağıdaki parametreler yapılandırılmalıdır:
CSV ayırıcısı: Veri satırındaki değerler arasındaki ayırma karakteri.
İlk satır sütun isimlerini içerir: Bu seçenek etkinleştirildiğinde, dosyanın ilk satırı bir sonraki adımda parametre isimleri için varsayılan değerler olarak kullanılacaktır.
Öznitelik/Gözetleme Verilerini Güncelle: Bu parametre etkinleştirildiğinde, isimleri Fast IoT Platform sistemindeki var olan varlıklarla eşleşen tüm varlıkların parametre değerleri güncellenecektir. Aksi takdirde, bu parametre devre dışı bırakıldığında, isimleri Fast IoT Platform sisteminde zaten var olan tüm varlıklar için bir hata mesajı görüntülenecektir.
Şekil 3 – CSV sınırlayıcı “,” olmalıdır.
3. Adım: Sütun türünü seçin #
Bu aşamada, yüklenen dosyanın sütunları ile Fast IoT Platform’undaki ilgili veri tipleri arasında bir bağlantı kurmak gerekir. Ayrıca, öznitelik/gözetleme anahtarının varsayılan adı belirlenebilir veya değiştirilebilir.
Şekil 4 – Sütun türünü seçin.
Şekil 5 – Sütun türü Access token olabilir.
4. Adım: Yeni varlıklar oluşturma #
Input verisi işleniyor.
5. Adım: Tamamlandı #
Sorgu işleminin sonucunda oluşan çıktı, oluşturulan/güncellenen varlıkların toplam sayısını ve işlem sırasında meydana gelen hataların sayısını gösterir.
Şekil 6 – İçe aktarma tamamlandı.
Şekil 7 – Aktarılan cihazlar oluşma zamanına göre sıralanmıştır.
Kullanım örneği #
Varsayalım ki 10 cihazı aynı anda oluşturmak ve bunlara erişim belirteci atamak istiyoruz.
Örnek dosya:
name,type,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8,Data9,Data10 Device 1,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF45 Device 2,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF46 Device 3,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF47 Device 4,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF48 Device 5,testImport,123,,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF49 Device 6,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF50 Device 7,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF51 Device 8,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF52 Device 9,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF53 Device 10,testImport,123,test,TRUE,FALSE,123.55,test,test,test,test,AbfdgrRetGF54 |
Not: Dosya en az iki sütun içermelidir: varlık adı ve tür.
CSV dosyası düzenleyici kullanılarak oluşturulan dosya, 10 cihaz için veriler içerir. Ayrıca, Device 5 için “Data2” parametresi atlandı, Data2 değeri bu cihaz için oluşturulmayacaktır.
Dosya yükleme #
Cihazlar -> Cihazı içe aktar’a gidin
Örnek dosya yükleyin: test-import-device.csv
Yapılandırmayı içe aktar #
Yüklenen dosyayı yapılandırmak için şu adımları izleyin:
CSV ayırıcısı: Düzenleyicinizde kullanılan ayırma simgesini seçin. Örnek dosyada ayırıcı “,” olarak kullanılmıştır.
İlk satır sütun isimlerini içerir: Örnek dosya sütun isimleri içerdiği için bu seçenek seçili bırakılmalıdır.
Öznitelik/göstergeleri güncelle: Fast IoT Platform’da var olan cihazların özelliklerini güncellemek yerine yeni cihazlar ekleyeceğimiz için bu seçeneği işaretlemeyin.
Sütun türünü seçin #
Tablonun ilk sütunu yüklenen dosyanın ilk satırını gösterir. Önceki adımda “İlk satır sütun adlarını içeriyor” kutucuğu seçildiği için üçüncü sütun için değerler zaten ilk satıra göre oluşturulmuştur.
Değişiklik yapmak için, üçüncü satırın sütun türünü “Timeseries” olarak değiştirin ve özellik/telemetri anahtar değerini “Sıcaklık” olarak ayarlayın. Tablodaki son satır, erişim anahtarını belirler, bu nedenle “Sunucu” özelliğini “Erişim anahtarı” olarak değiştirin.
Not: “Name”, “Type” ve “Access token” sütun türleri sadece bir satır için seçilebilir.
İçe aktarma tamamlandı #
Oluşturma işlemi tamamlandıktan sonra, istatistik bilgileri sunulacaktır. Verilen örnekte, 8 cihaz başarıyla oluşturulurken, 2 cihaz oluşturma işlemi sırasında hata ile karşılaştı. Hatanın nedeni, örnek dosyadaki Cihaz 1, Cihaz 2 ve Cihaz 3’ün aynı belirteci taşımasıdır, bu Fast IoT Platform sistemi tarafından izin verilmemektedir.
Kural Zincirleri #
Kural Zincirleri Yönetim UI sayfası yapılandırılmış tenant kural zincirleri tablosunu gösterir. Aşağıdaki işlemleri yapabilirsiniz:
Yeni Kural Zinciri Oluşturma veya İçe Aktarma
Kural Zincirini JSON’a Dışa Aktarma
Kural Zincirini Kök Kural Zinciri olarak İşaretleme
Kural Zincirini Silme
Şekil 1 – Kurallar sayfası.
Kural Zincirlerini içe/dışa aktarma #
Kural Zinciri dışa aktarma #
Bir kural zincirini JSON formatında dışa aktarmak için, Rule Chains sayfasına gitmeniz ve dışa aktarmak istediğiniz belirli kural zincirini bulmanız gerekir. Ardından, kural zincirine karşılık gelen satırda bulunan dışa aktarma düğmesine tıklamanız yeterlidir. Bu, kural zinciri yapılandırmasını JSON formatında kaydetmenizi sağlar ve ihtiyaç duyulduğunda aynı veya farklı bir Fast IoT Platform örneğine aktarılabilir.
Şekil 2 – Kuralı dışa aktarma.
Kural içe aktarma #
Bir kural zincirini içe aktarmak için, Rule Chains sayfasına gidip Rule chains tablosunun sağ üst köşesindeki “+” düğmesini bulmanız gerekiyor. Bu düğmeye tıkladığınızda açılan menüden “Import rule chain” seçeneğini seçebilirsiniz. Ardından, içe aktarmak istediğiniz kural zinciri yapılandırmasını içeren JSON dosyasını seçebilirsiniz.
Şekil 3 – Kuralı içe aktarma.
Not 1: Bir kural zinciri içe aktarıldığında, varsayılan olarak bir kök kural zinciri olmayacaktır.
Not 2: İçe aktarılan Kural Zinciri, diğer Kural Zincirlerine başvurular içeriyorsa (Kural Zinciri düğümü aracılığıyla), Kural Zincirini kaydetmeden önce bu referansları güncellemeniz gerekecektir.
Sorun giderme #
Kural zinciri içe aktarılırken, değişiklikleri kaydetmeden önce güncellenmesi gereken Kural Zinciri düğümü aracılığıyla diğer Kural Zincirlerine yapılan referanslar gibi bazı sorunlar olabilir.
Gösterge Panelleri #
Önkoşullar #
Bu kılavuzun daha hızlı anlaşılabilmesi ve öğrenme sürecinin hızlandırılabilmesi için, Fast IoT Platform cihazları ve gösterge panoları hakkında bilgi sahibi olmak için öncelikle Başlangıç Kılavuzu‘nu takip etmeniz önerilir.
Giriş #
Fast IoT Platform, panolar oluşturma ve yönetme özelliği sunar.
Her bir panel, birçok bileşeni içerebilir. Panolar, cihazlar, varlıklar vb. gibi birçok varlıktan verileri görüntülemek için kullanılır ve müşterilere atanabilirler.
Bu kılavuz, panoların oluşturulması ve yönetimi ile ilgili ana kavramları ve çeşitli yapılandırma ayarlarını kapsayacaktır.
Görüntü Paneli ekleme #
Eğer yeni bir gösterge paneli oluşturmak istiyorsanız, şu adımları takip edin:
Sol taraftaki ana menü aracılığıyla Gösterge Panelleri bölümüne erişin.
Sağ üst köşede bulunan “+” işaretini arayın ve üzerine tıklayın.
Yeni gösterge paneliniz için bir başlık sağlamanız gereken bir iletişim kutusu açılacaktır. İsteğe bağlı olarak bir açıklama da ekleyebilirsiniz.
Son olarak, işlemi tamamlamak için “Ekle” düğmesine tıklayın.
Şekil 3.1.1 – Gösterge Paneli Oluştur
Şekil 3.1.2 – Gösterge Paneli ekle.
Herkese açık hale getir #
Bir gösterge panelini herkese açık olarak paylaşmak ve bir bağlantı almak için şu adımları izleyin:
Gösterge Panelleri bölümüne gidin.
Paylaşmak istediğiniz gösterge panelini seçin ve yanındaki “Paylaş” simgesine tıklayın.
Gösterge panelini herkese açık hale getirmek istediğinizi onaylamak için açılan iletişim kutusunda “Evet”e tıklayın.
Gösterge paneline tıklayarak ayrıntılarını açın.
Gösterge paneli ayrıntılarında, herkese açık bağlantının yanındaki “Kopyala” düğmesine tıklayın.
Şimdi, kopyaladığınız bağlantıyı kullanarak gösterge panelini başkalarıyla paylaşabilirsiniz.
Diğerlerinin verilerine erişebilmeleri için ilgili cihazları, varlıkları ve varlık görünümlerini de herkese açık hale getirdiğinizden emin olmayı unutmayın.
Şekil 3.1.3 – Gösterge panelini herkese açık hale getirme.
Şekil 3.1.4 – İşaretli ikon ile paneli tekrar gizli hale getirebilirsiniz.
Genel Bakış #
Bir gösterge paneli ile çalışmaya başlamadan önce, hangi özelliklerin hangi eylemlerden sorumlu olduğunu anlamak için arayüzüyle tanışın.
Başlık #
Düzenlenebilir gösterge paneli başlığı, gösterge panelinin sol üst köşesinde yer alır. Gösterge paneli başlığı, uygulama gezinmesini kolaylaştırmak için uygulama kırıntıları içinde de görüntülenir. Başlığı gösterge paneli ayarlarından değiştirebilir ve ayarlayabilirsiniz.
Düzenleme modu #
Gösterge paneli düzenleme moduna girmek için ekranın sağ alt köşesinde bulunan “kalem” düğmesini kullanın. Düzenleme moduna geçtikten sonra, gösterge paneli araç çubuğundan yeni widget’lar ekleyebilir ve denetimlere erişebilirsiniz. Ayrıca, yapılan değişiklikleri kaydetmek için “Değişiklikleri Uygula” düğmesini veya kaydedilmemiş değişiklikleri geri almak için “Değişiklikleri Reddet” düğmesini kullanabilirsiniz.
Şekil 3.2.1 – Düzenleme moduna girin.
Şekil 3.2.2 – Değişiklikleri kaydedin veya iptal edin.
Araç Çubuğu #
Dashboard araç çubuğu, durumları yönetme, düzenlemeleri yapma, ayarları, takma adları, filtreleri yönetme ve ilgili simgeleri kullanarak zaman penceresini yapılandırma gibi çeşitli özelliklere erişim sağlar.
Bazı simgeler (istatistikler, düzen, ayarlar), sadece “düzenle” modunda görünür. Diğer tüm simgeler ise “görünüm” ve “düzenleme” modunda görülebilir. Ayarlar kullanılarak, bu simgeler gizlenebilir veya varsayılan olarak araç çubuğunun küçültülmüş olacak şekilde yapılandırılabilir.
Şekil 3.2.3 – Dashboard araç çubuğu.
Şekil 3.2.4 – Dashboard düzenleme modu araç çubuğu.
Varlık Takma Adları #
Varlık takma adları (entity aliases), panoda hangi varlıkların (cihazlar, varlıklar vb.) görüntüleneceğini belirler. Bir takma adı, bir veya daha fazla cihaza referans olarak ele alınabilir ve bu referanslar statik veya dinamik olabilir.
Bir statik takma adı örneği, tek varlık takma adıdır. Bir varlık, takma adı iletişim kutusunda bir kez yapılandırılır. Cihaza erişim izni olan tüm kullanıcılar aynı verileri görür.
Bir dinamik takma adı örneği, cihaz türü takma adıdır. Belirli bir türdeki tüm cihazları (örneğin “Termometre”) gösterir. Bu takma adı dinamiktir çünkü cihaz listesi, panoya erişen kullanıcıya bağlıdır. tenant yöneticisi olarak giriş yaptıysanız, bu takma adı tüm termometre cihazlarına çözülecektir. Ancak, müşteri kullanıcısı olarak giriş yaptıysanız, bu takma adı, o müşteriye atanmış/ait termometre cihazlarına çözülecektir.
Şekil 3.2.4 – Varlık takma adı (Öğe kısa adı) ekleme.
Şekil 3.2.5 – Varlık adı bilgileri doldurulur.
Şekil 3.2.6 – Varlık adı eklendi. Kaydedin.
Varlık Filtreleri #
Varlık filtreleri, varlık takma adı tarafından çözülen varlık listesini filtrelemek için belirli kriterleri belirlemenizi sağlar. İllüstrasyon olarak, binlerce termometre cihazınızın olduğu ve belirli koşulları karşılayanları, örneğin belirli bir model ve pil seviyesine sahip olanları görüntülemek istediğinizi düşünelim. Termometre modelinin bir özellik olarak ve pil seviyesinin bir zaman serisi verisi olarak depolandığını varsayalım. Bu durumda, “DHT22” modeline sahip ve pil seviyesi %20’den düşük olanları kontrol eden bir filtre tanımlayabilirsiniz.
Filtreyi eklerken, Filtre adının yanındaki kaydırıcıyı ayarlayarak kullanıcılara düzenleme izni verme seçeneğiniz olduğuna dikkat etmek gerekmektedir.
Şekil 3.2.7 – Varlık filtresi ekleme.
Şekil 3.2.8 – Anahtar filtre ekleme.
Şekil 3.2.9 – Modelin “DHT22” olup olmadığını kontrol eden filtre.
Şekil 3.2.9 – Yeni bir anahtar filtre ekleme.
Şekil 3.2.10 – Bataryanın “20” seviyesinden düşük olup olmadığını kontrol eden filtre.
Şekil 3.2.11 – Anahtar filtreler eklendikten ‘ekle’ butonuna basılarak filtre eklenir.
Şekil 3.2.12 – Eklenen filtre.
Filtreler, bir öznitelik veya zaman serisi anahtarının en son değerine yalnızca uygulanır. Bu özellik, tarihsel zaman serisi değerlerini “filtrelemek” için kullanılmamalıdır.
Bir anahtar için birden fazla mantıksal ifadeyi birleştirerek “karmaşık” filtreler oluşturabilirsiniz. Örneğin: “(A > 0 ve A < 20) veya (A > 50 ve A < 100)”. Ayrıca, “ve” operatörünü kullanarak farklı anahtarlar için iki ifadeyi birleştirebilirsiniz, örneğin: “(A > 0 ve A < 20) ve (B > 50 ve B < 100)”.
Şu anda, “(A > 0 ve A < 20) veya (B > 50 ve B < 100)” gibi farklı anahtarları birleştirmek için “veya” operatörü kullanılamamaktadır.
Widget’lar #
Widget türleri #
Fast IoT Platform’daki tüm IoT gösterge panelleri, Widget Kütüphanesi’nde bulunan widget’lar kullanılarak oluşturulur. Her widget, veri görselleştirme, uzaktan cihaz kontrolü, alarm yönetimi ve özel HTML içeriği görüntüleme gibi çeşitli son kullanıcı işlevleri sağlar.
Beş tür widget bulunmaktadır:
Zaman serisi widget’ları belirli bir zaman aralığı için verileri görüntülemek için kullanılır. Bu pencere gerçek zamanlı olabilir (örneğin son 24 saat) veya geçmişe yönelik olabilir (örneğin Aralık 2020). Çizelge widget’ları, zaman serisi verilerini görüntülemek için bir örnektir ve özellikle özellik verileri yerine zaman serisi verilerini görüntülemek üzere tasarlanmıştır.
En son değer widget’ları belirli bir özniteliğin veya zaman serisi anahtarının en son değerlerini görüntüler. Örneğin, bir cihaz modeli veya son sıcaklık okuması.
Kontrol widget’ları, cihazlarınıza Uzak Yöntem Çağrısı (RPC) komutları göndermenize olanak tanır ve böylece çalışmalarının çeşitli yönlerini kontrol etmenizi sağlar. Örneğin, termostat cihazında istenen sıcaklığı ayarlamak için kontrol widget’larını kullanabilirsiniz.
Alarm widget’ları, cihazlar veya Fast IoT Platform sistemi tarafından üretilen alarmları görüntülemenize olanak tanır.
Statik widget’lar, değişkenliği sınırlı olan verileri görüntülemek için tasarlanmıştır; örneğin, bir kat planı veya sık sık değişmeyen şirket bilgileri.
Gösterge paneline widget ekleme #
Fast IoT Platform panonuzda bir widget eklemek için şu adımları izlemelisiniz:
Düzenleme moduna geçmek için ekranın sağ alt köşesindeki kalem simgesine tıklayın.
Ekranın ortasındaki büyük işarete veya ekranın sağ alt köşesindeki “+” simgesine tıklayın ve “Yeni widget ekle” iletişim kutusunu açın.
“Ayaklıklar” gibi bir widget paketi seçin.
Aranan widget’i mümkün olan en kısa sürede bulmak için arama çubuğunu kullanın, büyüteç simgesine tıklayın ve widget adını girin. Örneğin, “Zaman Serisi Çizgi Grafiği” widget’ı seçin ve “Widget Ekle” iletişim kutusunu açmak için üzerine tıklayın.
Şekil 4.1 – Düzenleme modunu aç.
Şekil 4.2 – Yeni gösterge oluştur.
Şekil 4.3 – Charts gösterge paketini seçin.
Şekil 4.4 – Timeseries Line Chart göstergesini seçin.
Widget iletişim kutusu ve ayarları #
Fast IoT Platform’daki bir widget, widget türü, bir veya daha fazla veri kaynağı, temel ve gelişmiş ayarlar ve ekleyebileceğiniz işlemlerden oluşur. Bu nedenle, “Widget Ekle” iletişim kutusu bir widget tanımlamak için dört sekme içerir. Veri kaynağı yapılandırması zorunlu olan tek yapılandırmadır. Çoğu durumda, diğer yapılandırma sekmelerini varsayılan değerlerinde bırakabilirsiniz.
1. Widget veri ayarları #
Widget veri ayarları, bir veya birden fazla veri kaynağı eklemek için kullanılır. Bir veri kaynağı, bir veri kaynağı türü, bir varlık takma adı, isteğe bağlı bir filtre ve veri anahtarlarının (varlık zaman serileri) bir listesi kombinasyonundan oluşur. Veri kaynağı, widget’ın hangi varlıkları kullanması gerektiğini (takma ad ve filtre bazında) ve bu varlıklar için hangi veri anahtarlarının alınması gerektiğini belirler.
Şekil 5.1 – Gösterge ekle.
Örneğin, “Termometre” cihazlarının modeli “DHT22” olan ve pil seviyesi %20’den az olan tüm cihazlar için sıcaklık ve nem değerlerini almak için bir veri kaynağı yapılandırmak istediğimizi varsayalım. Önceki bölümde yapılandırdığımız “Termometre” takma adını ve “DHT22 Termometrelerinin Düşük Pil Seviyesi” filtresini kullanacağız.
Şekil 5.2 – Veri anahtarları eklenir.
Yukarıdaki örnekte, “sıcaklık” ve “nem” iki veri anahtarıdır. Veri kaynağı için kullanılabilen veri anahtarı listesi widget türüne bağlıdır:
Zaman serisi widget’ları, veri kaynağındaki zaman serisi veri anahtarlarını ve zaman aralığını seçmenizi sağlar.
En son değer widget’ları, zaman serisi, öznitelikler ve varlık alanları seçmenizi sağlar.
Statik ve kontrol widget’ları veri kaynağı gerektirmez.
Alarm widget’ları, zaman serisi, öznitelikler, varlık ve alarm alanları da dahil olmak üzere tüm veri anahtarlarını seçmenize olanak tanır. Ek olarak, zaman aralığı ve alarm filtresi yapılandırabilirsiniz.
Gereken zaman serisi veya öznitelik anahtarını veritabanında henüz yoksa, yine de anahtarı veri kaynağına ekleyebilirsiniz ve cihaz verileri Fast IoT Platform’a gönderildiğinde widget hemen verileri görüntülemeye başlayacaktır.
Şekil 5.3 – Yeni veri anahtarı oluşturulur.
Ayrıca, değer yanında görüntülenecek sembolü seçme ve virgülden sonra kaç basamak gösterileceğini belirleme seçeneğiniz vardır. Bu ayarlar, tüm eksenler için aynı ayarları uygulamak istiyorsanız kullanışlıdır. Örneğin, birden fazla cihaz için sıcaklık okumaları gösteriyorsanız, ‘°C’ veya ‘°F’ sembolünü ekleyebilirsiniz. Ancak sıcaklık ve nem gibi farklı veri türlerini görüntülüyorsanız, bu veri anahtarlarını ayrı ayrı veri anahtarı ayarları kullanarak yapılandırmanız gerekir.
Şekil 5.4 – Veri yapılandırmaları
Başka bir seçeneğiniz de, widget’ın gelen veri olmadığında gösterilecek alternatif bir mesajı tanımlamaktır. Veri geldiğinde, mesaj kaybolur ve gelen veri görüntülenir.
Şekil 5.5 – Veri olmadığında görüntülenecek mesaj
Şekil 5.6 – Sonuç
Şekil 5.7
2. Widget veri kaynağı türleri #
Varlık veri kaynağı
Belirli bir varlık takma adından veri almak için Entity veri kaynağı özelliğini kullanabilirsiniz. İşte bir dashboard bileşenindeki tüm mevcut cihazları görüntülemek için bu özelliği nasıl kullanacağınızın örneği:
Panoyu açın ve düzenleme moduna girmek için ekranın sağ alt köşesindeki kalem simgesine tıklayın.
Araç çubuğunda bulunan “Entity takma adı” düğmesine tıklayın, ardından Entity takma adı iletişim kutusunun sol alt köşesinde “Takma adı ekle” seçeneğini seçin.
“Takma adı ekle” iletişim kutusunda, bir takma adı belirleyin ve filtre tipini “Varlık türü” olarak seçin. İlgili varlık türünü seçin (bu örnekte Cihaz varlık türünü kullanın). Takma adı oluşturmak için “Ekle” düğmesine tıklayın.
Son olarak, iletişim kutusunun sağ alt köşesindeki “Kaydet” düğmesine tıklayarak oluşturulan takma adını kaydedin.
Takma adı oluşturulduktan sonra, belirtilen varlık türü ile ilgili verileri görüntülemek için bir veri kaynağı olarak kullanabilirsiniz. Bu örnekte, takma adını kullanarak dashboard bileşenindeki tüm mevcut cihazların bir listesini görüntüleyebilirsiniz.
Bir takma ad ekledikten sonra, verileri görüntülemek için bir bileşen eklemeniz gerekiyor:
Ekranın ortasındaki büyük işarete tıklayın ve “Yeni bileşen ekle” seçeneğini seçin.
Kartlar bileşen paketini seçin. Bir varlık listesi görüntülemek için en uygun bileşen, Entity table bileşenidir, bu nedenle onu seçin.
Şimdi, bir veri kaynağı eklemenin zamanı geldi:
Varlık türünü seçin, önceden eklenen varlık takma adını seçin. İletişim kutusunun sol alt köşesindeki “Kaydet” düğmesine tıklayın.
Bir veri kaynağı özelleştirdikten sonra, “Widget ekle” iletişim kutusunun sol alt köşesindeki “Ekle” düğmesine tıklayın.
Varlık veri kaynağı kullanılarak tüm cihazları görüntüleyen bir bileşen eklenmiştir.
Varlık sayısı veri kaynağı
Fast IoT Platform, yeni bir özellik olan Entity count veri kaynağını ekledi. Bu özellik, kullanıcıların varlıkların sayısını bir bileşende görüntülemelerine ve böylece cihazların, varlıkların vb. sayısını kolayca belirlemelerine olanak tanır.
Bu özelliği göstermek için mevcut cihazların toplam sayısını görüntüleyen bir bileşen oluşturalım:
Bir gösterge paneli açın ve ekranın alt sağ köşesindeki kurşun kalem simgesine tıklayarak düzenleme moduna geçin.
Araç çubuğundaki “Varlık alias” düğmesine tıklayın ve ardından Varlık alias iletişim kutusunun sol alt köşesinde “Alias ekle” seçeneğini seçin.
“Alias ekle” iletişim kutusunda bir alias adı belirtin ve “Varlık türü” filtresi türünü seçin. İlgili varlık türünü seçin (bu örnekte Cihaz varlık türünü kullanın). Alias oluşturmak için “Ekle” düğmesine tıklayın.
Son olarak, iletişim kutusunun sağ alt köşesinde bulunan “Kaydet” düğmesine tıklayarak oluşturulan alias’ı kaydedin.
Varlık alias’ı oluşturduktan sonra, varlıkların sayısını görüntülemek için Entity count veri kaynağını kullanabilirsiniz. Bunun için:
Ekranın ortasındaki “Yeni bileşen ekle” düğmesine tıklayın.
Kartlar bileşen paketini seçin ve Entity count bileşenini seçin.
“Varlık türü” açılır menüsünden önceden oluşturulan varlık alias’ı seçin.
Bileşeni istediğiniz gibi özelleştirin ve eklemek için “Ekle” düğmesine tıklayın.
Artık daha önce oluşturduğunuz varlık alias’ına dayalı olarak mevcut cihazların toplam sayısını görüntüleyen bir bileşeniniz var.
Alias ekledikten sonra verileri görüntülemek için bir widget eklemeniz gerekiyor:
Ekranın ortasındaki “Yeni widget ekle” düğmesine tıklayın.
Kartlar widget paketini seçin. Aradığınız widget’ı hızlı bir şekilde bulmak için arama çubuğunu kullanın. Bunun için, büyüteç simgesine tıklayın ve aradığınız widget’ın adını yazın. Var olan varlıkların sayısını görüntülemek için Simple card widget’ı kullanabilirsiniz.
Widget’ı istediğiniz gibi özelleştirin ve eklemek için “Ekle” düğmesine tıklayın.
Yeni bir veri kaynağı eklemek için şu adımları izleyin:
“Varlıkların sayısı” türünü seçin ve daha önce eklenen varlık takma adını seçin.
Etiketi değiştirmek isterseniz, kalem simgesine tıklayın. Açılan diyalog kutusunda etiketin adını değiştirebilir, rengini ayarlayabilir, verinin yanında görüntülenecek benzersiz bir simge kişiselleştirebilir ve ondalık basamak sayısını belirtebilirsiniz. Değişiklikleri dialog penceresinin sol alt köşesindeki “Kaydet” düğmesine tıklayarak kaydedin.
Veri kaynağının özelleştirilmesini tamamladıktan sonra, “Widget Ekle” iletişim kutusunun sol alt köşesindeki “Ekle” düğmesine tıklayın.
Cihaz sayım widget’ı eklenmiş olsa da, varsayılan widget özel simgesi (C°) hala mevcut. Kaldırmak için şu adımları izleyin:
Widget düzenleme moduna girin.
Veri sekmesine gidin.
Özel simge satırını bulun ve mevcut özel simgeyi silin veya istediğiniz simgeyle değiştirin.
Ayrıca ondalık noktadan sonra kaç basamak olacağını belirtebilirsiniz.
Değişiklikleri yaparken, diyalog penceresinin sağ üst köşesindeki turuncu onay işaretine tıklayarak kaydetmeyi unutmayın.
Şimdi elimizde mevcut olan cihazların toplam sayısını gösteren bir araç bulunuyor.
İşlev veri kaynağı
Veri olmadığında ancak bir aracın görselleştirmesini test etmek istediğinizde, işlev veri kaynağı kullanılır. Örneğin, bir takma ad atamamış veya herhangi bir telemetri almamış olsanız bile, bir aracın nasıl veri gösterdiğini görmek isteyebilirsiniz.
Veri göstermek için aşağıdaki adımlar izlenmelidir:
Ekranın ortasındaki “Yeni araç ekle” simgesine tıklayarak bir araç ekleyin.
Kartlar araç paketini seçin.
Varlıkların görselleştirilmesi için Enity table aracını seçin, çünkü en uygun seçenek budur.
Şimdi sistemimize bir veri kaynağı eklemenin zamanı geldi. Bunun için, Varlık türünü seçin ve önceden eklenmiş olan varlık takma adını seçin. Ardından, seçiminizi onaylamak için iletişim kutusunun sol alt köşesinde bulunan “Kaydet” düğmesine tıklayın.
Veri kaynağını istediğiniz gibi özelleştirdikten sonra, ilerlemek için Ekle widgetı iletişim kutusunun sol alt köşesinde bulunan “Ekle” düğmesine tıklayın. Belirli veri kaynağından veri gösterme işlevine sahip widgetı kullanarak, widgetın bilgileri nasıl sunacağını belirleyebiliriz.
3. Veri anahtarları #
Veri anahtarı, widget’ta kullanmak istediğiniz zaman serisi, öznitelik veya varlık alanını belirtmek için kullanılır. Veri anahtarının tanımı, türünü (zaman serisi, öznitelik veya varlık alanı) ve gerçek anahtar değerini içerir.
Mevcut öznitelik anahtarları listesi, cihazınızın veya varlığınızın tüm istemci, sunucu ve paylaşılan özniteliklerinin bir listesidir.
Mevcut zaman serisi anahtarları listesi, cihazlarınızın Fast IoT Platform’a rapor ettiği zaman serisi verilerine veya kural motoru veya REST API aracılığıyla kaydettiğiniz zaman serisi verilerine bağlıdır.
Varlık alanları listesi varlık türüne bağlıdır ve gelecekte genişletilebilir:
Cihazlar, varlıklar ve varlık görünümleri şu alanlara sahiptir: oluşturma zamanı, varlık türü, adı, türü, etiketi ve ek bilgi.
Kullanıcının şu alanları vardır: oluşturulma zamanı, adı, soyadı, e-posta ve ek bilgi.
Müşterinin şu alanları vardır: oluşturma zamanı, varlık türü, e-posta, başlık, ülke, eyalet, şehir, adres, posta kodu, telefon ve ek bilgi.
3.1. Temel veri anahtarı ayarları
Temel veri anahtarı ayarlarında, birkaç parametreyi özelleştirmek için seçenekleriniz vardır. Bu parametreler arasında anahtarın adını ve rengini değiştirme, etiket adını değiştirme, özel bir sembolü değerin yanında gösterme (yalnızca Zaman Serisi anahtarı için geçerli), gösterilecek ondalık basamak sayısını belirleme ve “Post işleme işlevini kullan” seçeneğini etkinleştirme veya devre dışı bırakma yer alır.
Örneğin, Kartlar paketindeki Varlıklar tablosunun temel veri anahtarı ayarlarını inceleyerek konuyu daha iyi anlayabiliriz.
Anahtar (Key). Anahtarın adını değiştirme yeteneğine sahipsiniz. Belirli bir anahtarla ilişkili verileri göstermek için “Anahtar” alanında anahtar adını belirtmeniz gerekmektedir. Anahtar adını değiştirdikten sonra “Kaydet”e tıklayın. Önemli bir not olarak belirtmek gerekir ki, üç tür anahtar vardır: Öznitelikler (Attributes), Zaman Serileri (Time Series), Varlık Alanı (Entity Field) ve Alarm Alanı (yalnızca Alarm widget’ı için). Verilerin doğru şekilde görüntülenmesi için, anahtar adını aynı türdeki mevcut bir anahtarla eşleştirmek önemlidir. Eğer istenen zaman serisi veya öznitelik anahtarı henüz veritabanında mevcut değilse, yine de veri kaynağına anahtar ekleyebilirsiniz. Cihaz, veriyi Fast IoT Platform’a gönderdiği anda widget, verileri göstermeye başlayacaktır.
Etiket Adı (Label). Widget’da veri sütunu adını özelleştirmek için, etiket adını değiştirebilirsiniz. Etiket için istediğiniz adı girin ve diyalog kutusunun alt sağ köşesinde bulunan “Kaydet” düğmesine tıklayın.
Renk (Color). Bir widget’taki her anahtar (key) farklı bir renk atanmıştır. Bazı widget’larda (örneğin, Grafik), widget’ta görüntülenen grafik çizgisinin rengi anahtarın rengiyle eşleşir. Anahtarın rengini değiştirmek için, anahtarla ilişkili renkli daireye tıklayın, istenen renk etiketini seçin ve “Seç”e tıklayın.
Özel sembolün değerin yanında görüntülenmesi için widget’ınızda istediğiniz sembolü belirleyebilirsiniz. İlgili alana istediğiniz karakteri girin ve “Kaydet”e tıklayın.
Ondalık ayırıcının sonrasında görüntülenecek basamak sayısını özelleştirmek isterseniz, ilgili alanda istediğiniz sayıyı belirtebilirsiniz. İstediğiniz değeri girdikten sonra, “Kaydet”e tıklayın.
Anahtarın Toplanması
Fast IoT Platform’da en son değerler widget’ları varsayılan olarak bir zaman penceresine sahip değildir. Ancak, En Son Değerler widget’ındaki herhangi bir veri anahtarında birleştirme işlevselliğini etkinleştirirseniz, zaman penceresi kontrolü görüntülenir. Göstermek istediğiniz her telemetri anahtarı için ayrı ayrı birleştirme yapabilir ve aynı zamanda veritabanında saklamak zorunda kalmazsınız. Zaman penceresi yapılandırması, gerçek zamanlı aralıklar (Mevcut Saat/Gün/Ay) ve ‘Geçmiş’ zaman aralıkları ile sınırlıdır. Performans nedenleriyle, ‘son 30 dakika’ veya ‘son 24 saat’ gibi gerçek zamanlı aralıklar desteklenmez. Birleştirme işlevselliğini telemetri olarak saklamak isterseniz, aşağıdaki bağlantıda daha fazla ayrıntı bulabilirsiniz.
Toplama seçenekleri:
Min veya Max: Bu işlev belirtilen aralıktaki minimum veya maksimum değeri seçer. Güç kablosundaki güç dalgalanmaları, hava kirliliği düzeyleri, ekipman yükü vb. gibi zirve negatif veya pozitif değerleri tespit etmek için kullanılabilir.
Average (Ortalama): Bu işlev, seçilen aralıktaki telemetrideki ölçümlerin toplamını alarak bu değeri aynı aralıktaki telemetri sayısına böler ve böylece aritmetik ortalamayı hesaplar. Örneğin, haftalık yakıt tüketimini, desibel cinsinden akustik gürültüyü, fan hızını, sinyal kalitesini vb. hesaplamak için kullanılabilir.
Sum: Bu fonksiyon, belirtilen dönem için tüm telemetri verilerini özetler. Toplam kilometrede araç kilometre sayısının hesaplanması, su tüketiminin izlenmesi, boşta kalma süresinin takibi gibi çeşitli amaçlar için kullanılabilir.
Sayım (Count): Bu işlev, seçilen dönemde iletilen toplam mesaj sayısını hesaplar. Pil gücüyle çalışan cihazların yapılandırılması ve optimize edilmesi, sensör aktivasyon hassasiyetinin değerlendirilmesi vb. gibi amaçlar için kullanışlı olabilir.
Delta fonksiyonu, belirli bir zaman aralığı için toplanan değerler ile ilgili zaman penceresi aralığı için karşılık gelen değerler arasındaki farkı hesaplamak için kullanışlı bir araçtır.
“Karşılaştırma periyodu“, geçmiş aralığı referans alarak seçilen seçeneğe göre ayarlayan bir parametredir. Varsayılan seçenek olan “Önceki aralık” gibi birkaç seçenek mevcuttur. Bu seçenek, sadece zaman aralığını değil, “Geçerli gün” veya “Geçerli gün şimdiye kadar” gibi aralık türlerini de dikkate alır.
Örneğin, seçilen seçenek “Geçmiş – Şu ana kadar geçen ay” ise, aralık 1.09.22 ile 25.09.22 arasında olacak ve önceki aralık 1.08.22 ile 25.08.22 arasında olacaktır.
‘Day ago‘ seçeneği, geçmiş aralığın başlangıcından ve sonundan 24 saat çıkarır. Örneğin, ‘Geçerli gün’ ve ‘Delta – Gün önce’ seçenekleri için su tüketimini hesaplarken:”
“Week ago” ifadesi, geçerli gün aralığından 168 saat önceki bir aralığı ifade eder. Örneğin, belirli bir metrik için ortalama verileri inceliyorsak, geçmiş aralık şu anki günden önceki dönemi ifade eder. Bir hafta önceki delta, yine aynı metrik için, şu anki günden bir hafta önceki aralığı ifade eder.
“Month ago” ifadesi, geçmiş aralıkla aynı süreye sahiptir ve geçmiş aralıktan çıkarılır. Örneğin, mevcut ay Şubat (28 gün) ise, “ay önce” aralığı tam önceki ay değil, önceki 28 günü ifade eder.
Örneğin, toplam su tüketimini analiz ediyorsak, geçmiş aralık şu anki güne kadar olan dönemi ifade eder. “Ay önce” delta, aynı metrik ama şu anki geçmiş aralıktan bir ay önceki 28 günlük aralığı ifade eder.
“Year ago” ifadesi, geçmiş aralıktan 365 gün önceki bir aralığı ifade eder.
Karşılaştırma yapmak gerekiyorsa, önceki ayın verilerini ve geçen yılın aynı ayına ait verileri toplayabiliriz.
“Özel aralık” seçeneği, özel gereksinimlerimize göre bireysel aralıklar ayarlamamıza olanak sağlar. Bu seçenek için maksimum izin verilen değer ‘int’ veri türüyle sınırlıdır. Örneğin, özel bir aralık ayarlamak için ‘7200000’ gibi bir değer kullanarak 12 saatlik bir aralığı belirtebiliriz.
Delta hesaplama sonucu seçeneği, sonucun nasıl görüntüleneceğini belirlememize olanak tanır:
Önceki Değer: Karşılaştırılan aralığın toplama değerini gösterir, mevcut tarih aralığı değil.
Delta (mutlak): Karşılaştırılan aralıklar arasındaki farkı gösterir ve varsayılan seçenek olarak ayarlanır.
Delta (yüzde): Sonucu önceki aralığa göre yüzde olarak gösterir. Bu seçenek için kullanılan formül şu şekildedir: (Aralık Değeri – Önceki Aralık Değeri)/Önceki Aralık Değeri*100.
Ayrıca, isteklerimize göre çıktı verilerini değiştirmek için veri son işleme işlevini kullanabiliriz. Bu işlevi kullanmak için “Veri son işleme işlevini kullan” onay kutusunu işaretlemeli ve aşağıdaki alana istediğimiz işlevi girmeliyiz. Son olarak, sağ alt köşedeki “Kaydet” düğmesine tıklamanız gerekiyor.
3.2. Gelişmiş veri anahtarı ayarları
Gelişmiş veri anahtarları yapılandırması, bir widget’taki belirli bir veri anahtarının sütununda görünürlük, stil ve görünümü belirlemekten sorumludur. Varlık tablo widget’ı, alarm tablo widget’ı ve varlık yönetici widget’ı demeti aynı gelişmiş veri anahtarı yapılandırmasını paylaşır. Grafikler widget’ı demeti ise kendi benzersiz gelişmiş veri anahtarı yapılandırmasına sahiptir. Öte yandan, diğer tüm widget demetleri yalnızca temel veri anahtarı yapılandırma seçeneklerine sahiptir.
Daha fazla bilgi için buradaki bağlantıyı takip edebilirsiniz.
4. Widget zaman penceresi #
Bir widget zaman aralığı, zaman serisi veya alarm verilerini almak için kullanılacak zaman aralığını ve toplama işlevini belirler. Her widget varsayılan olarak, panonun araç çubuğunda belirlenen ana zaman penceresini kullanır. Ancak, varsayılan zaman penceresi, “Pano zaman penceresini kullan” onay kutusunu işaretleyerek geçersiz kılınabilir. Ayrıca, bir belirli widget için zaman penceresi seçimini kullanıcıdan gizlemek istiyorsak “Zaman penceresini göster” onay kutusunu seçerek bunu yapabiliriz.
Daha fazla bilgi için buradaki bağlantıyı takip edebilirsiniz.
5. Alarm filtresi #
Alarm widgetlerinin zaman aralığı yapılandırmasının yanı sıra, alarm durumlarına, önemine ve tipine göre filtreleme yapma seçeneği de sunarlar. Kullanıcılar, alarm durumları ve önemleri için bir kombinasyon seçebilirler. Ayrıca belirli alarm tipleri de tanımlanabilir ve iletilen alarmların aranması da etkinleştirilebilir.
Temel widget ayarları #
Varsayalım ki sadece widget veri yapılandırması adımını kullanarak termometreleri görüntülemek için “Zaman Serisi Çizgi Grafiği” widget’ını eklediniz. Benzer bir widget göreceksiniz (gerçek çizgileri grafikte görebilmek için veri göndermeniz/simüle etmeniz gerektiğini unutmayın):
Temel widget ayarlarını kullanarak widget’ı özelleştireceğiz ve her ayarın widget üzerindeki etkisini göstereceğiz.
1. Widget Başlığı #
Widget başlığı, ipucu ve başlık stiline özelleştirme yapmak mümkündür. Ayrıca başlığa bir simge de ekleyebilir ve simge rengini ve boyutunu kontrol edebilirsiniz. Aşağıdaki örnek, bu ayarları nasıl yapılandıracağınızı ve sonuçlarını göstermektedir.
Yukarıdaki resimde görülen başlık stili:
{ “fontSize”: “15px”, “fontWeight”: 600 } |
2. Widget Stili #
Widget, özelleştirmek için CSS özelliklerini kullanarak kişisel bir stile sahip olabilir. Bu stil, widget’in ana div öğesine uygulanacaktır.
Ayrıca, “Drop shadow” onay kutusunu seçerek widget gölgesini devre dışı bırakabilir ve “Enable fullscreen” onay kutusunu seçerek tam ekranı devre dışı bırakabilirsiniz. Bu ayarlar varsayılan olarak etkindir.
Widget’ın arka plan rengi, metin rengi, dolgu ve kenar boşluğunu da ayarlayabilirsiniz. Yapılandırmaya ve karşılık gelen sonuca aşağıda bakabilirsiniz.
Lütfen burada gösterilen stil ve arka plan renginin sadece örnekler olduğunu ve kesinlikle rehberlerimize uymadığını unutmayın.
Yukarıdaki ekrandan Widget stili:
{ “border”: “3px solid #2E86C1”, “cursor”: “pointer” } |
3. Gösterge ayarları #
Çizgi grafikleri için “Göstergeyi görüntüle” seçeneği varsayılan olarak etkindir ve minimum, maksimum, ortalama ve toplam değerleri görüntüler. Diğer widget’lar ise bu seçeneği devre dışı bırakır.
Gösterge görüntülendiğinde, yönünü, konumunu ve dahil edilecek verileri (min, max, average, total) seçebilirsiniz, veri anahtarlarını sıralamayı da seçebilirsiniz.
Veri anahtar konfigürasyonunda, gösterge her bir yapılandırılmış veri anahtarı etiketi için görüntülenir. Aynı widget’ta birden fazla cihaz bulunduğunda, göstergede veya açıklama aracında hangi cihazın hangi kayda karşılık geldiğini bulmak zor olabilir. Gösterge ve açıklama aracındaki netlik için, veri anahtar konfigürasyonunda “${entityName}” veya “${entityLabel}” kullanmalısınız.
Aşağıdaki yapılandırma ve ilgili sonuca bakın:
4. Mobil mod ayarları #
Mobil Mod ayarları iki seçenek içerir:
Sıralama – Mobil modda görüntülenen widget’ların öncelik sıralamasını belirleyen bir tam sayıdır (mobil modda tüm widget’lar tek bir dikey sütunda görüntülenir). Bu sütundaki widget’ları özel bir sıraya yerleştirmek isterseniz, her bir widget için farklı sıralama değerleri yapılandırabilirsiniz.
Yükseklik – Bu seçenek 1 ile 10 arasında bir tamsayı değer alır ve widget’in yüksekliğini orijinal yüksekliğine bakılmaksızın 70px (1) ile 700px (10) aralığında Mobil Modda ayarlar. Örneğin, bir değer 5 olarak ayarlandığında, widget yüksekliği 350px olacaktır (70 * 5). Değer belirtilmezse, widget’ın orijinal yüksekliği kullanılacaktır.
Gelişmiş widget ayarları #
Gelişmiş widget ayarları, widget uygulamasına özeldir. Bu ayarlar, widget’ı ince ayar yapmanıza olanak tanır. Örneğin, “Timeseries – Flot” widget’ı, çizgi stilini ve genişliğini yapılandırmanıza, önceki zaman aralığıyla karşılaştırmayı etkinleştirmenize ve eşleşme etiketinde varlık özniteliklerini kullanmanıza olanak tanır.
Widget işlemleri #
Actions, durum geçişlerini hızlı ve kolay bir şekilde yapılandırmak, diğer panolara gitmek veya mevcut panoyu güncellemek için kullanılır. Hangi kaynakların kullanılabileceği widget’e bağlıdır, ancak tüm widget’ler için seçebileceğiniz eylem türü aynı kalır. Eylemler, gereken widget’in Düzenleme modunda ayarlanır. Eylemleri kullanmayı tam olarak anlamak için, widget’inize bir Durum eklemeniz gerekmektedir.
Widget eylemleri hakkında daha fazla bilgi için ilgili belgelendirmeye başvurun.
Zaman penceresi #
Dashboard zaman aralığı, zaman serisi veya alarm verilerini almak için kullanılacak zaman aralığını ve birleştirme işlevini temsil eder. Zaman aralığı, açıkça yapılandırılmadıkça, tüm zaman serisi ve alarm widget’ları tarafından kullanılır.
Zaman serisi widget’ı durumunda, Fast IoT Platform, zaman penceresine uygun bir zaman damgasına sahip telemetriyi alır. Alarm widget’ı durumunda ise Fast IoT Platform, zaman penceresine uygun yaratılma zamanına sahip alarm verilerini alır.
Zaman aralığı iki modda çalışabilir:
Gerçek zamanlı mod – Bu modda, widget’lar sunucudan sürekli güncellemeler alır ve zaman aralığına uygun olan verileri güncel zaman damgasına göre otomatik olarak gösterirler.
Tarih modu – Bu modda, widget’lar yalnızca ilk yüklemede veri alır ve WebSockets üzerinden başka güncellemeler almazlar.
Veri birleştirme işlevi sadece zaman serisi verileri için geçerlidir ve alarm verileri için geçerli değildir. Şu anda beş birleştirme işlevi mevcuttur: Min, Max, Ortalama, Toplam ve Sayım. Özel işlev olan Hiçbiri, birleştirmeyi devre dışı bırakmak için kullanılır. Veri birleştirme, tüm zaman serisi verilerini UI’a getirmek istemediğinizde ve bunu veritabanı seviyesinde önceden birleştirmek istediğinizde yararlıdır. Birleştirme işlevlerinin kullanımı, istemci tarayıcısının ağ genişliğini ve hesaplama gücünü azaltır. Büyük miktarda ham veriye sahipseniz, mümkün olduğunca birleştirme işlevlerini kullanmanızı öneririz.
Son X dakika / saat / günün yanı sıra (Geçerli Gün, Önceki Gün, Önceki Ay vb.) önceden tanımlanmış aralıkları kullanabilirsiniz. Geçerli gün aralığı 24 saat (gece yarısından ertesi gün gece yarısına kadar) anlamına gelirken, Bugüne Kadar aralığı gece yarısından, zaman aralığı güncellendiği zamana kadar olan süreyi ifade eder. Diğer tüm aralıklar aynı şekilde ayırt edilir.
Bazı durumlarda, zaman aralıkları uzun olabilir ve zaman damgalarını değiştirmeden verileri daha yakından incelemek isteyebilirsiniz. Bu amacı gerçekleştirmek için yakınlaştırma özelliğini kullanabilirsiniz. Yakınlaştırmak için, sağ fare düğmesini basılı tutun ve daha yakından incelemek istediğiniz alanın üzerine fareyi hareket ettirin. Grafik orjinal boyutuna geri dönmek için widget’a çift tıklayın.
Varsayılan olarak, panolar tarayıcı tarafından sağlanan zaman dilimini kullanır. Ancak, artık tarayıcınız için veya belirli bir ülke için zaman dilimini ayarlamak mümkündür. İstenen zaman dilimini hızlıca bulmak için zaman dilimi çubuğunda adını yazmaya başlayabilirsiniz.
Ayarlar #
Dashboard ayarları, genel görünümünü özelleştirme ve geliştirme imkanı sunar. Kullanıcı deneyimini geliştirmek için Dashboard’u özelleştirmeye başlamak için ilk adım, sayfanın sağ alt köşesinde bulunan “Kalem” simgesine tıklayarak Düzenleme moduna girmektir (Düzenleme moduna gir).
Edit moduna girdikten sonra, pencerenin üst kısmında bulunan “Dişli Çark” simgesine tıklayarak, Dashboard Ayarları açılabilir.
Durum denetleyicisi #
İlk özelleştirilebilir özellik, Durum Denetleyicisidir. Varsayılan olarak, “entity” olarak ayarlanmıştır, bu nedenle tüm özelliklerin kullanılabilir olduğundan ve Gösterge Panelinin mümkün olduğunca kullanıcı dostu olduğundan emin olmak için bu şekilde bırakmak önerilir.
Araç çubuğunu açık tut #
“Araç çubuğunu açık tut” onay kutusu, Gösterge Tablosu sayfasında araç çubuğunun görüntülenmesini kontrol eder. Bu araç çubuğu, farklı gösterge panoları arasında geçiş yapma, zaman aralığını düzenleme, gösterge panelini dışa aktarma ve tam ekran moduna geçirme gibi çeşitli işlevleri sağlar.
“Araç çubuğunu gizle” kutusu onaylanırsa, araç çubuğu gizlenir. Yerine, ekranın sağ üst köşesinde üç nokta simgesi görünür. Bu simgeye tıkladığınızda, önceden gizlenmiş olan araç çubuğu ortaya çıkar.
Gösterge Panelinin Başlığı #
Gösterge Paneli Başlığını görmek için, “Gösterge paneli başlığını görüntüle” onay kutusunu seçmeniz gerekiyor. Başlık için varsayılan metin rengi siyahtır. “Başlık rengi” parametresini kullanarak rengi ve saydamlığı kolayca ayarlayabilirsiniz. Farklı bir renk seçmek için, renkli daireye tıklayın ve kaydırıcıyı istediğiniz renge getirin. Değiştirilmiş başlık, Gösterge Panelinin sol üst köşesinde görüntülenir.
Gösterge Paneli Araç Çubuğu Ayarları #
Display Dashboard selection, Display entities selection, Display filters, Display timewindow ve Display export onay kutuları, Gösterge Paneli’nde ilgili seçeneklerin görünürlüğünü belirler.
“Filtreler” seçeneği, yalnızca oluşturulduğunda araç çubuğu panelinde görüntülenir. Filtre oluşturulduysa, ancak müşterinin cihaz göstergelerini değiştirme yetkisini sınırlamak isterseniz, ilgili onay kutusunu işaretlemeden filtreyi araç çubuğu panelinde görüntüleme seçeneğini devre dışı bırakabilirsiniz.
Renk #
“Renk” satırı, Gösterge Tablonuzu düzenlerken görebileceğiniz metin mesajlarının rengini belirler. Rengi, satırın solundaki renkli daireye tıklayarak ayarlayabilirsiniz. Küçük bir pencere açılacak ve kaydırıcıları hareket ettirerek metnin rengini ve saydamlığını ayarlayabilirsiniz. Varsayılan renk siyahtır. Örneğin, henüz bir bileşen gösterge tablonuza eklenmediyse ve rengi değiştirirseniz, “Yeni bileşen ekle” mesajı da buna göre değişir.”
Kapasite #
Sütun sayısı
Dashboard’ınızı düzenlerken, özellikle widget’ların boyutunu ve konumunu ayarlarken, gri arka plan üzerinde beyaz ızgarayı fark edebilirsiniz. Bu ızgaralar, bir Dashoard’ta yatay olarak kaç widget’ın sığabileceğini belirler. Varsayılan olarak, 24 sütun vardır, ancak ihtiyacınıza göre sayılarını artırabilir veya azaltabilirsiniz. Minimum sütun sayısı 10, maksimum ise 1000’dir.
Widget’lar arasındaki kenar boşluğu
Margin türü, ara bileşenler arasındaki boşluğu belirler. Varsayılan olarak, kenar boşluğu 10 olarak ayarlanmıştır. Ara bileşenler arasındaki boşluğu kaldırmak için, “Margin between widgets” satırına 0 yerleştirerek sıfıra ayarlayabilirsiniz veya boşluğu artırmak için kenar boşluğunu artırabilirsiniz. Maksimum kenar boşluğu 50’dir.
Düzen yüksekliğini otomatik doldur
“Otomatik Doldur Düzen Yüksekliği” onay kutusu varsayılan olarak işaretlenmemiş durumdadır, bu sayede widget’ların boyutunu serbestçe ayarlayabilirsiniz. Bu seçeneği işaretlerseniz, Dashboard’daki tüm widget’lar ekranın dikey alanına otomatik olarak doldurulacaktır.
Arka plan ayarları #
Arka plan rengi #
Dashboard’ın arka plan rengini özelleştirmek için “Arka plan rengi” seçeneğini kullanabilirsiniz. Renk seçiciyi açmak için renkli daireye tıklayın ve kaydırıcıları kullanarak istediğiniz rengi ve şeffaflığı seçin. Seçtiğiniz renk belirledikten sonra, değişiklikleri uygulamak için “Kaydet” düğmesine tıklayın. Kaydettikten sonra, özelleştirilmiş arka plan rengini Dashboard’unuzda görebilirsiniz.
Arka plan görüntüsü #
Bu seçenek, resmi arka plan olarak ayarlamanızı sağlar. Bunun için, uygun alana bir resim sürükleyip bırakmanız veya bilgisayarınızdaki bir klasörden yüklemeniz gerekiyor. Seçtikten sonra, Ayarlar penceresinin sol tarafında bir resim önizlemesi görünecektir. Resmin pozisyonunu daha hassas bir şekilde ayarlamak için açılır menüyü tıklayın ve resmin arka plan alanını nasıl dolduracağını seçin. Örneğin, “cover” seçeneğini seçin ve ardından değişikliği görmek için “Kaydet”e tıklayın.
Mobil düzen ayarları #
Varsayılan olarak, mobil cihazlarda “Otomatik Doldur Düzeni Yüksekliği” onay kutusu işaretli değildir, böylece widget’ların boyutunu serbestçe ayarlayabilirsiniz. Bu seçeneği işaretlerseniz, Dashboard’daki tüm widget’lar ekranın dikey alanını otomatik olarak dolduracaktır.
“Mobil satır yüksekliği” ayarı, mobil cihazınızdaki widget’ların yüksekliğini belirler. Varsayılan olarak, yükseklik 70px olarak ayarlanmıştır, ancak daha küçük veya daha büyük hale getirebilirsiniz. Minimum mobil satır yüksekliği 5px, maksimum ise 200px’dir.
Düzenler #
Bir panodaki widget’ları düzenlemek için düzenlemeler kullanabilirsiniz. Bir düzeni yönetmek için, düzenleme moduna girmek için ekranın sağ alt köşesindeki “Kalem” simgesine tıklayın. Düzenleme modunda olduktan sonra, Dashboard penceresinin sol üst köşesindeki üç dikdörtgenli “Düzenlemeleri yönet” düğmesine tıklayın. Bu, düzenlemeleri kontrol etmek için küçük bir pencere açacaktır.
Ana düzen, şu anda yönetmekte olduğunuz ana düzen olarak adlandırılır. Temel olarak, bu sizin kontrol panelinizdir. “Ana” olarak adlandırılan büyük mavi kare düğmeye tıklarsanız, Arayüz Düzeni Ayarları penceresi açılır. Düzen ayarları, Kontrol Paneli Ayarları’ndaki Kapasite ve Arkaplan ayarlarıyla benzerdir.
Eğer “Divider” onay kutusunu işaretlerseniz, Kontrol Paneli iki ayrı bölüme bölünecektir. Her bölüm için kendi ayarlarını ve arayüzünü yapılandırabilirsiniz.
Farklı görünümlerin elde edilebileceğini göstermek için her iki düzenlemeyi tamamen farklı şekillerde yapılandıracağız. Eşlik eden ekran görüntüsü, iki düzenleme arasındaki ayar farklılıklarını vurgular (bu sadece bir örnektir ve öneri değildir). Gerekli ayarlamaları yaptıktan sonra, güncellenmiş sürümleri görüntülemek için Düzenler penceresindeki “Kaydet” düğmesine tıklamanız yeterlidir.
Durumlar #
Durumlar özelliği, gösterge tablonuzda hiyerarşik bir yapı oluşturmanıza yardımcı olmak için tasarlanmıştır. Durumları etkili bir şekilde kullanmak için, gerekli durumlar arasında hızlı gezinmenize olanak tanıyan bir widget’a özel bir eylem atamanız gerekir. Başlamak için, “Yönet” etiketi ile işaretlenmiş, sol üst köşede iki katmanlı kareler düğmesine tıklamanız gerekir. Bu, gösterge tablosu durumu yapılandırma seçenekleriyle birlikte bir pencere açar.
Henüz hiçbir durum oluşturmadığınız için, yalnızca “Kök Durum” olarak adlandırılan gösterge tablonuzun ana durumu vardır. Ek durumlar oluşturduktan sonra, “Kalem” simgesine (Gösterge Tablo Durumunu Düzenle) tıklayarak kök durumu kolayca değiştirebilirsiniz ve “Kök Durum” onay kutusunu seçebilirsiniz.
Yeni bir durum eklemek için, pencerenin sağ üst köşesindeki “+” düğmesine tıklamanız yeterlidir. Bu, yeni bir durum oluşturma için küçük bir pencere açacaktır. Duruma bir isim verin ve bir Durum Kimliği adı otomatik olarak isimden oluşacaktır, ancak ihtiyaç halinde değiştirebilirsiniz.
Bir widget arasında gezinmek için belirli bir eylem atanmalıdır. Eylem eklemek için, widget’ın sağ üst köşesindeki “kalem” simgesine tıklayarak widget yapılandırma alanına erişmelisiniz. Oradan, “Eylem” hücresine gidin ve yeni bir eylem eklemek için “+” simgesine tıklayın. Bu, “Eylem ekle” penceresini açacaktır.
Eylem kaynağı, bir hedefe ulaşmak için tamamlanması gereken belirli bir görevi ifade eder.
Ad alanı, eylem için tercih edilen başlığı seçmenizi sağlar.
Simge alanı, eylemi temsil etmek için bir sembol seçmenize olanak tanır.
Tip alanı, eylemin hedefini belirler.
Senaryomuzda, Type alanı “Yeni bir dashboard durumuna geç” olarak ayarlanmalıdır. Bu seçenek seçildikten sonra, “Hedef dashboard durumu” satırı belirecek ve yeni oluşturulan bir durum seçmenizi isteyecektir. Yeni durum için yapılandırmayı tamamladıktan sonra, “Kaydet” düğmesine tıklayın. Yeni durum, Eylem listesinde görüntülenecektir. Değişiklikleri uygulamak için pencerenin sağ üst köşesindeki turuncu onay işaretine tıklayın.
“Eylem hücre butonu” eylemi seçildiğinden, eylemi etkinleştirmek için widget’ın satırına tıklamamız gerekiyor. Tıkladıktan hemen sonra seçilen duruma aktarılacağız.
Bir durumu bir varlık adından sonra adlandırmak için, durum adı olarak ${entityName} kullanın. Böylece eylem tetiklendiğinde, adı eylemde yer alan varlık adıyla aynı olan bir duruma yönlendirileceksiniz.
Gösterge panelini içe aktar #
Bir JSON formatındaki gösterge tablosunu içe aktarmak için şu adımları izleyin: Gösterge tablosu grubuna gidin ve sayfanın sağ üst köşesinde bulunan “+” düğmesine tıklayın. Ardından, “Gösterge tablosu içe aktar” seçeneğini seçin. Bu, gösterge tablosu içe aktarma penceresini açacaktır. JSON dosyasını yüklemek için talimatları takip edin ve ardından içe aktarmayı başlatmak için “İçe aktar” düğmesine tıklayın.
Dışa aktar #
Fast IoT Platform’da, bir gösterge panelini veya belirli bir bileşeni JSON formatında yapılandırma dosyası olarak dışa aktarabilirsiniz. Bu dosya, gösterge paneli veya bileşen yapılandırmanızı başka bir Fast IoT Platform örneğine aktarmak için kullanılabilir.
Gösterge panelini dışa aktar #
Fast IoT Platform’da bir dashboard’u dışa aktarmak için şu adımları izleyin:
Kontrol panelindeki Dashboards bölümüne gidin ve listeden dışa aktarmak istediğiniz dashboard’u bulun.
Listedeki dashboard isminin karşısında bulunan “Export dashboard” düğmesine tıklayın.
Kontrol panelindeki tüm ayarları içeren JSON formatındaki bir yapılandırma dosyası bilgisayarınıza kaydedilecektir.
Fast IoT Platform’da bir dashboard’u dışa aktarmak için bunu doğrudan Dashboard’dan yapabilirsiniz. Sadece dashboard’u açın ve ekranın sağ üst köşesinde bulunan “Dashboard’ı dışa aktar” düğmesine tıklayın.
Widget Kitaplığı #
Giriş #
Fast IoT Platform IoT gösterge panoları, Widget Kütüphanesi’nden alınan widget’lar kullanılarak oluşturulur. Her widget, veri görselleştirme, uzaktan cihaz kontrolü, alarm yönetimi ve özel statik HTML içeriğinin görüntülenmesi gibi farklı son kullanıcı işlevleri sağlar.
Widget Türleri #
Her bir widget, sağladığı özelliklere göre belirli bir widget türünü temsil eder. Fast IoT Platform’da beş widget türü bulunmaktadır:
En Son Değerler;
Zaman Serisi;
RPC (Kontrol widget’ı);
Alarm widget’ı;
Statik widget.
Fast IoT Platform’daki her widget, widget türünü tanımlayan belirli özellikler sağlamak üzere tasarlanmıştır. Fast IoT Platform’da beş ana widget türü vardır:
En son değerler widget’ı: Bu widget türü, cihaz özniteliklerinin veya telemetrisinin en son değerlerini gösterir.
Zaman serisi widget’ı: Bu widget, cihaz özniteliklerinin veya telemetrisinin geçmiş değerlerini grafiksel bir formatta gösterir.
RPC (Uzak Prosedür Çağrısı) widget’ı: Bu widget, bir cihaza komut göndermek ve yanıtı almak için bir yol sağlar.
Alarm widget’ı: Bu widget, cihaz alarmlarını ve mevcut durumlarını görüntüler.
Statik widget: Bu widget, cihaz verileriyle ilgisi olmayan özel HTML içeriğini görüntülemek için kullanılır.
Şekil 1.1.1 – Widget türleri
Şekil 1.1.2 – Alarm göstergesi türünde widget
Şekil 1.1.3 – Kontrol göstergesi türünde widget
Fast IoT Platform’da her widget türü için belirli bir veri kaynağı yapılandırması ve ilgili API widget’ı bulunmaktadır. Her widget, verileri görselleştirmek için veri kaynaklarına ihtiyaç duyar. Mevcut veri kaynağı türleri, widget türüne bağlı olarak değişir ve şunları içerir:
Hedef cihaz – RPC widget’ında hedef cihazı belirtmek için kullanılır.
Alarm kaynağı – alarm widget’larında bir kaynak varlık üzerindeki alarm ve ilgili alanları görüntülemek için kullanılır.
Varlık – zaman serisi ve son değerler widget’larında kullanılır. Hedef varlık, zaman serisi anahtarı veya öznitelik adı belirtilmelidir.
Varlık sayısı – son değerler widget’larında kullanılır. Hedef varlık belirtilmelidir.
Fonksiyon – zaman serisi ve son değerler widget’larında hata ayıklama için kullanılır. Cihaz verilerini görselleştirmek için bir JavaScript işlevi belirtilmesine olanak tanır.
Son değerler #
En Son Değerler (Latest Values) widget türü, belirli bir varlık özniteliğinin veya zaman serisi veri noktasının (örneğin herhangi bir Ölçü Aleti veya Varlık Tablosu widget’ı) en son değerlerini gösterir. Bu tür widget’lar, varlık özelliği veya zaman serisi değerlerini veri kaynağı olarak kullanır. Örneğin, Digital Gauge widget’ı, mevcut sıcaklık değerini görüntüler.
Şekil 1.2.1 – Gösterge paketlerinden ‘Digital gauges’ paketi seçilir.
Şekil 1.2.2 – ‘Digital thermometer’ göstergesi seçilir.
Şekil 1.2.3 – Bu araç tipi, varlık zaman serilerinin değerlerini veri kaynağı olarak kullanır.
Şekil 1.2.4 – Mevcut güç değerini gösteren Dijital Gösterge.
Zaman serisi #
“Zaman Serisi” widget türü, belirli bir zaman dilimi için tarihsel değerleri veya belirli bir zaman aralığındaki en son değerleri gösterir (“Zaman Serisi Çizgi Grafiği” veya “Zaman Serisi Sütun Grafiği” gibi). Bu widget türleri sadece varlık zaman serisi değerlerini veri kaynağı olarak kullanır. Gösterilen değerlerin zaman aralığını belirlemek için Zaman Aralığı ayarları kullanılır. Zaman aralığı, panoda veya widget ayrıntılarında belirlenebilir ve gerçek zamanlı olarak veya geçmişteki sabit bir zaman aralığında olabilir. Tüm bu ayarlar Zaman Serisi widget yapılandırmasının bir parçasıdır. Verilen örnekte, “Zaman Serisi Çizgi Grafiği”, cihazın gerçek zamanlı hız değerini gösterir.
Şekil 1.3.1 – Charts gösterge paketlerinden ‘Timeseries Line Chart’ göstergesi seçilir.
Şekil 1.3.2 – Bu tür widget’lar veri kaynağı olarak yalnızca varlıkların zaman değerlerini kullanır.
Şekil 1.3.3 – Zaman Serisi Çizgi Grafiği
RPC (Kontrol widget’ı) #
Kontrol aracı, cihazlara uzak prosedür çağrısı (RPC) gönderme olanağı sağlar ve cihazın yanıtını işler ve gösterir (örneğin, “Raspberry Pi GPIO Kontrolü” aracı). RPC araçları, hedef cihazı RPC komutlarının hedef uç noktası olarak belirleyerek yapılandırılır. Örnekte, “Temel GPIO Kontrolü” aracı GPIO anahtar komutları gönderir ve mevcut GPIO anahtar durumunu algılar.
Şekil 1.4.1 – Gösterge paketlerinden ‘GPIO widgets’ paketi seçilir.
Şekil 1.4.2 – ‘Basic GPIO Control’ göstergesi seçilir.
Şekil 1.4.3 – RPC araçları, RPC komutları için hedef uç noktası olarak hedef cihazı belirterek yapılandırılır.
Şekil 1.4.3 – RPC widget örneği ‘Basic GPIO Control’.
Alarm Widget’ı #
Bir Alarm aracı, belirli bir zaman aralığındaki belirli bir varlıkla ilgili alarmları sunan bir görüntüleme türüdür ve “Alarm tablosu” gibi bir şeydir. Widget, bir varlığı alarm kaynağı olarak seçerek ve ilgili alarm alanlarını belirterek yapılandırılır. Zaman Serileri araçları gibi, Alarm araçları da görüntülenen alarmlar için zaman çerçevesini yapılandırmak için kullanıcılara izin verir.
Alarm aracının yapılandırması, “Alarm Durumu”, “Alarm Şiddeti” ve “Alarm Türü” gibi parametreleri içerir. “Alarm Durumu” parametresi, alınan alarmların durumunu belirtir. “Alarm Şiddeti” parametresi, saniye cinsinden ölçülen alarmların alınma sıklığını kontrol eder. “Alarm Türü” parametresi, farklı türdeki alarmlar arasındaki farkı belirlemeye ve kök nedenlerini belirlemeye yardımcı olur. Örneğin, “Yüksek Sıcaklık” ve “Düşük Nem” gibi iki farklı alarm, bu parametre aracılığıyla tanımlanabilir.
“Alarm Tablosu” aracı örneği, cihazın en son alarmını gerçek zamanlı olarak görüntüler ve kullanıcılara cihazın durumu hakkında güncel bilgi sağlar.
Bir Alarm aracı, belirli bir zaman aralığındaki belirli bir varlıkla ilgili alarmları sunan bir görüntüleme türüdür ve “Alarm tablosu” gibi bir şeydir. Widget, bir varlığı alarm kaynağı olarak seçerek ve ilgili alarm alanlarını belirterek yapılandırılır. Zaman Serileri araçları gibi, Alarm araçları da görüntülenen alarmlar için zaman çerçevesini yapılandırmak için kullanıcılara izin verir.
Alarm aracının yapılandırması, “Alarm Durumu”, “Alarm Şiddeti” ve “Alarm Türü” gibi parametreleri içerir. “Alarm Durumu” parametresi, alınan alarmların durumunu belirtir. “Alarm Şiddeti” parametresi, saniye cinsinden ölçülen alarmların alınma sıklığını kontrol eder. “Alarm Türü” parametresi, farklı türdeki alarmlar arasındaki farkı belirlemeye ve kök nedenlerini belirlemeye yardımcı olur. Örneğin, “Yüksek Sıcaklık” ve “Düşük Nem” gibi iki farklı alarm, bu parametre aracılığıyla tanımlanabilir.
“Alarm Tablosu” aracı örneği, cihazın en son alarmını gerçek zamanlı olarak görüntüler ve kullanıcılara cihazın durumu hakkında güncel bilgi sağlar.
Şekil 1.5.1 – Alarm Widgets paketinden ‘Alarms table’ göstergesi seçilir.
Şekil 1.5.2 – Cihaz için en son alarmı gerçek zamanlı olarak gösteren ‘Alarms table’ widget’ı.
Statik #
Statik widget türü, özelleştirilebilir sabit HTML içeriği göstermek için tasarlanmıştır (örneğin, “HTML kartı”). Bu widget’lar herhangi bir veri kaynağına bağlı değildir ve genellikle istenen statik HTML içeriği ve isteğe bağlı olarak CSS stilleri belirtilerek yapılandırılır. Örneğin, belirtilen HTML içeriğini gösteren bir Statik widget örneği olan “HTML kartı” vardır.
Şekil 1.6.1 – Cards paketinden ‘HTML Card’ göstergesi seçilir.
Şekil 1.6.2 – Statik widget tipi, statik HTML içeriği ve isteğe bağlı olarak CSS stilleri belirterek yapılandırılır.
Şekil 1.6.3 – Statik widget’ına bir örnek, belirtilen HTML içeriğini gösteren ‘HTML Card’ göstergesi.
Widget Kitaplığı (Paketler) #
Widget paketleri amaçlarına göre gruplandırılır ve System-level (Sistem seviyesi) veya Tenant-level (tenant seviyesi) Widget’lar olarak sınıflandırılır. Fast IoT Platform kurulumu sırasında temel bir set sistem seviyesi Widget paketi bulunur.
System-level (Sistem seviyesi) paketler Sistem yöneticisi tarafından yönetilir ve sistemdeki herhangi bir tenant tarafından kullanılabilir. Diğer yandan, Tenant-level (Tenant seviyesi) paketleri yalnızca tenantları ve müşterileri tarafından erişilebilir ve tenant yöneticisi tarafından yönetilebilir. Kendi widget’larınızı eklemek isterseniz, rehberde belirtilen talimatları takip ederek bunu yapabilirsiniz.
Şekil 1.7.1 – Gösterge paketleri sayfası
Şekil 1.7.2 – Gösterge paketleri sayfası- devamı
Alarm Widget’ları #
Alarm Widget paketi, belirli varlıklar için alarm görselleştirmesi sağlamak üzere tasarlanmıştır, hem gerçek zamanlı hem de geçmiş modlarında kullanılabilir.
Şekil 1.8.1 – Belirli varlıklar için alarm görselleştirme, hem gerçek zamanlı hem de geçmiş zamanlı modunda kullanılabilir.
Analog Göstergeler #
Analog Göstergeler paketi, sıcaklık, nem, hız ve diğer tamsayı veya ondalık değerler için görselleştirme sağlamak üzere tasarlanmıştır.
Şekil 1.9.1 – Sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için kullanılır.
Kartlar #
Kart paketi, zaman serisi verilerinin veya özniteliklerinin tablo veya kart widget’larında görselleştirilmesi için kullanışlıdır.
Grafikler #
Grafikler paketi, belirli bir zaman aralığı içinde tarihsel veya gerçek zamanlı verilerin görselleştirilmesi için tasarlanmıştır.
Şekil 1.10.1 – Zaman penceresi ile tarihsel veya gerçek zamanlı verilerin görselleştirilmesi için kullanılır.
Kontrol Widget’ları #
Kontrol Widget’ları paketi, mevcut durumun görselleştirilmesine olanak sağlar ve hedef cihazlara RPC komutlarının gönderilmesini kolaylaştırır.
Şekil 1.11.1 – Hedef cihazlara RPC komutları gönderme ve mevcut durumun görselleştirilmesi için kullanılır.
Tarih Widget’ları #
Tarih Widget’ları paketi, kullanıcıların panoda diğer widget’ların tarih aralığını değiştirmelerine olanak tanır.
Şekil 1.12.1 – Kontrol panelindeki diğer araçlar için veri aralığını değiştirmek amacıyla kullanılır.
Dijital Göstergeler #
Dijital Göstergeler paketi, sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için tasarlanmıştır.
Şekil 1.13.1 – Sıcaklık, nem, hız ve diğer tam sayı veya ondalık değerlerin görselleştirilmesi için kullanılır.
Varlık Yöneticisi Widget’ları #
“Entity Admin Widgets”, karmaşık widget şablonları olup, kullanıcılara cihaz ve varlıkları listeleme, oluşturma, güncelleme ve silme imkanı sağlayan önceden tasarlanmış şablonlardır.
Şekil 1.14.1 – Cihazların ve varlıkların listelenmesi ile oluşturulması/güncellenmesi/silinmesi için kullanılır.
Ağ Geçidi Widget’ları #
Gateway Widgetlar paketi, uzantıların yönetimini kolaylaştırmak için tasarlanmıştır.
Şekil 1.15.1 – Uzantıları yönetmek için kullanılır.
GPIO Widget’ları #
GPIO Widget paketi, hedef cihazların GPIO durumunu görselleştirme ve kontrol etme işlevi sağlamak için tasarlanmıştır.
Şekil 1.16.1 – Hedef cihazlar için GPIO durumunun görselleştirilmesi ve kontrolü için kullanılır.
Giriş Widget’ları #
Giriş Widget’ları paketi, bir varlığın özniteliklerini değiştirmek için kullanıcıların olanak sağlaması amacıyla tasarlanmıştır.
Şekil 1.17.1 – Varlık özniteliklerini değiştirmek için kullanılır.
Harita Widget’ları #
Harita bileşenleri paketi, cihazların coğrafi konumlarını görselleştirmek ve gerçek zamanlı ve tarihsel modlarda rotalarını takip etmek için değerlidir.
Şekil 1.18.1 – Cihazların coğrafi konumlarının görselleştirilmesi ve cihazların rotalarının hem gerçek zamanlı hem de geçmiş işletimler için kullanılır.
Navigasyon Widget’ları #
Gezinme bileşenleri paketi, kullanıcının ana panelini oluşturmada yardımcıdır.
Şekil 1.19.1 – Kullanıcının ana kontrol panelini tanımlamak için kullanılır.
Widget’ları Planlama #
Zamanlama bileşenleri paketi, esnek zamanlama yapılandırmalarıyla çeşitli etkinlikleri planlamak için faydalıdır. Bu özellik sadece PE ve PaaS’ta mevcuttur.
Widget Paketi Ekleme #
Eğer sistem yöneticisi yeni bir bileşen paketi eklerse, otomatik olarak bir sistem bileşen paketi haline gelir, bu da sadece yöneticinin bileşen türlerini düzenleme, silme ve eklemeye yetkisi olduğu anlamına gelir. tenant yöneticileri de bileşen paketleri oluşturabilirler, ancak sadece kendi oluşturdukları bileşen paketlerini değiştirme iznine sahiptirler. Bu kılavuzu takip ederek her zaman kendi bileşenlerinizi uygulayabilir ve ekleyebilirsiniz.
Yeni bir bileşen paketi oluşturmak için şunları yapmalısınız:
Sol taraftaki ana menüden bileşen paketi sayfasına gidin.
Ekranın sağ üst köşesindeki “+” simgesine tıklayın ve açılır menüden “Yeni bileşen paketi oluştur” seçeneğini seçin.
Şekil 2.1.1 – Yeni gösterge paketi oluştur.
Açılan iletişim kutusunda, yeni paketin adını girin. Bir resim ve açıklama eklemek isteğe bağlıdır.
Şekil 2.1.2 – Gösterge paketi ekle.
Yaptığınız değişiklikleri kaydetmek için “Ekle” düğmesine tıklayın.
Lütfen unutmayın ki bileşen paketleri alfabetik sıraya göre düzenlendiğinden, yeni oluşturulan paket ikinci sayfada görünebilir.
Şekil 2.1.3 – Yeni gösterge paketi başarıyla eklendi.
Bileşen paketini ekledikten sonra, paketinize farklı widget türlerine ait widget’lar ekleyebilirsiniz.
Şekil 2.1.4 – Paketinize farklı widget türlerinden widget’lar ekleyebilirsiniz.
Widget Paketleri Dışa/İçe Aktarma #
Widget Paketleri Dışa Aktarma #
Bir bileşen paketi JSON formatında dışa aktarılabilir ve aynı veya farklı Fast IoT Platform örneğine içe aktarılabilir.
Bir bileşen paketini dışa aktarmak için şu adımları izleyin:
Bileşen Kitaplığı sayfasına gidin.
Dışa aktarmak istediğiniz gösterge paketi satırındaki dışa aktarma düğmesine tıklayın.
Şekil 3.1.1 – Gösterge paketini dışa aktar.
Widget Paketi İçe Aktarma #
Bir widget paketini içe aktarmak, dışa aktarmakla çok benzer. Bir widget paketini içe aktarmak için şu adımlar izlenir:
Widget Kitaplığı sayfasına gidin.
“Widget Paketleri” sayfasının sağ üst köşesindeki “+” düğmesine tıklayın.
Açılır menüden “Widget paketi içe aktar” seçeneğini seçin.
Şekil 3.2.1 – Gösterge paketini içe aktar.
Widget paketi içe aktarma penceresi açılacak ve JSON dosyasını yüklemeniz istenecektir.
Bilgisayarınızdan dosyayı sürükleyip bırakın ve “İçe Aktar” düğmesine tıklayarak widget paketini kütüphaneye ekleyin.
Şekil 3.2.2 – Widget paketinizi ekleyin.
Widget Türleri Dışa/İçe Aktarma #
Bir widget paketinden belirli bir widget türünü JSON formatında dışa aktarmak ve aynı veya farklı Fast IoT Platform örneğine aktarmak mümkündür.
Widget Türü Dışa Aktarma #
Belli bir widget türünü dışa aktarmak için şu adımları izlemelisiniz:
Widgets Kitaplığı sayfasına gidin.
İlgili widget paketini açın.
İlgili widget türü kartındaki dışa aktarma düğmesine tıklayın.
Şekil 4.1.1 – Widget türünü dışa aktarma
Widget Türü İçe Aktarma #
Sadece sistem yöneticileri, sistem (varsayılan) widget paketlerini değiştirme yetkisine sahiptir. Bu, yalnızca sistem widget paketini silme, paket içindeki widget’ları düzenleme ve silme, yeni widget’ları pakete ekleme veya içe aktarma işlemlerini gerçekleştirebilecekleri anlamına gelir. Bir sistem yöneticisi düzeyinde yeni bir widget paketi oluşturarak, tenantlarının hesaplarında bir sistem paketi olarak görüntülenecek ve onları değiştiremeyecekler. Bununla birlikte, tenantlar kendi widget paketlerini oluşturabilirler ve paket içinde oluşturulan widget türlerini yönetme tam yetkisine sahiptirler.
Bir widget türünü içe aktarmak için şu adımları izleyebilirsiniz:
Widgets Kütüphanesi sayfasına gidin.
Widget paketini açın.
Ekranın sağ alt köşesindeki “+” düğmesine tıklayın.
İçe aktarma düğmesine tıklayın.
Widget türü içe aktarma penceresinde, bir açılır pencere görüntülenecek ve JSON dosyasını yüklemek için size bir dosya yükleme seçeneği sunulacaktır. Bilgisayarınızdan dosyayı sürükleyip bırakın ve widget türünü pakete eklemek için “İçe Aktar” düğmesine tıklayın.
Şekil 4.2.1 – İçe aktarma için önce ‘+’ butonuna tıklayın. Dilerseniz ‘x’ ikonuyla widget türünü silebilirsiniz.
Şekil 4.2.2 – ‘içe aktar’ butonuna tıklayın.
Şekil 4.2.3 – Dosyanızı yükleyin ve içe aktarın.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.