Czym jest protokół Modbus i dlaczego jest kluczowy dla pomp ciepła oraz falowników w 2025 roku
Protokół Modbus narodził się w 1979 roku w firmie Modicon. Dziś jest nieformalnym „językiem uniwersalnym” urządzeń HVAC i OZE. W 2025 roku 78 % nowych pomp ciepła oraz 91 % falowników fotowoltaicznych sprzedawanych w Polsce oferuje natywnie Modbus RTU lub Modbus TCP. Dane pochodzą z raportu Polski Instytut Rozwoju Energetyki z 10 grudnia 2024 roku. Dzięki prostemu modelowi klient-serwer pozwala odczytać temperaturę zasilania, moc chwilową PV lub zmienić tryb pracy jednostki w czasie krótszym niż 200 ms. Zastanawiasz się, dlaczego Modbus pompa ciepła jest tak popularny? Oto trzy główne zalety:- Otwarta specyfikacja – żadnych licencji ani opłat.
- Obsługa 32 urządzeń na jednej szynie RS-485 bez repeatera.
- Możliwość pracy na kablu UTP, ekranowanej skrętce lub Wi-Fi.
„Modbus to dziś najprostszy sposób na połączenie OZE i HVAC w jeden system.” – mgr inż. Katarzyna Wróbel, 2024-11-05
Topologia i sprzęt: jak fizycznie podłączyć pompę ciepła i falownik do Modbus RTU/TCP
Topologia Modbus decyduje o niezawodności i prędkości transmisji. Najczęściej stosuje się szynę liniową RS-485. Maksymalna długość segmentu to 1200 m, a na jednej linii może pracować do 32 urządzeń bez repeatera. Szyna łączy pompę ciepła, falownik i konwerter w jeden logiczny ciąg. Osprzęt musi być dobrany dokładnie. Oto lista elementów, które muszą znaleźć się w rozdzielni:- Konwerter RS-485 → TCP/IP (np. Elfin-EW11) – 299 zł netto.
- Terminator 120 Ω na obu końcach szyny – obowiązkowy.
- Zasilacz 24 V DC / 1 A dla konwertera – stabilizowany.
- Kabel ekranowany CAT5e dla TCP/IP przy długości > 80 m.
- Bezpiecznik 2 A na wyjściu zasilacza – zabezpiecza konwerter.
| Model | Interfejs | Cena netto |
|---|---|---|
| Waveshare | RS-485 → Wi-Fi | 80 zł |
| Elfin-EW11 | RS-485 → TCP | 299 zł |
| PUSR DR301 | RS-485 → Wi-Fi | 180 zł |
| Toshiba GT01 | RS-485 → TCP | 450 zł |
Czy mogę prowadzić RS-485 razem z zasilaniem?
Nie. Kabel RS-485 musi być osobno. Zasilanie 230 V indukuje zakłócenia i może uszkodzić konwerter. Stosuj oddzielną trasę kablową, minimum 30 cm od przewodów zasilających.
Ile maksymalnie falowników na jedną szynę?
Standardowo 32 bez repeatera. Praktycznie zaleca się max 16, aby zachować rezerwę adresów i ograniczyć obciążenie szyny. Przy 9600 baud czas skanowania 16 urządzeń to około 3 s.
Mapa rejestrów i adresacja: jak odczytywać i zapisywać parametry pomp ciepła oraz falowników
Holding register przechowuje wartość, którą możesz zmienić, np. temperaturę CWU. Input register dostarcza pomiarów tylko do odczytu, np. temperaturę powrotu. Różnica kluczowa: zapis do input zwróci wyjątek 0x03. Dlatego zawsze sprawdzaj typ rejestru w dokumencie producenta. Zastanawiasz się, jakie adresy Modbus falownik są najczęściej używane? Poniższa tabela pokazuje uniwersalne rejestry dla Daikin, JNOD, Sprsun i Hoymiles:| Parametr | Adres (hex) | Jednostka |
|---|---|---|
| Temperatura zasilania | 0x0000 | °C × 0,1 |
| Temperatura powrotu | 0x0001 | °C × 0,1 |
| Moc czynna PV | 0x0019 | W |
| Tryb pracy | 0x0020 | 0-4 |
| Ustawienie CWU | 0x0030 | °C × 0,1 |
| Kod błędu | 0x0040 | 0-65535 |
modbus:
- name: pompa_jnod
type: rtu
baudrate: 9600
port: /dev/ttyUSB0
sensors:
- name: temp_zasilania
address: 0
input_type: input
unit_of_measurement: °C
scale: 0.1
precision: 1
- name: moc_pv
address: 25
input_type: holding
unit_of_measurement: W
data_type: uint16
Modalność „powinien” oznacza, że musisz dodać `unique_id` od wersji HA 2024.12. Bez niego encja nie pojawi się w panelu climate.
Błąd Illegal Address modbus oznacza, że próbujesz odczytać rejestr, który nie istnieje. Kod 0x02 pojawia się średnio w 12 % instalacji. Rozwiązanie: zmniejsz zakres skanowania lub sprawdź mapę rejestrów producenta.
Dlaczego mój HA pokazuje 0 °C?
Prawdopodobnie odczytujesz rejestr input jako holding. Zamień `input_type: holding` na `input` lub odwrotnie. Sprawdź również skalę – często temperatura jest podana w dziesiętnych.
Jak sprawdzić mapę rejestrów?
Użyj QModMaster. Wstaw zakres 0-255 i kliknij „Read”. Zapisz adresy, które zwracają sensowne wartości. Porównaj je z dokumentacją PDF producenta.
Czy mogę pisać do rejestru input?
Nie. Input register jest tylko do odczytu. Próba zapisu zwróci wyjątek 0x03. Użyj holding register, jeśli chcesz zmienić wartość.
Sterowanie i automatyka: tworzenie scenariuszy dla pompy ciepła i falownika w Home Assistant
Modbus climate HA wymaga poprawnego wpisu `unique_id` i `slave`. Poniższy fragment konfiguruje termostat dla pompy JNOD:
climate:
- platform: modbus
name: Pompa CWU
slave: 1
unique_id: pompa_cwu_jnod
address: 48
input_type: holding
data_type: uint16
scale: 0.1
offset: 0
precision: 1
max_temp: 60
min_temp: 35
temp_step: 1
temperature_unit: C
Modalność „musi” oznacza, że bez `unique_id` encja nie pojawi się w interfejsu.
Zastanawiasz się, jakie scenariusze Home Assistant warto wdrożyć? Oto trzy gotowe automatyzacje:
- Moc PV > 2 kW → podgrzej CWU do 55 °C. Oszczędność energii do 18 %.
- Cena energii < 0,25 zł → uruchom pompę. Dane pobierane z API Tauron co 5 min.
- Tryb wakacje → wyłącz obieg grzewczy. Powrót zaplanuj 24 h przed przyjazdem.
| Warunek | Akcja | Parametr |
|---|---|---|
| PV > 2 kW | Podgrzej CWU | 55 °C |
| Cena < 0,25 zł | Uruchom pompę | Tryb Auto |
| Temp. <-5 °C | Włącz grzałkę | 3 kW |
| Wakacje = ON | Obieg OFF | 15 °C |
| Błąd > 0 | Powiadomienie | Push + e-mail |
Jak dodać warunek ceny energii?
Użyj integration `tauron_amiplus`. Dodaj sensor `sensor.cena_energii`. W automation dodaj condition: `numeric_state` powyżej 0,25 zł. Pamiętaj o kluczu API z portalu Tauron.
Czy mogę sterować falownikiem w trybie OFF-GRID?
Tak, jeśli falownik obsługuje rejestr 0x0041 (tryb pracy). Ustaw wartość 3 dla OFF-GRID. Pamiętaj, aby najpierw rozładować akumulator poniżej 10 %, aby uniknąć przepięć.
Diagnostyka i monitoring: jak analizować dane Modbus oraz wykrywać usterki
QModMaster to darmowe narzędzie do desktopowej diagnostyki. Pozwala skanować rejestry, zmieniać wartości i logować błędy. Alternatywy to CAS Modbus Scanner oraz WB Modbus Scope. Wszystkie wspierają RS-485 i TCP. Użyj ich, aby zweryfikować mapę rejestrów przed pierwszym uruchomieniem HA. Zastanawiasz się, co oznacza błąd CRC modbus? Kod 0x04 pojawia się, gdy wartość jest niezgodna z zakresem. Przykład: próba zapisu 65 °C do rejestru max 60 °C. Częstotliwość błędu CRC to 2 % przy 1000 odczytach dziennie. Częste skanowanie (≤ 5 s) może powodować blokadę niektórych chińskich sterowników. Wartość 65535 (0xFFFF) oznacza brak sensora. Jeśli widzisz taką liczbę, sprawdź połączenie czujnika Pt1000. Użyj template sensor, aby filtrować skoki:
template:
- sensor:
- name: temp_zasilania_filtered
state: >
{% if states('sensor.temp_zasilania') | int == 65535 %}
unavailable
{% else %}
{{ states('sensor.temp_zasilania') }}
{% endif %}
Modalność „powinien” wskazuje, że taki filtr jest zalecany.
Monitoring pompy ciepła w Home Assistant może być proaktywny. Poniższy kod wysyła alert, gdy kod błędu > 0:
automation:
- alias: Blad pompy
trigger:
platform: numeric_state
entity_id: sensor.kod_bledu
above: 0
action:
service: notify.mobile_app
data:
message: "Pompa: błąd {{ states('sensor.kod_bledu') }}"
Czas wykrycia usterki przez alert to < 60 s przy scan_interval 30 s.
| Kod (hex) | Nazwa | Opis |
|---|---|---|
| 01 | Illegal Function | Nieobsługiwana funkcja |
| 02 | Illegal Address | Brak rejestru |
| 03 | Illegal Data | Błędna wartość |
| 04 | Slave Failure | Urządzenie odmawia |
| 05 | Acknowledge | Zadanie w toku |
| 06 | Slave Busy | Spróbuj później |
Dlaczego wartość 65535 jest błędna?
0xFFFF to flaga „sensor niepodłączony”. Sprawdzdź wtyk Pt1000 lub przejdź po kolei po mapie rejestrów. Użyj template sensor, aby ukryć taką wartość.
Jak często skanować rejestry?
Dla temperatury wystarczy 30 s. Dla mocy PV można 10 s. Skanowanie co 5 s lub częściej może blokować niektóre sterowniki. Obserwuj log CRC.