MQTT IoT messaging protocol
Protokół IoT · ISO/IEC 20922 · 9 min czytania

MQTT — protokół komunikatów IoT

Oparty na publish/subscribe szkielet komunikacji nowoczesnego IoT. Jak MQTT wpisuje się w inteligentny dom i automatykę budynkową obok KNX, DALI i Home Assistant.

home/temphome/pvhome/motionautomatizācijalietotneierakstiMQTTbrokerpub / sub · QoSPublishersSubscribers

Czym jest MQTT?

MQTT (Message Queuing Telemetry Transport) to lekki protokół komunikatów w modelu publish/subscribe, pierwotnie zaprojektowany dla łączy satelitarnych w latach 90. (IBM/Eurotech). Dziś jest to dominujący protokół komunikacji urządzenie–serwer w IoT — od czujników ESP8266 po przemysłowe sterowniki PLC.

W odróżnieniu od KNX (oparty na magistrali) czy Modbus (master/slave), MQTT korzysta z modelu brokera: urządzenia publikują komunikaty do tematów na centralnym brokerze (np. Mosquitto), a każdy subskrybent nasłuchujący tego tematu otrzymuje komunikat. Brak bezpośredniej komunikacji między urządzeniami.

Kluczowe pojęcia:

  • Broker: Centralny serwer trasujący wszystkie komunikaty (Mosquitto, HiveMQ, EMQX). W inteligentnym domu = działa na serwerze HA lub osobnym Pi.
  • Temat: Hierarchiczna ścieżka tekstowa, np. home/livingroom/light/state
  • Publikacja: Urządzenie wysyła komunikat do tematu
  • Subskrypcja: Klient nasłuchuje tematu i otrzymuje wszystkie publikowane do niego komunikaty
  • Komunikat retained: Broker przechowuje ostatnią wartość — nowi subskrybenci otrzymują ją natychmiast
  • QoS 0/1/2: Najwyżej raz / Co najmniej raz / Dokładnie raz — gwarancja dostarczenia

Specyfikacja MQTT

ParametrWartość
StandardISO/IEC 20922 (MQTT 3.1.1), MQTT 5.0
TransportTCP/IP (port 1883) lub TLS (port 8883)
TopologiaGwiazda (z brokerem w centrum)
KierunekDwukierunkowy publish/subscribe
ŁadunekDowolny binarny/tekstowy — zwykle JSON lub czysta wartość
Separator tematów/ (ukośnik), np. home/floor1/room2/temp
Symbol wieloznaczny (jeden poziom)+ (plus), np. home/+/light
Symbol wieloznaczny (wiele poziomów)# (kratka), np. home/#
QoS 0Wyślij i zapomnij — bez gwarancji dostarczenia
QoS 1Co najmniej raz — odbiorca potwierdza (możliwe duplikaty)
QoS 2Dokładnie raz — czterostopniowe uzgadnianie
Komunikaty retainedBroker przechowuje ostatni komunikat dla każdego tematu
Komunikat WillWysyłany przez brokera, gdy klient nieoczekiwanie się rozłączy
UwierzytelnianieNazwa użytkownika/hasło, certyfikaty TLS
Port (nieszyfrowany)1883
Port (TLS)8883

MQTT w inteligentnym domu — ekosystem

MQTT to wspólny język domu DIY i półprofesjonalnego. Kilka dużych projektów wykorzystuje go jako warstwę transportową:

Zigbee2MQTT

zigbee2mqtt.io

Tłumaczy telegramy radiowe Zigbee na MQTT. Podłącz koordynator Zigbee (CC2530, SkyConnect) do HA, uruchom Zigbee2MQTT, a ponad 2500 urządzeń Zigbee pojawi się jako tematy MQTT. Hub Philips Hue zbędny.

Tasmota / ESPHome

tasmota.github.io

Oprogramowanie open source dla modułów ESP8266/ESP32. Wgraj Tasmotę na tani przekaźnik Sonoff, a stanie się on inteligentnym przełącznikiem publikującym w MQTT. ESPHome jest natywne dla HA.

Integracja Home Assistant MQTT

home-assistant.io

HA może publikować w dowolnym temacie MQTT i go subskrybować. Konfiguracja przez YAML lub interfejs. MQTT Discovery automatycznie tworzy encje HA, gdy urządzenie zgłosi się przez określony temat.

