Protokół Modbus w integracji pomp ciepła i falowników – kompletny przewodnik 2025

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.

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.
Skalowalność protokołu sprawia, że możesz rozbudować instalację o kolejny falownik lub drugą pompę bez zmiany oprogramowania. Wystarczy dodać adres i wpisać go do konwertera. Czas odczytu 100 rejestrów to średnio 1,8 s przy prędkości 9600 baud. Bezpieczeństwo wymaga uwagi. Falownik Modbus nie szyfruje ramek. Dlatego sieć sterowania powinna być odizolowana VLAN-em lub zabezpieczona VPN. Producent zaleca również stosowanie konwerterów galwanicznych przy długich liniach RS-485. To minimalizuje ryzyko przepięć i błędów CRC.
„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.
Zastanawiasz się, który konwerter wybrać? Spójrz na tabelę:
ModelInterfejsCena netto
WaveshareRS-485 → Wi-Fi80 zł
Elfin-EW11RS-485 → TCP299 zł
PUSR DR301RS-485 → Wi-Fi180 zł
Toshiba GT01RS-485 → TCP450 zł
Ceny pochodzą z hurtowni elektronicznej z dnia 2025-02-15. Wysyłka kurierska 15 zł netto. Najczęstszy błąd to brak terminacji. Szyna bez 120 Ω na końcach generuje odbicia sygnału i błędy CRC w 30 % przypadków. Brak terminacji może uniemożliwić odczyt rejestrów mocy z falownika. Zanim uruchomisz system, zmierz impedancję między liniami A i B – powinna wynosić 60 Ω ± 5 %.
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.

KONWERTERY MODBUS 2025
Koszt konwerterów Modbus 2025 – ceny netto w PLN

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:
ParametrAdres (hex)Jednostka
Temperatura zasilania0x0000°C × 0,1
Temperatura powrotu0x0001°C × 0,1
Moc czynna PV0x0019W
Tryb pracy0x00200-4
Ustawienie CWU0x0030°C × 0,1
Kod błędu0x00400-65535
Adresy mogą różnić się o 1-2 pozycje w zależności od marki. Zawsze weryfikuj dokumentację. Gotowy kod yaml modbus home assistant dla pompy JNOD JME120HC wygląda tak:
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:
  1. Moc PV > 2 kW → podgrzej CWU do 55 °C. Oszczędność energii do 18 %.
  2. Cena energii < 0,25 zł → uruchom pompę. Dane pobierane z API Tauron co 5 min.
  3. Tryb wakacje → wyłącz obieg grzewczy. Powrót zaplanuj 24 h przed przyjazdem.
Modalność „powinien” oznacza, że musisz dodać warunek `condition` w YAML, aby uniknąć zakleszczeń. Schedulery i tryby wakacyjne działają dzięki integracji `scheduler-card`. Możesz ustawić scenę „wakacje” na 14 dni. Wtedy pompa utrzymuje tylko 15 °C w obiegu. Nie wyłączaj falownika ręcznie podczas ładowania akumulatora – może uszkodzić BMS.
WarunekAkcjaParametr
PV > 2 kWPodgrzej CWU55 °C
Cena < 0,25 złUruchom pompęTryb Auto
Temp. <-5 °CWłącz grzałkę3 kW
Wakacje = ONObieg OFF15 °C
Błąd > 0PowiadomieniePush + e-mail
Cena energii aktualizowana przez Tauron API co 5 min. Klucz API uzyskasz w portalu Tauron DSO.
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)NazwaOpis
01Illegal FunctionNieobsługiwana funkcja
02Illegal AddressBrak rejestru
03Illegal DataBłędna wartość
04Slave FailureUrządzenie odmawia
05AcknowledgeZadanie w toku
06Slave BusySpróbuj później
Kod 0x05 występuje rzadko – tylko w 0,3 % przypadków. Świadczy o długotrwałej operacji zapisu.
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.

Redakcja

Redakcja

Redakcja EcoMoc dostarcza najświeższe informacje z rynku fotowoltaiki i technologii energooszczędnych. Naszą misją jest edukacja w zakresie ekologicznych rozwiązań dla każdego domu. Wspólnie budujemy zieloną przyszłość opartą na darmowej energii ze słońca.

Czy ten artykuł był pomocny?