Rekuperator Thessla Green

Cześć,

Posiadam rekuperator Thessla Green air pack 4. Chciałem z niego wyciągnąć dane po protokole Modbus.

Obejrzałem już film na youtube:

Podłączenie wykonałem i skonfigurowałem sieć WIFI. Konwerter działa.

Teraz mam pytanie jak zaimportować te widoki do Home Assistanta?
Czy potrzebuję jakiejś wtyczki do obsługi protokołu Modbus w HA?

Proszę Was jeżeli ktoś może o opis krok po kroku jak to zrobić. Nie bardzo wiem jak się za to zabrać.

Z góy bardzo dziękuję,


Pod filmem na Youtubie to jest. Z góry dzięki za poświęcony czas.

https://pastebin.com/beQs7YcL - Config YAML - MODBUS
https://pastebin.com/mr2stLMg - Config YAML - obliczeń odzysku energii
https://pastebin.com/JukHxRbH - karta UI rekuperator
http://bit.ly/3umtLj9 - grafiki do karty
https://pastebin.com/MDcTQWU6 - karta UI z danymi o odzysku
https://pastebin.com/TzVzDyCb - karta UI z informacjami o usterkach

To są linki dodane przez autora.

No właśnie
czy pisząc to

miałeś na myśli, że już sobie zintegrowałeś swoje urządzenie z HA?

to jest przykładowy jego konfig do wklejenia w configuration.yaml (UWAGA po modyfikacjach do twojej instalacji i bez kasowania “fabrycznej” zawartości!!!)

    # REKUPERATOR MODBUS

modbus:
  - type: tcp
    host: 192.168.1.179
    port: 9999
    name: reku
    timeout: 5
    delay: 2
    sensors:
      - name: "Rekuperator Temperatura Czerpnia"
        slave: 10
        address: 16
        input_type: input
        scan_interval: 29
        data_type: int16
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Rekuperator Temperatura Nawiew"
        slave: 10
        address: 17
        input_type: input
        scan_interval: 29
        data_type: int16
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Rekuperator Temperatura Wywiew"
        slave: 10
        address: 18
        input_type: input
        scan_interval: 29
        data_type: int16
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Rekuperator Temperatura za FPX"
        slave: 10
        address: 19
        input_type: input
        scan_interval: 29
        data_type: int16
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Rekuperator Temperatura PCB"
        slave: 10
        address: 22
        input_type: input
        data_type: int16
        scan_interval: 59
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Rekuperator Strumień nawiew"
        slave: 10
        address: 256
        input_type: holding
        scan_interval: 2
        data_type: int16
        unit_of_measurement: m3/h
        scale: 1
        precision: 1
      - name: "Rekuperator Strumień wywiew"
        slave: 10
        address: 257
        input_type: holding
        scan_interval: 2
        data_type: int16
        unit_of_measurement: m3/h
        scale: 1
        precision: 1
      - name: "Rekuperator lato zima"
        scan_interval: 11
        data_type: int16
        slave: 10
        address: 4209
        input_type: holding
      - name: "Rekuperator Bypass"
        scan_interval: 11
        data_type: int16
        slave: 10
        address: 4320
        input_type: holding
      - name: "Rekuperator tryb pracy"
        scan_interval: 6
        data_type: int16
        slave: 10
        address: 4208
        input_type: holding
      - name: "Rekuperator speedmanual"
        scan_interval: 5
        data_type: int16
        unit_of_measurement: "%"
        slave: 10
        address: 4210
        input_type: holding
      - name: "Rekuperator fpx flaga"
        scan_interval: 29
        data_type: int16
        unit_of_measurement: ""
        slave: 10
        address: 4192
        input_type: holding
      - name: "Rekuperator FPX tryb"
        scan_interval: 29
        data_type: int16
        unit_of_measurement: ""
        slave: 10
        address: 4198
        input_type: holding
      - name: "Rekuperator Alarm"
        scan_interval: 63
        slave: 10
        data_type: int16
        address: 8192
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Error"
        scan_interval: 63
        slave: 10
        address: 8193
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator FPX zabezpieczenie termiczne"
        scan_interval: 63
        slave: 10
        address: 8208
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Awaria Wentylatora Nawiewu"
        scan_interval: 63
        slave: 10
        address: 8222
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Awaria Wentylatora Wywiewu"
        scan_interval: 63
        slave: 10
        address: 8223
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Awaria CF Nawiewu"
        scan_interval: 63
        slave: 10
        address: 8330
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Awaria CF Wywiewu"
        scan_interval: 63
        slave: 10
        address: 8331
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
      - name: "Rekuperator Wymiana Filtrów"
        scan_interval: 63
        slave: 10
        address: 8444
        data_type: int16
        input_type: holding
        unit_of_measurement: ""
    binary_sensors:
      - name: "Rekuperator Silownik bypassu"
        scan_interval: 21
        slave: 10
        address: 9
      - name: "Rekuperator Potwierdzenie pracy"
        scan_interval: 1
        slave: 10
        address: 11
    switches:
      - name: "Rekuperator Wietrzenie"
        scan_interval: 1
        slave: 10
        address: 4224
        command_on: 7
        command_off: 0
        verify:
      - name: "Rekuperator Pusty Dom"
        scan_interval: 5
        slave: 10
        address: 4224
        command_on: 11
        command_off: 0
        verify:
      - name: "Rekuperator bypass"
        scan_interval: 7
        slave: 10
        address: 4320
        command_on: 0
        command_off: 1
        verify:
      - name: "Rekuperator Kominek"
        scan_interval: 5
        slave: 10
        address: 4224
        command_on: 2
        command_off: 0
        verify:
      - name: "Rekuperator Okna"
        scan_interval: 5
        slave: 10
        address: 4224
        command_on: 10
        command_off: 0
        verify:
      - name: "Rekuperator ON/OFF"
        scan_interval: 5
        slave: 10
        address: 4387
        command_on: 1
        command_off: 0
        verify:
      - name: "Rekuperator mode"
        scan_interval: 1
        slave: 10
        address: 4208
        command_on: 0
        command_off: 1
        verify:
      - name: "Rekuperator zima"
        scan_interval: 7
        slave: 10
        address: 4209
        command_on: 1
        command_off: 0
        verify:

To zdanie dotyczy konwertera:

  • Podłączyłem go do rekuperatora,
  • Połączyłem z siecią,
  • Nadałem adres IP,
  • Skonfigurowałem ramkę komunikacyjną MODBUS,

Po stronie sprzętowej konwerter działa, nie wiem jak dodać to urządzenie i skonfigurować je aby odbierało i przesyłało dane do HA.

Przepraszam, ale musisz najpierw ogarnąć jakieś podstawy HA, nie wyobrażam sobie ciągnąć krok po kroku jeśli to wideo nie jest wystarczające… i kompletnie nie masz pojęcia co robić…

Więc może zacznij od posta wyżej, ale nie wklejaj całęgo kodu tylko mały kawałek (hub + jeden sensor)

czyli mniej więcej tyle, jak zweryfikujesz, że to działa (z modyfikacjami pod twoją instalację) to dodasz resztę

modbus:
  - type: tcp
    host: 192.168.1.179 # tu dajesz IP swojego konwertera 
    port: 9999 # i faktyczny port
    name: reku
    timeout: 5
    delay: 2
    sensors:
      - name: "Rekuperator Temperatura Czerpnia"
        slave: 10
        address: 16
        input_type: input
        scan_interval: 29
        data_type: int16
        unit_of_measurement: °C
        scale: 0.1
        precision: 1

po dodaniu YAMLa (pamiętaj KAŻDA SPACJA w YAML ma znaczenie!!! i nie zniszcz kodu który już jest w tym pliku) restartujesz HA i weryfikujesz działanie
itd. jak już będziesz miał zintegrowane urządzenie i będzie to dziaało, to pogadamy dalej.

Dobrze to dodawałem tylko nie restartowałem systemu,

Odczyty działają.

Teraz mam problem z błędami w drugim linku:

No i gdzie te błędy?
Możesz użyć zwykłego File editor, to obraz nie będzie tak zaciemniony?

edit - dotarło do mnie, że obrazek przedstawia morze błędów, a nie jakiś pojedynczy błąd

zasada jest taka - jeśli tworzysz jakiś sensor z innego sensora, to ten inny sensor musi być najpierw zdefiniowany

aaa i składnia jest w dokumentacji

template:
  - sensor:
      - name: #…

więc musisz uzupełnić spacjami braki (zauważ, że sensor jest jedną z możliwych sekcji w template, dlatego ma specyficzne formatowanie z myślnikiem)

W myśl przysłowia

lepiej jeść całe życie małą łyżeczką, niż przez tydzień chochlą

Uruchamiaj kod po kawałku (upewniając się, że korzysta z czegoś co już sobie utworzyłeś, za dużo tego jest żebym weryfikował choćby nazwy encji, czy się zgadzają).

Jeszcze jedno - czasem nie masz już jakiejś sekcji template w swoim pliku konfiguracyjnym? (dana sekcja w głównym drzewie może wystąpić tylko raz)

Tak poza konkurencją to na moje oko wiele z tego mógłbyś oblecieć helperami z GUI zamiast gołęgo YAMLa…

Szopen jesteś wielki, zainstalowałem “file editor’a” i od razu lepiej to widać.
Poradziłem sobie z dwoma pierwszymi elementami. Czyli wgrałem dane do pliku konfiguracyjnego yaml.

Dwie pierwsze pozycje mam zrobione,

Pytanie co to jest karta UI? I gdzie załączyć ten kod źródłowy? Dodatkowo jak zamieścić te grafiki do karty?

Z góy dziękuję za pomoc.

Nie no, ja pierdzielę, to totalne podstawy, jak sobie do tej pory radziłeś z HA?
Muszę powiedzieć, że to dość odważne ruchy jak dla nowicjusza, ale skoro radzisz sobie to tylko gratuluję.

Kolejna podpowiedź - przeklikaj dogłębnie menu ustawień, musisz je znać dość dobrze.

Dashborad jest zbudowany z kart, pewnie korzystasz z autogenerowanego, a potrzebujesz mieć jakiś własny, który sobie zbudujesz sam.

Można wprawdzie przejąć kontrolę tego autogenerowanego, ale szczerze to odradzam początkującemu, utwórz sobie nowy.

potem będzie już z górki

od mniej więcej miesiąca nowym widokiem domyślnym są Sekcje i… raczej nie ma za wiele o tym w internecie, ale to chyba proste?



i tu się otworzy edytor kart - można wybrać coś z gotowców, albo dojechać na sam dół i jest tryb YAML

Jeśli nie chcesz Widoku typu Sekcje to go puszczasz do kubła lub od razu (czyli na tym etapie pustki gdzie wrysowałem strzałkę przechodzisz do edycji Widoku - jak kilka obrazków niżej, nie dodając Sekcji) zmieniasz w Kafelki (po dokonaniu jakiejkolwiek edycji w trybie Sekcje można Widok puścić tylko w kubeł jeśli się nie chce Sekcji)

YAMLe, które są zrobione na gotowo najlepiej pasują do widoku typu Kafelki




Widoki starych typów (Kafelki, Pasek boczny i Panel) mają duży przycisk DODAJ KARTĘ - tam też się pojawi graficzny edytor kart

PS zacznij od tych łatwiejszych kart bez grafiki

katalog /local/ w YAMLu jest mapowany na katalog /config/www/
(po nowemu homeassistant/www/) w HA
przejrzałem te YAMLe i nie ma tam zastosowanej dobrej praktyki - pliki hurtem są wrzucone do www/ i lepiej byłoby utworzyć tam np. podkatalog reku
i wtedy w YAML pozmieniać konstrukcje w rodzaju
/local/reku_cokolwiek.png
na
/local/reku/reku_cokolwiek.png

Pliki można powrzucać nawet File editorem (są do tego lepsze narzędzia, ale testowa instalacja jest w tej chwili dla mnie zdalna, lokalnie można użyć choćby Samby i 1000 innych metod, zdalnie też, ale pokazuję jak użyć minimum narzędzi by nie instalować całego gąszczu zbędnych Dodatków)


itd.

Cały układ udało mi się stworzyć, działają przełączniki, tryby pracy itp. Jednak mam problem z grafiką. Nie miałem tak jak u Ciebie takiej gotowej ścieżki jak:
homeassitant/www…

Nie miałem tego. Spróbowałem utworzyć folder “www” w nim folder “reku” i do niego dodać obrazki. Zmieniłem ścieżkę plików w kodzie źródłowym jednak to nie działa.

Dlaczego nie miałem tej ścieżki w file editor? Ewentualnie jak mogę to dodać?


Możliwe. Jeśli nie instalowałeś żadnych niestandardowych kart z HACS, to mogło go nie być.

Pokaż strukturę katalogów u siebie to pogadamy, bo niestety za mało widać na tym co teraz pokazałeś.

No i popatrz co sugerowałem, a co masz u siebie w YAMLu (tam nie ma żadnego www - to wynika z różnic nazw w mapowaniu - fizycznie jest katalog www ale widać go jako udział local)

tu źle nazwałem, bo local to de facto nie katalog tylko udział, ale myślałem, że to jest dostatecznie jasne


image

folder “www” sam stworzyłem.

To OK, a YAMLa poprawiłeś?

na katalog /config/www/reku/reku…?

A czytasz w ogóle to co piszę, skąd się tam bierze jakieś www?
przecież nie ma takiego udziału (punktu montowania/mapowania, no nie wiem jaka terminologia będzie przekonująca), udział wskazujący na zawartość podkatalogu www się nazywa local

Kiedyś to co widzisz jako udział homeassistant było udziałem config (i niektóre Dodatki tak nadal to widzą i tylko dlatego o tym wspomniałem, bo transformacja config w homeassistant jeszcze się nie zakończyła) w którym masz fizyczny katalog www ale YAML nie odwołuje się do fizycznego katalogu tylko do udziału sieciowego.

Taka magia trzymasz owoc w lewej ręce i nazywa się gruszka, przekładasz do prawej ręki i nazywa się jabłko :rofl: tak działa mapowanie z gruszki na jabłko

1 polubienie

Szopen jesteś mistrzem! Dziękuję bardzo za pomoc i naukę - chociaż niekiedy aż głupio było pytać :slight_smile:

Satysfakcja ogromna - wszystko działa jak należy :slight_smile:

Dzięki wielki - można zamykać temat :slight_smile:

@Junior czy jest możliwość żebyś wykonał mi taką integrację odpłatnie?

Nie wiem czemu mi umknął ten temat krucze aż wstyd. Mój film i nie pomogłem :frowning:

Hej, nie biore za takie rzeczy żadnych pieniędzy.

Mi pomagali, to i ja pomoge jak umiem.

Napisz na PW.

Pozdrawiam.

1 polubienie