MQTT Client (Message Queue Telemetry Transport)

MQTT Client (Message Queue Telemetry Transport)

Podporované typy a verzie zariadení 
O protokole MQTT Sparkplug
Konfigurácia komunikačnej linky
Parametre protokolu linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Tell príkazy
Literatúra
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol je implementáciou štandardu MQTT 3.1.1 (október 2014) a štandardu MQTT 5.0 (marec 2019). MQTT protokol je klient/server protokol typu subscribe/publish. Je jednoduchý, má malú réžiu a je ľahko implementovateľný. Používa sa na komunikáciu M2M (Machine to Machine) a v kontexte IoT (Internet of Things). MQTT server sa nazýva aj MQTT broker.
D2000 KOM implementuje klientskú časť protokolu. Protokol je implementovaný na TCP/IP-TCP a TCP/IP-TCP Redundant linkách. Podporený je aj MQTTS (Secure MQTT, MQTT over TLS) - buď priamo v D2000 KOM procese (pomocou TLS nastavení na TCP/IP-TCP a TCP/IP-TCP Redundant linkách) alebo cez utilitu stunnel.
Pre prenos LoRaWAN dát v rámci MQTT protokolu pozri popis protokolu LoRaWan.

Je podporený aj Sparkplug 3.0.0 štandard (Sparkplug B MQTT Payload). Podpora zahŕňa:

  • Pripojenie sa k MQTT brokeru ako Host Application (konzument dát, v režime Payload Type = Sparkplug Host):

    • čítanie jednoduchých typov hodnôt

    • čítanie polí (s podporou Cieľového stĺpca štruktúry)

    • zápis jednoduchých typov hodnôt (NCMD, DCMD)

    • čítanie položiek šablón (UDT)

    • čítanie položiek datasetov

    • podpora aliasov

    • podpora kompresie (GZIP,DEFLATE)

    • browsovanie - zistenie zoznamu metrík

  • Pripojenie sa k MQTT brokeru ako Edge Node (producent dát, v režime Payload Type = Sparkplug Edge Node):

    • zverejňovanie hodnôt s jednoduchými typmi

    • spracovanie príkazov (NCMD, DCMD) s jednoduchými typmi hodnôt

    • spracovanie príkazov (NCMD, DCMD) s položkami šablón (UDT)

    • spracovanie príkazov (NCMD, DCMD) s položkami datasetov

    • spracovanie príkazov (NCMD, DCMD) s poliami

    • spracovanie príkazu NCMD s metrikou Node Control/Next Server (pripojenie sa na ďalší MQTT server, ak ich je na linke nakonfigurovaných niekoľko)

    • spracovanie správy STATE s obsahom online=false, ktorá pochádza od Primary Host Aplikácie (odpojenie sa od MQTT servera a skúšanie ďalšieho, ak ich je na linke nakonfigurovaných niekoľko - hľadanie MQTT servera s pripojenou Primary Host Aplikáciou)

    • podpora aliasov

Komunikácia bola testovaná/nasadená voči:

