Technologie
MQTT umožňuje
IoT zařízením komunikovat přes
MQTT broker.
MQTT (
MQ Telemetry Transport) je jednoduchý "
Internet of Things" komunikační protokol. Je založen na předávání zpráv mezi klienty prostřednictvím centrálního serveru – brokeru.
Klienti mohou být typu Publisher - zasílají na určenou topic (adresu, téma) svou zprávu. Publisher může být například snímač, čidlo nebo měřící jednotka.
Opakem je Subscriber. To je ten, který se k odběru hodnot z topic adresy přihlásí a pak hodnoty odebírá (přijímá) a dále s nimi pracuje nebo je zobrazuje.
Klient může být současně Publisher i Subscriber.
V přihlašovací sekvenci se využívá identifikace každého klienta pomocí
"ClientID" a pak volitelně i pomocí uživatelské jména "Username" a hesla "Password". Ale podpora
SSL/TSL není prozatím v systému PROMOTIC implementována.
Protokol
MQTT definuje tři úrovně potvrzování zpráv
QoS (
Quality of Service)
QoS 0 - zpráva je odeslána bez potvrzení a není zaručeno její doručení (at-most-once).
QoS 1 - zpráva je doručena alespoň jednou (at least once).
QoS 2 - každá zpráva je doručena právě jednou (exactly once).
Klient typu
Publisher může zasílat data také s příznakem
Retained (0/1 = nebudou/budou na brokeru data zachována) a s příznakem
DUP (0/1 = žádné/další opakování zaslané zprávy)
Podle požadované úrovně šifrování komunikace, protokol
MQTT předepisuje následující 3 síťové porty:
1883 - (podporováno) nešifrovaný přenos (unencrypted)
8883 - (nepodporováno) šifrovaný přenos (encrypted) SSL/TLS
8884 - (nepodporováno) šifrovaný přenos (encrypted) + certifikát klienta (client certificate) SSL/TLS + klient musí poskytnout i certifikát o autenticitě vydávaný brokerem
Omezení: Systém PROMOTIC prozatím nepodporuje šifrovaný přenos (podporuje pouze port
1883).
Odkazy a návody
Komunikace aplikace PROMOTIC s MQTT brokerem
Přihlášený klient je typu
Publisher a
Subscriber. Klient
Subscriber se přihlásí k odběru na brokeru na definované
topic adrese. Klient
Publisher na tuto adresu odesílá své data, které klient
Subscriber přijímá.
Pro čtení těchto údajů je vhodné použít předkonfiguraci: