Słyszałeś, że protokół MQTT w Smart Home pozwala sterować urządzeniami, ale czy naprawdę coś zmienia w automatyce domowej?
W pierwszej części poradnika zatytułowanej: „Dlaczego warto stosować REST API i MQTT w instalacjach Smart Home – poradnik cz. 1” pokazałem, że REST API pozwala skutecznie połączyć urządzenia smart, odczytywać ich parametry oraz integrować je z systemami takimi jak Home Assistant czy własne skrypty. Dla wielu zastosowań takie podejście jest w zupełności wystarczające i stanowi solidny fundament pod dalszą rozbudowę instalacji.
W praktyce jednak wraz z rozwojem instalacji bardzo szybko pojawia się potrzeba szybszej reakcji systemu i automatyki opartej na zdarzeniach, a nie na cyklicznym odpytywaniu urządzeń. Dotyczy to szczególnie czujników, liczników energii, sterowania przekaźnikami, roletami czy reagowania na zmiany stanu w czasie rzeczywistym.
Właśnie w tym miejscu zaczyna pojawiać się MQTT, protokół, który często jest opisywany jako bardziej zaawansowany i przeznaczony głównie dla automatyków lub programistów. W rzeczywistości MQTT nie jest ani trudniejsze do zrozumienia, ani bardziej skomplikowane w użyciu, jeżeli spojrzymy na nie z perspektywy logiki działania instalacji, a nie od strony samej technologii.
W tej części poradnika pokażę, czym różni się komunikacja zdarzeniowa od mechanizmu REST API w praktycznych instalacjach smart home. Krok po kroku wyjaśnię, jak działa MQTT, jaka jest rola brokera, dlaczego urządzenia nie muszą znać nawzajem swoich adresów IP oraz w jaki sposób system nadrzędny, taki jak Home Assistant lub Node-RED, może reagować na zdarzenia dokładnie w momencie ich wystąpienia.
Na konkretnych przykładach z wykorzystaniem urządzeń FOX i Home Assistanta zobaczysz, w jakich sytuacjach MQTT rzeczywiście daje przewagę, kiedy upraszcza automatykę i kiedy jego zastosowanie ma realny sens. Jednocześnie pokażę, dlaczego MQTT nie jest uniwersalnym zamiennikiem REST API oraz jak świadomie dobierać mechanizm komunikacji do konkretnego zadania w instalacji smart home.
Jeżeli po części pierwszej zastanawiałeś się, czy da się sprawić, aby system smart home reagował szybciej i działał bardziej „inteligentnie”, to ta część poradnika odpowie dokładnie na to pytanie.
Spis treści
- MQTT jako podstawa komunikacji zdarzeniowej w smart home
- Jak połączyć urządzenia FOX z Home Assistantem przy użyciu MQTT
- Przygotowanie sieci lokalnej pod komunikację MQTT
- Sprawdzenie adresu IP urządzenia w aplikacji FOX
- Instalacja brokera MQTT w Home Assistant
- Utworzenie użytkownika do komunikacji MQTT
- Konfiguracja integracji MQTT w Home Assistant
- Aktywacja MQTT w aplikacji FOX
- Sprawdzenie urządzenia i tematów MQTT w Home Assistant
- Deklaracja dodatkowych encji MQTT w Home Assistant
- Eksport pozostałych parametrów z urządzenia przy użyciu MQTT
- Sprawdzenie poprawności konfiguracji i ponowne uruchomienie Home Assistanta
- Weryfikacja encji MQTT i gotowość do automatyzacji
- Kiedy wybrać MQTT, a kiedy REST API w instalacji smart home
- MQTT czy REST API? Najlepsze efekty daje model hybrydowy
- Najczęściej popełniane błędy przy REST API i MQTT i jak ich unikać
- Czego MQTT uczy o automatyce Smart Home i gdzie naprawdę pokazuje swoją przewagę?
- Jak w prostych słowach wytłumaczyć REST API i MQTT osobie nietechnicznej?
- Poznajmy się autorami artykułu są

