Node-red w telewizorze philips

HA w tym przypadku nic nie zapamiętuje, sprawdza tylko czy amplituner przełączył się na dane wyjście i uruchamia akcję. Możesz zrobić druga automatyzację dla włączania. Wyzwalacz to przejście amplitunera w stan ON, warunek to odpowiednie wyjście na amplitunerze a akcja to najpierw opóźnienie np 30s a potem wywołanie akcji na telewizorze. Opóźnienie możesz metodą prób i błędów ustawić tak aby działało możesz też dać opóźnienie przed sprawdzeniem stanu wyjścia na amplitunerze bo może raportować po pewnej chwili w nie zaraz po włączeniu. Jak będziesz miał otwarte okno automatyzacji to pokaże Ci się na żywo czy wyzwalacz został wywołany i czy warunek spełniony.

1 polubienie

No właśnie zrobiłem przed przeczytaniem waszych wiadomości pewną próbę. Dodałem opóźnienie 7 sekund i kolejną akcję żeby wykonał skrypt ADB żeby przełączyć na HDMI 2. Bez rezultatu. Dziwne że gdzieś po około minucie może mniej przełączy się samoczynnie na odpowiednie HDMI 2.

Wnioskuję że kiedy włączam Denon z pilota on potrzebuje jakiegoś czasu zanim nawiąże połączenie z Home Assistant i tu jest problem.

Nie wiem Yamaha u mnie reaguje natychmiastowo.
Może integracja Denona jest kiepsko napisana.

Zrobiłem tak jak napisał @Aleksej ale nadal nie zareagował odpowiednio HA pod włączeniu Denon

Już po 5 sekundach TV jest działający ale wolałem na próbę dać więcej i bez rezultatu.

No to nie ma prawa działać! W warunkach masz że musi spełnić oba warunki. Skasuj to co masz w warunkach i daj element konstrukcyjny i tam lub i wtedy wybierze że ma spełnić jeden lub drugi warunek.

Na razie zrobiłem 1 warunek żeby nie robić dodatkowych problemów ale i tak nie wyzwala po 7 sekundach HDMI 2

Po pierwsze to weź daj 3 kropki w prawym górnym rogu, tryb yaml i wklei tutaj co masz, bo na screenie to nie wszystko widać. Po drugie sprawdź ślady. No i pisałeś że Denon nie od razu wysyła dane do HA, więc nie ma jak sprawdzić warunku, możesz spróbować skasować obecny warunek, w wykonaj po opóźnieniu dać warunek aby sprawdził źródło i dopiero akcję wysłania poleceni do tv.

alias: "HDMI 2 Włącz Kino "
description: ""
triggers:
  - device_id: d616361129d69b45ad7f188b11d8f6be
    domain: media_player
    entity_id: 5d39fab03b76d0c1734b4e92459acaa7
    type: turned_on
    trigger: device
conditions:
  - condition: state
    entity_id: media_player.denon_avc_x3800h
    attribute: source
    state: VU SOLO 4K
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 7
      milliseconds: 0
  - action: androidtv.adb_command
    metadata: {}
    data:
      command: >-
        adb shell am start -a android.intent.action.VIEW -d
        content://android.media.tv/passthrough/com.mediatek.tis%2F.HdmiInputService%2FHW3
        -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
    target:
      device_id: ddaf462a2113ce066b92cc4178ea453c
      area_id: salon
mode: single

Co masz na myśli pisząc sprawdź ślady?
Co do Denona i tego że nie od razu wysyła dane do HA to są tylko moje podejrzenia.
Czy mogę to w jakiś sposób sprawdzić? Gdzie tu są jakieś logi?

Co do ślady to takie coś mam

Wykonano: 1 marca 2025 15:40:16
Wynik:

result: false

entity_id/0
Wykonano: 1 marca 2025 15:40:16
Wynik:

result: false
state: TV Audio
wanted_state: VU SOLO 4K

entity: media_player.denon_avc_x3800h

W ślady znalazłem coś takiego tylko który warunek nie został spełniony?

Ślady to są właśnie logi z przebiegu automatyzacji.
Nie bój się klikać - ślady są w “kebab menu” danej automatyzacji.

Czyli warunek nie został spełniony. Jak szybko widać zmianę stanu encji możesz sobie sprawdzić w narzędziach deweloperskich, stany i tam wkleić media_player.denon_avc_x3800h i po włączeniu amplitunera zobacz jak szybko zmienia się stan i jak szybko w atrybutach pojawia się stan wejścia.