Node-RED

nodered.org

Wizualne programowanie oparte na przepływach, które subskrybuje tematy MQTT, stosuje logikę i publikuje do innych tematów lub punktów końcowych KNX/HTTP. Często używane obok HA do złożonego trasowania.

WirenBoard

wirenboard.com

Rosyjski sterownik na szynę DIN używa MQTT jako podstawowego protokołu. WirenBoard publikuje wszystkie odczyty czujników i przyjmuje sterowanie przez tematy MQTT. Współpracuje z HA i Node-RED.

Przykłady struktury tematów

Przykładowe drzewo tematów MQTT (inteligentny dom)

home/
├── livingroom/
│   ├── light/state          → "ON" / "OFF"
│   ├── light/brightness     → "75"  (0-100%)
│   ├── light/color_temp_k   → "3000"
│   ├── temperature          → "21.5"
│   └── occupancy            → "true" / "false"
├── kitchen/
│   ├── light/state          → "ON"
│   └── humidity             → "45"
├── bedroom/
│   ├── blind/position       → "75"  (0=open, 100=closed)
│   └── thermostat/setpoint  → "20.5"
└── panel/
    ├── meter/power_w        → "1247"
    └── meter/energy_kwh     → "1852.3"

MQTT vs KNX — czego kiedy użyć

AspektMQTTKNX TP
InfrastrukturaSieć IP (Ethernet/Wi-Fi)Dedykowany kabel magistrali TP
NiezawodnośćZależy od sieci i dostępności brokeraDeterministyczna, magistrala zawsze aktywna
OpóźnienieMilisekundy (IP) + obieg do brokera<50 ms (bezpośredni telegram magistrali)
SkalowalnośćNieograniczona (skalowanie poziome)255 adresów na linię, maks. 15 linii
Złożoność konfiguracjiNiska (broker + publish/subscribe)Wysoka (programowanie ETS, adresacja)
Koszt sprzętuNiski (ESP8266 = 2 €)Wysoki (aktor KNX = 50–200 €+)
CertyfikacjaNiewymaganaCertyfikat KNX + licencja ETS
Działa bez serwera❌ Broker musi działać✅ Lokalna magistrala działa bez serwera
Najlepsze zastosowanieDane czujników, integracja IoT, elastyczne DIYSterowanie krytyczne dla bezpieczeństwa, budynek komercyjny
Typowy użytkownikMaker, integrator HA, deweloper IoTInżynier elektryk, specjalista DALI/KNX

Szczera odpowiedź: W dobrze zaprojektowanej instalacji premium KNX odpowiada za sterowanie sprzętem (załączanie, ściemnianie, rolety), a MQTT/IP za agregację danych z czujników i integracje programowe (monitoring energii, obecność, pogoda). Uzupełniają się — nie konkurują.

Opcje integracji KNX + MQTT

Home Assistant (integracje KNX + MQTT)

Integracje KNX i MQTT działają w HA. Automatyzacje mogą odczytywać wartości czujników MQTT i wyzwalać aktory KNX — lub odwrotnie. Zero dodatkowego sprzętu.

knx-mqtt-bridge (open source)

Samodzielna usługa Node.js, która dwukierunkowo łączy adresy grupowe KNX z tematami MQTT. Każdy GA KNX odwzorowuje się na temat MQTT. Działa na Pi lub w Dockerze.

Węzły Node-RED KNX + MQTT

node-red-contrib-knx + węzły MQTT. Wizualne programowanie przepływów: temat MQTT → transformacja → telegram KNX. Dobre do złożonego trasowania warunkowego.

Brama WirenBoard WB-MGW

Brama WirenBoard potrafi tłumaczyć między urządzeniami RS-485/Modbus a MQTT. Następnie HA odczytuje MQTT i publikuje do KNX. Popularna w Europie Wschodniej.

Architektura KNX + MQTT zaprojektowana dla Twojego projektu

Integrujemy sieci czujników MQTT z tablicami sterowniczymi KNX — Zigbee2MQTT, liczniki energii, czujniki HVAC — wszystko w jednym systemie.

Poproś o wycenę →
Loading...
Back to top