Tüm Ürünler
Search
Belge Merkezi

IoT Platform:Cihaz özellikleri, olayları ve hizmetler

Son Güncelleme:Oct 04, 2026

Bir ürün için TSL modeli tanımladıktan sonra, cihazlar özellikleri ve olayları bildirmek için Alink JSON biçimini kullanmalıdır. Sunucu tarafı da özellikleri ayarlamak ve hizmetleri çağırmak için Alink JSON kullanır. Cihazlar özel bir biçim kullanıyorsa, bunu dönüştürmek için veri ayrıştırma yapılandırması yapmanız gerekir.

Genel bilgiler

TSL model veri biçimi (özellikler, olaylar ve hizmetler) TSL modeli nedir? bölümünde tanımlanmıştır.

Bir cihaz verileri standart Alink JSON biçiminde (önerilen) veya geçiş/özel biçimde bildirir. Bu yöntemlerden birini seçmeniz gerekir.

  • Standart veri biçimi (Alink JSON): Cihaz, IoT Platform tarafından tanımlanan Alink JSON biçiminde veri oluşturur ve bildirir. Aşağıdaki bölümlerdeki biçim örneklerine bakın.

  • Geçiş/özel: Cihaz, ikili veri akışı gibi ham verileri bildirir. Alibaba Cloud IoT Platform, konsola gönderdiğiniz veri ayrıştırma betiğini çalıştırarak ham verileri işlemeden önce standart veri biçimine dönüştürür. Bulut, verileri standart Alink JSON biçiminde döndürür. Yanıt daha sonra ayrıştırılır ve cihaza iletilir.TSL model data pass-through

Önemli
  • Bir TSL model özelliği float veya double olarak tanımlandığında, bildirilen değer en az bir ondalık basamak içermelidir (örneğin, 10 yerine 10,0).

  • Cihazlar, yalnızca sonraki 24 saat içindeki bir time değeriyle özellik ve olay verilerini bildirebilir. Bu aralığın dışındaki bildirimler başarısız olur.

  • Mesaj kimliği (id), hem yukarı yön hem de aşağı yön mesajları için cihaz başına günlük olarak benzersiz olmalıdır.

    Aşağı yön mesajları için IoT Platform, id öğesini cihazın eşzamansız bir mesaja verdiği yanıtla eşleştirmek ve benzersizliği sağlamak için kullanır. Yukarı yön mesajları için cihaz id benzersizliğini sağlamalıdır.

Cihaz özellikleri bildirir

Alink protokolünde cihaz özelliği bildirimi diyagramı özellik bildirimi akışını göstermektedir.

Konu ve veri biçimi (mobil kaynaklı):

  • Geçiş/özel

    Konu

    Veri biçimi

    İstek konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw

    İstek verisi, cihaz tarafından bildirilen ham mesajdır.

    Not
    • Message Queuing Telemetry Transport (MQTT) protokolü üzerinden geçiş modunda iletilen veriler onaltılık biçimdedir.

    • Yüklenen geçiş verileri, değeri veri ayrıştırma betiğinde tanımlanan karşılık gelen istek yöntemiyle eşleşmesi gereken method parametresini içermelidir. Örneğin, JavaScript betiği örneğinde, bir cihaz buluta özellik verisi yüklediğinde ALINK_PROP_REPORT_METHOD değeri thing.event.property.post olur.

    Örnek:

    0x00002233441232013fa00000

    Yanıt konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    Bulut verileri aşağıdaki biçimde döndürür:

    • Başarılı yanıt örneği

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • Başarısız yanıt örneği

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    Konu

    Veri biçimi

    İstek konusu: /sys/${productKey}/${deviceName}/thing/event/property/post

    İstek veri biçimi:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "Power": {
                "value": "on",
                "time": 1524448722000
            },
            "WF": {
                "value": 23.6,
                "time": 1524448722000
            }
        },
        "method": "thing.event.property.post"
    }

    Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/property/post_reply

    Bulut verileri aşağıdaki biçimde döndürür:

    • Başarılı yanıt örneği

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "method": "thing.event.property.post",
          "version": "1.0"
      }
    • Başarısız yanıt örneği

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "The format of result is error!",
          "method": "thing.event.property.post",
          "version": "1.0"
      }

Parametre açıklaması:

Tablo 1. İstek parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dize. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Tek geçerli değer 1.0'dır.

sys

Object

Genişletilmiş özellik parametreleri.

Not

Genişletilmiş özellikleri ayarlamadan bir cihaz tarafı SDK kullanıyorsanız, bu parametre atlanır ve varsayılanlar uygulanır.

ack

Integer

Bulutun yanıt döndürüp döndürmeyeceği. sys altında bir alandır.

  • 1: Yanıt döndürür.

  • 0: Yanıt döndürülmez.

Önemli

Thing Specification Language model kullanım örnekleri.

