Sterowanie urządzeniami za pomocą IR Xiaomi

Cześć,

Udało mi się dodać nadajnik IR Xiaomi do HA, mam encję, ale niestety nie bardzo mogę wpaść na to jak dodać kody RAW żeby móc sterować klimatyzacją. Listę kodów RAW dla klimatyzacji Midea znalazłem ale utknąłem. Próbowałem stworzyć przycisk, ale to nie działa. W pliku configuration.yaml mam wpis:

remote:
  - platform: xiaomi_miio
    host: 192.168.1.38
    token: xxxxxxx

Przerabiał ktoś takie rozwiązanie? Co powinienem zrobić krok po kroku?

Przeczytaj Home Assistant - Broadlink RM Mini 3 / PRO - pilot/hub IR / RF - HejDom, dla nadajnika IR Xiaomi sposób sterowania będzie podobny.
Dodatkowe informacje w dokumentacji Xiaomi Miio - Home Assistant i na forum Xiaomi IR Remote Commands - Configuration - Home Assistant Community.

@macek - dzięki.
Przeglądałem to, jednak szukam rozwiązania bardziej “przystępnego” nie bardzo ogarniam co gdzie wpisać. Czytania Hejdom unikam, zazwyczaj wprowadzają więcej chaosu niż pomagają, zwłaszcza dla osób początkujących. Kilka razy straciłem mnóstwo czasu bo coś było niedopisane lub zrobione po łebkach.

To niestety nie jestem wstanie pomóc, sorry.

Niestety nie mam czegoś takiego jak IR sender wyprodukowany przez Chuangmi, ale w twoim configuration.yaml jest “o kilka kilometrów” kodu za mało, patrząc na dokumentację

remote:
  - platform: xiaomi_miio
    name: "nadajnik IR"
    host: 192.168.1.38
    token: xxxxxxx
    commands:
      wlacz_klime:
        command:
          - raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=
      wylacz_klime:
        command:
          - raw:Z6UFANE_jakies_inne_takie_krzaki_AAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=

oczywiście kody RAW powyżej są z czapy (pierwszy skopiowany z przykładu, a w drugim wpisałem coś zupełnie “od czapy”).

Natomiast w lovelace w edytorze kart tworzysz sobie karty typu button, jeśli tych klawiszy ma być więcej sugeruję użycie karty typu grid (siatka), jeśli gdzieś nie skopałem wcięć to taki kod stworzy 2 klawisze w siatce (kod dla edytora kart lovelace)
dokumentacja jest przestarzała w tym miejscu bo type: entity-button został zastąpiony przez type: button

type: grid
cards:
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: wlacz_klime
        entity_id: remote.xiaomi_miio_ir
    hold_action:
      action: more-info
    show_icon: true
    show_name: true
    entity: remote.xiaomi_miio_ir
    icon: 'mdi:radiobox-marked'
    name: Odpal Klimkę
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: wylacz_klime
        entity_id: remote.xiaomi_miio_ir
    hold_action:
      action: more-info
    show_icon: true
    show_name: true
    entity: remote.xiaomi_miio_ir
    icon: 'mdi:radiobox-blank'
    name: Zgaś Klimkę
square: true
columns: 2

Szopen, dziękuję. Mam już przycisk i wpisane komendy. Tak wygląda wpis w configuration.yaml

remote:
  - platform: xiaomi_miio
    host: 192.168.1.38
    token: Token
    slot: 1
    timeout: 30
    hidden: false
commands:
      wlacz_klime:
        command:
          - raw:Z6XHAB8CAABHBgAANhEAAFMRAABnFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjEAAQEAAAEAAAEAAAEBAAEAAAABAQEBAQEBAQAAAAAAAAEBAAEAAAABAAABAAEBAQQCMQABAQAAAQAAAQAAAQEAAQAAAAEBAQEBAQEBAAAAAAAAAQEAAQAAAAEAAAEAAQEBAA
      wylacz_klime:
        command:
          - raw:Z6XHABsCAABTBgAARBEAAGoUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiEAAQEAAAEAAAEAAAEBAAEAAQEBAQABAQEAAAAAAQAAAQEBAAAAAAAAAAABAQEBAQMCIQABAQAAAQAAAQAAAQEAAQABAQEBAAEBAQAAAAABAAABAQEAAAAAAAAAAAEBAQEBAA

Przycisk też zrobiony zgodnie z Twoją instrukcją:

type: grid
cards:
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: wlacz_klime
        entity_id: remote.xiaomi_miio_192_168_1_38
    hold_action:
      action: more-info
    show_icon: true
    show_name: true
    entity: remote.xiaomi_miio_192_168_1_38
    icon: 'mdi:radiobox-marked'
    name: Klimatyzacja ON
  - type: button
    tap_action:
      action: call-service
      service: remote.send_command
      service_data:
        command: wylacz_klime
        entity_id: remote.xiaomi_miio_192_168_1_38
    hold_action:
      action: more-info
    show_icon: true
    show_name: true
    entity: remote.xiaomi_miio_192_168_1_38
    icon: 'mdi:radiobox-blank'
    name: Klimatyzacja OFF
square: true
columns: 2

Niestety nie działa. Nie wysyła żadnego sygnału. Jeśli wydaję komendę przez aplikację Xiaomi to widać (prze aparat w tel) mrugającą diodę, po wciśnięciu przycisku w HA nie dzieje się nic.
Ma ktoś jakieś pomysły?

