Rekuperator Thessla, problem z modbusem

Rekuperator podłączony jest do komputera hosta przez przejściówkę USB<>RS485, w systemie widoczny jest na /dev/ttyUSB0, w virtualbox udostępniony jest jako port COM1 (tryb pracy portu urządzenie gospodarza → scieżka /dev/ttyUSB0), a więc na VM z HAOS widoczny jest jako /dev/ttyS0.

Na hoscie działa bez problemów (testowałem z konsoli przez modpoll), a na HA często gubi komunikację, a sensor pokazuje jako “unavailable”, dane znikają i się pojawiają tak samo ich historia - nie wiem co jest tego przyczyną.

Konfiguracja
modbus:
  - name: reku
    type: serial
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: N
    port: /dev/ttyS0
    stopbits: 1
    message_wait_milliseconds: 30
    sensors:
    - name: "Temperatura Czerpnia"
      slave: 10
      address: 16
      input_type: input
      scan_interval: 60
      unit_of_measurement: °C
      scale: 0.1
      precision: 1
    - name: "Temperatura Nawiew"
      slave: 10
      address: 17
      input_type: input
      scan_interval: 60
      unit_of_measurement: °C
      scale: 0.1
      precision: 1 
    - name: "Temperatura Wywiew"
      slave: 10
      address: 18
      input_type: input
      scan_interval: 60
      unit_of_measurement: °C
      scale: 0.1
      precision: 1       
    - name: "Temperatura za FPX"
      slave: 10
      address: 19
      input_type: input
      scan_interval: 60
      unit_of_measurement: °C
      scale: 0.1
      precision: 1    
    - name: "Temperatura PCB"
      slave: 10
      address: 22
      input_type: input
      scan_interval: 60
      unit_of_measurement: °C
      scale: 0.1
      precision: 1  
    - name: "Strumień nawiew"
      slave: 10
      address: 256
      input_type: holding
      scan_interval: 60
      unit_of_measurement: m3/h
      scale: 1
      precision: 1        
    - name: "Strumień wywiew"
      slave: 10
      address: 257
      input_type: holding
      scan_interval: 60
      unit_of_measurement: m3/h
      scale: 1
      precision: 1
Logi

2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Temperatura Czerpnia with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Temperatura Nawiew with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Temperatura Wywiew with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Temperatura za FPX with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Temperatura PCB with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Strumień nawiew with int is not valid, trying to convert
2022-01-06 14:36:07 WARNING (MainThread) [homeassistant.components.modbus.validators] Strumień wywiew with int is not valid, trying to convert
2022-01-06 14:36:08 ERROR (SyncWorker_0) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] device reports readiness to read but returned no data (device disconnected or multiple access on port?)
2022-01-06 14:36:13 ERROR (SyncWorker_1) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 2 bytes (0 received)
2022-01-06 14:37:11 ERROR (SyncWorker_2) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:38:10 ERROR (SyncWorker_3) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:38:23 ERROR (SyncWorker_4) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 2 bytes (0 received)
2022-01-06 14:39:13 ERROR (SyncWorker_1) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 2 bytes (0 received)
2022-01-06 14:39:20 ERROR (SyncWorker_1) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:41:10 ERROR (SyncWorker_4) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:41:15 ERROR (SyncWorker_4) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 2 bytes (0 received)
2022-01-06 14:43:07 ERROR (SyncWorker_4) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:44:10 ERROR (SyncWorker_3) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-01-06 14:45:10 ERROR (SyncWorker_2) [homeassistant.components.modbus.modbus] Pymodbus: reku: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response

Próbowałem zmieniać “scan_interval” oraz “message_wait_milliseconds”, mam rekuperator z płytą w wersji, gdzie CF blokuje port AirB (opisany jako BMS), więc wypinam Air++ i w jego miejsce wchodzę modbusem - komunikacja na 100% jest poprawna bo z modbus pool na windowisie działa i odczytuje nawet z interwałem 1s - nic się nie wiesza. Z hosta również czyta prawidłowo, testowo odpaliłem HA na VM na swoim laptopie i również udostępniłem port do VM efekt identyczny także na 1000% to wina HA lub konfiguracji. Ma ktoś jakiś pomysł ?