Yapılandırılmazsa, bu parametre atlanır ve varsayılan olarak bir yanıt döndürülür.

method

String

İstek yöntemi. Örneğin: thing.event.property.post.

params

Object

Bildirilecek özellik verisi. Bu örnekte, cihaz Power (güç kaynağı) ve WF (çalışma akımı) özelliklerini, her biri bir değer ve isteğe bağlı bir zaman damgası ile birlikte bildirir.

Yalnızca özellik değerlerini geçiriyorsanız, time ve value alanlarını yüklemeniz gerekmez. Aşağıda params parametresine bir örnek verilmiştir:

"params": {
    "Power": "on",
    "WF": 23.6
}

Özel bir modül özelliği ise, tanımlayıcı biçimi ${moduleIdentifier}:${propertyIdentifier} (iki nokta üst üste işaretiyle ayrılmış) şeklindedir. Örneğin:

"test:Power": {
        "value": "on",
        "time": 1524448722000
    }

time

Long

Özelliğin bildirildiği UTC milisaniye cinsinden UNIX zaman damgası.

İsteğe bağlıdır. Mesaj sıralamanın önemli olduğu durumlarda bir zaman damgası ekleyin.

  • time dahil edilirse, IoT Platform bunu özellik bildirim zamanı olarak kullanır.

  • time atlanırsa, IoT Platform bildirim zamanını otomatik olarak oluşturur.

value

Object

Bildirilen özellik değeri.

time dahil etmezseniz, value öğesini atlayabilir ve parametre değerini doğrudan bildirebilirsiniz.

Tablo 2. Yanıt parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dize. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.

code

Integer

Sonuç durum kodu. Cihaz tarafı genel kodlar.

Not

IoT Platform, bildirilen özellikleri ürünün TSL tanımına göre doğrular. Doğrulama başarısız olan özellikler filtrelenir ve bir hata kodu döndürülür.

data

Object

İstek başarılı olursa boş bir nesne döndürülür.

message

String

Yanıt mesajı. İstek başarılı olursa success döndürülür.

method

String

Yanıta karşılık gelen istek yöntemi. Bu, istek parametrelerindeki method ile aynıdır.

version

String

Protokol sürüm numarası. Bu, istek parametrelerindeki version ile aynıdır.

Hata kodları: Cihazlar tarafından alınan hata kodları.

Mesaj iletme: Bildirilen özellikler, sunucu tarafı aboneliği veya veri iletme aracılığıyla sunucunuza veya diğer bulut hizmetlerine iletilebilir. Konular ve veri biçimleri: Cihaz özelliği bildirimi.

Cihaz özelliklerini ayarla

Bir cihaza özelliklerini ayarlaması için talimat göndermek amacıyla SetDeviceProperty veya SetDevicesProperty API işlemini çağırın. Cihaz özelliklerinin nasıl ayarlanacağını anlamak için bkz. Alink protokolünde özellik ayarlama diyagramı.

Önemli

Cihaz özelliklerini ayarlamak için başarılı bir yanıt, yalnızca IoT Platform'un isteği gönderdiğini gösterir; cihazın bunu yürüttüğünü göstermez. Cihaz SDK'sı yanıt verdikten sonra, cihaz değişikliği onaylamak için yeni özellik değerlerini bildirmelidir. Yukarıdaki "Cihaz özellikleri bildirir" bölümüne bakın.

Konu ve veri biçimi (mobil hedefli):

Veri biçimi (mobil hedefli)

İstek ve yanıt konuları

Geçiş/özel

  • İstek konusu: /sys/${productKey}/${deviceName}/thing/model/down_raw

  • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • İstek konusu: /sys/${productKey}/${deviceName}/thing/service/property/set

  • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/service/property/set_reply

İstek veri biçimi:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "temperature": "30.5"
    },
    "method": "thing.service.property.set"
}

Yanıt veri biçimi:

  • Başarılı yanıt örneği

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "version": "1.0"
    }
  • Başarısız yanıt örneği

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "version": "1.0"
    }

Parametre açıklaması:

Tablo 3. İstek parametreleri


Parametre


Tür


Açıklama


id


String


Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dize. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.


version


String


Protokol sürüm numarası. Tek geçerli değer 1.0'dır.


params


Object

Özellik ayarlama parametreleri. Örnekte özellik şu şekilde ayarlanır: { "temperature": "30.5" }.

Özel bir modül özelliği ise, tanımlayıcı biçimi ${moduleIdentifier}:${propertyIdentifier} (iki nokta üst üste işaretiyle ayrılmış) şeklindedir, örneğin { "test:temperature": "30.5" }.


method


String


İstek yöntemi. Örneğin: thing.service.property.set.

Tablo 4. Yanıt parametreleri


Parametre


Tür


Açıklama


id


String


Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dize. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.


code


Integer


Sonuç durum kodu. Cihaz tarafı genel kodlar.


data


Object


İstek başarılı olursa boş bir nesne döndürülür.