Przede wszytkim masz złe wcięcia - ilość spacji ma znaczenie (i to wręcz kluczowe dla działania lub jego braku), edytowałem twojego posta, bo jeśli nie użyjesz znacznika formatowania, to wklejony tekst jest zasadniczo bezużyteczny - zwróć uwagę na linijki z ``` które dodałem do twojego tekstu (są konieczne by forum wyświetliło tekst z takimi wcięciami, jakie masz w faktycznej konfiguracji).
Więc sprawdź czy masz dokładnie tak jak się to wyświetla teraz (teraz jest źle np. przed commands: ale tak było w twojej wklejce).

Głowy sobie nie dam za to uciąć (mam inny transmiter niż xiaomi), ale kody RAW zawsze się u mnie kończą znakiem “=” (a nawet podwójnym “==”, ale to też kwestia tego czym sterujemy) podobnie jak w tych przykładowych z dokumentacji dla twojego sprzętu, z tego co widzę większość modeli Chuangmi nie obsługuje niczego innego niż RAW, więc sugeruję sprawdzić u źródła poprawność kodów, być może musisz też podać prędkość transmisji - to ta wartość za kodem RAW po dwukropku (w przykładowej konfiguracji jej nie dołączyłem, ale tu raczej trzeba się kierować wskazówkami ze źródła kodów, którego nie podałeś, bo przykładowa 38400 jest chyba standardem, w każdym razie jest domyślna i można ją pominąć).

Zakładam, że w prawdziwej konfiguracji masz prawdziwy token, slot moim zdaniem jest zbędny i timeout chyba też (jeśli nie będziesz sam uczył kodów).

W kwestii kodu karty - jeśli się wyświetlają 2 przyciski, to kod jest prawdopodobnie poprawny, oczywiście gdy uzyskasz działanie to sugeruję jego modyfikację w/g potrzeb (specjalnie przygotowałem typową kartę tylko z 2 przyciskami, aby była prosta w weryfikacji i przeróbkach).

PS Skoro jesteś w stanie zweryfikować czy transmiter wysyła cokolwiek przy pomocy aparatu fotograficznego smartfona, to trzeba by też później rozróżnić czy nie wysyła (konfiguracja jest w tej chwili błędna, więc to możliwe) czy kody RAW są złe (możesz wysłać np. jakiś typowy kod włączający tv i sprawdzić czy reaguje).

@szopen - dzięki za rady. Niestety nie działa, chyba odpuszczę sobie, brakuje mi już cierpliwości.

Oczywiście token jest prawidłowy, nie udostępniam go.
Tak wygląda aktualny wpis w configuration.yaml

remote:
  - platform: xiaomi_miio
    name: "IR" 
    host: 192.168.1.38
    token: tutaj jest wpisany prawidłowy token
    commands:
      wlacz_klime:
        command:
          - raw:base64:Z6XHAB8CAABHBgAANhEAAFMRAABnFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjEAAQEAAAEAAAEAAAEBAAEAAAABAQEBAQEBAQAAAAAAAAEBAAEAAAABAAABAAEBAQQCMQABAQAAAQAAAQAAAQEAAQAAAAEBAQEBAQEBAAAAAAAAAQEAAQAAAAEAAAEAAQEBAA
      wylacz_klime:
        command:
          - raw:base64:Z6XHABsCAABTBgAARBEAAGoUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiEAAQEAAAEAAAEAAAEBAAEAAQEBAQABAQEAAAAAAQAAAQEBAAAAAAAAAAABAQEBAQMCIQABAQAAAQAAAQAAAQEAAQABAQEBAAEBAQAAAAABAAABAQEAAAAAAAAAAAEBAQEBAA 

Kody znalazłem na stronie:

Post użytkownika jfamaral

Jeśli chodzi o kod karty to jest jak najbardziej poprawny.

PS. Jak wklejać wpisy *.yaml tak aby wyświetlało się tak jak w edytowanych postach?

Zajrzyj do swojego posta gdzie wstawiłem linijki z ```

A w kwestii zasadniczej:

  1. Skonwertowałeś te kody do base64? Może je trzeba wkleić 1:1 więc to powinno być
          - raw:Z6XHAB8CAABHBgAANhEAAFMRAABnFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjEAAQEAAAEAAAEAAAEBAAEAAAABAQEBAQEBAQAAAAAAAAEBAAEAAAABAAABAAEBAQQCMQABAQAAAQAAAQAAAQEAAQAAAAEBAQEBAQEBAAAAAAAAAQEAAQAAAAEAAAEAAQEBAA

albo

          - raw:base64:WjZYSEFCOENBQUJIQmdBQU5oRUFBRk1SQUFCbkZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWpFQUFRRUFBQUVBQUFFQUFBRUJBQUVBQUFBQkFRRUJBUUVCQVFBQUFBQUFBQUVCQUFFQUFBQUJBQUFCQUFFQkFRUUNNUUFCQVFBQUFRQUFBUUFBQVFFQUFRQUFBQUVCQVFFQkFRRUJBQUFBQUFBQUFRRUFBUUFBQUFFQUFBRUFBUUVCQUE=

Powyżej jest 2x ten sam kod tylko w różnych formatach (czyli dobrze kojarzyłem, że jest na końcu znak “=” jak widać jest on w base64)
W dokumentacji masz opisane jaki transmiter w jakim formacie kody obsługuje (sorry nie chce mi się jej kolejny raz czytać), jeśli to base64 to poeksperymentuj z konwersją tam

2.Próbowałeś wysłać jakiś kod przeznaczony dla telewizora/amplitunera czy czegokolwiek co masz w domu i istnieją do tego kody?