Pompa ciepła SprSun Select CGK40V3L

Dołączę się do tematu.
Mam pompę Sprsun Select CGK-040V3L
Czy mógłby mnie ktoś naprowadzić co mam zmienić w konfiguracji, żeby encje co chwilę nie stawały się niedostępne co kilkadziesiąt sekund i po kilku/nastu sekundach wracały?
Dodałem integrację po modbus z pompą ciepła. Powodem są switches bo jak je wywalę to wszystko działa poprawnie oprócz kilku encji, które cały czas mają status niedostępny:

input_text.sunpc_status
input_text.sunpc_tryb_wentylatora
input_text.sunpc_alarm
sensor.sunpc_pc
sensor.sunpc_pz

Czy mógłby ktoś zerknąć?
Mój yaml: Kod yaml
Mam konfigurację do niej z tego forum. Link do pobrania modbus map

Sprawdź Hosta czy nie gubi połączenia host: 192.168.254.18
W konsoli windows wpisz ping -t 192.168.254.18 zostaw na kilka minut, zatrzymaj ping CTRL+C i sprawdź czy połączenie nie gubi pakietów.

Screenshot - 07.07.2024 , 19_52_07

Jeżeli masz Lost większe od 0 to masz problem z połączeniem.

Powodem jest chyba błąd w kodzie albo jego braki, bo tam w switches gdzie dopisałem resztę po verify to już nic nie wywala. i działają dobrze, np.

    switches:
      - name: SunPc Włączenie pompy
        slave: 1
        address: 40
        write_type: coil
        verify:
          input_type: coil
          address: 40
          state_on: true
          state_off: false
        scan_interval: 60

Został mi jeszcze:

      - name: SunPc Tryb nocny
        address: 12
        command_on: 1
        command_off: 0
        verify:
          input_type: coil
          address: 12
          state_on: true
          state_off: false
        scan_interval: 60

      - name: SunPc Sterowanie pogodowe
        address: 12
        command_on: 2
        command_off: 0
        verify:
          input_type: coil
          address: 12
          state_on: true
          state_off: false
        scan_interval: 60

Bo jak włączę te dwa switche czyli bez # na początku każdej linii to wtedy one są cały czas niedostępne a reszta staje się niedostępna, za chwilę znowu pokazuje stan, znowu niedostępna i tak na przemian

Adres 12 nie jest cewką tylko holding.


Nie wiem czy uda się opędzić te dwie funkcje (dwa osobne switche) na tym samym adresie.

1 polubienie

Podejrzewam, że się da, tylko nie przez zdublowanie wpisu (to pewnie nawet nie przejdzie przez linter), a zastosowanie jakieś bardziej wyrafinowanej figury.

No właśnie te encje nie są już z domeny modbusa i wydaje się, że są elementem jakiejś figury do wywoływania kilku różnych stanów na tym samym adresie, ale być może jeszcze czegoś brakuje @AndroidGamesManiaq_T możesz podlinkować rozwiązanie z którego skopiowałeś tego YAMLa, tam pewnie jest jakaś informacja jak to użyć…

Użycie tego rejestru jako encji trybu wentylatora - pamiętającego liczbę 0…3 jako lista trybów
lub pomocników (buttonów), których naciśnięcie spowoduje właściwe ustawienie encji trybu.

Pompa Ciepła Elfin-EW11 proszę o pomoc w podpięciu do HA - Urządzenia - ArturHome
Brałem bezpośrednio z któregoś pliku yaml który pobrałem. Jest ich tam kilka i teraz nie pamiętam który to był, ale na pewno nie ten pierwszy bo tam było tylko kilka encji

No i fajnie, ale raczej nie będę kopał po całym wątku, bo Ty masz problem, no są jakieś granice brawury…

W tamtym poście masz przykłady automatyzacji

a jeszcze gdzieś widziałem jakieś YAMLe w starej składni, ale tam rozwiązanie opierało się na współdziałaniu kodu znajdującego się też w osobnych plikach (i dodatkowo był wykorzystany rest, czyli część informacji pochodziła spoza modbus)

Raczej nie… tam stoi

      - name: "SunPc_tryb_wentylatora"

        address: 12
        slave: 1

        input_type: holding
        scan_interval: 30

Ok … to nie było do mnie :slight_smile:

@szopen @RobinI30 Od Ewupi na stronie 51 czy jak to się tam nazywa tym suwakiem jak przewiniesz z pliku configuration.yaml to wziąłem Pompa Ciepła Elfin-EW11 proszę o pomoc w podpięciu do HA

Ale wiesz, że można linkować konkretne posty?

o tym mówisz? to bodajże właśnie w nim są wstawki z innych integracji i YAML w starej składni

Trochę się jednak różni :wink: … a porównując całość (której nie znamy) na pewno znacząco.

@szopen @RobinI30 U mnie wygląda to w ten sposób: configuration.yaml i sensors.yaml
@szopen Tą konfigurację którą wstawiłeś jest do pompy z dotykowym wyświetlaczem. Próbowałem i wyświetlają mi się głupoty

@AndroidGamesManiaq_T
W tym wątku odpowiadam jako najzwyklejszy moderator ogólny, który usiłuje tak pokierować dyskusję, abyś miał niezerową szansę na pomoc.
Właściwie to od tego co jest w poście wyżej powinieneś zacząć… no i dodać jaki masz komunikat czy logi błędów lub z czym jest problem (sądzę, że jest ich więcej niż jeden).

Właściwie na twoim miejscu zacząłbym od wywołania autora rozwiązania @eWuPi bo on je zna od podszewki (a może kogoś innego? bo teraz już zupełnie nie wiem z czyjego rozwiązania naprawdę korzystasz, ale to w moim poście powyżej to jest właśnie post 51 z tamtego wątku).

Świetnie, czyli to co usiłowałem Ci przekazać zadziałało - czytałem ten wątek jako prosty czytelnik (a nie specjalista od pomp ciepła tego producenta, bo o nich to mam blade pojęcie, by nie powiedzieć, że zerowe, bo nie mam czasu na wgłębianie się w jakąkolwiek dokumentacją, co Ty pewnie znasz już na wylot, bo musisz)
i jak widzisz skierowałeś mnie na niewłaściwy tor → usiłowałem szukać podobieństwa do czegoś, co w ogóle nie ma u Ciebie zastosowania.

Są inne adresy, typy danych to powinny być głupoty. Możesz spróbować przerobić pod swoją PC np. automatyzacja:

- id: sprsun_pc_wybieramy_tryb_pracy_kompresora_190
  alias: Wybór trybu pracy kompresora
  trigger:
    platform: state
    entity_id: input_select.sprsun_pc_tryb_pracy_kompresora_190
    id: select
    to:
  condition: []
  action:
  - choose:
    - conditions:
      - condition: trigger
        id: input
      sequence:
      - variables:
          values:
            '0': 0 Normal
            '1': 1 ECO
            '2': 2 Night
            '3': 3 Test
      - service: input_select.select_option
        target:
          entity_id: input_select.sprsun_pc_tryb_pracy_kompresora_190
        data:
          option: '{{ values.get(trigger.to_state.state) }}'
    - conditions:
      - condition: trigger
        id: select
      sequence:
      - service: modbus.write_register
        data_template:
          address: 400
          slave: 1
          hub: Sprsun PC
          value: '{{ trigger.to_state.state[0] | int(0)  }}'

oraz sensor

      - name: "Sprsun Pc tryb pracy kompresora"
        slave: 1
        address: 0x0190
        input_type: holding
        data_type: int16
        scan_interval: 30

input_select:
  sprsun_pc_tryb_pracy_kompresora_190:
    name: Wybór trybu pracy kompresora
    options:
      - 0 Normal
      - 1 ECO
      - 2 Night
      - 3 Test

Mała podpowiedź: adres: 190 to HEX, a w automatyzacji to DEC czyli 400.

1 polubienie