Obsah

Protokol MQTT (Message Queuing Telemetry Transport)

MQTT je extrémně lehký síťový protokol určený pro přenos zpráv mezi zařízeními. Byl navržen v roce 1999 Andy Stanford-Clarkem (IBM) a Arlenem Nipperem (Arcom) původně pro monitorování ropovodů prostřednictvím satelitních linek. dnes je MQTT jedním z nejpoužívanějších a de facto standardních komunikačních protokolů v oblasti Internetu věcí (IoT) a průmyslové automatizace.

Jeho hlavní předností je minimální režie (hlavička zprávy může mít pouhé 2 bajty), nízké nároky na přenosové pásmo a spolehlivost i na nestabilních nebo zarušených sítích.

Princip fungování: Publish/Subscribe

Na rozdíl od klasického webového modelu HTTP (který funguje na principu klient-server / požadavek-odpověď), MQTT využívá architekturu Publish/Subscribe (Publikuj/Odebírej). Zařízení spolu nikdy nekomunikují napřímo, ale prostřednictvím centrálního bodu zvaného MQTT Broker.

Témata (Topics) a jejich struktura

Zprávy jsou v MQTT směrovány na základě tzv. témat (topics), což jsou v podstatě textové řetězce strukturované pomocí lomítek, podobně jako adresáře v počítači.

Příklad struktury témat v chytré domácnosti:

domov/prizemi/obyvak/teplota
domov/prizemi/kuchyn/svetlo/stav
domov/1patro/ložnice/vlhkost

Divoké karty (Wildcards)

Při odběru témat (Subscribe) lze využít speciální znaky pro přihlášení k více tématům najednou:

Úrovně kvality služeb (QoS - Quality of Service)

MQTT umožňuje definovat, jak spolehlivě má být zpráva doručena. K tomu slouží tři úrovně QoS:

Úroveň Název Popis
QoS 0 At most once (Nejvýše jednou) Zpráva je odeslána bez potvrzení doručení. Nejrychlejší přenos, hrozí ztráta zprávy při výpadku (vhodné pro periodické měření teploty).
QoS 1 At least once (Alespoň jednou) Broker garantuje doručení zprávy, ale kvůli opakovaným pokusům může zpráva dorazit vícekrát. Příjemce musí odeslat potvrzení (PUBACK).
QoS 2 Exactly once (Přesně jednou) Nejbezpečnější a nejpomalejší režim. Čtyřcestný handshake zajišťuje, že zpráva bude doručena právě jednou, bez duplicit (vhodné pro kritické alarmy nebo finanční transakce).

Speciální funkce MQTT

Populární MQTT Brokery

Pokud si chceš postavit vlastní IoT infrastrukturu, existuje několik osvědčených řešení:


Související články: