Bir cihaz, ayrıştırma etiketini ?_sn=default içeren özel bir konuya özel biçimde bir mesaj gönderdiğinde IoT Platform bir mesaj ayrıştırma betiğini çağırır. Bu betik, özel verileri bir JSON yapısına dönüştürür ve ardından verileri aşağı akış iş sistemlerine iletir. Bu konuda, IoT Platform konsolunda özel biçimdeki verileri ayrıştırmak için nasıl mesaj ayrıştırma betiği göndereceğiniz açıklanmaktadır.
Kullanım ve sınırlamalar
Yalnızca Message Queuing Telemetry Transport (MQTT) üzerinden bağlı olan cihazlar özel konu mesajı ayrıştırmayı destekler.
Betik yalnızca cihazların IoT Platform'a raporladığı verileri ayrıştırır. Buluttan cihazlara gönderilen verileri ayrıştırmaz.
Betik, yukarı yönlü bir mesajın yükünü ayrıştırır ve ayrıştırılmış yükü döndürür.
Ayrıştırma sonrasında mesajın konusu değişmez. Örneğin,
/${productKey}/${deviceName}/user/updatekonusuna gönderilen bir mesaj, ayrıştırıldıktan sonra aynı konuda kalır.
Ayrıştırma etiketi
Cihazı yapılandırırken, mesaj yayınlamak için kullanılan özel konunun sonuna ?_sn=default ayrıştırma etiketini ekleyin.
IoT Platform yalnızca ayrıştırma etiketi içeren konulara yayınlanan mesajları ayrıştırır.
Örneğin, /${productKey}/${deviceName}/user/update konusuna gönderilen bir mesajın JSON biçimine ayrıştırılması gerekiyorsa, cihaz tarafı mantığını geliştirirken konuyu /${productKey}/${deviceName}/user/update?_sn=default olarak yapılandırmanız gerekir.
IoT Platform konsolunda özel bir konu oluştururken konu tanımına ayrıştırma etiketi eklemeyin.
Yordam
IoT Platform konsoluna giriş yapın.
Overview sayfasında yönetmek istediğiniz örneği bulun ve örnek kimliğine veya örnek adına tıklayın.
Sol gezinme bölmesinde seçeneklerini seçin.
Products sayfasında istenen ürünü bulun ve View seçeneğine tıklayın.
Product Details sayfasında Message Parsing sekmesine tıklayın.
-
Bir komut dosyası dili seçin. Ardından, Edit Script bölümünde kod düzenleyicisine betiğinizi girin.
Desteklenen komut dosyası dilleri
Tanımlanacak işlev
Örnek kod
JavaScript (ECMAScript 5)
transformPayload()
Python 2.7
transform_payload()
PHP 7.2
transformPayload()NotÜrün için Data Format değeri Pass-through/Custom olarak ayarlanmışsa Thing Specification Language (TSL) model mesajlarını ayrıştırmak için de bir betik yazmanız gerekir. Daha fazla bilgi için bkz. TSL model mesajı ayrıştırma betiği gönderin.
-
Betiği test edin.
Input Simulation bölümünde Simulation Type değerini Custom olarak ayarlayın, ardından bir cihaz ve konu seçin.
Cihaz tarafından raporlanan simüle edilmiş verileri girin ve Execute seçeneğine tıklayın.
Betiğin beklendiği gibi çalıştığını onayladıktan sonra, betiği IoT Platform'a göndermek için Submit seçeneğine tıklayın.
İsteğe bağlı: Mesaj ayrıştırma betiğini güncelleme
Bir mesaj ayrıştırma betiği gönderdikten sonra betiği değiştirmek veya silmek için Message Parsing sekmesine geri dönebilirsiniz. Değişikliklerinizi test etmek ve göndermek için Procedure bölümündeki adımları izleyin. Değişiklikler yaklaşık bir dakika içinde etkin hale gelir. Güncellenen betik, ürünle ilişkili tüm mevcut ve yeni cihazlar için geçerlidir.
Betiği değiştirip yeniden gönderirseniz mesaj ayrıştırma hizmeti için ilgili iş mantığını da güncellemeniz gerekir. Aksi takdirde hizmetleriniz kesintiye uğrayabilir.
Betiği silerseniz ürünle ilişkili cihazlar için mesaj ayrıştırma hizmeti kullanılamaz hale gelir. Bu durum hizmetlerinizi kesintiye uğratabilir.
Dikkatli ilerleyin.
İlgili bilgiler
Mesaj ayrıştırma akışı gibi temel bilgileri öğrenmek için bkz.Mesaj ayrıştırma nedir?.
Pass-through/Custom biçimindeki TSL model verilerini nasıl ayrıştıracağınız hakkında bilgi için bkz. TSL model mesajı ayrıştırma betiği gönderin.
Bir cihaza mesaj göndermek amacıyla API çağrısı yapma hakkında bilgi için bkz.TSL modelleri için API'ler ve Mesaj iletişimi için API'ler.