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.

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_METHODdeğerithing.event.property.postolur.
Örnek:
0x00002233441232013fa00000Yanıt konusu:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyBulut 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_replyBulut 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ı:
|
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.
Ö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: |
|
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:
Özel bir modül özelliği ise, tanımlayıcı biçimi
|
|
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.
|
|
value |
Object |
Bildirilen özellik değeri. time dahil etmezseniz, value öğesini atlayabilir ve parametre değerini doğrudan bildirebilirsiniz. |
|
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 |
|
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ı.
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 |
|
|
Alink JSON |
|
İ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ı:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Özellik ayarlama parametreleri. Örnekte özellik şu şekilde ayarlanır: Özel bir modül özelliği ise, tanımlayıcı biçimi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.
NotAktarı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}.postolabilir.Örnek:
0xff0000007b00Yanıt konusu:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyCloud 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ı:
|
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.
Ö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.
Not
|
|
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.
|
|
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.
|
|
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 |
|
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 |
|
|
Alink JSON |
|
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ı:
|
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.
|
|
method |
String |
İstek yöntemi.
Not
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
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.
NotGeç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.postolabilir.Örnek:
0xff0000007b00Yanıt konusu:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyBulut, 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/postAlink 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_replyAlink 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ı:
|
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.
Ö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
|
|
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
|
|
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: |
|
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 |
|
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/postYanı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ı:
|
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.
Ö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: |
|
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
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.
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/postYanı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ı:
|
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.
Ö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: |
|
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ı
|
|
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ı
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.