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:

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):

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

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

  1. Chytrá domácnost: Propojení žárovek, vypínačů a senzorů (např. software Home Assistant).
  2. Průmysl 4.0: Sběr telemetrie ze strojů ve výrobních halách.
  3. Doprava: Sledování polohy vozidel v reálném čase.
  4. 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