Bir bina otomasyon sistemi MQTT katmanı, BACnet kontrolörlerinin, KNX hatlarının ve Modbus sayaçlarının içinde kilitli kalan veriyi alıp panellerin, analitik ve uyarı araçlarının kullanabileceği tek bir yere yayınlamanızı sağlar. Bu rehber, MQTT'nin bir bina yönetim sisteminde (BMS) nereye ait olduğunu, neyin yerini alması ve neyin yerini almaması gerektiğini ve onlarca binanın tek bir broker'ı paylaşabilmesi için topic'leri, gateway'leri ve güvenliği nasıl tasarlayacağınızı açıklıyor.
Binaların Neden Bir Protokole Daha İhtiyacı Var
Ticari binaların çoğu zaten olgun bir saha protokolü çalıştırır. HVAC ve merkezi tesisatta BACnet hâkimdir; Avrupa'da aydınlatma, jaluziler ve oda kontrolü için KNX yaygındır; Modbus RTU veya TCP ise enerji sayaçlarında, soğutma gruplarında ve değişken hızlı sürücülerde karşımıza çıkar. Bu protokoller tasarlandıkları işte iyidir: yerel bir ağda, HVAC mühendislerinin anladığı nesne modelleriyle deterministik kontrol.
Zayıf oldukları nokta binanın dışına çıkmaktır. BACnet/IP, UDP broadcast'lerine dayanır ve düz, güvenilir bir LAN varsayar. KNX/IP yönlendirmesi multicast kullanır. Hiçbiri bir güvenlik duvarını zarifçe aşamaz, hiçbiri binlerce uzak abone için tasarlanmamıştır ve bunları internete açmak iyi bilinen bir güvenlik hatasıdır. Enerji kullanımı, konfor şikâyetleri veya ekipman arızaları için portföy düzeyinde görünüm isteyen tesis ekipleri, sonunda her biri kendi girişine ve dışa aktarma formatına sahip, saha başına bir ön yüzle kalır.
MQTT tam olarak bu boşluğu kapatır. Her cihazın ve uygulamanın merkezi bir MQTT broker'a giden yönde TCP veya TLS bağlantısı kurduğu hafif bir publish/subscribe protokolüdür. Her binadaki gateway'ler yerel noktaları topic'lere çevirir; veriye ihtiyaç duyan her şey de gateway'in nerede olduğunu ya da kaç saha bulunduğunu bilmeden abone olur.
MQTT Bir Bina Otomasyon Sisteminde Nereye Oturur
Bir binayı üç katman olarak düşünün:
- Saha seviyesi – sensörler, aktüatörler, VAV kutuları, KNX butonları, sayaçlar. İletişim BACnet MS/TP, KNX TP, Modbus RTU, DALI veya özel hatlar üzerindendir.
- Otomasyon seviyesi – kontrol döngülerini, zaman programlarını ve kilitlemeleri çalıştıran kontrolörler ve denetim istasyonları. Burada da BACnet/IP, KNX/IP veya Modbus TCP vardır.
- Entegrasyon seviyesi – verinin normalleştirildiği ve kurumun geri kalanıyla paylaşıldığı yer. MQTT'nin ait olduğu yer burasıdır.
Önemli kural, kontrol döngülerinin yerel kalmasıdır. Bir besleme havası sıcaklığı PID döngüsü internet bağlantısı koparsa çalışmaya devam etmelidir; bu yüzden bulutta değil, kontrolörde yaşar. MQTT telemetriyi yukarı, dikkatle de set değeri değişikliklerini veya zaman programı geçersiz kılmalarını aşağı taşır. Pratikte bina otomasyon sistemi MQTT katmanı, saha ağının yerini alan bir şey değil, kuzey yönlü (northbound) bir arayüzdür.
Protokol rollerinin karşılaştırması
| Protokol | Binadaki tipik rolü | Taşıma | İyi olduğu alan | Zayıf olduğu alan |
|---|---|---|---|---|
| BACnet/IP | HVAC kontrolörleri, tesisat, denetim | UDP 47808, broadcast'ler | Zengin nesne modeli, tedarikçiler arası birlikte çalışabilirlik | NAT ve güvenlik duvarlarını aşmak, çok sayıda uzak istemci |
| BACnet MS/TP | Saha kontrolörleri, VAV kutuları | RS-485 | Ucuz kablolama, deterministik | Bant genişliği, uzaktan erişim |
| KNX | Aydınlatma, jaluziler, oda kontrolü | Bükümlü çift, KNX/IP multicast veya tunneling | Merkezi olmayan, sağlam oda otomasyonu | Bina dışıyla entegrasyon |
| Modbus RTU/TCP | Sayaçlar, sürücüler, soğutma grupları | RS-485 veya TCP 502 | Basitlik, her yerde bulunması | Meta veri yok, yalnızca sorgulama |
| MQTT | Entegrasyon, bulut, analitik | Broker'a TCP/TLS | Çok saha, çok tüketici, yalnızca giden bağlantılar | Katı gerçek zamanlı kontrol |
Gateway'ler: Noktaları Topic'lere Dönüştürmek
Her binanın en az bir gateway'e ihtiyacı vardır. Gateway saha protokolünden noktaları okur ve bunları MQTT mesajları olarak yayınlar. Üç gerçekçi seçeneğiniz var:
- Kontrolörde veya denetim sisteminde yerleşik MQTT. Yeni nesil BMS kontrolörlerinin ve bina işletim sistemlerinin çoğu doğrudan MQTT yayınlayabilir. Onlara güvenmeden önce TLS ve kullanıcı adı/parola kimlik doğrulamasını destekleyip desteklemediklerini kontrol edin.
- Küçük bir Linux gateway. Bir betik veya Node-RED akışı çalıştıran Raspberry Pi sınıfı bir cihaz ya da endüstriyel PC. BACnet'ten MQTT'ye ve KNX'ten MQTT'ye eğitimlerimiz eksiksiz açık kaynak köprüler gösteriyor.
- Ticari bir protokol gateway'i. Sertifikalı BACnet davranışına ihtiyaç duyduğunuzda veya cihaz başına yüzlerce noktanız olduğunda kullanışlıdır.
Hangisini seçerseniz seçin, gateway yerel olarak sorgulamalı veya abone olmalı (BACnet COV abonelikleri, KNX grup telegramları), broker'ı gürültüyle doldurmamak için ölü bant (deadband) uygulamalı ve zaman damgası, değer, birim ve kalite bayrağı içeren JSON yayınlamalıdır.
{
"ts": "2026-10-16T08:15:02Z",
"value": 13.4,
"unit": "degC",
"quality": "good",
"source": "bacnet:1201/analogInput:3"
}
Orijinal nesne referansını source alanına eklemek, birisi bir panel değerinin neden BMS ön yüzünden farklı olduğunu sorduğunda sorun gidermeyi çok kolaylaştırır.
Çok Sahalı Binalar için Topic Tasarımı
Topic tasarımı, en uzun süre yaşayacağınız karardır. Fiziksel konuma göre modellenmiş bir hiyerarşi binalar için iyi çalışır, çünkü insanlar bu terimlerle düşünür:
<org>/<site>/<building>/<floor>/<zone>/<equipment>/<point>
acme/ist01/tower-a/f12/zone-east/ahu-2/supply-air-temp
acme/ist01/tower-a/f12/zone-east/ahu-2/filter-dp
acme/ank02/hq/f03/meeting-301/occupancy/present
Bu, fabrikalarda kullanılan ISA-95 tarzını (işletme, saha, alan, hat, hücre) yansıtır. Bu önemlidir, çünkü ConnectMQ ISA-95 ve Unified Namespace topic yapılarını tanır ve cihazlar görünümünde cihazları bu seviyelere göre gruplanmış olarak gösterebilir. Böylece tesis yöneticileri düz topic listelerinde arama yapmak yerine bir portföyü saha ve kata göre gezebilir.
Birkaç pratik kural:
- Küçük harf kullanın, boşluk yerine tire koyun ve topic'lerde kişi adı kullanmayın.
- Wildcard'ların kullanışlı kalması için nokta adını en sona koyun:
acme/+/+/+/+/+/supply-air-tempportföydeki tüm besleme sıcaklıklarını döndürür. - Yavaş değişen meta veriyi (birimler, set değerleri, ekipman modeli) retained mesajlar olarak yayınlayın; böylece yeni aboneler mevcut durumu hemen öğrenir.
- Komutları telemetriden ayırın, örneğin
.../ahu-2/cmd/setpointile.../ahu-2/supply-air-tempgibi, ve komut topic'lerine yalnızca yetkili istemcilerin yayın yapmasına izin verin.
Zaten endüstriyel sahalar işletiyorsanız, aynı yaklaşım Sparkplug B ve Unified Namespace yazımızda da karşınıza çıkar.
Binaya Güvenli Biçimde Geri Yazmak
Veri okumak düşük risklidir. Buluttan set değeri yazmak öyle değildir. Herhangi bir MQTT mesajı bir BACnet veya KNX cihazındaki değeri değiştirebilmeden önce gateway'e korkuluklar koyun:
- Yazılabilir noktaların açık bir izin listesini tutun. Asla genel bir "herhangi bir nesneye yaz" topic'i açmayın.
- Aralıkları gateway'de doğrulayın (örneğin 18 ile 26 santigrat derece arasında bir bölge set değeri).
- BACnet için tanımlı bir öncelikte yazın ve geçersiz kılma bittiğinde önceliği bırakın (relinquish); böylece yerel zaman programları yeniden devreye girer.
- Kabul edilen değeri bir durum topic'inde geri yansıtın ve kimin talep ettiğini kaydedin.
- Komutlar için QoS 1 kullanın ve işleyiciyi idempotent yapın, çünkü bir QoS 1 mesajı iki kez gelebilir. MQTT QoS seviyeleri rehberimiz bunun nedenini açıklıyor.
Birçok Binayı Tek Bir Broker'da Toplamak
Her gateway giden yönde yayın yaptığında, bir portföyü merkezileştirmek bir barındırma kararına dönüşür. Kendi veri merkezinizde bir broker çalıştırabilirsiniz; ancak o zaman tesis ekiplerinin günün her saati çalışmasını beklediği bir sistemin yamasından, sertifikalarından, izlenmesinden ve kapasite planlamasından siz sorumlu olursunuz.
Tam yönetilen bir MQTT hizmeti bu işi ortadan kaldırır. ConnectMQ ile her bina gateway'i, kendisi için oluşturulan kimlik bilgileriyle 8883 portunda TLS üzerinden aynı broker'a bağlanır; portal da her sahanın ne yayınladığını incelemeniz için canlı bir topic gezgini sunar. Eşik uyarı kuralları, aralık dışında kalan bir besleme havası sıcaklığı gibi durumları işaretleyebilir; uyarı günlüğü de bunların ne zaman tetiklendiğinin geçmişini tutar. Paneller, Node-RED akışları, Telegraf toplayıcıları veya veritabanınıza yazan Python servisleri sıradan MQTT istemcileri olarak bağlanır ve wildcard'larla abone olur.
Boyutlandırma kontrol listesi
- Saha başına gateway'leri ve tüketen her uygulamayı sayın; her biri bir bağlantıdır.
- Saniyedeki mesaj sayısını ham sorgulama hızlarına göre değil, ölü bantlar uygulandıktan sonraki duruma göre tahmin edin.
- İhtiyaç duyduğunuz en büyük mesajı kontrol edin (tam bir ekipman anlık görüntüsü tek bir noktadan daha büyük olabilir).
- Yük dengeli tüketiciler için QoS 2'ye veya paylaşımlı aboneliklere ihtiyacınız olup olmadığına karar verin.
- Yalıtımı planlayın: katı kiracı ayrımı gereken bir portföy dedicated bir kümeyi haklı çıkarabilir.
Küçük pilotlar ücretsiz Serverless plana sığar (25 bağlantıya kadar, QoS 0 ve 1, 256 KB mesajlar). Daha büyük portföyler ücretli Serverless katmanına (1.000 bağlantıya kadar, QoS 2, paylaşımlı abonelikler) veya bir Dedicated kümeye geçer.
Binalara Özgü Güvenlik Konuları
Bina ağları çoğu zaman düz, eski ve yüklenicilerle paylaşılan ağlardır. MQTT burada yardımcı olur, çünkü gateway'lerin yalnızca giden bağlantılara ihtiyacı vardır; böylece BACnet veya KNX için asla gelen güvenlik duvarı portu açmazsınız. Bunun ötesinde:
- Her zaman TLS kullanın (8883 portu veya güvenli WebSocket panelleri için 8084).
- Her gateway'e kendi kimlik bilgilerini verin; böylece ele geçirilmiş bir cihaz diğerlerine dokunmadan iptal edilebilir. ConnectMQ, client ID'leri verilen kimlik bilgilerine bağlar ve tekrarlanan başarısız girişlerden sonra IP'leri engeller.
- Gateway'i saha ağından ayrı bir VLAN'da, yalnızca ihtiyaç duyduğu portlarla tutun.
- Kart kimlikleri gibi kişisel verileri, birçok uygulamanın okuyabildiği topic'lerde asla yayınlamayın.
MQTT güvenliği en iyi uygulamaları yazısındaki daha geniş kontrol listesi, fabrikalar kadar binalar için de geçerlidir.
Gerçekçi Bir Devreye Alma Planı
Bir bina ve küçük bir grup yüksek değerli noktayla başlayın: besleme ve dönüş sıcaklıkları, filtre fark basıncı, ana enerji sayacı ve birkaç bölge sıcaklığı. Bunları herkese açık MQTT test broker'ına yalnızca veri hassas değilse ve sadece payload'ları doğrulamak istiyorsanız yayınlayın; gerçek adresler veya doluluk verisi devreye girer girmez özel bir broker'a geçin. Ardından uyarıları, sonra panelleri, sonra ikinci bir sahayı ekleyin. Üçüncü binaya geldiğinizde topic şemanızın ölçeklenip ölçeklenmediğini bileceksiniz. Daha fazla kullanım senaryosu için IoT otomasyon rehberimize, belirli uygulamalar için IoT sensörleriyle HVAC izleme yazısına bakın.
Binalarınızı ConnectMQ'ya Bağlayın
app.connectmq.com adresinde kredi kartı gerekmeden ücretsiz bir Serverless broker oluşturun. İlk gateway'iniz için kullanıcı adı, parola ve client ID'yi dakikalar içinde alırsınız; topic gezgini de bina verilerinizi geldiği anda gösterir. Portföy büyüdüğünde topic tasarımınızı değiştirmeden planınızı yükseltin.
Sık Sorulan Sorular
MQTT bir bina otomasyon sisteminde BACnet'in yerini alır mı?
Hayır. BACnet ve KNX binanın içindeki kontrol ağları olarak kalır. MQTT, seçili noktaları panellere, analitiğe ve diğer sahalara taşıyan entegrasyon katmanıdır.
HVAC ekipmanını MQTT üzerinden kontrol edebilir miyim?
Evet, kontrolöre yazan bir gateway aracılığıyla; ancak bunu bir nokta izin listesiyle sınırlayın, aralıkları doğrulayın ve bağlantı koparsa binanın çalışmaya devam etmesi için kontrol döngülerini yerel tutun.
Bina telemetrisi hangi QoS'u kullanmalı?
Bir sonraki değerin kısa sürede geldiği sık okumalar için QoS 0 yeterlidir. Alarmlar ve komutlar için QoS 1 kullanın ve komut işleyicilerini idempotent yapın.
Bir bina kaç bağlantıya ihtiyaç duyar?
Genellikle gateway başına bir ve tüketen uygulama başına bir. Tek gateway'li ve bir panelli tipik bir pilot bina yalnızca birkaç bağlantıya ihtiyaç duyar.