message String Yanıt mesajı. İstek başarılı olursa success döndürülür.
version String Protokol sürüm numarası. Bu, istek parametrelerindeki version ile aynıdır.

Hata kodları: Cihazlar tarafından alınan hata kodları.

Mesaj iletme: Özellik ayarlama sonuçları, sunucu tarafı aboneliği veya veri iletme aracılığıyla sunucunuza veya diğer bulut hizmetlerine iletilebilir. Konular ve veri biçimleri: Cihaz mobil hedefli talimat sonuçları.

Cihaz olay bildirimi

Alink protokolünde Cihaz olay bildirim diyagramı olay bildirim akışını gösterir.

Konu ve veri biçimi (cihazdan buluta):

  • Aktarım/özel

    Konu

    Veri biçimi

    İstek konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw

    İstek verisi, cihaz tarafından bildirilen ham mesajdır.

    Not

    Aktarım verileri method parametresini içermelidir. Değer, veri ayrıştırma betiğinde tanımlanan ilgili istek yöntemiyle tutarlı olmalıdır. Örneğin, değer thing.event.${tsl.event.identifier}.post olabilir.

    Örnek:

    0xff0000007b00

    Yanıt konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    Cloud aşağıdaki biçimde veri döndürür:

    • Başarılı yanıt örneği

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • Başarısız yanıt örneği

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    TSL model modülü

    Konu

    Veri biçimi

    Varsayılan modül

    • İstek konusu: /sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

    • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post_reply

    Varsayılan TSL model modülünü örnek alarak Alink istek veri biçimi aşağıdaki gibidir:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "value": {
                "Power": "on",
                "WF": "2"
            },
            "time": 1524448722000
        },
        "method": "thing.event.${tsl.event.identifier}.post"
    }

    Alink yanıt veri biçimi:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.${tsl.event.identifier}.post",
        "version": "1.0"
    }

    İstek başarısız olursa {} döndürülür.

    Özel modül

    • İstek konusu: /sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post

    • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post_reply

Parametre açıklaması:

Tablo 5. İstek parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj Kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Tek geçerli değer 1.0'dır.

sys

Object

Genişletilmiş özellik parametreleri.

Not

Cihaz tarafı SDK'sını kullanırken genişletilmiş özellikleri ayarlamazsanız bu parametre atlanır ve varsayılanlar uygulanır.

ack

Integer

Cloud'un yanıt döndürüp döndürmeyeceğini belirtir. sys altında yer alan bir alandır.

  • 1: Yanıt döndürür.

  • 0: Yanıt döndürmez.

Önemli

TSL modeli kullanım örnekleri.

Yapılandırılmazsa bu parametre atlanır ve varsayılan olarak bir yanıt döndürülür.

method

String

İstek yöntemi.

  • Varsayılan modül

    Değer thing.event.${tsl.event.identifier}.post şeklindedir.

  • Özel modül

    Değer thing.event.${tsl.functionBlockId}:${tsl.event.identifier}.post şeklindedir.

Not

${tsl.event.identifier}, TSL modelinde tanımlanan olay tanımlayıcısıdır ve ${tsl.functionBlockId} özel modül tanımlayıcısıdır. Tek bir özellik için TSL modeli ekleme.

params

Object

Bildirim yapılan olayın çıkış parametreleri.

value

Object

Olayın çıkış parametrelerinin bilgileri. Örnek, Power ve WF (çalışma akımı) olmak üzere iki parametre için bilgi göstermektedir.

{
    "Power": "on",
    "WF": "2"
}

time

Long

Olayın UTC milisaniye cinsinden bildirildiği UNIX zaman damgası.

Bu isteğe bağlı bir alandır. İş senaryonuzun gerektirdiğine göre zaman damgası ekleyip eklememeye karar verin. Mesajlar sık geliyorsa ve mesaj sırasını zaman damgasına göre belirlemeniz gerekiyorsa zaman damgası eklemenizi öneririz.

  • time dahil ederseniz IoT Platform belirtilen zamanı olay bildirim zamanı olarak kaydeder.

  • time dahil etmezseniz IoT Platform olay bildirim zamanını otomatik olarak oluşturur ve kaydeder.

Tablo 6. Yanıt parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj Kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.

code

Integer

Sonuç durum kodu. Cihaz tarafı genel kodları.

Not

IoT Platform, bildirilen olayları ürünün TSL tanımıyla karşılaştırarak doğrular. Doğrulama başarısız olan olaylar filtrelenir ve bir hata kodu döndürülür.

data

Object

İstek başarılı olursa boş bir nesne döndürülür.

message

String

Yanıt mesajı. İstek başarılı olursa success döndürülür.

method

String

Yanıta karşılık gelen istek yöntemi. Bu, istek parametrelerindeki method ile aynıdır.

version

String

Protokol sürüm numarası. Bu, istek parametrelerindeki version ile aynıdır.

