...
Poznámka: v prípade SparkPlug MQTT servera má Topic tvar 'namespace/group_id/message_type/edge_node_id/[device_id]', kde message_type udáva typ správy (napr. DDATA, DBIRTH, DDEATH).
Je možné použiť namiesto message_type regulárny výraz (napr. spBv1.0/Sparkplug Devices/.*/MyDevice/Sensor2), aby boli pokryté všetky typy správ.
Ak Payload Type=Sparkplug, je možné vynechať časti namespace aj message_type a zapísať Topic v skrátenom tvare 'group_id/edge_node_id/[device_id]' (napr. Sparkplug Devices/MyDevice/Sensor2).
Kotva | ||||
---|---|---|---|---|
|
...
- Textový režim: Pôvodná implementácia MQTT protokolu obsahovala iba vstupné textové merané body s adresami IN_TOPIC, IN_DATA a voliteľne dvojicu bodov s adresami IN_ID a ACK_ID. Prvé dva body slúžili na zverejnenie prijatého Topicu a Payloadu (ktorý bolo následne potrebné parsovať v skripte), druhé dva body slúžili na zverejnenie identifikátora paketu a potvrdenie spracovania paketu. Tak bolo možné zabezpečiť, že pre dáta posielané s QoS > QoS_0 bolo poslané potvrdenie až po spracovaní dát v skripte.
Na zápis slúžia výstupné body s adresami OUT_TOPIC a OUT_VALUE. - JSON režim: Rozšírenie pre spracovanie Payloadu s JSON dátami (Payload Type=JSON) bolo implementované s pomocou vstupných meraných bodov s adresami JA=json_address. D2000 KOM proces priamo parsuje JSON payload a nastavuje hodnoty meraných bodov s JSON adresami. Merané body s adresamiIN_TOPIC, IN_DATA, IN_ID a ACK_ID vôbec nemusia existovať.
Na zápis slúžia výstupné body s adresami OUT_TOPIC a OUT_VALUE. - Sparkplug režim: Rozšírenie pre spracovanie Payloadu so Sparkplug dátami (Payload Type=Sparkplug) bolo implementované s pomocou vstupných meraných bodov s adresami SA=sparkplug_address. D2000 KOM proces priamo parsuje Sparkplug payload a nastavuje hodnoty meraných bodov so Sparkplug adresami. Merané body s adresami IN_TOPIC, IN_DATA, IN_ID a ACK_ID vôbec nemusia existovať.
Zápis jednoduchých hodnôt je možný pomocou výstupných bodov s adresami ST=type;SA=sparkplug_address, kde type je definícia Sparkplug dátového typu (napr. Int8, UInt16, DateTime, String atď). Výstupné body musia byť na stanici so Sparkplug adresou, keďže Topic pri zápise sa odvodzuje od nej.
Pozn: správy typu STATE, ktoré majú JSON payload, je možné parsovať s meranými bodmi s JSON adresou (typicky meraný bod typu Di s adresou JA=online)
...
Typ bodu | Adresa | Popis | ||||||
---|---|---|---|---|---|---|---|---|
Body pre čítanie dát poslaných MQTT serverom správou PUBLISH. Pozn: hodnoty bodov sú nastavené D2000 KOM procesom v poradí IN_TOPIC, IN_DATA a IN_ID. Nie je nutné, aby konfigurácia obsahovala všetky tri body. | ||||||||
TxtI |
| Téma (Topic) prijatej správy PUBLISH. | ||||||
TxtI |
| Dáta (Payload) prijatej správy PUBLISH. | ||||||
Ci |
| Identifikátor paketu (Packet Identifier) správy PUBLISH, ktorý závisí od úrovne potvrdzovania (QoS). Pre správy posielané s QoS_0 je identifikátor nulový, pre QoS_1 a QoS_2 je to kladné 16-bitové číslo. Pozn: ak MQTT server posiela aj správy s úrovňou potvrdzovania QoS_0 a je nakonfigurovaný bod ACK_ID, odporúčame na záložke Filter aktivovať voľbu Nová hodnota pri zmene času, aby opakovaný zápis hodnoty 0 spôsobil generovanie novej hodnoty líšiacej sa iba časovou značkou. | ||||||
Bod pre potvrdenie prijatia dát MQTT serveru. | ||||||||
Co |
| Ak je definovaný výstupný meraný bod s adresou ACK_ID, D2000 KOM očakáva potvrdenie spracovania každej správy zápisom kópie hodnoty bodu IN_ID. Až následne nastaví do bodov IN_TOPIC, IN_DATA a IN_ID (v tomto poradí) hodnoty z ďalšej prijatej PUBLISH správy (ak bola medzitým prijatá). V prípade úrovne potvrdzovania QoS_0 je teda nutné opakovane zapisovať do bodu hodnotu 0. Pokiaľ meraný bod ACK_ID neexistuje, hodnoty do bodov IN_TOPIC, IN_DATA a IN_ID sú nastavované ihneď po spracovaní PUBLISH správy. Pozn: pre správy prijaté s úrovňou potvrdzovania QoS_0 sa neposiela žiadne potvrdenie MQTT serveru, iba sa zverejnia hodnoty ďalšej prijatej PUBLISH správy. | ||||||
Body pre posielanie hodnôt MQTT serveru správou PUBLISH. Pozn: ak má D2000 KOM proces posielať MQTT serveru správy PUBLISH, musia byť definované obidva body v rámci jednej stanice. | ||||||||
TxtO |
| Téma (Topic) v rámci posielanej správy PUBLISH. | ||||||
TxtO |
| Dáta (Payload) v rámci posielanej správy PUBLISH. Pozn: poslanie správy sa uskutoční ako reakcia na zápis do bodu OUT_VALUE (t.j. pokiaľ sa Topic nemení, tak stačí bod OUT_TOPIC nastaviť jednorazovo - napr. pomocou štartovacej hodnoty). | ||||||
Body pre parsovanie JSON správ | ||||||||
TxtI, TxtO, Qi, |
| Pokiaľ Payload Type=JSON, správa je parsovaná ako JSON dáta. Hodnota json_address udáva názov JSON poľa, ktorého hodnota sa má priradiť do meraného bodu. Príklady viď popis meraných bodov typu Envelope protokolu LoRaWAN. | ||||||
Body pre parsovanie Sparkplug správ | ||||||||
TxtI, TxtO, Qi, |
SA=sparkplug_address Výstupné body: | Pokiaľ Payload Type=Sparkplug, správa je parsovaná ako Sparkplug dáta (binárny formát postavený na Google Protocol Buffers). Sparkplug dáta obsahujú metriky, ktoré majú textové identifikátory (sparkplug_address).
PUBLISH správa vytvorená pri zápise obsahuje Topic odvodený od adresy stanice. Typ správy závisí od adresy stanice - či sa jedná o Edge Node (NCMD) alebo Device/Sensor (DCMD). Payload obsahuje časovú značku, typ hodnoty (type) zapisovanú hodnotu (zakódovanú podľa špecifikovaného typu hodnoty) a názov metriky (sparkplug_address). |
Kotva | ||||
---|---|---|---|---|
|
...