Input select sterowanie MQTT brak zmiany stanu selektora

Witam
Jestem poczatkującym użytkownikiem HA i powoli zapoznaję się z całym systemem. Opanowałem już centralne ogrzewanie, sterowanie oświetleniem, bramami i proste automatyzacje w NODE RED. Mam jednak problem z wymiennikiem freonowym zainstalowanym na nawiewie rekuperacji. Wymiennik połączony jest z jednostką zewnętrzną klimatyzatora. OK ale do rzeczy. Jednostka zewnętrzna sterowana jest przez sterownik zbudowany w oparciu o RPI 4 poprzez skrypty i MQTT. Skonfigurowałem w HA Input select i automatyzację. Automatyzacja działa i selektorem wejść mogę zmieniać tryb pracy poprzez topiki MQTT: grzanie/chłodzenie/wyłącz.
Problem polega na tym, że po wyborze tryby pracy w selektorze następuje zmiana trybu. Jednak w momencie, gdy zdalnie (np. z telefonu) chcę zmienić tryb, następuje jego zmiana ale selektor w HA nie zmienia się wizualnie tzn gdy był w trybie grzanie a zewnętrznie zmieniłem na chłodzenie w HA pozostaje w trybie grzanie choć e rzeczywistości się przełączył.
załączam konfigurację selektora i automatyzacji. Może któryś z Kolegów pomoże…
input_select:
wymiennik_freonowy:
name: Wymiennik freonowy
options:
- “STOP”
- “COOL”
- “HEAT”
icon: mdi:target
i automatyzacja:

  • alias: Set Wymiwnnik freonowy Selector
    trigger:
    platform: mqtt
    topic: “STAT/EVENT_HEAT/MODE”

    input_select.wymiennik_freonowy

    action:
    service: input_select.select_option
    data:
    entity_id: input_select.wymiennik_freonowy
    option: “{{ trigger.payload }}”

  • alias: Set Wymiennik freonowy
    trigger:
    platform: state
    entity_id: input_select.wymiennik_freonowy
    action:
    service: mqtt.publish
    data:
    topic: “CTRL/VENT_HEAT/MODE”
    retain: true
    payload: “{{ states(‘input_select.wymiennik_freonowy’) }}”

Jeżeli wklejasz konfigurację z plików HA na forum na początku i na końcu w nowej linii wpisz ``` wtedy zachowane będzie formatowanie, efekt jaki uzyskasz w ten sposób:

input_select:
  wymiennik_freonowy:
    name: Wymiennik freonowy
    options:
      - “STOP”
      - “COOL”
      - “HEAT”
    icon: mdi:target

Wygląda zdecydowanie lepiej :slightly_smiling_face:.

To prawda… porawię się

Proponuje od razu, trudno analizuje się takie “rozwalone” konfiguracje.

Tutaj wg mnie masz błąd:

payload: “{{ states(‘input_select.wymiennik_freonowy’) }}”

powinno być:

payload: “{{ states.input_select.wymiennik_freonowy.state }}”

Sprawdź za pomocą sensora na podstawie input_select, dopisz:

sensor:
  - platform: template
    sensors:
      wymiennik_freonowy_status:
        value_template: '{{ states.input_select.wymiennik_freonowy.state}}'
        friendly_name: 'Status wymiennika freonowego'

Jak dobrze widzę to przyklad z dokumetacji HA Input Select - Home Assistant, nastepnym razem jak coś kopiujesz to podaj źródło.

Edit: a jednak obie opcje są poprawne, sprawdziłem u siebie na przykładzie statusu prania:

image

Wielkie dzięki sprawdzę i dam znać

Tak wzorowałem się na przykładzie z dokumentacji HA. Sensor to dobry pomysł, ale nie odzwierciedla rzeczywistego stanu wymiennika, ponieważ sterownik wymiennika wysyła swój stan z opóźnieniem, po sprawdzeniu parametrów jednostki zewnętrznej i jeszcze kilku innych i przełącza w ustawiony tryb po spełnieniu warunków. Jeszcze się nie zdarzyło, ale w pewnych przypadkach może nie przełączyć stanu z uwagi na jakąś awarię lub inne czynniki. Sensor nie wykrywa stanu odebranego z wymiennika a tylko wyświetla stan wysłany do wymiennika. Muszę chyba pokombinować w automatyzacji z topikami MQTT tak aby stany były zwrotnie odsyłane do input_select.
Utworzyłem teraz encje dla każdego stanu selektora. I to działa ale mam teraz dodatkowe 3 kontrolki…

Czytałem to kilka razy i nie kumam, może brakuje przecinkow i źle to interpetuję :frowning:

Muszę chyba pokombinować w automatyzacji z topikami MQTT tak aby stany były zwrotnie odsyłane do input_select.

Inaczej, to urządzenie (sterownik RPi) powinno wysyłać przy każdej zmianie stan wymiennika a takze cyklicznie status tak jak to robi np. Tasmota na podstawie parametru TelePeriod. Jak będzie wysyłać to na podstawie automatyzacji “Set Thermostat Mode Selector” będzie ustawiany selektor.

OK muszę pogrzebać w skryptach od wymiennika.
Może coś znajdę. Chociaż nie. Stany są odświeżane co 30s. …
Jeżeli chodzi o to co niezrozumiale napisałem to jest tak: input selekt ma rozwijaną listę wyboru, posiadającą 3 parametry do wyboru. Jeżeli zmienię tryb z tej listy z panelu HA właściwie nie ma problemu. Wymiennik po jakimś czasie przełącza się w wybrany tryb.
Ale, jeżeli tryb wymiennika przełączam z innej aplikacji MQTT (nie HA) np z telefonu, to w panelu HA nie następuje zmiana w tej rozwijanej liście choć wymiennik zmienił swój tryb pracy. Problem jest taki, że input selekt nie wyświetla stanu zgodnie z subskrypcją. Tego problemu nie mam w aplikacji na telefon - MQTT Dash. Do tej pory to była podstawowa aplikacja do sterowania domem po MQTT. Teraz powoli chcę wszystko przenieść do HA. Wygląda na to, że coś mam w konfiguracji selektora jednak pobabrane bo zasubskrybowany topik nie nie zmienia selektora.

Czyli to sterownik nie publikuje informacji mqtt po tym jak zmieniłeś tryb z innej aplikaci na telefonie albo Ty źle ją odczytujesz czyli nie działa automatyzacja “Set Thermostat Mode Selector” bo to ta automatyzacja na podstawie informacji mqtt robi input_select.select_option - wybiera z listy stan wymiennik_freonowy.
Pokaż co publikuje MQTT Dash.
Teraz tak patrze na liste wyboru:
- “STOP”
tam sa dziwne znaki “cudzysłowia”, powinno być:
- "STOP"
i kolejna literówka:
topic: “STAT/EVENT_HEAT/MODE”
topic: “CTRL/VENT_HEAT/MODE” - E VENT
dlatego jak pokażesz co jest publikowane w mqtt dużo się wyjaśni.

Sterownik publikuje informacje, bo aplikacja w telefonie wyświetla właściwe stany. Mogę zmienić tryb w HA i w telefonie jest on wyświetlana jego zmiana. Masz rację nie działa automatyzacja “Set Thermostat Mode Selector”
Sa 2 topiki:
STAT/VENT_HHEAT/MODE i CTRL/VENT_HEAT/MODE
polecenia: STOP, COOL, HEAT

Starość nie radość !!! Ślepy jestem. Nie ma być EVET tylko VENT i Wszystko OK
VENT od wentylacji…
Wielkie dzięki. Dobrej nocy

To popraw tak:

input_select:
  wymiennik_freonowy:
    name: Wymiennik freonowy
    options:
      - STOP
      - COOL
      - HEAT
    icon: mdi:target
- alias: Set wymiennik freonowy Selector
  trigger:
    platform: mqtt
    topic: "STAT/VENT_HHEAT/MODE"
   # entity_id: input_select.wymiennik_freonowy
  action:
     service: input_select.select_option
     data:
      entity_id: input_select.wymiennik_freonowy
      option: "{{ trigger.payload }}"


- alias: Set wymiennik_freonowy
  trigger:
    platform: state
    entity_id: input_select.wymiennik_freonowy
  action:
    service: mqtt.publish
    data:
      topic: "CTRL/VENT_HEAT/MODE"
      retain: true
      payload: "{{ states('input_select.wymiennik_freonowy') }}"

Piwo dla PANA a ja do okulisty