MQTT jako podstawa komunikacji zdarzeniowej w smart home
Urządzenia FOX wspierają również komunikację z wykorzystaniem MQTT, która została zaprojektowana z myślą o szybkiej i energooszczędnej wymianie informacji pomiędzy elementami automatyki. W przeciwieństwie do REST API MQTT nie opiera się na bezpośrednich zapytaniach typu klient-serwer, lecz działa w modelu publikuj-subskrybuj z udziałem pośrednika. Centralnym elementem tej architektury jest broker MQTT, który można porównać do skrzynki pocztowej. Urządzenia nie komunikują się ze sobą bezpośrednio, lecz wysyłają i odbierają wiadomości za pośrednictwem brokera. Dzięki temu:
- nadawca nie musi znać adresu IP odbiorcy,
- urządzenia są od siebie odseparowane logicznie,
- możliwa jest łatwa rozbudowa systemu bez zmiany istniejącej konfiguracji.
W MQTT urządzenia wysyłające dane nazywane są wydawcami (publishers). Publikują one wiadomości do określonych tematów (topics), które są logicznymi „adresami” danych. Inne elementy systemu, zwane subskrybentami, odbierają tylko te informacje, które dotyczą subskrybowanych przez nie tematów. Istotną cechą MQTT jest to, że:
- jeden temat może być subskrybowany przez wiele urządzeń lub systemów jednocześnie,
- do jednego tematu może publikować wiele wydawców.
Przykładowo, w instalacji z kilkoma czujnikami dymu każdy z nich może publikować informację o alarmie do tego samego tematu: /dom/alarmy/pozar. Każdy system lub automatyzacja subskrybująca ten temat otrzyma informację natychmiast po jej opublikowaniu, niezależnie od tego, z którego czujnika pochodzi sygnał. Kluczową zaletą MQTT jest komunikacja zdarzeniowa. Oznacza to, że urządzenie wysyła dane tylko wtedy, gdy coś się zmieni, np. zmieni się stan wejścia, pojawi się alarm lub zostanie przekroczona określona wartość. Dzięki temu:
- może zmniejszyć ruch w sieci lokalnej,
- system reaguje szybciej niż przy cyklicznym odpytywaniu,
- MQTT idealnie nadaje się do czujników, liczników energii i sterowania w czasie rzeczywistym.
Jak połączyć urządzenia FOX z Home Assistantem przy użyciu MQTT
Integracja urządzeń FOX z Home Assistantem z wykorzystaniem MQTT jest rozwiązaniem najbardziej naturalnym dla automatyki smart home. MQTT umożliwia komunikację zdarzeniową, szybką reakcję systemu oraz prostą rozbudowę instalacji bez nadmiernego obciążania sieci lokalnej. Poniżej krok po kroku przechodzimy przez cały proces konfiguracji.
Przygotowanie sieci lokalnej pod komunikację MQTT
Zanim przejdziemy do konfiguracji MQTT, konieczne jest upewnienie się, że sieć lokalna jest przygotowana do stabilnej komunikacji pomiędzy urządzeniami FOX, brokerem MQTT oraz Home Assistantem. Braki na tym etapie są jedną z najczęstszych przyczyn problemów z integracją.
Rezerwacja i przypisanie stałego adresu IP
Domyślnie routery przydzielają adresy IP dynamicznie z wykorzystaniem DHCP, co oznacza, że po restarcie urządzenia lub zaniku zasilania adresy mogą się zmieniać. W praktyce stałe adresy IP są wymagane dla brokera MQTT oraz zalecane w przypadku Home Assistant.
Urządzenia MQTT mogą działać z adresacją dynamiczną, jednak przypisywanie im stałych dzierżaw DHCP to dobra praktyka administracyjna, która ułatwia utrzymanie porządku i przewidywalności w sieci.
Aby nadać urządzeniu stały adres, należy powiązać adres IP z jego adresem MAC w ustawieniach routera. Nazwa tej funkcji różni się w zależności od producenta. W routerach TP‑Link opcja ta nosi nazwę „rezerwacja adresów” i znajduje się w sekcji serwera DHCP.
Wyłączenie izolacji punktów dostępowych (AP isolation)
Niektóre routery mają domyślnie włączoną funkcję izolacji punktów dostępowych, która blokuje komunikację pomiędzy urządzeniami w tej samej sieci. Przy aktywnej izolacji MQTT nie będzie działać poprawnie, ponieważ broker i urządzenia FOX nie będą mogły się ze sobą komunikować.
Weryfikacja podsieci
Urządzenia FOX oraz serwer Home Assistant muszą znajdować się w tej samej podsieci IP. W typowych instalacjach domowych nie stosuje się routingu pomiędzy podsieciami, dlatego różne zakresy IP uniemożliwią komunikację.
Sprawdzenie adresu IP urządzenia w aplikacji FOX
Po przygotowaniu sieci przechodzimy do aplikacji mobilnej FOX. Pierwszym krokiem jest sprawdzenie, czy adres IP widoczny w aplikacji odpowiada temu, który został przypisany w routerze. Adres IP urządzenia znajduje się na dole ustawień zaawansowanych. W moim przypadku jest to 192.168.0.127.
Instalacja brokera MQTT w Home Assistant
Kolejnym krokiem jest instalacja brokera MQTT, czyli centralnego elementu komunikacji publish-subscribe. W Home Assistant najczęściej wykorzystywanym brokerem jest Mosquitto. Wchodzimy w Ustawienia, następnie Aplikacje, Zainstaluj aplikację. Wyszukujemy Mosquitto broker, instalujemy go i uruchamiamy po zakończeniu instalacji. 
Utworzenie użytkownika do komunikacji MQTT
Dla bezpieczeństwa komunikacji MQTT zalecane jest użycie oddzielnego użytkownika Home Assistant, który będzie wykorzystywany wyłącznie do komunikacji z urządzeniami. Tworzymy nowego użytkownika w Home Assistant, zapamiętując nazwę użytkownika i hasło, które będą potrzebne w dalszej konfiguracji. 
Konfiguracja integracji MQTT w Home Assistant
Przechodzimy do Ustawienia → Urządzenia i usługi → Integracje i wybieramy Dodaj integrację. Wyszukujemy MQTT, a następnie wybieramy opcję Use the official Mosquitto MQTT Broker app. Po dodaniu integracji na liście pojawi się usługa MQTT.
Następnie klikamy trzy kropki, wybieramy Rekonfiguracja i wpisujemy nazwę użytkownika oraz hasło utworzone w poprzednim kroku. 
Aktywacja MQTT w aplikacji FOX
Teraz wracamy do aplikacji FOX. W ustawieniach zaawansowanych urządzenia rozwijamy sekcję Integracje i zaznaczamy opcję Aktywuj MQTT. Następnie uzupełniamy:
- adres IP serwera Home Assistant,
- nazwę użytkownika MQTT,
- hasło użytkownika MQTT.
Zmiany zatwierdzamy przyciskiem Zmień, a następnie Zatwierdź. 
Sprawdzenie urządzenia i tematów MQTT w Home Assistant
Po zakończeniu konfiguracji urządzenie FOX powinno automatycznie pojawić się w Home Assistant.
![]() |
![]() |
Na tym etapie dostępna jest zwykle jedna encja, np. Power_L1. Jest to efekt mechanizmu MQTT Discovery, który działa jak „wiadomość powitalna” urządzenia. Aby zobaczyć pełne dane, przechodzimy do MQTT Info, gdzie możemy podejrzeć subskrybowane tematy.
Najważniejszym tematem zawierającym odczyty z urządzenia jest: fanf/FCB46717AA5C/state 
Deklaracja dodatkowych encji MQTT w Home Assistant
Podobnie jak w przypadku REST API, również tutaj warto wyeksportować wszystkie dostępne parametry jako osobne encje. W tym celu w File editor tworzymy nowy plik, np.: MQTT_fox_energy-1.yaml Następnie w pliku configuration.yaml dodajemy:
mqtt:
sensor: !include MQTT_fox_energy-1.yaml
Po wprowadzeniu zmian nie zapomnij zapisać pliku 😉 Encje deklarujemy w domenie Sensor, co umożliwia poprawne wykorzystanie ich w wykresach i automatyzacjach. W przypadku innych urządzeń FOX możliwe są domeny Switch, Light lub Cover, zgodnie z dokumentacją Home Assistant:
- https://www.home-assistant.io/integrations/switch.mqtt/
- https://www.home-assistant.io/integrations/light.mqtt/
- https://www.home-assistant.io/integrations/cover.mqtt/
Eksport pozostałych parametrów z urządzenia przy użyciu MQTT
Mechanizm MQTT Discovery udostępnia w Home Assistant tylko podstawowe informacje o urządzeniu. Aby móc korzystać ze wszystkich danych generowanych przez monitor energii FOX ENERGY‑1, konieczne jest ręczne zadeklarowanie dodatkowych encji na podstawie treści publikowanej w temacie MQTT. W tym celu przechodzimy do wcześniej utworzonego pliku: MQTT_fox_energy-1.yaml i definiujemy w nim kolejne sensory odpowiadające poszczególnym parametrom urządzenia. 
Powiązanie encji z urządzeniem FOX
Pierwszym krokiem w konfiguracji encji jest jej poprawne przypisanie do urządzenia. Służy do tego sekcja device, która pozwala Home Assistantowi grupować wszystkie encje pod jednym urządzeniem.
- device – określa urządzenie, do którego przypisana zostanie encja
- pierwsza definicja urządzenia powinna zawierać znak & przed nazwą,
- każda kolejna definicja tego samego urządzenia korzysta ze znaku *.
- identifiers – unikalny identyfikator urządzenia
- można go odczytać w aplikacji FOX w ustawieniach zaawansowanych,
- name – nazwa urządzenia widoczna w Home Assistant.
Definicja sensora i źródła danych MQTT
Dla każdego parametru tworzony jest osobny sensor. Kluczowe elementy jego konfiguracji to:
- state_topic – temat MQTT, z którego pobierane są dane,
- name – nazwa encji widoczna w Home Assistant,
- unique_id – unikalny identyfikator encji (musi być inny dla każdego parametru),
- value_template – określa, z którego pola wiadomości MQTT pobierana jest wartość.
Aby poprawnie skonfigurować value_template, należy sprawdzić strukturę wiadomości publikowanej w temacie MQTT.
Urządzenia FOX publikują dane w formacie JSON, dlatego w szablonie wykorzystywana jest zmienna value_json. Po kropce należy wskazać nazwę konkretnego parametru, np. PAVE1 lub ERI1.
Jednostki, klasy sensorów i state_class
Aby dane były poprawnie interpretowane przez Home Assistant, konieczne jest prawidłowe określenie:
- unit_of_measurement – jednostki pomiarowej, zgodnej z wartością zwracaną przez urządzenie,
- device_class – klasy sensora, która wpływa na sposób wizualizacji i dalszego przetwarzania danych,
- state_class – sposobu interpretacji zmian stanu w czasie (np. pomiary chwilowe lub sumaryczne).
Lista wspieranych klas sensorów i jednostek znajduje się w dokumentacji Home Assistant: https://www.home-assistant.io/integrations/sensor Znaczenie parametru state_class oraz zasady jego doboru są szczegółowo opisane w dokumentacji deweloperskiej Home Assistant. 
Gotowy plik MQTT_fox_energy-1.yaml
W analogiczny sposób można dodać wszystkie pozostałe parametry udostępniane przez monitor energii FOX. Po zakończeniu konfiguracji plik należy zapisać. Kompletny plik MQTT_fox_energy-1.yaml, zawierający deklaracje wszystkich dostępnych odczytów, może wyglądać następująco:
Na podstawie powyższych zasad poniżej zamieszczam przykładowy fragment pliku MQTT_fox_energy-1.yaml, który można skopiować i wykorzystać jako punkt wyjścia do eksportu najważniejszych parametrów monitora energii FOX ENERGY‑1 do Home Assistanta.
- name: "ENERGY 1 Voltage L1"
unique_id: "FCB46717AA5C_VAVE1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ value_json.VAVE1 }}"
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
device: &energy1_mqtt
identifiers: "FCB46717AA5C"
name: "ENERGY 1"
- name: "ENERGY 1 Current L1"
unique_id: "FCB46717AA5C_IAVE1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ value_json.IAVE1 }}"
unit_of_measurement: "A"
device_class: current
state_class: measurement
device: *energy1_mqtt
- name: "ENERGY 1 Energy Import"
unique_id: "FCB46717AA5C_EAI1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ (value_json.EAI1 | float / 1000)}}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
device: *energy1_mqtt
- name: "ENERGY 1 Reactive Energy Import"
unique_id: "FCB46717AA5C_ERI1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ (value_json.ERI1 | float / 1000)}}"
unit_of_measurement: "kvarh"
device_class: reactive_energy
state_class: total_increasing
device: *energy1_mqtt
- name: "ENERGY 1 Energy Export"
unique_id: "FCB46717AA5C_EAE1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ (value_json.EAE1 | float / 1000)}}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
device: *energy1_mqtt
- name: "ENERGY 1 Reactive Energy Export"
unique_id: "FCB46717AA5C_ERE1"
state_topic: "fandf/FCB46717AA5C/state"
value_template: "{{ (value_json.ERE1 | float / 1000)}}"
unit_of_measurement: "kvarh"
device_class: reactive_energy
state_class: total_increasing
device: *energy1_mqtt
Sprawdzenie poprawności konfiguracji i ponowne uruchomienie Home Assistanta
Po zapisaniu pliku MQTT_fox_energy-1.yaml oraz dodaniu go do configuration.yaml konieczne jest sprawdzenie, czy cała konfiguracja jest poprawna składniowo. Ten krok pozwala uniknąć sytuacji, w której błąd w pliku YAML uniemożliwi uruchomienie Home Assistanta. Wchodzimy w Ustawienia, następnie Narzędzia deweloperskie, zakładka YAML. Tam wybieramy opcję Sprawdź poprawność konfiguracji. Jeżeli system nie zgłosi błędów, wykonujemy restart, aby Home Assistant wczytał nowe encje MQTT. Jest to moment, w którym Home Assistant po raz pierwszy subskrybuje zdefiniowane tematy MQTT i przypisuje je do utworzonych encji. 
Weryfikacja encji MQTT i gotowość do automatyzacji
Po ponownym uruchomieniu Home Assistanta nowe parametry powinny pojawić się jako Encje przypisane do urządzenia FOX ENERGY‑1. Każda z nich odpowiada jednemu konkretnemu odczytowi, np. napięciu, prądowi, energii czynnej lub biernej. Klikając w poszczególne encje można:
- sprawdzić ich aktualne wartości,
- zmienić sposób prezentacji danych,
- zweryfikować jednostki i klasy sensorów,
- wykorzystać je w automatyzacjach, scenach lub skryptach.
Od tego momentu dane publikowane przez urządzenie FOX po MQTT są pełnoprawną częścią systemu Home Assistant i mogą być łączone z innymi urządzeniami, warunkami czasowymi lub zdarzeniami w instalacji smart home. Jeżeli encje aktualizują się poprawnie i reagują na zmiany w czasie rzeczywistym, oznacza to, że integracja MQTT została wykonana prawidłowo. System jest gotowy do dalszej rozbudowy i tworzenia automatyki. 
Kiedy wybrać MQTT, a kiedy REST API w instalacji smart home
Wybór pomiędzy MQTT a REST API nie jest kwestią „lepszy-gorszy”, lecz dopasowania mechanizmu komunikacji do konkretnego zastosowania. W praktycznych instalacjach smart home oba rozwiązania często się uzupełniają, a nie wykluczają.
Kiedy lepszym wyborem jest MQTT
MQTT, ze względu na swoją szybkość i komunikację zdarzeniową, najlepiej sprawdza się tam, gdzie system powinien reagować natychmiast na zmianę stanu urządzenia. Dotyczy to w szczególności:
- odczytu czujników,
- sterowania przekaźnikami,
- sterowania ściemniaczami,
- sterowania roletami i innymi elementami wykonawczymi.
MQTT nie wymaga cyklicznego odpytywania urządzeń o ich stan. Informacja pojawia się w systemie dokładnie w momencie zdarzenia, co przekłada się na szybszą reakcję automatyki oraz mniejsze obciążenie sieci lokalnej. Z tego względu MQTT jest również najbardziej naturalnym wyborem przy integracji urządzeń FOX z Home Assistantem. Konfiguracja jest prostsza, bardziej czytelna i lepiej dopasowana do logiki pracy Home Assistanta oraz automatyzacji czasu rzeczywistego.
Kiedy REST API będzie rozwiązaniem lepszym i prostszym
REST API sprawdzi się lepiej w sytuacjach, w których urządzenia smart mają współpracować z:
- własnymi skryptami,
- aplikacjami webowymi,
- systemami zewnętrznymi, które nie obsługują MQTT.
REST API jest zrozumiałe dla praktycznie każdej strony internetowej i większości narzędzi IT, co upraszcza integrację. Dodatkową zaletą jest brak konieczności stosowania brokera, ponieważ komunikacja odbywa się bezpośrednio pomiędzy klientem a urządzeniem. Przykładem zastosowania, w którym REST API będzie rozwiązaniem prostszym i wystarczającym, jest połączenie z arkuszem kalkulacyjnym lub skryptem, który co pewien czas pobiera informacje o zużyciu energii, np. do raportów lub analizy danych.
MQTT czy REST API? Najlepsze efekty daje model hybrydowy
Nie ma potrzeby wybierania wyłącznie jednego sposobu komunikacji. W nowoczesnej instalacji smart home najlepiej sprawdza się model hybrydowy, w którym MQTT i REST API pełnią różne, uzupełniające się role. Wsparcie dla obu mechanizmów pozwala:
- stosować MQTT tam, gdzie liczy się szybka reakcja i komunikacja zdarzeniowa,
- wykorzystywać REST API do odczytu danych na żądanie, raportów, analizy lub integracji z systemami zewnętrznymi.
W praktyce oznacza to większą elastyczność systemu oraz możliwość dopasowania sposobu komunikacji do konkretnej funkcji, zamiast wymuszania jednego rozwiązania do wszystkich zastosowań. Poniższy przykład pokazuje, że jedno urządzenie może jednocześnie udostępniać swoje dane:
- do Home Assistanta przez MQTT,
- do innych systemów lub skryptów przez REST API.
Takie podejście pozwala budować instalację odporną na zmiany, łatwą w rozbudowie i niezależną od jednego sposobu integracji. 
Najczęściej popełniane błędy przy REST API i MQTT i jak ich unikać
Integracja smart home oparta o REST API i MQTT daje dużą elastyczność, ale jednocześnie otwiera pole do typowych błędów konfiguracyjnych. Poniżej omówione zostały problemy, które najczęściej pojawiają się u osób rozpoczynających pracę z integracjami oraz sposoby ich uniknięcia.
Zbyt częste odpytywanie urządzeń przy użyciu REST API (polling)
Jednym z najczęściej popełnianych błędów jest zbyt częste wysyłanie zapytań REST API w celu odczytu stanu urządzeń. Może to prowadzić do:
- nadmiernego obciążenia sieci lokalnej,
- zwiększonego zużycia zasobów serwera,
- wzrostu poboru energii i temperatury pracy urządzeń.
REST API nie zostało zaprojektowane do szybkiej, ciągłej wymiany danych ani reakcji w czasie rzeczywistym. Zapytania należy wysyłać tylko tak często, jak jest to faktycznie potrzebne. Wiele parametrów, takich jak zużycie energii czy napięcie zasilania, zmienia się powoli i w zupełności wystarczy ich odczyt co kilka minut, a czasem nawet co kilkadziesiąt minut. Jeżeli automatyka wymaga natychmiastowej reakcji, właściwym wyborem jest MQTT.
Błędy w interpretacji danych JSON i typów danych w Home Assistant
Zarówno REST API, jak i MQTT bardzo często wykorzystują format JSON do przesyłania danych. Typowym źródłem problemów jest założenie, że wartości liczbowe otrzymywane w JSON są automatycznie traktowane jako liczby. Choć format JSON obsługuje typy liczbowe, w praktyce Home Assistant często interpretuje otrzymane wartości jako tekst. Jeżeli wykonujemy na nich operacje matematyczne, konieczne jest jawne rzutowanie typu danych, np. przy użyciu filtra | float w szablonie. Przykład poprawnego zapisu: value_template: „{{ value_json.reactive_energy | float / 1000 }}” Brak konwersji typu może prowadzić do błędnych obliczeń, problemów z wykresami lub nieprawidłowego działania automatyzacji.
Brak konfiguracji LWT (Last Will and Testament) w MQTT
MQTT oferuje mechanizm Last Will and Testament (LWT), który informuje system o utracie połączenia z urządzeniem, np. w wyniku zaniku zasilania lub awarii sieci. Jeżeli LWT nie jest poprawnie skonfigurowany:
- broker nie poinformuje Home Assistanta o tym, że urządzenie jest offline,
- Home Assistant może błędnie zakładać, że urządzenie nadal działa poprawnie.
Prawidłowo skonfigurowany LWT pozwala automatyce reagować na awarie, a użytkownikowi daje rzeczywistą informację o stanie urządzeń w systemie.
Stosowanie dynamicznych adresów IP w instalacji smart home
Konfiguracja sieciowa jest kluczowym elementem niezawodnej instalacji smart home. Korzystanie z dynamicznych adresów IP przydzielanych przez DHCP może prowadzić do problemów po:
- zaniku zasilania,
- restarcie routera,
- odnowieniu dzierżawy DHCP.
Zmiana adresu IP urządzenia powoduje przerwanie komunikacji opartej na REST API. Z tego względu wszystkie urządzenia uczestniczące w takiej komunikacji powinny mieć przypisane stałe adresy IP, najlepiej poprzez rezerwację adresów MAC w routerze.
W przypadku MQTT, aby system działał stabilnie nie ma konieczności nadawania stałych adresów IP wszystkim urządzeniom typu smart. Wystarczy, aby stały adres miał broker, ewentualnie także serwer Home Assistant. Warto jednak podkreślić, że ustawienie stałych adresów IP dla wszystkich urządzeń nie jest błędem. Wręcz przeciwnie, może ułatwić zarządzanie siecią i utrzymanie porządku, szczególnie gdy z czasem system staje się coraz bardziej rozbudowany.
Choć kwestie sieciowe, takie jak stałe adresy IP, wydają się detalem konfiguracyjnym, w praktyce decydują o tym, czy automatyka będzie działała stabilnie i przewidywalnie. Teraz, mając solidnie przygotowane podstawy komunikacji, możemy przejść do ważniejszego pytania, czyli w jaki sposób system ma reagować na zmiany w instalacji.
Czego MQTT uczy o automatyce Smart Home i gdzie naprawdę pokazuje swoją przewagę?
MQTT zmienia sposób myślenia o automatyce smart home, ponieważ opiera się nie na ciągłym pytaniu urządzeń o ich stan, ale na reagowaniu na zdarzenia dokładnie w momencie ich wystąpienia. System nie sprawdza cyklicznie, czy coś się zmieniło, tylko otrzymuje informację wtedy, gdy rzeczywiście pojawi się zmiana.
W praktyce oznacza to szybszą reakcję automatyki, mniejsze obciążenie sieci lokalnej oraz łatwiejszą rozbudowę instalacji w przyszłości. MQTT szczególnie dobrze sprawdza się w przypadku czujników, liczników energii oraz elementów wykonawczych, gdzie istotne jest natychmiastowe wykrycie zmiany stanu i szybka reakcja systemu nadrzędnego.
Warto jednak jasno podkreślić, że MQTT nie jest rozwiązaniem uniwersalnym do każdego zastosowania. Sam protokół nie zastępuje logiki systemu nadrzędnego ani nie decyduje o tym, co ma się wydarzyć w instalacji. MQTT dostarcza informacje w odpowiednim momencie, natomiast to Home Assistant, Node-RED, lub inny system automatyki podejmuje decyzje i realizuje konkretne działania.
Najważniejszą zaletą MQTT nie jest sama technologia, lecz zmiana modelu komunikacji. Automatyka przestaje opierać się na okresowym odczycie stanu urządzeń, a zaczyna reagować na realne zdarzenia zachodzące w instalacji. To właśnie ta zmiana powoduje, że w określonych scenariuszach MQTT faktycznie daje przewagę i upraszcza budowę logicznych i responsywnych automatyzacji.
Znając sposób działania MQTT, łatwiej jest świadomie zdecydować, kiedy warto po niego sięgnąć, a kiedy prostsze mechanizmy komunikacji np. REST API będą w zupełności wystarczające. W kolejnym rozdziale spojrzymy na REST API i MQTT z perspektywy osoby nietechnicznej, porównując oba podejścia możliwie najprostszym i najbardziej praktycznym językiem.
Czego MQTT uczy o automatyce Smart Home i gdzie naprawdę pokazuje swoją przewagę
MQTT zmienia sposób myślenia o automatyce smart home, ponieważ opiera się nie na ciągłym pytaniu urządzeń o ich stan, ale na reagowaniu na zdarzenia dokładnie w momencie ich wystąpienia. System nie sprawdza cyklicznie, czy coś się zmieniło, tylko otrzymuje informację wtedy, gdy rzeczywiście pojawi się zmiana.
W praktyce oznacza to szybszą reakcję automatyki, mniejsze obciążenie sieci lokalnej oraz łatwiejszą rozbudowę instalacji w przyszłości. MQTT szczególnie dobrze sprawdza się w przypadku czujników, liczników energii oraz elementów wykonawczych, gdzie istotne jest natychmiastowe wykrycie zmiany stanu i szybka reakcja systemu nadrzędnego.
Warto jednak jasno podkreślić, że MQTT nie jest rozwiązaniem uniwersalnym do każdego zastosowania. Sam protokół nie zastępuje logiki systemu nadrzędnego ani nie decyduje o tym, co ma się wydarzyć w instalacji. MQTT dostarcza informacje w odpowiednim momencie, natomiast to Home Assistant lub inny system automatyki podejmuje decyzje i realizuje konkretne działania.
Najważniejszą zaletą MQTT nie jest sama technologia, lecz zmiana modelu komunikacji. Automatyka przestaje opierać się na okresowym odczycie stanu urządzeń, a zaczyna reagować na realne zdarzenia zachodzące w instalacji. To właśnie ta zmiana powoduje, że w określonych scenariuszach MQTT faktycznie daje przewagę i upraszcza budowę logicznych i responsywnych automatyzacji.
Znając sposób działania MQTT, łatwiej jest świadomie zdecydować, kiedy warto po niego sięgnąć, a kiedy prostsze mechanizmy komunikacji będą w zupełności wystarczające. W kolejnym rozdziale spojrzymy na REST API i MQTT z perspektywy osoby nietechnicznej, porównując oba podejścia możliwie najprostszym i najbardziej praktycznym językiem.
Jak w prostych słowach wytłumaczyć REST API i MQTT osobie nietechnicznej?
Jeżeli nie jesteś informatykiem, REST API i MQTT mogą brzmieć jak skomplikowane hasła zarezerwowane dla programistów. W praktyce jednak nie chodzi tu o technologię, tylko o bardzo prostą rzecz, czyli o to, ile swobody masz w swoim Smart Home i od kogo jesteś zależny.
Większość urządzeń smart działa poprawnie zaraz po wyjęciu z pudełka, ale tylko w granicach wyznaczonych przez producenta i jego aplikację. Możesz włączać, wyłączać, czasem ustawić harmonogram albo prostą automatykę. I na tym zwykle koniec. Jeżeli producent nie przewidział jakiejś funkcji, to po prostu jej nie ma, nawet jeśli sprzęt technicznie byłby w stanie ją zrealizować.
Sytuacja zmienia się w momencie, gdy wybierasz urządzenia, które potrafią komunikować się przez REST API lub MQTT np. FOX. Wtedy zyskujesz coś znacznie ważniejszego niż kolejną funkcję w aplikacji. Zyskujesz niezależność.
Niezależność oznacza, że nie jesteś już ograniczony do jednego producenta, jednej aplikacji i jednego sposobu myślenia o instalacji. Możesz łączyć urządzenia różnych firm w jeden spójny system i sprawić, żeby współpracowały ze sobą w sposób, którego producent żadnego z nich nie przewidział. Monitor energii jednej firmy może wpływać na działanie przekaźnika innej, a czujnik z zupełnie innego systemu może decydować o tym, co wydarzy się w całym domu.
Dzięki REST API i MQTT możliwe staje się tworzenie zaawansowanych logik, które nie są dostępne w gotowych aplikacjach. Nie dlatego, że aplikacje są złe, ale dlatego, że producent nie jest w stanie przewidzieć wszystkich scenariuszy i potrzeb każdego użytkownika. Otwarta komunikacja pozwala te scenariusze zbudować samodzielnie albo z pomocą instalatora.
Z punktu widzenia osoby nietechnicznej najważniejsze jest jedno. Mając do dyspozycji urządzenia obsługujące REST API lub MQTT, Twoje Smart Home przestaje być zamkniętym produktem, a zaczyna być systemem, który możesz rozwijać wraz z potrzebami i budżetem.
W praktyce oznacza to, że ograniczeniem nie jest już aplikacja producenta. Ograniczeniem staje się jedynie budżet oraz wyobraźnia, Twoja, czyli czego chcesz od instalacji, oraz instalatora, czyli jak to technicznie zrealizować w sposób bezpieczny i niezawodny.
I właśnie dlatego REST API i MQTT nie są celem samym w sobie. To narzędzia, które pozwalają wyjść poza gotowe schematy i zbudować instalację Smart Home dopasowaną do rzeczywistych potrzeb, a nie tylko do listy funkcji w aplikacji.
A teraz mała tajemnica na koniec, jeśli instalator elektryk zadba o poprawne podłączenie urządzeń i wybierze sprzęt, który potrafi komunikować się przez różne standardy, takie jak: MQTT, REST API czy Modbus RS-485, to dalszą integrację, rozbudowę logiki i automatyki może wykonać już ktoś z kompetencjami ze świata IT, bez potrzeby ingerencji w instalację elektryczną.
Poznajmy się autorami artykułu są:
Marcin Osztynowicz – jestem studentem kierunku Automatyka i Robotyka na Politechnice Poznańskiej. W praktyce i w trakcie studiów koncentruje się na szeroko pojętej automatyce przemysłowej, obejmującej sterowniki programowalne PLC, systemy wizyjne oraz rozwiązania z zakresu robotyki. Na co dzień pracuje jako automatyk w branży Water Treatment, gdzie zajmuje się projektowaniem, uruchamianiem i utrzymaniem systemów automatyki procesowej. Łączę wiedzę akademicką z praktyką przemysłową, skupiając się na niezawodności, funkcjonalności i bezpieczeństwie systemów sterowania.
Piotr Bibik – od ponad 30 lat moje życie zawodowe kręci się wokół elektrotechniki. Nie jestem teoretykiem – moją wiedzę budowałem przez ćwierć wieku pracy u jednego z największych dystrybutorów materiałów elektrycznych w Polsce oraz podczas tysięcy godzin spędzonych na instalacjach.
Wierzę, że o trudnych sprawach można mówić prosto – tak, aby każdy inwestor i instalator mógł podjąć decyzję, która zapewni bezpieczeństwo jego rodzinie i urządzeniom.
W czym mogę Ci pomóc?
-
Dla Inwestorów: Prowadzę konsultacje techniczne, podczas których sprawdzam projekty i podpowiadam rozwiązania, które realnie działają.
-
Dla Instalatorów i Projektantów: Dzielę się doświadczeniem z zakresu nowoczesnej automatyki i systemów zasilania, pomagając unikać kosztownych błędów montażowych.
-
Dla Producentów: Pomagam spojrzeć na produkty oczami praktyka i rzetelnie przekazać ich wartość rynkowi.
Moja zasada jest prosta: instalacja ma być bezpieczna, nowoczesna i zrozumiała dla użytkownika. Jeśli szukasz rzetelnego doradztwa lub chcesz uniknąć awarii, o których piszę na tym blogu – zapraszam do kontaktu.