Pozn: bola otestovaná aj komunikácia voči cloudu liveobjects.orange-business.com cez websockety (wss://liveobjects.orange-business.com:443/mqtt). Ako WSS wrapper bol použitý program https://github.com/jimparis/unwebsockify.git. Tento bol spustený s parametrami:
./unwebsockify.py --port 1883 --listen 172.16.0.1 wss://liveobjects.orange-business.com:443/mqtt
D2000 KOM proces sa pripájal k adrese 172.16.0.1 na port 1883. WSS wrapper sa pripojil na definovanú URL a zabalil dáta MQTT komunikácie do websocket obálky.



Každá PUBLISH správa obsahuje tému (Topic), samotné dáta (Payload) a úroveň potvrdzovania (QoS). PUBLISH správy môže odosielať klient aj server. Klient na začiatku komunikácie použije správu SUBSCRIBE na oznámenie, o aké témy (parameter protokolu Topic Filter) má záujem.

Protokol definuje tieto úrovne potvrdzovania PUBLISH správ - QoS (Quality of Service):

  • QoS_0 - správa PUBLISH nie je potvrdzovaná, môže dôjsť ku strate

  • QoS_1 - správa PUBLISH je druhou stranou potvrdzovaná PUBACK, môže dôjsť k duplicite

  • QoS_2 - správa PUBLISH je druhou stranou potvrdzovaná PUBREC, tá je spätne potvrdzovaná správou PUBREL a tá finálne správou PUBCOMP

Úroveň potvrdzovania správ posielaných procesom D2000 KOM definuje parameter protokolu Publish QoS. D2000 KOM proces považuje zápis výstupného meraného bodu za úspešne ukončený v závislosti od QoS:

  • QoS_0 - po úspešnom odoslaní dát cez TCP spojenie

  • QoS_1 - po prijatí PUBACK

  • QoS_2 - po prijatí PUBCOMP

Komunikácia MQTT sa začína správou CONNECT, ktorú pošle klient (D2000 KOM). Správa obsahuje prihlasovacie meno (User Name), heslo (Password) a ďalšie parametre, ktoré sa dajú nastaviť: Clean Session FlagClient ID, Will Flag, Will QoSWill RetainKeep Alive a Will Topic. Server odpovedá správou CONNACK s návratovým kódom, ktorý obsahuje informáciu o úspešnosti pripojenia.
Následne klient pošle správu SUBSCRIBE s filtrom tém (parameter Topic Filter), o ktoré má záujem a požadovanou maximálnou úrovňou potvrdzovania (parameter Subscribe QoS).
Server odpovedá návratovým kódom, ktorý obsahuje informáciu o úspešnosti a maximálny QoS, ktorý bol pre požadované témy pridelený.
Nasleduje bežná komunikácia, počas ktorej klient aj server posielajú PUBLISH správy (klient s ľubovoľnou témou, server s témami zodpovedajúcimi filtru tém prijatej SUBSCRIBE správy) a podľa hodnoty parametra QoS prijatých správ PUBLISH ich potvrdzujú.
Pokiaľ server nepošle žiadnu správu dlhšie ako Ping Interval sekúnd, klient pošle PING request správu, na ktorú server musí odpovedať PING response správou (do času špecifikovaného parametrom Reply Timeout).
Pokiaľ dôjde k zmene parametrov na linke, spojenie je zavreté a znovu vytvorené.

O protokole MQTT Sparkplug

Protokol MQTT Sparkplug definuje 3 skupiny aplikácií:

  • Edge Node - Má podporu MQTT protokolu a pripája sa k MQTT serveru. Posiela mu údaje získané z Device alebo vlastné, prípadne agregované.

  • Device/Sensor - Reprezentuje fyzické alebo logické zariadenie pripojené k Edge Node a poskytujúce procesné dáta alebo metriky.

  • Host Application - Reprezentuje spotrebiteľa dát (SCADA/MES systém, Historian, analytický nástroj), ktorý sa pripája k MQTT serveru a prijíma MQTT dáta od Edge Node/Device a prípadne poveluje.

D2000 je môže fungovať v režime Host Application alebo v režime Edge Node (plus jeden alebo viacero Device/Sensor zariadení) podľa parametra linky Payload Type. V režime Edge Node musí byť na linke nakonfigurovaná práve jedna stanica s adresou Edge Node a voliteľne ďalšie stanice s adresami podriadených Device/Sensor zariadení. 

MQTT Sparkplug definuje nasledovné typy správ:

  • NBIRTH – Birth certificate for Sparkplug Edge Nodes (informácia o pripojení sa Edge Node k MQTT Serveru)

  • NDEATH – Death certificate for Sparkplug Edge Nodes (informácia o strate spojenia MQTT Servera s Edge Node)

  • DBIRTH – Birth certificate for Devices (informácia o pripojení sa Device k Edge Node)

  • DDEATH – Death certificate for Devices (informácia o strate spojenia Edge Node s Device)

  • NDATA – Edge Node data message (dáta od Edge Node)

  • DDATA – Device data message (dáta od Device)

  • NCMD – Edge Node command message (príkaz Host Application pre Edge Node)

  • DCMD – Device command message (príkaz Host Application pre Device)

  • STATE – Sparkplug Host Application state message (informácia od stave Host Application pre Edge Node/Device [online / offline]).

MQTT Sparkplug definuje pre všetky typy správ syntax tém (Topic), ktorý má tvar namespace/group_id/message_type/edge_node_id/[device_id], kde:

  • namespace je konštanta spBv1.0 (pre Sparkplug B)

  • group_id je ľubovolný názov logickej skupiny (napr. podľa typu zariadenia, prevádzky, organizačnej štruktúry atď)

  • message_type je typ správy

  • edge_node_id je identifikátor Edge Node

  • device_id je identifikátor Device (iba ak je správa od/pre Device)

Príklady: 

  • spBv1.0/Sparkplug Devices/DDATA/Marvin/Sensor1

  • pBv1.0/MIMIC/DDATA/20:19:AB:F4:0E:0D/sensor11

  • spBv1.0/SparkplugDevices/NBIRTH/JsonScada

Poznámka: správy typu STATE majú Topic v tvare spBv1.0/STATE/sparkplug_host_id, kde sparkplug_host_id je unikátny názov hostiteľskej aplikácie (parameter Sparkplug Host ID).

Príklady:

  • spBv1.0/STATE/CFGHUB2023

  • spBv1.0/STATE/D2Kom

Všetky typy správ výnimkou STATE majú binárny Sparkplug payload. Správy STATE majú JSON payload - obsahujú iba položky "online" (hodnota True/False) a "timestamp" (časová značka v milisekundách).

Sparkplug payload obsahuje metriky - každú požadovanú metriku je možné nakonfigurovať do jedného meraného bodu. Metrika obsahuje textový identifikátor (zadávaný v konfigurácii meraného bodu ako sparkplug_address), typ hodnoty, hodnotu (jednoduchá/pole/štruktúrovaná), voliteľne časovú značku a ďalšie atribúty. D2000 podporuje prácu s jednoduchými hodnotami a hodnotami typu pole - do meraného bodu sa uloží prvá položka poľa; je možné na meranom bode nakonfigurovať Cieľový stĺpec štruktúry, do ktorého sa uložia všetky položky poľa (resp. prvých N, ak nemá štruktúra dostatočný počet riadkov). D2000 dokáže čítať položky metrík typu šablóna (UDT) a Dataset.
Pozn: ak príde metrika, ktorá má nastavený príznak is_null, meraný bod bude mať Invalid hodnotu.

Odporúčané nastavenia pre optimalizáciu toku dát

  • Pokiaľ MQTT server podporuje Topic aliasy, použite MQTT Version = MQTT 5.0,  a nastavte Topic Alias Maximum na hodnotu väčšiu ako je počet staníc na linke (pre Payload Type = Sparkplug Edge Node) resp. väčšiu ako počet topicov, ktoré sú očakávané od MQTT brokera (pre Payload TypeText only / JSON). Na strane MQTT brokera zabezpečte, že jeho hodnota Topic Alias Maximum bude väčšia, ako počet topicov, ktoré budú posielané D2000 KOM procesu - takže namiesto textových topicov budú môcť byť použité numerické aliasy.
    Pozn: hodnota Topic Alias Maximum, ktorú MQTT broker posiela pri pripájaní ako parameter CONNACK správy, je viditeľná v logoch komunikácie:
    09:31:12.086 13-05-2025|D|MQTT> CONNACK Property # 1 Topic Alias Maximum ( 34)
    09:31:12.087 13-05-2025|T|MQTT> Recv:<00><0A>
    09:31:12.088 13-05-2025|D|MQTT> CONNACK Property value= 10

  • Nastavte Subscribe QoS = QoS_0, aby sa nevyžadovali potvrdzovania PUBLISH správ (pokiaľ nie sú z nejakých dôvodov potrebné). Pokiaľ je navyše aktívne aj TLS, tak toto spôsobí, že malý paket (napr. PUBACK pre QoS_1) je zašifrovaný a výsledkom je väčší šifrovaný paket.

  • Použite aliasy pre metriky (pre Payload Type = Sparkplug Edge Node): automatické pomocou parametra Sparkplug Alias Mode=Automatic (HOBJ) alebo manuálne pomocou položky SAL=alias v adrese meraného bodu. Pokiaľ použijete manuálne aliasy, používajte nízke čísla (aliasy 0-127 sa zakódujú ako 1 bajt).

  • Pre Payload Type = Sparkplug Edge Node: pri väčšom počte zmien výstupných meraných bodov odporúčame nastaviť parameter Batch Size na väčšiu hodnotu ako je defaultná (10) a prípadne zvýšiť parameter Delay v časových parametroch stanice. To spôsobí, že sa bude generovať menej správ (a každá bude obsahovať viacero metrík), čo znižuje réžiu potrebnú na prenesenie jednej metriky. Ak sa konkrétne merané body menia často, v správe môže byť aj niekoľko hodnôt toho istého meraného bodu (s časovými značkami). Nevýhodou je oneskorenie hodnôt.

Konfigurácia komunikačnej linky


  • Kategória komunikačnej linky: TCP/IP-TCP alebo TCP/IP-TCP Redundant.

  • Host: IP adresa MQTT servera (prípadne redundantné adresy oddelené čiarkou alebo bodkočiarkou).
    Pozn: V režime Payload Type = Sparkplug Edge Node je podporená metrika Node Control/Next Server, pomocou ktorej je možné prikázať D2000 KOM procesu, aby sa pripojl na ďalší MQTT server (ak ich je zadaných viacero).

  • Port: číslo portu je štandardne 1883 alebo 8883 pre kryptovanú SSL/TLS variantu.

  • Číslo linky: nepoužité, nastavte hodnotu 0.

Pozn: Štandardný port pre MQTT protokol je 1883 resp. 8883 pre SSL/TLS verziu. D2000 KOM obsahuje implementáciu SSL/TLS varianty protokolu, prípadne je možné ju nakonfigurovať s použitím utility stunnel http://www.stunnel.org pracujúcej v klientskom móde (client = yes). Stunnel bežiaci na rovnakom počítači ako D2000 KOM by mal počúvať na lokálnom porte 1883 a po pripojení sa D2000 KOM procesu na tento port by mal komunikáciu zakryptovať pomocou SLL/TLS a poslať na cieľový MQTT server (typicky na port 8883).

Pozn: Pri použití SSL/TLS spojenia je treba dať pozor na expiráciu použitých certifikátov. Dátum expirácie je možné na Linuxe zistiť príkazom

openssl x509 -text -in file.crt | grep "After"

Poznámky k redundancii MQTT brokerov

Ak je nakonfigurovaná linka TCP/IP-TCP, vytvára sa jedno TCP spojenie, ktoré môže smerovať na jednu z nakonifigurovaných IP adries.

Ak je nakonfigurovaná linka TCP/IP-TCP Redundant, vytvárajú sa dve TCP spojenia (na 2 MQTT brokery), z ktorých každé môže smerovať na jednu z viacero zadaných IP adries. D2000 KOM proces prijíma hodnoty od obidvoch MQTT brokerov a všetky hodnoty výstupných meraných bodov posiela obidvom MQTT brokerom. Zápis je považovaný za úspešný, ak je hodnota úspešne poslaná aspoň jednému MQTT brokerovi (v prípade potvrdzovania, ak "Subscribe QoS" > QoS_0, ak je potvrdený aspoň jedným z MQTT brokerov).
Takáto konfigurácia umožňuje nakonfigurovať redundantný systém, v ktorom D2000 KOM sa pripája k dvom redundantným MQTT brokerom a druhá strana aspoň k jednému MQTT brokeru, pričom MQTT brokery nemusia tvoriť "cluster", tj. synchronizovať si medzi sebou správy (takže sa dá použiť aj jednoduchý a bezplatný Eclipse Mosquitto - viď príklad konfigurácie).

Vynútené prerušenie spojenia: Keď sa všetky stanice na linke dostanú do simulácie alebo majú zastavenú komunikáciu, linka sa odpojí (dôjde ku zavretiu komunikačného socketu). Keď aspoň jedna stanica bude mať vypnutú simuláciu a nebude mať zastavenú komunikáciu (záložka Parametre objektu Stanica), linka sa znovu pripojí.

V režime Payload Type = Sparkplug Edge Node, pokiaľ je zastavená komunikácia na Edge Node stanici, linka sa odpojí (aj keď podstanice typu Device majú komunikáciu zastavenú). Ak je zastavená komunikácia na Device stanici a Edge Node stanica komunikuje, D2000 KOM pošle správu DDEATH a po zapnutí Device stanice pošle správu DBIRTH.

 

Parametre protokolu linky


Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu linky:

Tab. č. 1

Parameter

Popis

Jednotka / rozmer

Náhradná hodnota

Parameter

Popis

Jednotka / rozmer

Náhradná hodnota

Full Debug

Zapnutie podrobných výpisov o posielaní a prijímaní hodnôt.

YES/NO

NO

MQTT Version

Verzia MQTT protokolu, ktorá sa použije na pripojenie sa k MQTT serveru. Je možné použiť starší štandard MQTT 3.1.1 (október 2014) alebo novší štandard MQTT 5.0 (marec 2019). MQTT brokery zvyčajne podporujú oba štandardy, starší štandard je jednoduchší a úspornejší. Na druhej strane, MQTT 5.0 umožňuje zmenšenie veľkosti správ použitím Topic Aliasov.

MQTT 3.1.1

MQTT 5.0

MQTT 3.1.1

User Name

Užívateľské meno použité v správe CONNECT na pripojenie sa k MQTT serveru.

-

 

Password

Heslo použité v správe CONNECT na pripojenie sa k MQTT serveru.

-

 

Topic Filter

Meno jednej témy alebo filter pre viacero tém posielaný v rámci SUBSCRIBE správy. Filtrom špecifikuje MQTT klient témy, v rámci ktorých chce prijímať správy.
Pozn: témy sú zoradené hierarchicky, ako oddeľovač slúži lomka (/), ako maska jednej úrovne slúži plus (+), ako maska pre viacero úrovní znak hash (#).
Príklady filtra: a/b , level1/+ , # , +/+/+/up
Pozn: zmena parametra Topic Filter sa prejaví po reštarte komunikácie - napr. v dôsledku rozpadnutia TCP spojenia, pokiaľ sú všetky stanice na linke vypnuté (StOff) a znovu zapnuté, prípadne po reštarte KOM procesu. V prvých dvoch prípadoch sa posiela správa UNSUBSCRIBE na pôvodný Topic Filter a následne SUBSCRIBE na nový Topic Filter (to môže byť dôležité pri tzv. perzistentných sessions, keď je zadaný parameter Client ID a MQTT server si pamätá stav klienta aj po rozpade TCP spojenia).
Pozn: pre Payload Type = Sparkplug Host postačuje filter spBv1.0/# na príjem všetkých Sparkplug správ. Je možné zadať aj prázdny filter, keďže štandardne sa generuje SUBSCRIBE na BIRTH/DATA/DEATH správy odvodené od adries staníc, ktoré sú v Sparkplug formáte (group_id/edge_node_id/[device_id]).
Pozn: pre Payload Type = Sparkplug Edge Node sa automaticky posiela SUBSCRIBE správa aj na všetky NCMD/DCMD témy odvodené od adries Edge Node/Device staníc nakonfigurovaných na linke.
Príklad: 

  • pre Edge Node stanicu s adresou myGroup/myEdgeNode sa posiela SUBSCRIBE správa na topic spBv1.0/myGroup/NCMD/myEdgeNode

  • pre Device stanicu s adresou myGroup/myEdgeNode/myDevice1 sa posiela SUBSCRIBE správa na topic spBv1.0/myGroup/DCMD/myEdgeNode/myDevice1

Pozn: pre Payload Type = Sparkplug Edge Node sa automaticky posiela SUBSCRIBE správa aj na topic spBv1.0/STATE/<primaryHostApplication>, pokiaľ je zadaný parameter Sparkplug Host ID (<primaryHostApplication> je hodnota tohto parametra), aby bol D2000 KOM proces informovaný o pripojení sa/odpojení Primary Host Application. Pokiaľ príde STATE správa o odpojení sa Primary Host Application (STATE správa s online=false) a v konfigurácii linky je uvedených viacero IP adries, D2000 KOM proces sa odpojí od MQTT servera a skúša ďalšie MQTT servery, kým nenájde taký, ku ktorému je pripojená Primary Host Application (STATE správa s online=true).

-

#

Subscribe QoS

Požadovaná maximálna úroveň potvrdzovania (QoS) posielaná v rámci SUBSCRIBE správy.
MQTT server môže následne posielať PUBLISH správy s takouto alebo nižšou úrovňou potvrdzovania (ale nie vyššou). PUBLISH správy posielané MQTT serverom budú potvrdzované procesom D2000 KOM podľa úrovne potvrdzovania v nich špecifikovanej. Čím vyššia je úroveň potvrdzovania, tým viac správ je medzi klientom a serverom vymenených (1 pri QoS_0, 2 pri QoS_1 a 4 pri QoS_2).
Pozn: Pre Payload Type = Sparkplug Edge Node sa vždy použije QoS_1.

QoS_0
QoS_1
QoS_2

QoS_1

Client ID

Unikátny identifikátor klienta (Client Identifier) posielaný v rámci CONNECT správy.
Pozn: je možné zadať aj prázdny reťazec - v tom prípade server môže klientovi prideliť unikátne meno (pokiaľ takúto funkcionalitu podporuje) alebo vráti chybu. Pokiaľ nie je zadaný Client ID, bude ale ignorované nastavenia parametra Clean Session Flag (keďže server pridelí zakaždým unikátne meno).
Testovaný MQTT server (thethings.network) vrátil chybu, pokiaľ bolo Client ID prázdne a Clean Session Flag=NO.
Pozn: niektoré MQTT brokery (PIXII.COM, Eclipse Mosquitto) identifikovali klientov iba podľa Client ID. V praxi to spôsobovalo, že dva rôzne D2000 systémy, ktoré sa pripájali k jednému brokerovi, boli považované za jedného klienta a broker pri vytvorení spojenia zrušil existujúce spojenie, ktoré považoval za staré, prípadne nedovolil vytvoriť nové spojenie a vrátil chybu Connection Refused, identifier rejected (2). Po nastavení Client ID na unikátnu hodnotu začali komunikácie fungovať bez rozpadov spojení.

-

D2000kom

Clean Session Flag

Parameter Clean Session Flag správy CONNECT. Hodnota NO znamená, že server použije aktuálny stav session (spojenia) - napr. po rozpade a znovuobnovení TCP spojenia. Znamená to, že sú zaslané všetky nepotvrdené PUBLISH správy s QoS_1 a QoS_2 (a voliteľne aj QoS_0 v závislosti na implementácii).
Hodnota YES znamená, že sa session vytvorí nanovo a žiadne nepotvrdené PUBLISH správy nie sú opakované.
Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný a Clean Session Flag sa nastaví na YES (viď popis parametra Sparkplug Host ID).
Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Clean Session Flag sa nastaví na YES (viď popis parametra Sparkplug Host ID).

YES/NO

NO

Publish QoS

Úroveň potvrdzovania (QoS) použitá pri posielaní PUBLISH správ procesom D2000 KOM.
Poslanie PUBLISH správy je dôsledok zápisu do výstupného meraného bodu s adresou OUT_VALUE. Čím vyššia je úroveň potvrdzovania, tým viac správ medzi klientom a serverom poslaných (1 pri QoS_0, 2 pri QoS_1 a 4 pri QoS_2).
Pozn: Ak Payload Type = Sparkplug Host alebo Sparkplug Edge Node, tento parameter je ignorovaný a použije sa QoS_0.

QoS_0
QoS_1
QoS_2

QoS_0

Publish Retain

Nastavenie príznaku Retain použité pri posielaní PUBLISH správ procesom D2000 KOM. Aktivácia príznaku Retain spôsobí, že posledná správa poslaná procesom D2000 KOM bude na MQTT serveri dostupná iným klientom okamžite po ich pripojení, ako aj po odpojení D2000 KOM procesu.
Pozn: Ak Payload Type = Sparkplug Host alebo Sparkplug Edge Node, tento parameter je ignorovaný a použije sa Retain=False.

YES/NO

NO

Keep Alive

Parameter Keep Alive posielaný v rámci CONNECT správy.
Ak je nenulový, udáva interval v sekundách, do ktorého musí klient poslať nejakú správu (ak ju nepošle, MQTT broker ho môže odpojiť). Ak nemá dáta, ktoré by mohol poslať, pošle aspoň výzvu PING request. Nulová hodnota znamená, žte MQTT broker nevyžaduje periodické posielanie správ.

Odporúčaná hodnota Keep Alive je niekoľko minút.

D2000 KOM proces posiela PING výzvy podľa nastavení parametrov Keep Alive a Ping Interval (podľa toho, ktorý interval uplynie skôr).

0-65535 sec

0

Ping Interval

Pokiaľ MQTT server neposlal za špecifikovaný časový interval žiadnu správu, D2000 KOM proces pošle výzvu PING request a očakáva odpoveď PING response (do času Reply Timeout).
Hodnota 0 posielanie PING request správ vypína. Parameter umožňuje detekovať rozpadnutie TCP spojenia.

0-3600 sec

60

Payload Type

Nastavenie parsovania správy:

  • Text only - správa nie je parsovaná, priradí sa do meraného bodu s adresou IN_TOPIC

  • JSON - správa sa parsuje ako JSON dáta. Ak existuje meraný bod s adresou IN_TOPIC, celá správa bude priradená do neho.
    Ak existujú body s adresami JA=json_address, budú naplnené príslušnými dátami z JSON správy. Ak v správe také adresy neexistujú, budú merané body zneplatnené.

  • Sparkplug Host - správa sa parsuje ako Sparkplug B payload (binárne kódovaný), D2000 KOM proces sa správa ako Host Application (spotrebiteľ údajov, posiela CMD a STATE správy).

  • Sparkplug Edge Node - správa sa parsuje ako Sparkplug B payload (binárne kódovaný), D2000 KOM proces sa správa ako Edge Node (producent údajov, posiela BIRTH a DATA správy).

Text only

JSON

Sparkplug Host

Sparkplug Edge Node

Text only

Time Field Name