Alink biçimi örneği: Bir üründe alarm adında bir olayın tanımlandığını varsayalım. TSL açıklaması aşağıdaki gibidir. Parametreler hakkında daha fazla bilgi için TSL modeli nedir? konusuna bakın.

{
    "schema": "https://iot-tsl.oss-cn-shanghai.aliyuncs.com/schema.json",
    "link": "/sys/${productKey}/airCondition/thing/",
    "profile": {
        "productKey": "${productKey}",
        "deviceName": "airCondition"
    },
    "events": [
        {
            "identifier": "alarm",
            "name": "alarm",
            "desc": "Fan alarm",
            "type": "alert",
            "required": true,
            "outputData": [
                {
                    "identifier": "errorCode",
                    "name": "Error code",
                    "dataType": {
                        "type": "text",
                        "specs": {
                            "length": "255"
                        }
                    }
                }
            ],
            "method": "thing.event.alarm.post"
        }
    ]
}

Cihaz olayı bildirdiğinde Alink istek veri biçimi aşağıdaki gibidir:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "value": {
            "errorCode": "error"
        },
        "time": 1524448722000
    },
    "method": "thing.event.alarm.post"
}

Hata kodları: Cihazların aldığı hata kodları.

Mesaj yönlendirme: Bildirilen olaylar sunucu tarafı aboneliği veya veri yönlendirme aracılığıyla sunucunuza veya diğer cloud hizmetlerine iletilebilir. Konular ve veri biçimleri: Cihaz olay bildirimi.

Cihaz hizmeti çağrısı (eşzamansız)

IoT Platform eşzamanlı ve eşzamansız çağırmaları destekler. TSL modelinde bir hizmet tanımlarken çağrı yöntemini belirtmeniz gerekir. Cihaz hizmetlerinin nasıl çağrıldığını anlamak için Alink protokolünde hizmet çağrısı diyagramı konusuna bakın.

  • Eşzamanlı: InvokeThingService veya InvokeThingsService API işlemini çağırın. IoT Platform, isteği eşzamanlı olarak iletmek için revert-RPC (RRPC) kullanır. Hizmet eşzamanlı çağrı olarak ayarlanmalı ve IoT Platform ilgili RRPC konusuna abone olmalıdır. RRPC nedir?.

  • Eşzamansız: Bir hizmeti çağırmak için InvokeThingService veya InvokeThingsService API işlemini çağırın. IoT Platform isteği eşzamansız olarak iletir ve cihaz sonucu eşzamansız olarak döndürür. Bu durumda hizmet eşzamansız çağrı olarak ayarlanır ve IoT Platform bu bölümde açıklanan eşzamansız yanıt konusuna abone olur.

Konu ve veri biçimi (buluttan cihaza):

Giden veri biçimi

İstek ve yanıt konuları

Aktarım/özel

  • İstek konusu: /sys/${productKey}/${deviceName}/thing/model/down_raw

  • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • Varsayılan modül

    • İstek konusu: /sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}

    • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}_reply

  • Özel modül

    • İstek konusu: /sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}

    • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}_reply

Alink istek veri biçimi:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "Power": "on",
        "WF": "2"
    },
    "method": "thing.service.${tsl.service.identifier}"
}

Yanıt veri biçimi:

  • Başarılı yanıt örneği:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "version": "1.0"
    }
  • Başarısız yanıt örneği:

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "version": "1.0"
    }

Parametre açıklaması:

Tablo 7. İstek parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj Kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Tek geçerli değer 1.0'dır.

params

Object

Hizmet çağrısı parametreleri. Hizmet tanımlayıcısını ve hizmet değerini içerir. Örnek, Power ve WF (çalışma akımı) olmak üzere iki parametre göstermektedir.

{
    "Power": "on",
    "WF": "2"
}

method

String

İstek yöntemi.

  • Varsayılan modül

    Değer thing.service.${tsl.service.identifier} şeklindedir.

  • Özel modül

    Değer thing.service.${tsl.functionBlockId}:${tsl.service.identifier} şeklindedir.

Not

${tsl.service.identifier}, TSL modelinde tanımlanan hizmet tanımlayıcısıdır ve ${tsl.functionBlockId} özel modül tanımlayıcısıdır. Tek bir özellik için TSL modeli ekleme.

Tablo 8. Yanıt parametreleri


Parametre


Tür


Açıklama


id


String


Mesaj Kimliği. 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj kimliği geçerli cihaz için benzersiz olmalıdır.


code


Integer


Sonuç durum kodu. Cihaz tarafı genel kodları.


data


Object

Yanıt bilgisi.

data parametresinin değeri TSL modeli tanımına bağlıdır. Hizmet bir sonuç döndürmezse data değeri boştur. Hizmet bir sonuç döndürürse döndürülen veri hizmet tanımına kesinlikle uyar.

message String Yanıt mesajı. İstek başarılı olursa success döndürülür.
version String Protokol sürüm numarası. Bu, istek parametrelerindeki version ile aynıdır.