@Aleksej
Pisałeś:
w wykonaj po opóźnieniu dać warunek aby sprawdził źródło i dopiero akcję wysłania poleceni do tv.

W jaki sposób dać taki warunek żeby sprawdzał stan jakie jest źródło na Denon wybrane?

Sprawdzałem jak szybko się zmieni stan wejścia Denon z “off” na “on” i trwało to ponad mniej więcej 1,5 minuty. Więc bardzo długo. Niema szans żeby to dobrze działało :frowning:
Po dłuższym teście wygląda na to że ta akcja w ogóle nie działa. "Kiedy Denon jest włączony uruchom skrypt do HDMI 2.
Okazuje się że TV się przełączał tylko dzięki poprzedniej akcji Czyli "Kiedy Denon zmieni źródło na media player przełącz tv na HDMI 2. Jak Wyłączyłem tą akcję to wcale się nie przełącza na HDMI 2.
Dziwne to jest. Nie wiem jak do końca to działa ale zakładam że to Home Assistant odpytuje Denon czy jest włączony? Czy da się jakoś zwiększyć częstotliwość tych zapytań?

Prawidłowo napisana integracja nie odpytuje, tylko nasłuchuje i dostaje ze źródła jakieś informacje (dzięki temu to działa w real-time).

Ale jeśli Denon nie publikuje, to sorry, wtedy pozostaje metoda odpytywania (szczerze mówiąc w takim razie Denon nie powinien mieć wbudowanej integracji w HA, bo to nie spełnia wymagań dla integracji wbudowanych w HA…)

Sprawdza Ci dobrze źródło w Denon:

result: false
state: TV Audio
wanted_state: VU SOLO 4K

Tu masz info że po uruchomieniu automatyzacji jest na wyjściu TV Audio a nie VU SOLO 4K. Jeśli tak długo się uruchamia Denon (masz przez wi-fi podłączony czy po kablu?) to po akcji włączenia nie ustawiaj warunku tylko w wykonaj daj element konstrukcyjny, czekaj na wyzwalacz i tam daj jaki źródło ma być w amplitunerze aby wykonał dalsze akcje.

I HA nie odpytuje czy Denon jest włączony, jak w kiedy masz ustawione że ma coś zrobić jak amplituner się włączy to jak się włączy wykona dalsze akcje.

Niektóre urządzeni mogą usypiać kartę wi-fi jak są w standby aby oszczędzać energię, tak mam w swoim tv LG, więc po włączeniu trzeba poczekać chwilę aż karta wi-fi się uruchomi i podłączy z netem i ustawi stan w HA. Po kablu nie ma tego problemu.

Panowie częściowy problem odnaleziony. Zacząłem sprawdzać ustawienia Denon i miałem włączoną opcję żeby jak Denon jest w Standby nie miał aktywnej karty sieciowej kablowej. Oczywiście używam tylko kabla bo wiem że jest niezawodny :). W tym momencie już za każdym razem Przełącza mi poprawnie na HDMI 2 telewizor zarówno w SAT i Media Palyer. Pojawił się jednak jeszcze inny problem.
Nagle Denon nie wykonuje mi polecenia które jest wysyłane przez mój pilot Harmony w makro. Czyli Włącz Denon → Przełącz na SAT i tego nie robi. Muszę powtórzyć makro żeby załapało. Nie wiem dlaczego tak się stało.
Edit.
Dokładniej jest tak.
Pilot włącza Denon i przełącza na Media Player po kilku sekundach Home Assistant przełącza Denon na źródło które było wcześniej włączone przed wyłączeniem zestawu przykładowo na SAT.
Przecież HA miał sprawdzać jaki jest stan źródeł na nie przełączać nic w denon.

2 polubienia

Ale to Ty decydujesz co się stanie, HA sam z siebie niczego nie przełącza.

No to podpowie mi ktoś gdzie robię błąd?

alias: Nowa automatyzacja
description: ""
triggers:
  - trigger: state
    entity_id:
      - media_player.denon_avc_x3800h
    attribute: source
    to: Media Player
    for:
      hours: 0
      minutes: 0
      seconds: 5
conditions: []
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: androidtv.adb_command
    metadata: {}
    data:
      command: >-
        adb shell am start -a android.intent.action.VIEW -d
        content://android.media.tv/passthrough/com.mediatek.tis%2F.HdmiInputService%2FHW3
        -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
    target:
      device_id: ddaf462a2113ce066b92cc4178ea453c
      area_id: salon
mode: single

alias: Philips TV Salon
description: ""
triggers:
  - trigger: state
    entity_id:
      - media_player.denon_avc_x3800h
    attribute: source
    to: TV Audio
    for:
      hours: 0
      minutes: 0
      seconds: 5
