No i w 2 pozostałych plikach oprócz tej ogólnej specyfikacji masz kompletne mapy rejestrów, nie są jakoś szczególnie dobrze udokumentowane, ale przez domniemanie można przyjąć, że temperatury są obsługiwane jak to opisane w poście @RobinI30. Zapewne jeden plik dotyczy starszych wersji sterownika, a drugi nowszych (ten bez daty w tytule albo wyprodukowanych przed wrześniem 2018 albo z firmware w wersji starszej niż 09.2018 - jeśli odczytasz wersję firmware, to można się zastanowić czy zawiera ona jakąś datę - pewnie tak).
Jeśli chodzi o tylko odczyt to interesują Cię rejestry od 1 do 38 (czyli adresowane od 0 do 37 bo jest różnica o 1 między numerem rejestru a jego adresem), moim zdaniem masz tam to co najważniejsze wraz ze stanem pieca i kodami błędów.
Niektóre trzeba traktować jako wartości dziesiętne, w niektórych czytać pojedyncze bity, więc przepuść to przez AI to wygeneruje Ci YAMLa. (naprawdę nikomu się nie będzie tego chciało robić na piechotę za Ciebie) jeśli chcesz żeby to sprawdził człowiek to ogranicz się do góra 3-4 rożnych technicznie rejestrów, resztę sobie zrobisz analogicznie (świetne przykłady konfiguracji są w starych wątkach).
Warte odczytu są też rejestry 40000-40065 (dwa ostatnie z tego zakresu to przebieg zapalarki, a we wcześniejszych masz nazwę producenta, model (co jest równie ciekawe co ustawiono) i wersję firmware.
Z takimi uprawnieniami dla modbus jaki masz ustawione w sterowniku (co widać na jakimś zdjęciu) możesz ingerować w ustawienia instalatorskie, więc jeśli nie wiesz co robisz, to nie zapisuj nic w rejestrach powyżej rejestru 123 (to na moje oko ostatni bezpieczny rejestr), chociaż de facto takie podstawowe obsługowe rejestry to zakres od 100 do 108, ale dalej masz np. możliwość ustawiania czasu sterownika, co może się przydaje co jakiś czas (choćby by zmienić czas letni na zimowy i odwrotnie).
Nie wątpię, że dokumentacja może zawierać drobne błędy (zauważyłem np. jakieś zdublowane wpisy, być może błędnie opisane), więc i tak musisz zweryfikować to w rzeczywistości.
Kwestia użycia serwera USR - no cóż trzeba go skonfigurować poprawnie (port RS485 już wiesz jak ustawić, a podobne serwery pojawiały się w innych wątkach, więc tam zobaczysz jak ogarnąć stronę Ethernet), YAML dla HA się nieco zmieni, bo będziesz musiał najprawdopodobniej ustawić USR w hub typu modbus-tcp w/g rozdziałów 4.1 i 5.1 jego instrukcji (mając opracowane zapytanie choćby dla jednego rejestru o znanej wartości - świetna do tego może być wersja firmware albo jakakolwiek inna stała z rejestrów w okolicy 40000, będziesz mógł sobie eksperymentować, alternatywa to rtuovertcp to zależy jak skonfigurujesz serwer USR, ona ma całą masę zbędnych ustawień, gdzie nie muisz nie grzebać).
Nie wiem na ile masz pojęcie o sieciach, więc nie odetnij się od dostępu do webowego interfejsu konfiguracyjnego USR.
niżej tekst wygenerowany przez AI (może zrozumiesz dlaczego napisanie tego samemu trwa za długo)
Krok 1: Konfiguracja serwera USR-DR13X (Brama Modbus TCP do RTU)
Urządzenie musi działać w trybie konwersji protokołów (Modbus RTU/TCP) jako TCP Server.
- Zaloguj się do panelu WWW: Podłącz urządzenie do sieci. Domyślny adres IP to
192.168.0.7 (upewnij się, że Twój komputer jest w tej samej podsieci). Domyślny login i hasło to admin / admin.
- Ustawienia sieciowe (IP Settings): Zmień adres IP na statyczny (Static IP) dopasowany do Twojej sieci domowej (np.
192.168.1.50), aby Home Assistant nie stracił z nim łączności. mój komentarz: to nie prawda - można wykorzystać rezerwację DHCP na routerze i tutaj po prostu włączyć klienta DHCP
- Ustawienia portu szeregowego (Serial Port Settings):
- Work mode (Tryb pracy): Ustaw na
TCP server.
- Local Port Number: Wpisz numer portu nasłuchiwania. Dla standardu Modbus TCP zaleca się port
502 (lub inny wolny, np. 8899).
- Parametry transmisji: Ustaw prędkość (
Baud rate), bity danych (Data size), parzystość (Parity bits) oraz bity stopu (Stop bits) dokładnie tak, jak wymaga tego Twoje urządzenie końcowe Modbus RTU (np. licznik energii, falownik).
- Włączenie bramy Modbus: W nowszych wersjach oprogramowania układowego (V4304+) przejdź do zakładki Edge Gateway i upewnij się, że funkcja Modbus Gateway (konwersja Modbus RTU/TCP) jest włączona. Zapisz ustawienia (
Save) i zrestartuj urządzenie.
Krok 2: Konfiguracja pliku configuration.yaml w Home Assistant
W Home Assistant do komunikacji wykorzystujemy wbudowaną integrację modbus. Otwórz swój plik konfiguracyjny (np. przez File Editor lub VS Code) i dodaj następującą strukturę kodu:
w tym yamlu wprowadziłem drobne poprawki, bo AI się nie do końca udało, ale może nie mam racji, poniżej masz resztę komentarza od AI
modbus:
- name: "brama_usr_dr13x"
type: tcp
host: 192.168.1.50 # Wpisz statyczny adres IP przypisany do USR-DR13X
port: 502 # Wpisz port ustawiony w USR-DR13X (Local Port Number)
# Przykładowa konfiguracja sensorów (dostosuj do swojego urządzenia końcowego)
sensors:
- name: "Temperatura bojlera"
slave: 1 # ID urządzenia Modbus RTU (Slave ID / Unit ID)
address: 0 # Adres rejestru w urządzeniu
input_type: holding # Typ rejestru (holding, input) dałbym input, ale sprawdź
data_type: int16 # 16-bitowa liczba całkowita ze znakiem - szczerze mówiąc nie wiem czy to ten typ danych, ale dokumentacja tego nie określa albo przeoczyłem
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scale: 0.1 # Skala, jeśli urządzenie zwraca np. 235 dla 23.5°C
precision: 1
Opis kluczowych parametrów w YAML:
type: tcp: Deklaruje, że Home Assistant łączy się z bramą przez sieć lokalną (Modbus TCP). USR-DR13X automatycznie przetłumaczy te ramki na format szeregowy RTU i prześle do fizycznego urządzenia.
slave: Jest to unikalny identyfikator (Slave ID) fizycznego urządzenia podłączonego do portu RS232/RS485.
address: Dokładny adres rejestru Modbus, z którego chcesz czytać dane.
input_type: Określa rodzaj pamięci urządzenia. Najczęściej stosowane to holding (rejestry odczytu/zapisu, funkcja 03) oraz input (rejestry tylko do odczytu, funkcja 04).
Po zapisaniu zmian w pliku configuration.yaml przejdź w Home Assistant do sekcji Narzędzia deweloperskie → YAML, kliknij Sprawdź konfigurację, a jeśli nie ma błędów, wykonaj Ponowne uruchomienie systemu.