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