Zmiana przycisków otwierania/zamykania okien

W moim HA działa taka konfiguracja:

W configuration.yaml
Moja żaluzja Tuya cover.blinds_curtain, działa dobrze do testów odwróciłem działanie przycisków

cover:
  - platform: template 
    covers:
      zaluzja_korekta:
        friendly_name: "Żaluzja Korekta"
        unique_id: zaluzja_korekta
        position_template: "{{ 100 - state_attr('cover.blinds_curtain', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.blinds_curtain
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.blinds_curtain
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.blinds_curtain
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.blinds_curtain
#        icon_template: >-
#          {% if is_state('cover.blinds_curtain', 'closed') %}
#            mdi:blinds-open
#          {% else %}
#            mdi:blinds
#          {% endif %}

Wynik:
Oryginał
Po korekcie

korekta

1 polubienie

Kolego, super robota, wielkie dzięki!:slight_smile:
Teraz działa jak należy!
Jeszcze jedno “trudne” pytanie. Jak mam tak w 10 sztukach to rozumiem, że od " - platform:" do końca muszę powtórzyć to 10 razy zmieniając tylko unique_id i entity_id. Platform “template” też powinienem indeksować na “template_1…” czy to zbędne?
Może głupie pytania ale działam jeszcze mocno po omacku w tym temacie:(

Jeśli chcesz sterować oddzielnie to musisz kopiować :hushed:
Plus jeszcze jeden “grupa”, wtedy jednym kliknięciem otworzysz/zamkniesz wszystkie

# Example configuration.yaml entry
cover:
  - platform: group
    name: "Window Covers"
    entities:
      - cover.hall_window
      - cover.living_room_window

/
Nie jestem pewny struktury ale wydaje mi się, że powinno wyglądać na tej zasadzie

cover:
  - platform: template 
    covers:
      zaluzja_korekta1:
        friendly_name: "Żaluzja Korekta "
        unique_id: zaluzja_korekta_1
        position_template: "{{ 100 - state_attr('cover.blinds_curtain_1', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          ....
      zaluzja_korekta2:
        friendly_name: "Żaluzja Korekta 2"
        unique_id: zaluzja_korekta_2
        position_template: "{{ 100 - state_attr('cover.blinds_curtain_2', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
        ....

Wszystko działa pięknie, łącznie z grupowym sterowaniem:)
Jeszcze raz dzięki!

Czy te wpisy z “#” na początku coś wnoszą czy to tylko opisówka?

Oznacza to że dana sekcja jest nieaktywna, czyli jakby nic tam nie było.

1 polubienie

Jeśli dopiszesz:

        entity_picture_template: >-
          {% if is_state('cover.zaluzja_korekta', 'open') %}
            /local/tv-guzik.jpg
          {% else %}
            /local/robotblack.jpg
          {% endif %}

To zmieni się ikona w zależności od stanu “covera”
ScreenShot_20230202153735
Ale to nie było tematem problemu więc “usunąłem” :grinning:

Fajnie, to też się przyda zarówno tu, jak i na przyszłość:)
Jeśli to nie kłopot to jak zmienić ikony strzałek na np rolety?
Tu bardziej chodzi mi o kod niż same ikony bo strzałki chyba lepiej to obrazują choć to jak zawsze kwestia gustu.

Screenshot - 04.02.2023 , 12_46_08

sprawdzasz jaka ikona ci pasuje, kopiujesz np. mdi:account-plus i wklejasz do kodu.

Tak dla potomnych :grinning:

Jest jeszcze sposób sterowania roletami / zasłonami
Nawet tymi co mają odwrócone działanie

Wykorzystując pomocnika, tworzymy pole wyboru
Np

Następnie tworzymy automatyzacje:

alias: żaluzja automatyzacja wybór
trigger:
  - platform: state
    entity_id: input_select.zaluzja_wybor
action:
  - variables:
      p:
        Otwarta: 100
        Połowa: 50
        Uchylone: 35
        Zamknięta: 0
  - service: cover.set_cover_position
    target:
      entity_id: cover.blinds_curtain
    data:
      position: "{{ p.get(trigger.to_state.state, 1) }}"
mode: single

Efekt:
ScreenShot_20230204213636

Jeśli dany cover działa odwrotnie zmieniamy Otwarta: 0, Zamknięta: 100
Połowa: 50 bez zmian :wink:

2 polubienia

Dzięki:)
Bardziej chodziło i o te strzałki góra-dół czy na zewnątrz i do środka (te na przyciskach), tak by to ujednolicić.
Z tego co piszesz to rozumiem jako zmianę ikony, tej po lewej, tylko na statyczną? A jak zrobić dynamiczną np. roleta otwarta/zamknięta, brama otwarta/zamknięta. To też się przyda:)

Dziś podpiąłem bramę wjazdową z Supla. Tu są teraz trzy przyciski, które średnio działają bo generalnie bramę obsługuję jednym na pilocie, który działa naprzemiennie: otwieranie/stop/zamykanie.
Z encji jest tylko cover.brama_glowna i binary_sensor.stan_bramy. Jakiś pomysł jak to ogarnąć?

image

…strzałki góra-dół czy na zewnątrz i do środka (te na przyciskach), tak by to ujednolicić.

Pokaż jako klasę urządzenia


Jeśli ustawisz wszystkie jako “Okno”, wszystkie będą tak samo wyglądały
/
Jeśli kartę przełączysz w Edytor YAML i jak dopiszesz pod encją

secondary_info: last-changed

w ten sposób
ScreenShot_20230210163614
to HA wyświetli dodatkowe informacje “ostatnia zmiana była”
ScreenShot_20230210163634

1 polubienie

O to chodziło, dzięki także za bonus “last-changed”!:slight_smile:

