Promotic

Komunikacja przy pomocy protokołu komunikacyjnego MQTT

MQTT (MQ Telemetry Transport) to prosty "Internet of Things" protokół komunikacyjny. Opiera się na przekazywaniu wiadomości pomiędzy klientami za pośrednictwem centralnego serwera – brokera.
Klienci mogą być typu Publisher - wysyłają pod wskazany adres topic (adres, temat) swoje wiadomości. Publisherem może być na przykład rejestrator, czujnik lub miernik.
Przeciwiestwem jest Subscriber, czyli klient, ktróry zgłasza się do odbioru wartości a adresu topic a później wartości odczytuje (przyjmuje) oraz dalej z nimi pracuje lub je wyświetla.
Klient może być Publisher oraz Subscriber równocześnie.
 
Ponieważ, klienci komunikują się tylko z pośrednikiem (z serwerem - brokerem), nie muszą znać topologię sieci, ani nie muszą posiadać informację o istnieniu innych klientów - wystarczy im tylko informacja o tym, w jaki sposób połączyć się z brokerem.

W sekwencji logowania wykorzystywana jest identyfikacja każdego klienta przy pomocy "ClientID" a następnie opcjonalnie również przy pomocy nazwy użytkownika "Username" oraz hasła "Password". Wsparcie SSL/TSL nie jest narazie w systemie PROMOTIC zaimplementowane.

Protokół MQTT definiuje trzy poziomy potwierdzenia wiadomości QoS (Quality of Service)
QoS 0 - wiadomość została wysłana bez potwierdzenia i nie jest zapewnione jej doręczenie (at-most-once).
QoS 1 - wiadomość została dostarczona przynajmniej raz (at least once).
QoS 2 - każda wiadomość została dostarczona tylko raz (exactly once).


Klient typu Publisher może wysyłać dane również z znacznikiem Retained (0/1 = dane nie będą/będą przechowywane na brokerze) oraz z znacznikiem DUP (0/1 = żadne/następne powtarzanie wysłanej wiadomości)

Według wymaganego poziomu szyfrowania komunikacji, protokół MQTT ustawia następujące 3 porty sieciowe:
1883 - (wspierane) transmisja nieszyfrowana (unencrypted)
8883 - (nie wspierane) transmisja szyfrowana (encrypted) SSL/TLS
8884 - (nie wspierane) transmisja szyfrowana (encrypted) + certyfikat klienta (client certificate) SSL/TLS + klient musi udostępnić również certyfikat wiarygodności wydany brokerem
 
Patrz: Wikipedia: Lista numerów portów TCP i UDP używanych przez protokoły do uruchamiania aplikacji sieciowych.

Ograniczenie: System PROMOTIC narazie nie wspiera transmisję szyfrowaną (wspiera tylko port 1883).

Linki oraz instrukcje
- Download MQTT Broker: https://mosquitto.org/download
- Download MQTT testowego klienta: http://mqttfx.jensd.de/index.php/download


Komunikacja aplikacji PROMOTIC z MQTT brokerem

Zalogowany klient jest typu Publisher oraz Subscriber. Klient Subscriber zgłosi się do odbioru na brokerze pod zdefiniowanym topic adresem. Klient Publisher pod ten adres wysyła swoje dane, które klient Subscriber odbiera.
Do odczytu tych danych jest dogodne zastosować konfigurację wstępną:

Historia:
Pm9.00.03: Wytworzono
Pm9.00.15: Usunięty błąd: Uaktualnienie oraz korekta drivera zgodnie ze standardem MQTT5.
© MICROSYS, spol. s r.o.