MQTT API Referans

You are here:
Estimated reading time: 1 min

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 1
Views: 993
Scroll to Top
ThingsOn Iot Platform

ThingsOn Canlı Demo Formu

Lütfen aşağıdaki formu doldurup “Gönder” butonuna tıklayın.

Hızlı destek
Merhaba 👋
Size nasıl yardımcı olabiliriz?