Jak dodać switch mqtt w configuration.yaml?

Witam wszystkich mam pytanie odnośnie pilota na podczerwień zigbee (zdjecie 1). Mam go dodanego do ha. Jedyne encje jakie wyświetla to te (zdjecie 2). Dowiedzialem się że musze utworzyc w configuration.yaml switch. W ktorym ma byc zawarty payload do uruchomienia projektora. Pilot napewno dziala ponieważ jak wchodzę w iterfejs zigbe2mqtt i tam okienko odpiwedzialne za wysylanie kodów wkleje moj do projektora to projektor sie wlacza. Próbowałem ten switch dodać (zdjecie 3) ale wychodzi taki blad przy sprawdzeniu konfiguracji (zdjecie 4).




Link do dokumentacji tego pilota .

Czytam dokumentacje oraz instrukcje mqtt o funkcji publish ale nic z tego nie rozumiem. Nie jestem programistą . Z góry dziękuję za pomoc. Mam teraz urlop i wzialem sie za walke z kilkoma projektami ktore leżały w szafie i czekały na wolny czas. Powoli jednak sie zastanawiam czy nie kupic jakiegos broadlinka. :man_facepalming:

Tu masz ideę automatyzacji (być może będą drobne różnice w najnowszym Z2M)
https://github.com/Koenkk/zigbee2mqtt/issues/11633#issuecomment-1146861210

@szopen
Dziekuje za podpowiedź spróbuję wykonac taki skrypt i zobacze czy pójdzie. Jezeli bedzie śmigać to potem juz górki button i mam sterowanie.

Bezpośrednie wysyłanie z karty jeżeli będzie u ciebie działać, a nie masz usługi zaczynającej się od remote.

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: remote.send_command
  service_data:
    command: >-
      b64:JgBQAAABJZMTExITEzYTEhIUEhMTEhI3EhMSFBI3ExITNxM2EjcTExM2EjcTNxQ1EzcTNhI4EjcTEhITEhQSExITEhMSExITEgAFYgABJkoSAA0FAAAAAAAA
    device: remote.broadlink_remote
  target:
    entity_id:
      - remote.broadlink_remote
    device_id: a136f4d6d2e0d9a03e9351de815f89a1
entity: remote.broadlink_remote

Screenshot - 25.12.2022 , 22_40_44

@artpc
Niestety sposob z skryptem nie dziala albo ja cos źle robię.

Usługę remote mam.

pogrubiony tekst

:thinking:
359bd209b3c49ac265f2499ecdcb5037cb0e3377_2_134x500

@krskrab
Wywołuje usługę ale projektor sie nie uruchamia.

Prawdopodobnie działa jak na Broadlink`u

Nauka kodów:
1.Zaznaczasz które urządzenie
2.Nadajesz nazwę urządzenia (Projektor)
3.Nadajesz nazwę funkcji ( on/off)
Wywołaj usługę

Otrzymasz powiadomienie:
ScreenShot_20221225232049
Naciśnij w pilocie klawisz (on/off)

Pamiętaj “Projektor” i “on/off” choć HA zapiszę ustawienia w config\.storage
Plik z nazwą “remonte”

Test:
“Projektor” i “on/off”


Powinien wysłać kod do “projektora”

Dodaj skrypt w taki sposób


/
Do nauki kodów (foto 1) można wpisać nazwę wszystkie przyciski na pilocie: on/off, stop : , . . przedzielając je (nie pamiętam jakim znakiem)
W ustawieniach Samba należy ostawić dostęp do ukrytych plików by mieć dostęp do folderu config\.storage
/

Niestety nie działa to tak jak ja broadlinku. Nie mam encji takiej, a jak dodaje urzadzenie zamiast encji i wywoluje usługę to nie przychodzi powiadomienie.


Edit:

@artpc

Czy jest możliwość zrobienia tego poprzez stworzenie switcha mqtt w configuration.yaml? Niestety ale podane przez was sposoby nie działają.

Zaznacz

6edc5b2b5b4304ecd5478e3d08f002ebaefb1410_2_690x388

Nadal to samo

Edit:

Co ciekawe tutaj działa jak wkleje kod odpala projektor.

Coś na temat pilota i mqtt

/
Używasz polskich “literek”, przy konfiguracjach mogą występować błędy, zwłaszcza w mniej znanych integracjach.
Masz słaby sygnał z pilotem.
Musisz poczekać na specjalistę od MQTT, który był by w stanie utworzyć sensor lub skrypt ( są tacy na forum)

A jak go zmusić żeby połączył się z listwą na biurku lub przekaźnikiem w projektorze? Poniżej moja mapa routerów.

Edit:

Ok zaczne od zmiany friendly name na coś bez polskich znaków. Dzieki za podpowiedzi.

Z mojego doświadczenia wynika, że najlepszym sposobem parowania jest parowanie z miejsca w którym
dane urządzenie będzie stacjonowało.
Niektóre urządzenia po dodaniu do sieci Zigbee nigdy nie zmieniają “ścieżki połączeń”

Np. parowałem urządzenie w biurze a następnie zanosiłem w miejsce docelowe działało ale “gubiło się” w sieci, po parowaniu z miejsca docelowego nie zauważyłem takich problemów.
Np.2 Czujka “drzwiowa” 2 mety od włącznika światła (ruter), wymusiłem bezpośrednie parowanie .
Okazało się, że woli połączenie z oddalonym ok 10 metrów i ścianą innym ruterem.

Odbiegamy od tematu :hushed:

Spróbowałem wg. Zalecen z artykułu. Oto ślady.

Edit:

Pilot zostal sparowany w sypialni i domyślnie się tam znajduje. Koordynator w salonie 5m dalej. Ale raczej slaby zasieg mozemy wykluczyć poprzez interfejs zigbe2mmqtt jak pyszczam kod w tabelce to odpala za każdym razem projektor. Pozostaje czekać na kogoś kto może juz to ogarnął albo jest w stanie. Dziekuje jeszcze raz za podpowiedzi i zaangażowanie w temat.

Edit2:

Zmieniłem nazwę z “Pilot podczerwień” na “Pilot”

@krskrab Znalazłem jakiegos francuza któremu chyba udało sie to zrobic w node red. Możesz rzucić okiem?

Nie mam NR, Zigbee pilota, MQTT używam tylko jako pomost do Z2M i do HassAgent

Może w tym kierunku:

Dane poniżej wymyślone

service: mqtt.publish
data:
  topic: zigbee2mqtt/pilot/set
  payload: >-
    {"ir_code_to_send":
    "BTUjfBEvAuAXAQGLBuANA0ABwBtAAeADC+AHAUAbwAFAC+ADAwd0ozUjoggvAg=="}

ScreenShot_20221226132731

Konfiguracja, switch

  - name: "ZigBee Device Join"
    state_topic: "zigbee2mqtt/bridge/config/permit_join"
    command_topic: "zigbee2mqtt/bridge/config/permit_join"
    availability:
      - topic: "zigbee2mqtt/bridge/state"
    payload_on: "true"
    payload_off: "false"
    icon: mdi:cellphone-wireless
    qos: 1
    retain: true

Nie masz wymaganego command_topic: dla MQTT
Dlatego masz błędy.

Arturze co mam zrobic z tą składnią ktorą wysłałeś?

Trudno jest kopiować z *.jpg więc wklej tu swój kod switch mqtt