Alink biçimi örneği: Bir üründe SetWeight adında bir hizmetin tanımlandığını varsayalım. TSL açıklaması aşağıdaki gibidir:

{
    "schema": "https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
    "profile": {
        "productKey": "testProduct01"
    },
    "services": [
        {
            "outputData": [
                {
                    "identifier": "OldWeight",
                    "dataType": {
                        "specs": {
                            "unit": "kg",
                            "min": "0",
                            "max": "200",
                            "step": "1"
                        },
                        "type": "double"
                    },
                    "name": "OldWeight"
                },
                {
                    "identifier": "CollectTime",
                    "dataType": {
                        "specs": {
                            "length": "2048"
                        },
                        "type": "text"
                    },
                    "name": "CollectTime"
                }
            ],
            "identifier": "SetWeight",
            "inputData": [
                {
                    "identifier": "NewWeight",
                    "dataType": {
                        "specs": {
                            "unit": "kg",
                            "min": "0",
                            "max": "200",
                            "step": "1"
                        },
                        "type": "double"
                    },
                    "name": "NewWeight"
                }
            ],
            "method": "thing.service.SetWeight",
            "name": "Set weight",
            "required": false,
            "callType": "async"
        }
    ]
}

Hizmet çağrıldığında Alink istek veri biçimi aşağıdaki gibidir:

{
    "method": "thing.service.SetWeight",
    "id": "105917531",
    "params": {
        "NewWeight": 100.8
    },
    "version": "1.0"
}

Alink yanıt veri biçimi:

{
    "id": "105917531",
    "code": 200,
    "data": {
        "CollectTime": "1536228947682",
        "OldWeight": 100.101
    }
    "message": "success",
    "version": "1.0"
}

Hata kodları: Cihazların aldığı hata kodları.

Mesaj yönlendirme: Eşzamansız çağrı sonuçları sunucu tarafı aboneliği veya veri yönlendirme aracılığıyla sunucunuza veya diğer cloud hizmetlerine iletilebilir. Konular ve veri biçimleri: Cihazdan buluta gelen talimat sonuçları.

Ağ geçidi toplu veri raporlama

Ağ geçidi cihazları, özellikleri ve olayları toplu olarak raporlayabilir. Ayrıca alt cihazlarının özelliklerini ve olaylarını da toplu şekilde raporlayabilirler.

Not
  • Tek seferde en fazla 200 özellik ve 20 olay raporlayabilirsiniz.

  • Tek seferde en fazla 20 alt cihaz için veri raporlayabilirsiniz.

Konu ve veri biçimi (cihazdan buluta):

  • Geçiş/özel

    Konu

    Veri biçimi

    İstek konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw

    İstek verisi, cihaz tarafından raporlanan ham mesajdır.

    Not

    Geçiş verisi, method parametresini içermelidir. Değer, veri ayrıştırma betiğinde tanımlanan karşılık gelen istek yöntemiyle tutarlı olmalıdır. Örneğin, değer thing.event.property.pack.post olabilir.

    Örnek:

    0xff0000007b00

    Yanıt konusu: /sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    Bulut, aşağıdaki biçimde veri döndürür:

    • Başarılı yanıt örneği

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • Başarısız yanıt örneği

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    İstek ve yanıt konuları

    İstek ve yanıt verileri

    İstek konusu: /sys/${productKey}/${deviceName}/thing/event/property/pack/post

    Alink istek veri biçimi:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "properties": {
                "Power": {
                    "value": "on",
                    "time": 1524448722000
                },
                "WF": {
                    "value": { },
                    "time": 1524448722000
                }
            },
            "events": {
                "alarmEvent1": {
                    "value": {
                        "param1": "on",
                        "param2": "2"
                    },
                    "time": 1524448722000
                },
                "alertEvent2": {
                    "value": {
                        "param1": "on",
                        "param2": "2"
                    },
                    "time": 1524448722000
                }
            },
            "subDevices": [
                {
                    "identity": {
                        "productKey": "",
                        "deviceName": ""
                    },
                    "properties": {
                        "Power": {
                            "value": "on",
                            "time": 1524448722000
                        },
                        "WF": {
                            "value": { },
                            "time": 1524448722000
                        }
                    },
                    "events": {
                        "alarmEvent1": {
                            "value": {
                                "param1": "on",
                                "param2": "2"
                            },
                            "time": 1524448722000
                        },
                        "alertEvent2": {
                            "value": {
                                "param1": "on",
                                "param2": "2"
                            },
                            "time": 1524448722000
                        }
                    }
                }
            ]
        },
        "method": "thing.event.property.pack.post"
    }

    Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/property/pack/post_reply

    Alink yanıt veri biçimi:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.pack.post",
        "version": "1.0"
    }

    İstek başarısız olursa, {} döndürülür.

Parametre açıklaması:

Tablo 9. İstek parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip sayısal bir dizedir. Her mesaj kimliği, mevcut cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Tek geçerli değer 1.0'dır.

sys

Object

Genişletilmiş özellik parametreleri.

Not

Cihaz tarafında SDK kullanırken genişletilmiş özellikleri ayarlamazsanız bu parametre atlanır ve varsayılanlar uygulanır.

ack

Integer

Bulutun yanıt döndürüp döndürmeyeceğini belirtir. sys altında bulunan bir alandır.

  • 1: Yanıt döndürülür.

  • 0: Yanıt döndürülmez.

Önemli

Thing Specification Language modeli kullanım örnekleri.

Yapılandırılmadıysa bu parametre atlanır ve varsayılan olarak yanıt döndürülür.

params

Object

İstek parametreleri.

properties

Object

Özellikler. Özellik tanımlayıcısını, özellik değerini (value) ve özelliğin oluşturulduğu zamanı (time) içerir.

time parametresi isteğe bağlıdır. İş senaryonıza göre zaman damgası ekleyip eklememeye karar verin. Mesajlar sık geliyorsa ve mesaj sırasını zaman damgasına göre belirlemeniz gerekiyorsa zaman damgası eklemenizi öneririz.

Örnekte, cihaz Power ve WF (çalışma akımı) olmak üzere iki özellik için bilgi raporlar.

Özel modül özelliği ise tanımlayıcı biçimi ${moduleIdentifier}:${propertyIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örnek:

"test:Power": {
        "value": "on",
        "time": 1524448722000
    }

events

Object

Olaylar. Olay tanımlayıcısını, olay çıktı parametrelerini (value) ve olayın oluşturulduğu zamanı (time) içerir.

time parametresi isteğe bağlıdır. İş senaryonıza göre zaman damgası ekleyip eklememeye karar verin. Mesajlar sık geliyorsa ve mesaj sırasını zaman damgasına göre belirlemeniz gerekiyorsa zaman damgası eklemenizi öneririz.

Örnekte, alarmEvent1 ve alarmEvent2 adlı iki olay, karşılık gelen param1 ve param2 parametreleriyle birlikte raporlanır.

Özel modül olayı ise tanımlayıcı biçimi ${moduleIdentifier}:${eventIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örnek:

"test:alarmEvent1": {
        "value": {
            "param1": "on",
            "param2": "2"
        },
        "time": 1524448722000
    }

subDevices

Object

Alt cihaz bilgileri.

productKey

String

Alt cihazın ürününe ait ProductKey değeri.

deviceName

String

Alt cihazın adı.

method

String

İstek parametresi. Değer: thing.event.property.pack.post.

Tablo 10. Yanıt parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip sayısal bir dizedir. Her mesaj kimliği, mevcut cihaz için benzersiz olmalıdır.

code

Integer

Yanıt kodu. 200 değeri başarıyı gösterir.

Not

Sistem, cihazı, topolojiyi ve raporlanan özellikleri ve olayları ürünün TSL modeli tanımına göre doğrular. Bu kontrollerden herhangi biri başarısız olursa veri raporlama işlemi de başarısız olur.

data

Object

İstek başarılı olursa boş bir nesne döndürülür.

message

String

Yanıt mesajı. İstek başarılı olursa success döndürülür.

method

String

Yanıta karşılık gelen istek yöntemi. Bu değer, istek parametrelerindeki method değeriyle aynıdır.

version

String

Protokol sürüm numarası. Bu değer, istek parametrelerindeki version değeriyle aynıdır.

Hata kodları: Cihazların aldığı hata kodları.

Mesaj yönlendirme: Ağ geçitlerinden gelen toplu TSL modeli verileri, sunucu tarafı aboneliği veya veri yönlendirme aracılığıyla sunucunuza veya diğer cloud ürünlere iletilebilir. Alt cihazlar ve ağ geçidi için mesajlar, yönlendirilmeden önce tekil özellik veya olay mesajlarına ayrılır. Konular ve veri biçimleri: Cihaz özelliği raporlama ve Cihaz olayı raporlama.

TSL modeli geçmiş veri raporlama

Konu ve veri biçimi (cihazdan buluta):

  • İstek konusu: /sys/${productKey}/${deviceName}/thing/event/property/history/post

  • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/property/history/post_reply

Alink istek veri biçimi:

{
    "id": "123", 
    "version": "1.0",
    "sys":{
        "ack":0
    }, 
    "method": "thing.event.property.history.post", 
    "params": [
        {
            "identity": {
                "productKey": "", 
                "deviceName": ""
            }, 
            "properties": [
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }, 
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }
            ], 
            "events": [
                {
                    "alarmEvent": {
                        "value": {
                            "Power": "on", 
                            "WF": "2"
                        }, 
                        "time": 1524448722000
                    }, 
                    "alertEvent": {
                        "value": {
                            "Power": "off", 
                            "WF": "3"
                        }, 
                        "time": 1524448722000
                    }
                }
            ]
        }, 
        {
            "identity": {
                "productKey": "", 
                "deviceName": ""
            }, 
            "properties": [
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }
            ], 
            "events": [
                {
                    "alarmEvent": {
                        "value": {
                            "Power": "on", 
                            "WF": "2"
                        }, 
                        "time": 1524448722000
                    }, 
                    "alertEvent": {
                        "value": {
                            "Power": "off", 
                            "WF": "3"
                        }, 
                        "time": 1524448722000
                    }
                }
            ]
        }
    ]
}

