IoT Otomasyon

Bina Otomasyon Sistemi MQTT: MQTT, BACnet ve KNX'in Yanında Nereye Oturur

MQTT bir binada BACnet veya KNX'in yerini almaz, onların üzerinde durur. Bu rehber, MQTT ile çok sahalı bir bina otomasyon sistemi için mimariyi, topic tasarımını ve güvenlik tercihlerini gösteriyor.

Bina otomasyon sistemi MQTT mimarisinde HVAC, aydınlatma ve sayaçlarının bir bulut broker'ı beslediği bir ofis binası diyagramı
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

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:

  1. 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.
  2. 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.
  3. 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-temp portfö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/setpoint ile .../ahu-2/supply-air-temp gibi, 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:

  1. Yazılabilir noktaların açık bir izin listesini tutun. Asla genel bir "herhangi bir nesneye yaz" topic'i açmayın.
  2. Aralıkları gateway'de doğrulayın (örneğin 18 ile 26 santigrat derece arasında bir bölge set değeri).
  3. 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.
  4. Kabul edilen değeri bir durum topic'inde geri yansıtın ve kimin talep ettiğini kaydedin.
  5. 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

  1. Saha başına gateway'leri ve tüketen her uygulamayı sayın; her biri bir bağlantıdır.
  2. Saniyedeki mesaj sayısını ham sorgulama hızlarına göre değil, ölü bantlar uygulandıktan sonraki duruma göre tahmin edin.
  3. İ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).
  4. Yük dengeli tüketiciler için QoS 2'ye veya paylaşımlı aboneliklere ihtiyacınız olup olmadığına karar verin.
  5. 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.

İlgili yazılar

Zigbee2MQTT Kurulum Rehberi: Koordinatörden Panoya

Zigbee2MQTT'yi Docker ile kurun, koordinatörü ve MQTT bağlantısını yapılandırın, cihazları eşleştirip yeniden adlandırın, onları MQTT üzerinden kontrol edin ve durumlarını bir panoda görüntüleyin; önce ücretsiz herkese açık bir broker'da test edin.

7 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.