conditions: []
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: switch.toggle
    metadata: {}
    data: {}
    target:
      device_id: 4b3d1649ce4f49cb13b732d1a851aec8
      area_id: salon
      entity_id: switch.salon_screen_state
mode: single
alias: SAT
description: ""
triggers:
  - trigger: state
    entity_id:
      - media_player.denon_avc_x3800h
    attribute: source
    to: VU SOLO 4K
conditions: []
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: androidtv.adb_command
    metadata: {}
    data:
      command: >-
        adb shell am start -a android.intent.action.VIEW -d
        content://android.media.tv/passthrough/com.mediatek.tis%2F.HdmiInputService%2FHW3
        -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
    target:
      device_id: ddaf462a2113ce066b92cc4178ea453c
      area_id: salon
mode: single

Jak by nie to że się bez powodu samo przełącza mi na źródło które było poprzednio używane to już by mi wszystko działąło.

Problem jest taki, że używasz nieprzyjaznych dla ludzi identyfikatorów, więc nikt inny niż Ty nie może wiedzieć co naprawdę robisz.

Taka mała podpowiedź - zamiast urządzeń, które mają takie totalnie losowe identyfikatory używaj konkretnych encji o przyjaznych nazwach, wtedy ktokolwiek będzie w stanie analizować co tam robisz.

Jakkolwiek widzę, że targetem są 2 różne urządzenia (nie wiem co to jest z powodu j/w), więc na 100% nie sterujesz wyłącznie telewizorem.

Co masz na myśli pisząc??

zamiast urządzeń, które mają takie totalnie losowe identyfikatory używaj konkretnych encji o przyjaznych nazwach

Co masz na myśli pisząc identyfikator urządzenia?

Ogólnie chodzi mi tylko o sterowanie telewizorem.

Pisałem na samym początku że korzystam z pilota Logitech Harmony i on prawie wszystkim steruje poza felernymi portami HDMI w telewizorze.

Pilot załatwia sprawę włączenia DENON i przełączenia DENON na odpowiednie wejście (SAT/Media Player/ TV AUDIO)

Ogólnie wygląda to tak:

  1. Dekoder SAT (VU SOLO 4K) → Amplituner DENON Wejście HDMI: Port: SAT (który samoistnie zmienił nazwę na VU SOLO 4K) → Amplituner DENON Wyjście HDMI eARC → TV Philips HDMI 2 eARC
  2. Media Player → Amplituner DENON Wejście HDMI: Port: Media Player → Amplituner DENON Wyjście HDMI eARC → TV Philips HDMI 2 eARC
  3. Telewizor Philips HDMI 2 eARC wysyła dźwięk po eARC → DENON na wejście TV AUDIO.

Punkt 3 w automatyce nie jest potrzebny bo wszystko załatwia Pilot Logitech. Zacząłem tylko kombinować przez to że zmieniał się sam w DENON port HDMI na taki który był przed włączeniem DENON.

Czyli przykładowo:
Oglądam coś na zestawie z opcją 1. Dekoder Sat. Wyłączam cały sprzęt. Następnie włączam pilotem Opcję 2 Media Player. Pilot włącza Denon i przełącza go na port HDMI (Media Player) co jest prawidłowe ale po sekundzie albo 2 Home Assistant przełącza DENON na HDMI na którym jest Dekoder SAT.

Wygląda to tak jakby Home Assistant pamiętał na którym źródle został wyłączony Amplituner DENON i ustawiał to źródło na nim.

Nie umiem tego prościej opisać.
Nie robiłem żadnej automatyki żeby Home Assistant zmieniał coś w DENON. To co zrobiłem miało sprawdzać tylko stan w jakim DENON się znajduje i następnie posłać polecenie do telewizora żeby wybrał port HDMI 2 przy opcji Media player lub SAT.

To że budując automatyzację użyłeś urządzeń z listy zamiast wybrać ich konkretne encje (na nazwy których masz faktyczny wpływ), to czyni tą automatyzację niezdatną do głębszej analizy przez kogoś na drugim końcu internetu, ale sam też będziesz zadowolony z czytelności kodu, gdy nie będziesz korzystał z czegoś co “wygenerował komputer wyłącznie dla siebie”.

Jeśli HA coś zmienia to w logu tego urządzenia będzie co HA zmienił i z jakiego powodu, a jeśli urządzenie zmieni swój stan niezależnie od HA (pilot, sterowanie przez CEC itd.), to będziesz miał w logu tylko zmianę stanu, ale bez informacji co ją spowodowało.