Alink yanıt veri biçimi:

  • Başarılı yanıt örneği

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.history.post",
        "version": "1.0"
    }
  • Başarısız yanıt örneği

    {
        "code": 5092,
        "data": {},
        "id": "123",
        "message": "property not found",
        "method": "thing.event.property.history.post",
        "version": "1.0"
    }

Parametre açıklaması:

Tablo 11. İstek parametreleri

Parametre

Tür

Açıklama

id

String

Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip sayısal bir dizedir. Her mesaj kimliği, mevcut cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Tek geçerli değer 1.0'dır.

sys

Object

Genişletilmiş özellik parametreleri.

Not

Cihaz tarafında SDK kullanırken genişletilmiş özellikleri ayarlamazsanız bu parametre atlanır ve varsayılanlar uygulanır.

ack

Integer

Bulutun yanıt döndürüp döndürmeyeceğini belirtir. sys altında bulunan bir alandır.

  • 1: Yanıt döndürülür.

  • 0: Yanıt döndürülmez.

Önemli

Thing Specification Language modeli kullanım örnekleri.

Yapılandırılmadıysa bu parametre atlanır ve varsayılan olarak yanıt döndürülür.

method

String

İstek yöntemi. Statik bir alandır. Değer: thing.event.property.history.post.

params

Object

İstek parametreleri.

identity

String

Verinin ait olduğu cihazın sertifika bilgileri. productKey ve deviceName parametrelerini içerir.

Not

Doğrudan bağlı bir cihaz yalnızca kendi geçmiş TSL modeli verilerini raporlayabilir. Bir ağ geçidi cihazı, alt cihazları için geçmiş TSL modeli verilerini raporlayabilir. Ağ geçidi bir alt cihaz için geçmiş verileri raporladığında identity alt cihazın bilgilerini içerir.

properties

Object

Özellikler. Özellik tanımlayıcısını, özellik değerini (value) ve özelliğin oluşturulduğu zamanı (time) içerir.

Örnekte, cihaz Power ve WF (çalışma akımı) olmak üzere iki özellik için geçmiş bilgileri raporlar.

Özel modül özelliği ise tanımlayıcı biçimi ${moduleIdentifier}:${propertyIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örnek:

"test:Power": {
        "value": "on",
        "time": 1524448722000
    }

events

Object

Olaylar. Olay tanımlayıcısını, olay çıktı parametrelerini (value) ve olayın oluşturulduğu zamanı (time) içerir.

Örnekte, alarmEvent için geçmiş bilgiler, karşılık gelen Power ve WF (çalışma akımı) parametreleriyle birlikte raporlanır.

Özel modül olayı ise tanımlayıcı biçimi ${moduleIdentifier}:${eventIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örnek:

"test:alarmEvent": {
        "value": {
            "Power": "on", 
            "WF": "2"
        }, 
        "time": 1524448722000
    }
Tablo 12. Yanıt parametreleri


Parametre


Tür


Açıklama


id


String


Mesaj kimliği. 0 ile 4294967295 arasında bir değere sahip sayısal bir dizedir. Her mesaj kimliği, mevcut cihaz için benzersiz olmalıdır.


code


Integer


Sonuç durum kodu. Cihaz tarafı genel kodları.


data


Object


İstek başarılı olursa boş bir nesne döndürülür.

message String Yanıt mesajı. İstek başarılı olursa success döndürülür.
method String Yanıta karşılık gelen istek yöntemi. Bu değer, istek parametrelerindeki method değeriyle aynıdır.
version String Protokol sürüm numarası. Bu değer, istek parametrelerindeki version değeriyle aynıdır.

Hata kodları: Cihazların aldığı hata kodları.

Mesaj yönlendirme: Geçmiş TSL modeli verileri, sunucu tarafı aboneliği veya veri yönlendirme aracılığıyla sunucunuza veya diğer cloud ürünlere iletilebilir. Konular ve veri biçimleri: Geçmiş özellik raporlama ve Geçmiş olay raporlama.

Önemli

Bir cihazdan geçmiş TSL modeli verileri yönlendirildiğinde platform, properties ve events altında listelenen öğeler için ayrı mesajlar oluşturur. Her bir özellik veya olay için geçmiş veriler ayrı ayrı yönlendirilir.

Cihaz toplu özellik ve olay raporlama

Konu ve veri biçimi (cihazdan buluta):

  • İstek konusu: /sys/${productKey}/${deviceName}/thing/event/property/batch/post

  • Yanıt konusu: /sys/${productKey}/${deviceName}/thing/event/property/batch/post_reply

Alink istek veri biçimi:

{
    "id": "123", 
    "version": "1.0",
    "sys":{
        "ack":0
    }, 
    "method": "thing.event.property.batch.post", 
    "params": {
        "properties": {
            "Power": [
                {
                    "value": "on", 
                    "time": 1524448722000
                },
                {
                    "value": "off", 
                    "time": 1524448722001
                }
            ], 
            "WF": [
                {
                    "value": 3, 
                    "time": 1524448722000
                },
                {
                    "value": 4, 
                    "time": 1524448722009
                }
            ]
        }, 
        "events": {
            "alarmEvent": [
                {
                    "value": {
                        "Power": "on", 
                        "WF": "2"
                    }, 
                    "time": 1524448722000
                },
                {
                    "value": {
                        "Power": "on", 
                        "WF": "2"
                    }, 
                    "time": 1524448722000
                }
            ]
        }
    }
}

Alink yanıt veri biçimi:

  • Başarılı yanıt örneği:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.batch.post",
        "version": "1.0"
    }
  • Başarısız yanıt örneği:

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "method": "thing.event.property.batch.post",
        "version": "1.0"
    }

