Broker MQTT
Na bramce AIS dom działa broker MQTT Mosquitto
Klient MQTT
MQTT Explorer
MQTT Explorer to klient MQTT, który pozwala na przegląd tematów MQTT i pozwala na wysyłanie komunikatów do brokera MQTT
Połączenie z bramką AIS dom z klienta MQTT
Tak możemy połączyć się z brokerem MQTT z programu MQTT Explorer :
(jeżeli nasz system nie obsługuje mDNS to zamiast nazwy hosta ais-dom.local podajemy IP bramki w lokalnej sieci)
Wysłanie widomości do bramki z kleinta MQTT
W MQTT wiadomość nie kierujemy do klienta, ale publikujemy na jakimś temacie, w ten sposób mamy pewność, że trafia ona do wszystkich klientów, którzy są podłączeni do brokera MQTT i nasłuchują (subskrybują) dany temat. Klientem jest każde urządzenie podłączone do brokera (gniazdko, przełącznik, żarówka, nasze esp8266, zigbee2mqtt podłączony do USB, itd…). Każdy klient nasłuchuje wiadomości o określonych tematach i może publikować wiadomości o dowolnym temacie.
Klientem MQTT jest też Asystent domowy, urządzenia po automatycznym wykryciu (MQTT auto discovery) “mówią/prezentują” Asystentowi, na jakich tematach nasłuchują komendy sterującej a na jakich publikują swój status. Dzięki temu Asystent domowy wie jak “rozmawiać” (komunikować się) z danym urządzeniem, tzn. wie jak wysłać mu komendę sterującą oraz jak odczytać jego aktualny status.
Jeśli na bramce zaczniemy nasłuchiwać tematu /jolka/test a innym klientem (MQTT Explorer) nadamy wiadomość na ten temat, to efekt będzie taki:
Wysłanie widomości MQTT z bramki do innego klienta
MQTT Explorer domyślnie nasłuchuje wszystkich tematów można to sprawdzić w zaawansowanych ustawieniach połączenia z brokerem MQTT / bramką AIS dom:
Dlatego jeżeli wyślemy wiadomość MQTT z Asystenta domowego o dowolnym temacie to możemy ją odebrać w MQTT Explorer
Publikowanie wiadomości MQTT za pomocą usługi
Usługa mqtt.publish publikuje wiadomość MQTT dzięki temu możemy publikować wiadomość na przykład w naszej automatyzacji (po wystąpieniu określonego zdarzenia) - wysyłaś wiadomości do innych urządzeń:
Odbierania wiadomości w automatyzacji
Zdefiniujmy nową automatyzację która po otrzymaniu wiadomości MQTT o temacie /hej/jolka odpowie “Część” za pomocą usługi czytania tekstu:
Po opublikowaniu wiadomości (nawet pustej) o temacie /hej/jolka otrzymamy stosowny komunikat:
Tak działa komunikacja MQTT, w ten sposób urządzenia wysyłają do bramki swój status (czy są włączone, jaką mają temperaturę, wersje oprogramowania, adres IP…), w ten sam sposób bramka wysyła do nich komendy (włącz, wyłącz, prześlij status…).
Ograniczenia
Protokół MQTT jest ekstremalnie prosty i lekki. Metoda przesyłania wiadomości za pomocą publikowania / subskrybowania została zaprojektowana do transmisji dla urządzeń niewymagających dużej przepustowości. Dzięki temu jest to idealne rozwiązanie do przesyłania wiadomości pomiędzy urządzeniami (w IoT). Do tego został stworzony przez firmę IBM.
Za pomocą MQTT komunikują się urządzenia produkowane przez np. firmę Tuya (oczywiście tu broker MQTT jest w chmurze producenta). Niektóre brokery MQTT łączą jednocześnie 10 000 000 klientów:
Na bramce nie ma limitu klientów MQTT połączonych do brokera. Broker Mosquitto który działa na bramce oczywiście nie jest brokerem EMQX, ale poradzi sobie bez problemu z większą ilością urządzeń niż nasza doowa sieć WiFi