MQTT – Mosquitto – tematy systemowe ($SYS)

Broker Mosquitto posiada pewną grupę stałych tematów w których sam publikuje różne informacje na temat swojej pracy. Subskrybując te tematy możemy się dowiedzieć na przykład jaka jest ilość subskrybentów, lub ile wiadomości zostało opublikowanych lub odebranych od rozpoczęcia pracy serwera.

Na początek sprawdzimy jaką wersję ma nasz broker. Taka informacja została opublikowana w temacie $SYS/broker/version, aby ją subskrybować wystarczy wykonać polecenie:

mosquitto_sub -t '$SYS/broker/version'

Jeżeli wcześniej ustawiliśmy uprawnienia tylko dla znanych użytkowników to należy także podać login i hasło. Szczegóły opisane w poprzednim artykule.

W wyniku wywołania takiego polecenia otrzymamy wiadomość zawierającą wersje Mosquitto:

Innym przydatnym tematem jest $SYS/broker/subscriptions/count, Mosquitto publikuje w nim aktualną ilość subskrybentów.

Warto zwrócić uwagę, że początkowa opublikowana wiadomość zawiera informację o ilości subskrybentów przed wywołaniem polecenia, a następna zawiera dopiero aktualną wartość.

Częstotliwość publikowania tematów systemowych ($SYS) jest zależna od parametru sys_interval, który określa co ile sekund chcemy aby serwer publikował informację. Aby dokonać zmiany ustawień musimy edytować plik mosquitto.conf. Otwieramy terminal i wywołujemy polecenie:

sudo nano /etc/mosquitto/mosquitto.conf

a następnie w otwartym pliku dopisujemy na końcu linię:

sys_interval 10

Zapisujemy plik (ctrl + o) i zamykamy edytor (ctrl + x), oraz resetujemy broker Mosquitto:

sudo /etc/init.d/mosquitto restart

Z takim ustawieniem, mimo zmiany wartości parametru nie będzie on publikowany w odpowiednim temacie do puki nie minie 10 sekund od poprzedniej publikacji.

Takie rozwiązanie może okazać się przydatne kiedy nie potrzebujemy danych cały czas, więc nie ma potrzeby dodatkowo obciążać komputera na którym pracuje Mosquitto. Na przykład wpisanie wartości 86400 będzie powodowało, że dane będą publikowane raz na dobę.

Kiedy ustawimy wartość sys_intervalna 0, to żadne dane nie będą publikowane. Wyłączymy w ten sposób tematy systemowe.

Wszystkie informacje są publikowane przez broker z parametrem -r dzięki czemu nowy subskrybent odbierze podczas połączenia ostatnią publikowaną wiadomość.

W artykule przedstawiłem tylko fragment możliwości tematów systemowych, wszystkie są szeroko opisane na stronie dokumentacji Mosquitto.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.