Kuralları yapılandırma

IoT Central'daki kurallar, bağlı cihazlardan etkin olarak izlenen olaylarda tetiklenen özelleştirilebilir bir yanıt aracı görevi görür. Aşağıdaki bölümlerde kuralların nasıl değerlendirildiği açıklanmaktadır. Bir kural tetiklendiğinde gerçekleşen bir veya daha fazla eylem tanımlayabilirsiniz. Bu makalede e-posta, web kancası ve Azure İzleyici eylem grupları açıklanmaktadır. Diğer eylem türleri hakkında bilgi edinmek için bkz . Azure IoT Central uygulamanızı diğer bulut hizmetleriyle tümleştirmek için iş akışlarını kullanma.

Hedef cihazları seçme

Bu kuralın ne tür cihazlar için geçerli olduğunu seçmek için hedef cihazlar bölümünü kullanın. Filtreler, hangi cihazların dahil edilmesi gerektiğini daha da geliştirmenizi sağlar. Filtreler, cihaz kümesine filtre uygulamak için cihaz şablonundaki özellikleri kullanır. Filtrelerin kendileri eylem tetiklemez. Aşağıdaki ekran görüntüsünde, kural Buzdolabı cihazlarını hedefler. Filtre, kuralın yalnızca Üretilen Eyalet özelliğinin Washington'a eşit olduğu BuzDolapları içermesi gerektiğini belirtir.

Screenshot that shows a filter definition in a rule.

Birden çok koşul kullanma

Koşullar, kuralın hangi cihazlarda tetikleneceğini belirler. Bir kurala birden çok koşul ekleyebilir ve tüm koşullar doğru olduğunda veya koşullardan herhangi biri doğru olduğunda kuralın tetiklenip tetiklenmeyeceğini belirtebilirsiniz.

Aşağıdaki ekran görüntüsünde koşullar sıcaklığın 70° F'den yüksek ve nem oranının %10'un altında olup olmadığını denetler. Bu deyimlerden herhangi biri true olduğunda, kural true olarak değerlendirilir ve bir eylem tetikler.

Screenshot shows a refrigerator monitor with conditions specified for temperature and humidity.

Dekont

Şu anda yalnızca telemetri koşulları desteklenmektedir.

Değer alanında bulut özelliği kullanma

Bir koşul için Değer alanındaki cihaz şablonundan bir bulut özelliğine başvurabilirsiniz. Bulut özelliği ve telemetri değeri benzer türlere sahip olmalıdır. Örneğin, Sıcaklık bir çift ise, Değer açılan listesinde yalnızca çift türündeki bulut özellikleri seçenekler olarak gösterilir.

Bir olay türü telemetri değeri seçerseniz, Değer açılan listesinde Herhangi bir seçenek bulunur. Herhangi bir seçenek, uygulamanız yük ne olursa olsun bu tür bir olay aldığında kuralın tetiklendiğini gösterir.

Toplam pencereleme kullanma

Kuralınızı bir zaman penceresine göre tetikleyen bir zaman toplaması belirtebilirsiniz. Kural koşulları, telemetri verilerindeki toplama süresi pencerelerini atlayan pencereler olarak değerlendirir. Kuralda özellik filtreleri varsa, bunlar zaman penceresinin sonuna uygulanır. Aşağıdaki ekran görüntüsünde, zaman penceresi beş dakikadır. Her beş dakikada bir, kural telemetri verilerinin son beş dakikasını değerlendirir. Veriler, karşılık gelen pencerede yalnızca bir kez değerlendirilir.

A diagram showing how tumbling windows are defined.

E-posta eylemi oluşturma

E-posta eylemi oluşturduğunuzda, e-posta adresinin uygulamada bir kullanıcı kimliği olması ve kullanıcının uygulamada en az bir kez oturum açmış olması gerekir. E-postaya eklenecek bir not da belirtebilirsiniz. IoT Central, kural tetiklendiğinde e-postanın nasıl göründüğüne ilişkin bir örnek gösterir:

Screenshot that shows an email action for a rule.

Web kancası eylemi oluşturma

Web kancaları, uzaktan izleme ve bildirimler için IoT Central uygulamanızı diğer uygulama ve hizmetlere bağlamanıza olanak tanır. Web kancaları, IoT Central uygulamanızda bir kural tetiklendiğinde bağlandığınız diğer uygulama ve hizmetlere otomatik olarak bildirim gönderir. IoT Central uygulamanız, bir kural tetiklendiğinde diğer uygulamanın HTTP uç noktasına bir POST isteği gönderir. Yük, cihaz ayrıntılarını ve kural tetikleyici ayrıntılarını içerir.

Bu örnekte, bildirimi test etmek için RequestBin'e bağlanırsınız:

  1. RequestBin'e gidin.

  2. RequestBin Oluştur'u seçin.

  3. Kullanılabilir yöntemlerden biriyle oturum açın.

  4. RequestBin uç noktanızın URL'sini kopyalayın.

  5. Kuralınıza bir eylem ekleyin:

    Screenshot that shows the webhook creation screen.

  6. Web kancası eylemini seçin, bir görünen ad girin ve RequestBin URL'sini Geri Arama URL'si olarak yapıştırın.

  7. Kuralı kaydedin.

Artık kural tetiklendiğinde RequestBin'de yeni bir istek gösterildiğini görürsünüz.

Yük

Bir kural tetiklendiğinde, geri arama URL'sine bir HTTP POST isteğinde bulunur. İstek telemetri, cihaz, kural ve uygulama ayrıntılarını içeren bir JSON yükü içerir. Yük aşağıdaki JSON kod parçacığına benzer:

{
    "timestamp": "2020-04-06T00:20:15.06Z",
    "action": {
        "id": "<id>",
        "type": "WebhookAction",
        "rules": [
            "<rule_id>"
        ],
        "displayName": "Webhook 1",
        "url": "<callback_url>"
    },
    "application": {
        "id": "<application_id>",
        "displayName": "Contoso",
        "subdomain": "contoso",
        "host": "contoso.azureiotcentral.com"
    },
    "device": {
        "id": "<device_id>",
        "etag": "<etag>",
        "displayName": "Refrigerator Monitor - 1yl6vvhax6c",
        "instanceOf": "<device_template_id>",
        "simulated": true,
        "provisioned": true,
        "approved": true,
        "cloudProperties": {
            "City": {
                "value": "Seattle"
            }
        },
        "properties": {
            "deviceinfo": {
                "firmwareVersion": {
                    "value": "1.0.0"
                }
            }
        },
        "telemetry": {
            "<interface_instance_name>": {
                "humidity": {
                    "value": 47.33228889360127
                }
            }
        }
    },
    "rule": {
        "id": "<rule_id>",
        "displayName": "Humidity monitor"
    }
}

Kural belirli bir süre boyunca toplu telemetriyi izlerse, yük aşağıdakine benzer bir telemetri bölümü içerir:

{
    "telemetry": {
        "<interface_instance_name>": {
            "Humidity": {
                "avg": 39.5
            }
        }
    }
}

Veri biçimi değişiklik bildirimi

3 Nisan 2020'den önce oluşturulmuş ve kaydedilmiş bir veya daha fazla web kancanız varsa web kancasını silin ve yenisini oluşturun. Eski web kancaları kullanım dışı bir yük biçimi kullanır:

{
    "id": "<id>",
    "displayName": "Webhook 1",
    "timestamp": "2019-10-24T18:27:13.538Z",
    "rule": {
        "id": "<id>",
        "displayName": "High temp alert",
        "enabled": true
    },
    "device": {
        "id": "rm1",
        "displayName": "Refrigerator Monitor - rm1",
        "instanceOf": "<device-template-id>",
        "simulated": true,
        "provisioned": true,
        "approved": true
    },
    "data": [{
        "@id": "<id>",
        "@type": ["Telemetry"],
        "name": "temperature",
        "displayName": "Temperature",
        "value": 66.27310467496761,
        "interfaceInstanceName": "sensors"
    }],
    "application": {
        "id": "<id>",
        "displayName": "x - Store Analytics Checkout",
        "subdomain": "<subdomain>",
        "host": "<host>"
    }
}

Azure İzleyici grup eylemi oluşturma

Bu bölümde, Bir IoT Central kuralına birden çok eylem eklemek için Azure İzleyicieylem gruplarının nasıl kullanılacağı açıklanmaktadır. Birden çok kurala eylem grubu ekleyebilirsiniz. Eylem grubu, Azure aboneliğinin sahibi tarafından tanımlanan bildirim tercihleri koleksiyonudur.

Eylem gruplarını Azure portalında veya bir Azure Resource Manager şablonuyla oluşturabilir ve yönetebilirsiniz.

Bir eylem grubu şu işlemleri yapabilir:

  • E-posta, SMS gibi bildirimler gönderin veya sesli arama yapın.
  • Web kancası çağırma gibi bir eylem çalıştırın.

Aşağıdaki ekran görüntüsünde, e-posta ve SMS bildirimleri gönderen ve web kancası çağıran bir eylem grubu gösterilmektedir:

Screenshot that shows an action group in the Azure portal.

IoT Central kuralında eylem grubu kullanmak için eylem grubunun IoT Central uygulamasıyla aynı Azure aboneliğinde olması gerekir.

IoT Central'da kurala bir eylem eklediğinizde Azure İzleyici Eylem Grupları'nı seçin.

Azure aboneliğinizden bir eylem grubu seçin:

Screenshot that shows an action group in an IoT Central rule.

Kaydet'i seçin. Eylem grubu artık kural tetiklendiğinde çalıştırılacak eylemler listesinde görünür.

Aşağıdaki tabloda desteklenen eylem türlerine gönderilen bilgiler özetlenmiştir:

Eylem türü Çıkış biçimi
E-posta Standart IoT Central e-posta şablonu
SMS Azure IoT Central uyarısı: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Ses Azure I.O.T Central uyarısı: kural "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
Web Kancası { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

Aşağıdaki metin, bir eylem grubundan gelen örnek bir SMS iletisidir:

iotcentral: Azure IoT Central alert: Contoso - "Low pressure alert" triggered on "Motion sensor 2" at March 20, 2019 10:12 UTC

IoT Edge modülleriyle kuralları kullanma

Kısıtlama, IoT Edge modüllerine uygulanan kurallar için geçerlidir. Farklı modüllerden alınan telemetri kuralları geçerli kurallar olarak değerlendirilmez. Aşağıdaki örneği ele alalım, kuralın ilk koşulu A Modülü'nden alınan sıcaklık telemetrisindedir. Kuralın ikinci koşulu B Modülündeki nem telemetrisindedir. İki koşul farklı modüllerden olduğundan geçersiz bir koşul kümeniz vardır. Kural geçerli değil ve kuralı kaydetmeye çalıştığınızda bir hata oluşturur.

Sonraki adımlar

Azure IoT Central uygulamanızda bir kuralı yapılandırmayı öğrendiğinize göre, Power Automate veya Azure Logic Apps kullanarak gelişmiş kuralları yapılandırmayı öğrenebilirsiniz.