Konu, yayınlama/abonelik modelinde bir ara mesaj broker'ıdır. Cihazlar, IoT Platform ile iletişim kurmak için konuları kullanarak mesaj gönderebilir ve alabilir. IoT Platform, yetkilendirmeyi basitleştirmek ve cihazlarla iletişimi sağlamak amacıyla konu kategorileri ve konular sunar. Bu konuda, konuların nasıl tanımlanacağı, kullanılacağı ve sınıflandırılacağı açıklanmaktadır.
Konu kategorileri
Konu kategorileri ürünler açısından tanımlanır. Her konu kategorisi, aynı ürün içindeki farklı cihazlar için bir dizi konuyu temsil eder. Bir product için birden fazla konu kategorisi tanımlayabilirsiniz. Bir konu kategorisi, bir product içindeki tüm cihazlar için geçerli olur.
Aşağıdaki maddeler bir konu kategorisinin nasıl kullanılacağını açıklamaktadır:
-
Bir konu kategorisi için özellikleri tanımlayın.
Bir konu kategorisi birkaç alandan oluşur. Alanları eğik çizgi (/) ile ayırın. Örnek:
/${productKey}/${deviceName}/user/update.${productKey} ve ${deviceName} alanları sabittir. Son ek ve ön ek alanları farklı amaçlara sahip mesajları tanımlamak için kullanılır.
-
${productKey}: ürünün ProductKey değeridir.
Değişkeni gerçek bir ProductKey değeriyle değiştirmeniz gerekir.
-
${deviceName}: cihazın DeviceName değeridir.
Bir konu kategorisinde ${deviceName}, ürün içindeki tüm cihazları temsil eden bir değişkendir. Değişkeni gerçek bir DeviceName değeriyle değiştirmeniz gerekmez.
-
-
Bir konu kategorisi üzerindeki izinleri tanımlayın.
Publish: Bir ürünün cihazları, bir konu kategorisinin konularına mesaj yayınlayabilir.
Subscribe: Bir ürünün cihazları, mesaj almak için bir konu kategorisinin konularına abone olabilir.
Publish and Subscribe: Cihazlar ilgili konulara mesaj yayınlayabilir ve bu konulardan mesaj alabilir.
Konu tanımlama
Bir konu kategorisindeki ${productKey}/${deviceName} ifadesi benzersiz bir cihazı belirtir. İki değişken gerçek değerlerle değiştirildikten sonra cihazın konusu oluşturulur.
Konular, konu kategorileriyle aynı biçime sahiptir. Bir konu ile bir konu kategorisi arasındaki fark, konu kategorisindeki ${deviceName} değişkeninin konuda gerçek bir DeviceName değeriyle değiştirilmesidir.
Aşağıdaki örneklerde a19mzPZ*** ürünündeki device1 ve device2 cihazlarının konuları gösterilmektedir:
/a19mzPZ****/device1/user/update/a19mzPZ****/device2/user/update
Bir konu kategorisinin özellikleri ve izinleri belirli konulara eşlenir. Aşağıdaki maddeler bir konunun nasıl kullanılacağını açıklamaktadır:
-
Konular mesaj iletişimi için kullanılır.
ÖnemliYukarı yönlü ve aşağı yönlü mesajlaşmayı hata ayıklarken belirtilen konuların gerekli izinlere sahip olduğundan emin olun.
-
Konular yalnızca belirtilen cihazlar tarafından kullanılabilir.
Örneğin,
/a19mzPZ****/device1/user/updatekonusu 1. Cihaz adlı bir cihaza aittir. Yalnızca 1. Cihaz, abone olunan konuya mesaj yayınlayabilir veya bu konudan mesaj alabilir. Diğer cihazlar bu konuyu kullanamaz. -
Bir cihazın mesajlaşmasını yönetin.
Bir cihazın durumunu görüntülemek için şu adımları uygulayın: IoT Platform konsolu giriş yapın ve Devices sayfasında cihazı devre dışı bırakın. Cihazı devre dışı bırakmak için sunucuda DisableThing işlemini de çağırabilirsiniz. Cihazı devre dışı bırakmak istemiyorsanız cihaza gönderilen mesajları yönetebilirsiniz.
Konu oluşturma
Aşağıdaki şekilde konuların nasıl oluşturulduğu gösterilmektedir.