Parametre açıklaması:

Tablo 13. İstek parametreleri

Parameter

Type

Description

id

String

Mesaj kimliği (ID). 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj ID'si, mevcut cihaz için benzersiz olmalıdır.

version

String

Protokol sürüm numarası. Geçerli tek değer 1.0'dır.

sys

Object

Genişletilmiş özellik parametreleri.

Not

Cihaz tarafında SDK kullanırken genişletilmiş özellikleri ayarlamazsanız bu parametre atlanır ve varsayılan değerler uygulanır.

ack

Integer

Cloud'un yanıt döndürüp döndürmeyeceğini belirtir. sys altındaki bir alandır.

  • 1: Yanıt döndürülür.

  • 0: Yanıt döndürülmez.

Önemli

Thing Specification Language modeli kullanım örnekleri.

Yapılandırılmazsa bu parametre atlanır ve varsayılan olarak bir yanıt döndürülür.

method

String

İstek yöntemi. Bu statik bir alandır. Değer: thing.event.property.batch.post.

params

Object

İstek parametreleri.

properties

Object

Özellikler. Özellik tanımlayıcısını, özellik değerini (value) ve özelliğin oluşturulduğu zamanı (time) içerir.

Örnekte, cihaz Power ve WF (çalışma akımı) olmak üzere iki özellik için toplu iş bilgilerini bildirir.

Bu bir özel modül özelliği ise tanımlayıcı formatı ${moduleIdentifier}:${propertyIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örneğin:

"test:Power": {
        "value": "on",
        "time": 1524448722000
    }

events

Object

Olaylar. Olay tanımlayıcısını, olay çıktı parametrelerini (value) ve olayın oluşturulduğu zamanı (time) içerir.

Örnekte, alarmEvent için ilgili Power ve WF (çalışma akımı) parametreleriyle birlikte toplu iş bilgileri bildirilir.

Bu bir özel modül olayı ise tanımlayıcı formatı ${moduleIdentifier}:${eventIdentifier} şeklindedir (iki nokta üst üste ile ayrılmış). Örneğin:

"test:alarmEvent": {
        "value": {
            "Power": "on", 
            "WF": "2"
        }, 
        "time": 1524448722000
    }
Tablo 14. Yanıt parametreleri


Parameter


Type


Description


id


String


Mesaj kimliği (ID). 0 ile 4294967295 arasında bir değere sahip rakamlardan oluşan bir dizedir. Her mesaj ID'si, mevcut cihaz için benzersiz olmalıdır.


code


Integer


Sonuç durum kodu. Cihaz tarafı genel kodları.


data


Object


İstek başarılı olursa boş bir nesne döndürülür.

message String Yanıt mesajı. İstek başarılı olursa success döndürülür.
method String Yanıta karşılık gelen istek yöntemi. Bu, istek parametrelerindeki method ile aynıdır.
version String Protokol sürüm numarası. Bu, istek parametrelerindeki version ile aynıdır.

Hata kodları: Cihazların aldığı hata kodları.

Mesaj yönlendirme: Toplu TSL modeli verileri, sunucu tarafı aboneliği aracılığıyla sunucunuza yönlendirilebilir. Özellik ve olay verileri ayrı mesajlar olarak yönlendirilir. Konular ve veri formatları: Cihazlardan toplu özellik bildirimi ve Cihazlardan toplu olay bildirimi.

Referanslar

TSL modellerinde özellik bildirimi, geçmiş veri bildirimi ve toplu özellik bildirimi arasındaki farklar nelerdir?.