Obsah
MQTT (Message Queuing Telemetry Transport)
MQTT je jednoduchý a efektivní protokol typu Publish-Subscribe. Původně byl vyvinut v roce 1999 pro monitorování ropovodů prostřednictvím satelitních spojů, ale dnes dominuje světu chytrých domácností, průmyslové automatizace a propojených zařízení (IoT).
Pracuje nad protokolem TCP/IP a je navržen tak, aby měl co nejmenší režii (hlavička zprávy může mít pouhé 2 bajty).
Architektura: Publish-Subscribe
Na rozdíl od klasického modelu klient-server (např. HTTP), kde klient přímo žádá server o data, v MQTT spolu zařízení nekomunikují přímo. Vše probíhá přes centrální uzel:
- Broker (Zprostředkovatel): Centrální server, který přijímá všechny zprávy a distribuuje je příjemcům.
- Publisher (Odesílatel): Zařízení (např. senzor teploty), které odesílá data na určité téma (Topic).
- Subscriber (Příjemce): Zařízení (např. mobilní aplikace nebo termostat), které se přihlásí k odběru konkrétního tématu.
Témata (Topics) a struktura
Témata v MQTT fungují jako hierarchické adresy oddělené lomítkem. Umožňují efektivní filtrování zpráv: * Příklad: `dum/obyvak/teplota` * Wildcards (Zástupné znaky):
- `+` : Nahrazuje jednu úroveň (např. `dum/+/teplota` vybere teplotu ve všech místnostech).
- `#` : Nahrazuje všechny následující úrovně (např. `dum/#` odebírá úplně všechna data z domu).
Kvalita služeb (QoS - Quality of Service)
MQTT umožňuje definovat, jak spolehlivě má být zpráva doručena:
| Úroveň | Název | Popis |
|---|---|---|
| QoS 0 | At most once | „Pošli a zapomeň“. Zpráva je odeslána jednou, doručení není potvrzeno (nejrychlejší). |
| QoS 1 | At least once | Zpráva je doručena alespoň jednou. Příjemce musí potvrdit přijetí, jinak se posílá znovu. |
| QoS 2 | Exactly once | Zpráva je doručena právě jednou. Nejspolehlivější, ale vyžaduje nejvíce komunikace (4-cestný handshake). |
Klíčové funkce pro IoT
- Last Will and Testament (LWT): Klient si u brokera uloží zprávu pro případ, že se nečekaně odpojí (např. dojde baterie). Broker pak tuto zprávu rozešle ostatním, aby věděli, že je zařízení offline.
- Retained Messages: Broker si uloží poslední zprávu daného tématu. Když se připojí nový odběratel, okamžitě dostane aktuální stav, aniž by musel čekat na nové vysílání senzoru.
- Keep Alive: Pravidelné „ping“ zprávy, kterými zařízení potvrzuje, že je stále online, i když zrovna neposílá žádná data.
Srovnání: MQTT vs. HTTP
| Vlastnost | HTTP | MQTT |
|---|---|---|
| Model | Request/Response | Publish/Subscribe |
| Hlavička | Stovky bajtů (textová) | Jednotky bajtů (binární) |
| Spotřeba | Vysoká | Velmi nízká |
| Stav | Bezestavový | Udržuje trvalé spojení |
Využití v praxi
- Chytrá domácnost: Propojení žárovek, vypínačů a senzorů (např. software Home Assistant).
- Průmysl 4.0: Sběr telemetrie ze strojů ve výrobních halách.
- Doprava: Sledování polohy vozidel v reálném čase.
- Facebook Messenger: Využívá upravenou verzi MQTT pro rychlé doručování zpráv s nízkou spotřebou baterie na mobilu.
Populární brokeři: Mosquitto (nejpoužívanější open-source), HiveMQ, EMQX nebo cloudové služby jako AWS IoT Core.
— Viz také: AMQP, Internet věcí (IoT), TCP/IP, Home Assistant
