MQTT API

MQTT, çeşitli IoT cihazları için muhtemelen en uygun olan hafif bir yayınla abone olun mesajlaşma protokolüdür. MQTT hakkında daha fazla bilgiyi burada bulabilirsiniz.

ThingsOn sunucu düğümleri, QoS düzey 0 (en çok bir kez) ve 1 (en az bir kez) ve bir dizi önceden tanımlanmış konuyu destekleyen bir MQTT Broker olarak işlev görür.

MQTT Bağlantısı

Bu makalede erişim belirteci cihaz kimlik bilgileri kullanacak ve bunlara daha sonra $ ACCESS_TOKEN adı verilecektir. Uygulamanın $ ACCESS_TOKEN içeren kullanıcı adıyla MQTT CONNECT mesajı göndermesi gerekir. Bağlantı sırası sırasında olası dönüş kodları ve nedenleri:

0x00 Bağlandı – ThingsOn MQTT sunucusuna başarıyla bağlandı.
0x04 Bağlantı Reddedildi, hatalı kullanıcı adı veya şifre – Kullanıcı adı boş.
0x05 Bağlantı Reddedildi, yetkilendirilmedi – Kullanıcı adı geçersiz $ ACCESS_TOKEN içeriyor.

Key-value format

ThingsOn JSON formatında anahtar-değer (key-value) içeriğini destekler. Anahtar her zaman bir string iken, değer ise stringbooleandouble ya da long veri tipinde olabilir.

{"stringKey":"value1", "booleanKey":true, "doubleKey":42.0, "longKey":73}

Telemetry upload API

Telemetri verilerini ThingsOn sunucu düğümüne yayınlamak için, aşağıdaki konuya YAYIN mesajı gönderin:

v1/devices/me/telemetry

Desteklenen en basit veri formatları:

{"key1":"value1", "key2":"value2"}

yada

[{"key1":"value1"}, {"key2":"value2"}]

Bu durumda, sunucu tarafı zaman damgasının yüklenen verilere atanacağını lütfen unutmayın!

Cihazınızın istemci tarafı zaman damgasını alabilmesi durumunda, aşağıdaki biçimi kullanabilirsiniz:

{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}

Yukarıdaki örnekte, “1451649600512” ifadesinin milisaniye hassasiyete sahip unix bir zaman damgası olduğunu varsayıyoruz. Örneğin, “1451649600512” değeri “Cum, 01 Ocak 2016 12: 00: 00.512 GMT” ye karşılık gelir.

# Publish data as an object without timestamp (server-side timestamp will be used) mosquitto_pub -d -h "127.0.0.1" -t "v1/devices/me/telemetry" -u "$ACCESS_TOKEN" -f "{"key1":"value1", "key2":true, "key3": 3.0, "key4": 4}" # Publish data as an array of objects without timestamp (server-side timestamp will be used) mosquitto_pub -d -h "127.0.0.1" -t "v1/devices/me/telemetry" -u "$ACCESS_TOKEN" -f "[{"key1":"value1"}, {"key2":true}]" # Publish data as an object with timestamp (server-side timestamp will be used) mosquitto_pub -d -h "127.0.0.1" -t "v1/devices/me/telemetry" -u "$ACCESS_TOKEN" -f "{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}"

MQTT Kod Örnekleri (C#)

ThingsOn MQTT broker a bağlanarak veri göndermek için aşağıdaki C# örnek kodunu inceleyin.

// create connection MqttClient client = new MqttClient("IP ADRESS"); client.Connect("Client1", "ACCESS_TOKEN", ""); /*Client adını dilediğiniz gibi yazın. > Kullanıcı adı cihazın ACCESS_TOKEN i olacak, > Şifreyi boş bırakın*/ // create telemetry object dynamic telemetry = new JObject(); telemetry.temprature = 36; // publish message client.Publish("v1/devices/me/telemetry", Encoding.UTF8.GetBytes(Convert.ToString(telemetry)), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, false);

Was this article helpful?
Dislike 0
Previous:
Next:
tr_TRTurkish
tr_TRTurkish
Scroll to Top
ThingsOn Iot Platform

ThingsOn Canlı Demo Formu

Platformu 14 gün boyunca ücretsiz kullanmak için lütfen aşağıdaki formu doldurup “Gönder” butonuna tıklayın.