-
IoT Platform konsolu üzerinde oturum açın ve bir ürün oluşturun. Daha fazla bilgi için bkz. Ürün oluşturma.
Bir ürün oluşturduktan sonra IoT Platform, ürün için Topics for Basic Communications, Topics for TSL Communications ve Custom Topics dahil olmak üzere önceden tanımlanmış konu kategorileri sağlar.
Product Details sayfasında konu kategorilerini görüntülemek için Topic Categories sekmesini tıklayın. Daha fazla bilgi için bkz. Konuları sınıflandırma. Topic Categories sekmesinde Topic Category seçeneğini tıklayın. Konu Kategorisi sekmesinde Konu Kategorisini Düzenle seçeneğini tıklayın, parametreleri yapılandırın ve ürüne özel bir konu kategorisi oluşturmak için Tamam'ı tıklayın. Daha fazla bilgi için bkz. İletişim için özel konuları kullanma.
-
Bir ürüne cihaz ekleyin. Daha fazla bilgi için bkz. Cihaz ekleme.
Bir cihaz eklendiğinde, ürünün tüm konu kategorileri otomatik olarak cihaza eşlenerek belirli konular oluşturulur. Bir konu kategorisinin özellikleri ve izinleri de belirli konulara eşlenir. Her cihaz için ayrı konular oluşturmanıza gerek yoktur.
Önemli-
Konular, cihazı yapılandırdıktan ve cihazı IoT Platform'a bağladıktan sonra yalnızca Device Details sayfasının Topic List sekmesinde görüntülenir. Cihazın Subscribe iznine sahip olduğu bir konuya abone olmak ve konuyu Topic List sekmesinde görüntülemek için aşağıdaki yöntemlerden birini kullanabilirsiniz.
Cihaz simülasyonunu kullanma: Cihaz çevrimiçi olduktan sonra IoT Platform, cihazda Subscribe iznine sahip temel iletişim konularına ve Thing Specification Language (TSL) iletişim konularına otomatik olarak abone olur. Ayrıca Cihaz Simülasyonu sayfasındaki özel konuların Upstream Debug özelliğini kullanarak özel konulara da abone olabilirsiniz.
MQTT.fx kullanarak cihazı simüle etme ve IoT Platform'a bağlama: Cihaz çevrimiçi olduktan sonra konulara abone olmak için Subscribe özelliğini kullanabilirsiniz.
Cihazı IoT Platform'a bağlamak, cihazı etkinleştirmek ve ardından konulara abone olmak için Link SDK'yı geliştirin. Daha fazla bilgi için 3. Adım'a bakın.
SubscribeTopic: Yapılandırılmış veya simüle edilmiş bir cihazı IoT Platform'a bağladıktan ve cihaz beklendiği gibi çevrimiçi olduktan sonra, cihaz için bir konuya abone olmak üzere bu işlemi çağırabilirsiniz.
-
Yukarı yönlü ve aşağı yönlü mesajlaşmayı hata ayıklarken belirtilen konuların gerekli izinlere sahip olduğundan emin olun.
Product Details sayfasının Topic Categories sekmesinde her konunun Allowed Operations parametresini görüntüleyebilirsiniz.
-
-
Cihazı yapılandırın ve IoT Platform'a bağlayın.
Bir cihazın IoT Platform ile iletişim kurabilmesi ve IoT Platform'un çeşitli özelliklerini kullanabilmesi için cihazın ilgili konulara abone olması gerekir. Ayrıca Publish iznine sahip konulara mesaj yayınlama mantığını da belirtmeniz gerekir. Cihazı yapılandırma hakkında daha fazla bilgi için bkz. Link SDK belgeleri.
-
Cihaz, belirtilen konulara abone olmak ve IoT Platform'dan mesaj almak için SUB komutunu gönderebilir. Cihazı yapılandırma hakkında daha fazla bilgi için bkz. Link SDK belgeleri.
IoT Platform tarafından sağlanan C için Link SDK'nın 3,1, 3,2 ve 4.x sürümleri otomatik konu aboneliğini destekler. Desteklenen konular hakkında daha fazla bilgi için bkz. Otomatik abone olunan konular.
ÖnemliBir cihaz, IoT Platform'da önceden tanımlanmış
/sys/${productKey}/${deviceName}/thing/service/property/setgibi bir sistem konusuna abone olabilir. Ancak cihaz, adı/sys/${productKey}/${deviceName}ile başlayan sistem konularına abone olmak için/sys/${productKey}/${deviceName}/#ifadesini kullanamaz. Cihaz, Publish iznine sahip bir konuya PUB komutunu göndererek IoT Platform'a mesaj gönderebilir. Cihazı yapılandırma hakkında daha fazla bilgi için bkz. Link SDK belgeleri.
Cihazı doğrulayın ve IoT Platform'a bağlayın. Daha fazla bilgi için bkz. Cihazları doğrulama.
Bir cihaz bir konuya abone olmak için SUB komutu gönderdikten sonra konuyu görüntülemek için şu adımları uygulayın: IoT Platform konsolu üzerinde oturum açın, yolunu izleyin, cihazı bulun ve İşlemler sütununda View seçeneğini tıklayın. Device Details sayfasında Topic List seçeneğini tıklayın. Görüntülenen sekmede, abone olunan tüm konular Subscribed Topics bölümünde listelenir.
NotCihaz, belirtilen konulardan aboneliği iptal etmek için UNSUB komutunu gönderebilir. Ardından konular Subscribed Topics bölümünden kaldırılır.
-
İletişim için konuları kullanma
Aşağıdaki şekilde bir cihaz IoT Platform'a bağlandıktan sonraki iletişim süreci gösterilmektedir.

