Her Proxus Edge Gateway bir gömülü MQTT broker içerir. Bu sayede Mosquitto veya EMQX gibi harici broker altyapısına gerek kalmaz. Edge mimarisi hakkında daha fazla bilgi için Durumsuz Edge Mimarisi bölümüne bakın.
MQTT Broker Ne Yapar?
Gömülü broker, cihazlarınız ile Proxus platformu arasında çift yönlü veri geçidi görevi görür:
📥 Giriş (Cihaz → Gateway)
Yerel ağdaki cihazlar telemetri verisini Gateway'e yayınlar:
- Cihaz, benzersiz Device Token ile
gateway-ip:1883adresine bağlanır - Cihaz,
telemetrykonusuna JSON payload gönderir - Gateway veriyi ayrıştırır, doğrular ve Veri Akış Hattı'na yönlendirir
Cihaz
PLC / IoT Sensör
MQTT Broker
Proxus Gateway
Veri Hattı
Ayrıştır & Doğrula
📤 Çıkış (Gateway → Birleşik İsim Alanı)
Gateway veriyi ISA-95 uyumlu konulara otomatik yeniden yayınlar:
- Veri, metrik bazlı telemetri mesajlarına dönüştürülür
- Cihaz durumu ve lastSeen zaman damgaları yayınlanır
- İsteğe bağlı özet mesaj tüm metrikleri toplar
- Harici sistemler (SCADA, MES, Analytics) bu konulara abone olabilir
Veri Hattı
İşlenmiş Veri
MQTT Broker
UNS Yayıncısı
UNS Tüketicileri
SCADA / MES / Analytics
Temel Faydalar
Sıfır Harici Bağımlılık
Mosquitto, EMQX veya başka broker kurmanıza gerek yok.
Token Tabanlı Kimlik Doğrulama
Her cihaz güvenli bağlantı için benzersiz token alır.
UNS Hazır
ISA-95 konu hiyerarşisi ile Birleşik İsim Alanı'na otomatik yayın.
Güvenlik için Güvenlik ve Erişim Kontrolü bölümüne bakın.
Konfigürasyon
MQTT broker, Proxus-config.toml içinde yapılandırılır:
Tüm ayarların listesi ve environment override'ları için Konfigürasyon Referansı bölümüne bakın.
Temel Ayarlar
[MQTTBroker]
MQTTBrokerPort = 1883
MasterToken = "your-master-token"
AllowAnonymous = false| Ayar | Tip | Varsayılan | Açıklama |
|---|---|---|---|
| MQTTBrokerPort | int | 1883 | MQTT bağlantıları için TCP portu |
| MasterToken | string | - | Geliştirme için paylaşımlı token |
| AllowAnonymous | bool | false | Kimlik doğrulamayı kapatır |
Birleşik İsim Alanı Ayarları
[UNS]
# Payload formatı: "JSON" veya "SparkplugB"
UNSPayloadFormat = "JSON"
# SparkplugB özel ayarları
UNSGroupId = "ProxusGroup"
UNSEdgeNodeId = "ProxusEdge_MachineName"
# MQTT broker'da retain mesajları
UNSRetainMessages = true| Ayar | Tip | Varsayılan | Açıklama |
|---|---|---|---|
| UNSPayloadFormat | string | JSON | Payload formatı: JSON veya SparkplugB |
| UNSGroupId | string | ProxusGroup | SparkplugB grup kimliği |
| UNSEdgeNodeId | string | auto | SparkplugB edge node kimliği |
| UNSRetainMessages | bool | true | Her topic için son mesajı tutar |
Performans Optimizasyonları
[UNS.Optimizations]
# İnce payload, metrik başına context bilgisini çıkarır
TelemetryThinPayload = true
# Özet mesajlarda ISA-95 context'i ekle
SummaryIncludeContext = true
# Throttle aralıkları (ms, 0 = sınırsız)
SummaryIntervalMs = 5000
LastSeenIntervalMs = 5000
# Status sadece değişince yayınlansın
StatusOnChangeOnly = true
# Değer değişmedikçe özet yayınlama (hash tabanlı)
SummaryOnlyOnChange = false| Ayar | Tip | Varsayılan | Açıklama |
|---|---|---|---|
| TelemetryThinPayload | bool | true | Metrik mesajından context çıkar |
| SummaryIncludeContext | bool | true | Özet mesajda ISA-95 context ekle |
| SummaryIntervalMs | int | 5000 | Özet yayınlama aralığı (ms) |
| LastSeenIntervalMs | int | 5000 | LastSeen yayınlama aralığı (ms) |
| StatusOnChangeOnly | bool | true | Durum sadece değişince yayınlansın |
Kimlik Doğrulama Yöntemleri
1. Cihaz Token'ı (Önerilen)
Proxus'ta tanımlanan her cihaz için benzersiz Device Token üretilir. MQTT bağlantısında kullanıcı adı olarak bu token'ı kullanın. Daha fazla bilgi için Cihaz Ekle bölümüne bakın.
Host: gateway-ip:1883
Username: device-token
Password: (gerekli değil)2. Master Token
Geliştirme veya test için MasterToken kullanılabilir.
3. Anonymous
AllowAnonymous = true ise cihazlar kimlik bilgisi olmadan bağlanabilir. Sadece izole ağlarda kullanın. Güvenlik için Güvenlik ve Erişim Kontrolü bölümüne bakın.
Telemetri Yayınlama
Cihazlar JSON payload'ı telemetry konusuna yayınlar:
{
"Temperature": 72.5,
"Pressure": 14.7,
"Status": "Running"
}Gateway otomatik olarak:
- JSON payload'ı ayrıştırır
- Kimliği doğrulanan cihazla ilişkilendirir
- Veri hattına yönlendirir
- Birleşik İsim Alanı konularına yayınlar (etkinse)
Birleşik İsim Alanı Yayını
Broker veriyi ISA-95 uyumlu konulara kategori ayrımıyla yayınlar. Detaylar için Birleşik İsim Alanı bölümüne bakın.
Telemetri Konuları
Metrik değerleri ve cihaz özeti:
v1/{enterprise}/{site}/{area}/{processCell}/{equipmentModule}/{deviceName}/telemetry/{metric}
v1/{enterprise}/{site}/{area}/{processCell}/{equipmentModule}/{deviceName}/telemetry/_summaryDurum Konuları
Cihaz durumu ve son görülme zamanları (retained):
v1/{enterprise}/{site}/{area}/{processCell}/{equipmentModule}/{deviceName}/state/_status
v1/{enterprise}/{site}/{area}/{processCell}/{equipmentModule}/{deviceName}/state/_lastSeenSparkplugB Desteği
UNSPayloadFormat = "SparkplugB" ise SparkplugB kodlaması kullanılır:
spBv1.0/{GroupId}/DDATA/{EdgeNodeId}/{DeviceId}Sağlık İzleme
MQTT broker, bağlı cihazları izler ve şunları takip eder:
- Son Görülme (Last Seen): Son mesaj zamanı
- Bağlantı Durumu: Online/Offline
- Mesaj Hızı: Dakikadaki mesaj sayısı
Veri göndermeyi kesen cihazlar otomatik olarak offline olarak işaretlenir. Ayrıntı için Sistem Logları bölümüne bakın.