Autor: Ekspert Smart Home | Data publikacji: 7 maja 2026
- Czym jest Modbus i dlaczego warto go używać w Home Assistant?
- Wymagania sprzętowe i oprogramowanie
- Krok 1 – instalacja i konfiguracja Modbus w Home Assistant
- 1.1 Podstawowa integracja Modbus w pliku configuration.yaml
- 1.2 Modbus przez Node-RED (dla zaawansowanych przepływów)
- Krok 2 – programowanie PLC dla sterowania roletami (Codesys)
- Krok 3 – tworzenie cover entity dla rolety (Cover Time Based Synced)
- Krok 4 – zaawansowane automatyzacje i sceny
- Typowe problemy i rozwiązania
- Alternatywy dla Modbus
W erze inteligentnych domów Modbus stał się jednym z najbardziej niezawodnych protokołów do integracji urządzeń przemysłowych i automatyki z systemami takimi jak Home Assistant (HA). Jeśli chcesz sterować roletami za pomocą sterownika PLC, integrować silniki rolek czy inne urządzenia wyposażone w interfejs Modbus TCP/RTU, ten poradnik jest dla Ciebie. Przeprowadzimy Cię krok po kroku przez konfigurację – od podstawowej instalacji po zaawansowane automatyzacje i sceny.
Artykuł opiera się na praktycznych przykładach z forów społeczności HA, dokumentacji oficjalnej oraz polskich blogów specjalizujących się w automatyce domowej. Dowiesz się, jak uniknąć typowych błędów, zabezpieczyć system i zoptymalizować sterowanie roletami pod kątem czasu podróży, sun trackingu oraz integracji z Node-RED.
Czym jest Modbus i dlaczego warto go używać w Home Assistant?
Modbus to otwarty protokół komunikacyjny stworzony w 1979 roku przez Modicon (obecnie Schneider Electric). W smart home służy do odczytu/zapisu rejestrów (coils, discrete inputs, holding/input registers) w urządzeniach jak sterowniki PLC, inwertery, silniki czy przekaźniki.
Najważniejsze plusy w kontekście Home Assistant są następujące:
- lokalna komunikacja – bez chmury i z niską latencją;
- szerokie wsparcie – współpraca z PLC (np. Codesys, Siemens, WAGO) oraz tanimi modułami (np. ESP32 z Modbusem);
- sterowanie roletami – idealne dla silników z krańcówkami, bez konieczności inwestowania w drogie moduły Zigbee/Z‑Wave;
- skalowalność – obsługa wielu urządzeń na jednej magistrali RS485 lub po Ethernet (TCP).
Integracja Modbus w Home Assistant jest natywna i można ją skonfigurować w configuration.yaml lub przez interfejs użytkownika.
Wymagania sprzętowe i oprogramowanie
Zanim zaczniesz, przygotuj następujące elementy:
- serwer HA – Raspberry Pi 4/5, NUC, maszyna wirtualna lub PLC z Linuxem (np. z Codesys Runtime);
- sterownik PLC – np. WAGO, Siemens, Delta lub symulator Codesys;
- urządzenia Modbus – silnik rolety z Modbusem lub przekaźniki NC/NO podłączone do PLC;
- oprogramowanie – Home Assistant (najnowsza wersja), dodatek Node-RED do wizualnych przepływów, Codesys Development System do programowania PLC;
- sieć – Modbus TCP (Ethernet) lub RTU (RS485 z konwerterem).
Koszt startowy: ~200–500 zł (PLC + moduł rolety).
Krok 1 – instalacja i konfiguracja Modbus w Home Assistant
1.1 Podstawowa integracja Modbus w pliku configuration.yaml
Edytuj plik configuration.yaml i dodaj przykładową konfigurację połączenia oraz encji dla rolety:
modbus:
- type: tcp
host: 192.168.1.100 # IP twojego PLC
port: 502
timeout: 5
close_comm_on_error: false
# Definicja sensora i switchy dla rolety
sensors:
- name: Roleta_Poziom
slave: 1
address: 40001 # Holding register dla pozycji (0-100%)
input_type: holding
count: 1
data_type: int16
precision: 0
unit_of_measurement: "%"
switches:
- name: Roleta_Gora
slave: 1
address: 00001 # Coil 1: UP
command_on: true
command_off: false
- name: Roleta_Dol
slave: 1
address: 00002 # Coil 2: DOWN
Po zapisaniu zmian zrestartuj HA (Developer Tools > Restart), a następnie sprawdź w: Ustawienia > Urządzenia i usługi > Modbus.
Uwaga: przed integracją przetestuj rejestry narzędziami takimi jak Modbus Poll/Explorer, aby potwierdzić adresy i typy rejestrów.
1.2 Modbus przez Node-RED (dla zaawansowanych przepływów)
Wykonaj poniższe kroki, aby dodać obsługę Modbus w Node-RED:
- Zainstaluj dodatek Node-RED w Home Assistant.
- W Node-RED przejdź do: Manage Palette > Install i zainstaluj paczkę node-red-contrib-modbus.
- Utwórz przepływ, który zapisze rozkaz do cewki (UP/DOWN) i połączy go z encjami HA.
Przykład: użyj przycisku Inject połączonego z węzłem Modbus Flex Write (slave ID: 1, FC: 5/6/16, adres: 1, wartość: 1 dla komendy UP), a następnie steruj encją HA (np. switch.roleta_gora).
Przykładowy przepływ JSON do importu w Node-RED:
[
{
"id": "roleta_up",
"type": "modbus-flex-write",
"server": "plc_server",
"fc": 5,
"address": 1,
"value": 1
}
]
W konfiguracji serwera wskaż IP PLC (również w przypadku symulatora – sprawdzisz je poleceniem ipconfig lub odpowiednikiem w swoim systemie).
Krok 2 – programowanie PLC dla sterowania roletami (Codesys)
Poniżej znajdziesz skrócony workflow w Codesys (na podstawie polskich tutoriali):
-
Dodaj adapter Ethernet w projekcie Codesys: kliknij prawym przyciskiem myszy na urządzeniu > Add Device > Ethernet.
-
Dodaj Modbus TCP Slave: PPM > Fieldbuses > Modbus TCP Slave Device.
-
Mapowanie rejestrów dla rolety (przykład):
Rejestr Typ Funkcja 00001 Coil UP (włączenie) 00002 Coil DOWN (włączenie) 40001 Holding Pozycja % (RO) 40002 Holding Czas podróży (s) -
Przykładowy kod ST (Structured Text) do obsługi kierunków i blokad:
PROGRAM Roleta_Control
VAR
UP_cmd AT %QX0.0 : BOOL; // Modbus Coil 1
DOWN_cmd AT %QX0.1 : BOOL; // Coil 2
Position AT %QW40001 : INT; // 0-100%
Moving : BOOL;
END_VAR
IF UP_cmd AND NOT Moving THEN
// Start UP, timer 25s (czas podróży)
Position := Position + 1; // Symulacja
Moving := TRUE; // Po czasie: stop i reset
ELSIF DOWN_cmd AND NOT Moving THEN
Position := Position - 1;
Moving := TRUE;
END_IF
// Zabezpieczenie: blokada obu kierunków
IF UP_cmd AND DOWN_cmd THEN
UP_cmd := FALSE;
DOWN_cmd := FALSE;
END_IF;
- Integracja z HA – w Node-RED dodaj konfigurację encji HA (np.
button.roleta_gora) i powiąż ją z zapisami do cewek.
Krok 3 – tworzenie cover entity dla rolety (Cover Time Based Synced)
Aby uzyskać natywne sterowanie (otwórz/zamknij/stop/pozycja), skorzystaj z HACS i komponentu cover_time_based_synced:
- Zainstaluj w HACS integrację cover_time_based_synced.
- Dodaj helpery (input_boolean), które będą sterować komendami UP/DOWN:
input_boolean:
roleta_up:
name: "Roleta UP"
roleta_down:
name: "Roleta DOWN"
- Skonfiguruj cover w
configuration.yamlwskazując czasy ruchu i encje helperów:
cover:
- platform: cover_time_based_synced
devices:
salon_roleta:
name: "Roleta Salon"
travelling_time_up: 26 # sekundy na pełne otwarcie
travelling_time_down: 24 # sekundy na pełne zamknięcie
open_switch_entity_id: input_boolean.roleta_up
close_switch_entity_id: input_boolean.roleta_down
send_stop_at_ends: false
- Automatyzacja – połącz helpery z przełącznikami Modbus (UP/DOWN) przez automatyzacje HA lub przepływy w Node-RED.
Krok 4 – zaawansowane automatyzacje i sceny
Śledzenie słońca
Przykładowa automatyzacja YAML, która domyka rolety 30 minut przed zachodem słońca:
automation:
- alias: "Rolety na zachód słońca"
trigger:
- platform: sun
event: sunset
offset: "-00:30:00"
action:
- service: cover.close_cover
target:
entity_id: cover.salon_roleta
Zabezpieczenia
Amperometria: odczytaj prąd z rejestru Modbus (np. holding 40003) i zatrzymaj napęd po wykryciu wzrostu ponad próg, aby chronić mechanikę.
Blokada kierunków: wymuś logikę w PLC lub w Node-RED (np. if up then down=off), by uniknąć jednoczesnej pracy obu kierunków.
Sceny
Prosty przykład sceny otwierającej rolety rano:
scene:
- name: Poranne rolety
entities:
cover.salon_roleta: open
Typowe problemy i rozwiązania
Najczęstsze trudności i szybkie propozycje naprawy:
| Problem | Rozwiązanie |
|---|---|
| Brak połączenia | Sprawdź firewall, ping do IP PLC oraz czy port 502 jest otwarty. |
| Rejestry nieodczytywane | Zweryfikuj adresy w Modbus Poll/Explorer; Holding=4xxxx, Coils=0xxxx. |
| Roleta nie zatrzymuje | Skalibruj czasy travelling_time_* i dodaj timer/limit w PLC. |
| Wydajność | Dodaj niewielkie opóźnienie odczytów (np. delay: 100ms) i retry przy błędach. |
Bezpieczeństwo: trzymaj Modbus w odseparowanej sieci (VLAN), zabezpiecz dostęp do PLC hasłem i nie wystawiaj urządzeń na WAN.
Alternatywy dla Modbus
Jeśli szukasz prostszej lub innej ścieżki integracji, rozważ:
- Shelly 2.5PM – Wi‑Fi, natywna integracja HA, wbudowany pomiar prądu;
- Zigbee/Z‑Wave – np. Tuya, Aqara; proste wdrożenie, choć zwykle wyższy koszt jednostkowy;
- ESPHome – własny gateway Modbus na ESP32 z pełną kontrolą konfiguracji.
Źródła i dalsza lektura
Polecane materiały do pogłębienia tematu:
- Oficjalna dokumentacja Home Assistant – Modbus, https://www.home-assistant.io/integrations/modbus/;
- Polski tutorial PLC + HA (Controlbyte), https://www.controlbyte.pl/blog/jak-sterowac-roletami-w-domu-sterownikiem-plc-i-home-assistant/;
- Forum Home Assistant: sterowanie roletami przez Modbus, https://www.smartnydom.pl/forum/main-category-home-assistant/ha-sterowanie-silnikiem-rolet-przez-modbus/.
Masz pytania? Zostaw komentarz i zasubskrybuj, aby nie przegapić kolejnych poradników smart home.