İletişim modu | Açıklama |
Cihazdan IoT Platform'a mesaj gönderme | Cihaz, Publish iznine sahip konuları kullanarak IoT Platform'a mesaj gönderir. Daha fazla bilgi için bkz. Cihazların IoT Platform'a veri göndermesi. Konuların veri biçimleri hakkında bilgi için bkz. Alink protokolü. |
Verileri IoT Platform'dan kurumsal sunuculara yönlendirme | IoT Platform, cihaz mesajlarını kurumsal sunuculara iletir. Daha fazla bilgi için bkz. AMQP sunucu tarafı aboneliğini yapılandırma ve MNS sunucu tarafı aboneliğini yapılandırma. Kural altyapısının veri yönlendirme özelliği tarafından sağlanan veri yönlendirme kurallarını yapılandırarak cihaz verilerini Message Service (MNS), ApsaraDB RDS, Tablestore (OTS), Function Compute, Lindorm ve Message Queue for Apache RocketMQ dahil olmak üzere birden fazla Alibaba Cloud hizmetine yönlendirebilirsiniz. Daha fazla bilgi için bkz. Veri yönlendirme (eski sürüm) ve Veri yönlendirme (yeni sürüm). Daha fazla bilgi için bkz. IoT Platform'un verileri sunuculara iletmesi. Konuların veri biçimleri hakkında bilgi için bkz. Veri biçimleri. |
Cihazda uzaktan kontrol gerçekleştirme | Bir kurumsal sunucu, cihaza mesaj göndermek için IoT Platform API işlemlerini çağırır. Daha fazla bilgi için bkz. Sunucudan cihazları uzaktan kontrol etme. |
IoT Platform'dan cihaza mesaj gönderme | IoT Platform konsolunda abone olunan konuları kullanarak cihaza komut veya mesaj gönderebilirsiniz.
|
Cihazlar arası iletişimi sağlama | Cihazdan cihaza iletişimi etkinleştirmek için her iki cihazın da IoT Platform'a bağlı olması gerekir. Platform ardından aralarındaki bağlantıları ve iletişim isteklerini yönetir. Cihazdan cihaza iletişimi aşağıdaki iki yolla etkinleştirebilirsiniz: |
Konuları sınıflandırma
Konular; temel iletişim konuları, TSL iletişim konuları ve özel konular olarak sınıflandırılır. Aşağıdaki tabloda konu türleri açıklanmaktadır.
Örnek türü | Amaç | Açıklama |
Temel iletişim konuları | Bu konular, kablosuz (OTA) güncellemeler sırasında mesaj iletmek için kullanılır. Mesajlar; bir cihaz OTA modül sürümlerini gönderdiğinde, IoT Platform bir cihaza güncelleme paketlerini ittiğinde, bir cihaz güncelleme ilerlemelerini gönderdiğinde ve bir cihaz en son güncelleme paketi hakkındaki bilgileri istediğinde iletilir. | |
Bu konular cihaz etiketlerini göndermek için kullanılır. Üretici ve cihaz modeli gibi cihaza özgü bilgileri kullanarak cihaz etiketlerini belirtebilirsiniz. | ||
Bu konular, cihazın saatini Ağ Zaman Protokolü (NTP) kullanarak IoT Platform ile senkronize etmek için kullanılır. Gömülü cihazlar sınırlı kaynaklar nedeniyle NTP'yi desteklemez. Bu nedenle doğru zaman damgaları alınamaz. | ||
Bu konular cihaz gölgesi verilerini göndermek için kullanılır. IoT Platform bir cihaz gölgesi yayınlayabilir ve cihaz güncellenmiş cihaz gölgesini alabilir. | ||
Bu konular yapılandırma bilgilerini göndermek için kullanılır. Cihaz IoT Platform'dan yapılandırma bilgisi isteyebilir ve IoT Platform cihaza yapılandırma bilgisi gönderebilir. Bu sayede cihazı durdurmanız veya yeniden başlatmanız gerekmeden sistemin ve ağın parametrelerini uzaktan güncelleyebilirsiniz. | ||
Bu konular mesaj yayınlamak için kullanılır. Belirtilen konuya abone olan cihazlara mesaj yayınlamak için IoT Platform'un PubBroadcast API işlemini çağırabilirsiniz. Bu sayede birden fazla cihazı aynı anda yönetebilirsiniz. | ||
TSL iletişim konuları | Bu konular TSL modellerine özeldir. Not TSL tabanlı bir konuya mesaj göndermek için IoT Platform'un Pub API işlemini çağıramazsınız. IoT Platform, TSL tabanlı konuları kullanarak uzaktaki cihazları yönetmenize olanak tanır. Cihaz özellikleri için değerler belirtmek amacıyla SetDeviceProperty veya SetDevicesProperty API işlemini çağırabilirsiniz. Ayrıca cihaz hizmetlerini çağırmak için InvokeThingService veya InvokeThingsService API işlemini çağırabilirsiniz. | |
Özel konular | IoT Platform varsayılan olarak üç özel konu kategorisi sağlar. İş gereksinimlerinize göre özel konu kategorileri oluşturabilirsiniz. Konu kategorisi, konuları yapılandırmak için kullanılabilecek bir şablondur. Bir konu kategorisini değiştirdiğinizde veya güncellediğinizde bir üründeki tüm cihazların veri iletişimi etkilenebilir. Konu kategorilerini cihaz Ar-Ge aşamasında kontrol etmenizi ve cihazlar çevrimiçi olduktan sonra konu kategorilerini değiştirmemenizi öneririz. |
Sınırlamalar
Bir ürün için bir konu kategorisindeki konu sayısı, ürüne eklenen cihaz sayısına eşittir. Daha fazla bilgi için bkz. Sınırlamalar.