A jaki system działa na hoście, na którym działa VirtualBox?

A jaki jest system na laptopie, na którym działa VirtualBox?
Próbuję zdiagnozować czy faktycznie oba środowiska, na których robiłeś testy są identyczne.

Ubuntu na VirtualBox, na laptopie Windows 10 i VMware, w obu przypadkach host działa prawidłowo.
Mało tego, na Ubuntu odpaliłem teraz GitHub - 3cky/mbusd: Open-source Modbus TCP to Modbus RTU (RS-232/485) gateway., i HA komunikuje się po TCP do hostOS z mbusd, i wszystko działa jak należy - ale po co to robić tak dookoła ?

Niestety nie zrozumiałem co i na czym działa, pisząc VMware masz na myśli jaki dokładnie produkt?

ehh… testowałem na Ubuntu z Virtual Box na którym stoi HAOS i na Windows 10 na VMware Workstation, na którym jest ta sama maszyna z HAOS, której udostępniam port COM, a udostępnianie portu COM działa na 100% (na windows, nie testowałem na Ubuntu ale to jest to samo) bo uruchomiłem VM z Windowsem udostępniłem port i modbus pool odczytał bez problemów - także na 100% to problem z HA.

Widzę, że problem opisałeś także na community.home-assistant.io.
Przeczytaj także EPever Modbus RTU - #11 by chukaonline - Configuration - Home Assistant Community, masz to samo w logach.

1 Like

Hmm tylko, że nie mam żadnego błędu jak to czytam przez tcp… nawet w logach mbusd nie ma błędów. jedyna różnica to nie ma w HA opcji ustawienia parametru trx_control = rts. Chyba będę musiał to zostawić jako tcp z mbus na hostOS bo działa to stabilnie.

Nie potrafimy się zrozumieć, czasami tak bywa, niestety z mojej strony pass.

1 Like

Ja rozumiem o co Ci chodzi, o pozbycie się wpisów o tym, że “with int is not valid, trying to convert” przez zmianę na int16, ale to jest tylko ostrzeżenie, które nie ma wpływu na działanie jak używam modus przez tcp, więc po rtu równie nie powinno mieć. Ale dla Twojej satysfakcji pozbyłem się tego przez zmianę na int16 wpisów nie ma, a nadal nie działa po rtu…

Zmieniłem konwerter na Acess I/O RS485-IND, USB-232-IND, USB-422-IND, USB-485-IND, USB-422-485-IND - ACCES I/O Products (niestety nie kosztuje 5zł a więcej…), i teraz VirtualBox widzi go jako urządzenie USB, pozwala udostępnić usb to maszyny, i HA potrafi pytać do /dev/ttyUSB0 i wszystko działa. Coś jednak ten chiński konwerter chyba nie do końca był wspierany przez kernel. Dzięki za zainteresowanie i okazaną pomoc.

1 Like

Jestem po zmianie konwertera USB-RS485. Siedzi teraz Waveshare FT232 i od 3 godzin w logach mam czysto. Wszystkie sensory są poprawnie odpytywane i żaden nie miał jeszcze statusu “niedostępny”. Nie rozpisuję się tutaj bo wątek będę drążył u siebie: Konwerter USB-RS485 (który? FT232RL vs CH340) poprawne działanie i błędy w logach

1 Like

Cześć. mam od niedawna reku Airpack4 i chciałbym się do niego podłączyć przez modbusa. Kupiłem konwerter modbusrtu - TCP ale niestety nie potrafię go skonfigurować. czy mógłbym prosić Was o pomoc w tej sprawie? Poniżej okienko z konfiguracją konwertera