Z bramą też da się coś zrobić? Jak wciskam otwórz, to się otwiera, stop to się zatrzymuje a jak zamknij to nie reaguje. Dopiero jak wcisnę ponownie otwórz to się zamyka…

:thinking:
Nie wiem w jaki sposób HA odczytuje stan położenia bramy (krańcowi, )
Wpisz encje i sprawdź jaki otrzymuje stan po otwarciu, zamknięciu, stop (kliknij odśwież po zmianie stanu)

Witam po chwili przerwy.
Działanie odwróconych rolet działa teraz tak jak powinno z jednym małym “ale”. W kilku przełącznikach jak wcisnę zamknij (w HA) to na pół sekundy roleta się otwiera a dopiero później zamyka. To samo jeśli wcisnę otwórz: najpierw pół sekundy w dół a później leci już w górę (także widać to na podświetleniu klawiszy w przełącznikach na ścianie - mignięcie). Jeśli steruję roletami fizycznie, guzikiem na ścianie, komendą głosową z Google Assistant czy guzikiem w apce Tuya to tego nie ma. Da się to jakoś ogarnąć kodem czy w inny sposób?
Fragment kodu:

cover:
  - platform: template 
    covers:
      roleta_korekta_1:
        friendly_name: "Korekta rolety Biuro"
        unique_id: roleta_korekta_1
        position_template: "{{ 100 - state_attr('cover.roleta_w_biurze_curtain', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.roleta_w_biurze_curtain
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.roleta_w_biurze_curtain
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.roleta_w_biurze_curtain
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.roleta_w_biurze_curtain
      roleta_korekta_2:
        friendly_name: "Korekta rolety Sypialnia"
        unique_id: roleta_korekta_2
        position_template: "{{ 100 - state_attr('cover.roleta_w_sypialni_curtain', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.roleta_w_sypialni_curtain
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.roleta_w_sypialni_curtain
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.roleta_w_sypialni_curtain
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.roleta_w_sypialni_curtain
      roleta_korekta_3:
        friendly_name: "Korekta rolety Gościnny"
        unique_id: roleta_korekta_3
        position_template: "{{ 100 - state_attr('cover.roleta_w_goscinnym_curtain', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.roleta_w_goscinnym_curtain
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.roleta_w_goscinnym_curtain
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.roleta_w_goscinnym_curtain
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.roleta_w_goscinnym_curtain

cover.roleta_w_sypialni_curtain
W HA otwiera i zamyka się do końca, czy atrybut ( current_position) przyjmuje wartość ( 0% lub 100%)?
/
Pytam ponieważ bodajże w wersji HA 23.11.2 nie zawsze żaluzja z poziomu HA domykała się ( np,98%/ 2%) wtedy przyciski do sterowania podświetlały jednocześnie “góra” “dół” w wersji 23.12 działa bezbłędnie (Tuya Local)
/
Czy roleta bez korekty (orginał) działa w ten sam sposób tak jak z korekcją, czy tylko dotyczy “cover template”?

current_position przy skrajnych położeniach rolety jest w obu przypadkach (przed korektą i po korekcie) 0 i 100, oczywiście na zmianę z 100 i 0. Jak zatrzymam gdzieś po środku to pokazuje pośrednią wartość.
Problem ten występuje i przed korektą i po korekcie (kierunki tych chwilowych odbić są przeciwne).
Jeszcze jedno rzuciło mi się w oczy. Jak nie skorzystam z przycisków otwórz/zamknij tylko wejdę w roletę i ustawię suwak na jakiś procent to jedzie od razu bez tego zgrzytu w żądanym kierunku. Mam w sumie 9 przełączników (3 różne modele), problem odwróconego sterowania występował na wszystkich a ten obecny występuje tylko w dwóch modelach i na wszystkich egzemplarzach.

:thinking: czyli service: cover.set_cover_position działa poprawnie.

Nie mając tego problemu nie jestem wstanie go zdiagnozować, może coś w logach znajdziesz.

Możesz:

  • Jak chcesz używać przyciski - możesz zrobić skrypty do sterowania wykorzystując service: cover.set_cover_position
  • W Tuya utworzyć 2 sceny i aktywować je z poziomu HA
  • Wykorzystać inną integrację np. Tuya Local

Nie mam za dużo doświadczenia z HA ale podpiąłem jedną roletę przez Local Tuya i działa od razu prawidłowo. Nawet nie trzeba zmieniać kierunków przycisków. Póki co tak zostawię ale zastanawia mnie gdzie może być problem? W przyciskach czy w integracji Tuya czy jeszcze gdzieś indziej? Dzięki za pomoc!:slight_smile:

Według mnie jest problem z “odczytami” pomiędzy wartość procentowa a stanem otwartym / zamkniętym.

Wczoraj testowałem swoją żaluzje na oficjalnej integracji Tuya i było wiele błędów.
Wyglądało to tak jakby zmiana stanu nie sychonizowała się z procentowym stanem atrybutu _position.

Może to wina serwerów Tuya jeśli lokalnie działa dobrze ale to przerasta moją wiedzę na ten temat

Jeszcze jedno pytanko odnośnie rolet. Próbuję zrobić przycisk częściowego zasłonięcia rolet. Chciałbym aby każda z nich po naciśnięciu zatrzymywała się w innym położeniu: jedna na np. 50%, druga na 80% oraz dodatkowo przyciski Podnieś o 10% i Opuść o 10%. Umiem to zrobić dla kilku rolet dla jednej wysokości ale chciałbym je indywidualnie określić dla każdej. Podniesienia o % nie umiem ruszyć:(

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: cover.set_cover_position
  target:
    device_id:
      - 2afafb3afa2ba4a78b8427
      - e962d6766fe4858df9be3
  data:
    position: 65
show_state: true
name: Rolety