na samym reku wpiąłem się do gniazdka RJ nr 10. pytanie czy samego modbusa jakoś ise aktywuje z poziomu instalatora?

Raczej ma pracować jako jako TCP Serwer.
Wtedy pracuje jako serwer portu szeregowego i używasz Modbus RTU.
Nie znam tego modułu, czy ma wbudowany modbus?
Jeśli w zakładce Expand jest Modbus do wyboru to używasz Modbus TCP

Udało mi się pierwsze dane wyświetlić w HA :smiley: to teraz kolejne pytanie :wink: czujniki “wyciągamy” z modbusa tworząc sensor, a jak tworzyć switche? czy np możliwość zmiany siły nawiewu (%)?

1 Like

Zobacz w dokumentacji Modbus - Home Assistant.

Ja zrobiłem to tak, czy dobrze czy źle to nie wiem ale działa:)


Modbus: Modbus - Pastebin.com
UI: Reku UI - Pastebin.com
Configuration: Configuration - Pastebin.com (obliczanie odzyskanej energii, oraz sprawności).

Wilgotność na nawiewie i wywiewie mierzę osobno przez esp32 i dth22. Niestety ale większość odsyła jedynie do manuala HA, a tam nie wszystko jest pokazane niestety, masz przykład zrób z nim co chcesz.

4 Likes

A w jaki sposób mogę pomóc bardziej, jeżeli ogólnie pytanie brzmi “czujniki “wyciągamy” z modbusa tworząc sensor, a jak tworzyć switche?”. Jest jeszcze inny wariant: nie odpowiadać. Chyba nie o to chodzi na forum.

1 Like

Wygląda super :smiley: gratuluję

można wrzucić fragment z działającej konfiguracji (czy to z configuration.yaml, czy w kwestii automatyzacji z node reda) tak jak zrobił to użytkownik Owczar albo @dar3k (i chwała im za to) na Intergracja modbus rekuperator Thesslagreen - #12 przez Owczar - Projekty - AI-Speaker. Gdzie opisał konfigurację modbusa i wrzucił swoją konfigurację dla thessli.

głupich pytań ciąg dalszy :frowning: :wink: modbus - wrzucam do modbus.yaml, configuration do configuration.yaml a co z reku UI? i jak to później dodać do dashboardu?

image
Wybierasz Edytor konfiguracji YAML - ale tam ważne są wcięcia i nie zawsze ctrl+c ctrl+v będzie działać właśnie z racji na wcięcia, ale to sobie dojdziesz do tego myślę.

Ja użyłem obrazek jako tło i kilka state image (np do pokazania FPX) najlepiej zainstalować dodatek do HA o nazwie “samba share” i wtedy masz dostęp do folderów po sieci, a obrazki należy wrzucić tutaj: “\\IP_HA\config\www” wtedy dostępne są jako /local/nazwa_pliku, jak chcesz taki sam efekt jak ten co ja mam to masz obrazki:
reku_bypass
reku_bypass
reku empty
reku_empty
reku_fpx
reku_fpx
reku_nobypass
reku_nobypass
reku_alarm
reku_alarm
reku_1
reku_1
reku_2
reku_2

PS: Jakbyś coś usprawnił w tym, albo jakby ktoś znalazł jakieś lepsze czy prostsze rozwiązanie to dobrze byłoby dodać dla innych :slight_smile:

oczywiście jak tylko coś usprawnię to wrzucę. Zobacz też ten wątek który podlinkowałem ( może tam też coś znajdziesz, chociaż biorąc pod uwagę jak pięknie masz to zrobione :D)
który obrazek to reku_empty.png?
bo rozumiem że pierwszy to reku_bypass.png
drugi reku_fpx.png
trzeci reku_nobypass.png??
tego alarmu i 1,2 nie znalazłem w kodzie

Zobacz teraz - edytowałem posty - teraz wszystko powinno być, również w kodzie chyba wrzuciłem coś starszego niż mam bo to modyfikuje, także te linki do pastebin też są nowe :slight_smile: