LG webOS Smart TV

Nie używam, więc nie podpowiem więcej, ale by logger pokazał wszelkie zdarzenia powiązane z oficjalną integracją (tą z linka w poście powyżej):

logger:
  default: warning
  logs:
    homeassistant.components.webostv: debug
1 polubienie

Takie dwa błędy jak narazie znalazłem :wink:

Logger: homeassistant.components.websocket_api.http.connection
Source: helpers/service.py:657
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 26 lipca 2022 15:27:21 (2 occurrences)
Last logged: 26 lipca 2022 15:27:23

[140535994489616] Entity media_player.salon_tv does not support this service.
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py”, line 193, in handle_call_service
await hass.services.async_call(
File “/usr/src/homeassistant/homeassistant/core.py”, line 1713, in async_call
task.result()
File “/usr/src/homeassistant/homeassistant/core.py”, line 1750, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File “/usr/src/homeassistant/homeassistant/helpers/entity_component.py”, line 204, in handle_service
await service.entity_service_call(
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 657, in entity_service_call
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Entity media_player.salon_tv does not support this service.

Logger: homeassistant.components.media_player
Source: helpers/entity_platform.py:746
Integration: Odtwarzacz mediów (documentation, issues)
First occurred: 25 lipca 2022 16:40:44 (24281 occurrences)
Last logged: 31 lipca 2022 00:50:56

Updating webostv media_player took longer than the scheduled update interval 0:00:10

Cześć. Nie chcąc dublować wątku zapytam tutaj.

  1. Czy ktoś pokusił się o integrację “pilota”, czyli aby z poziomy HA można sterować TV podobnie jak pilotem, włącznie z chodzeniem po menu czy liście VOD?

  2. Obecna integracja umożliwia włączenie i wyłączenie TV. Przejście na inne źródło umożliwia dopiero po odpaleniu telewizora. Czyli nie możemy włączyć TV od razu na np. Netflix, tak jak to mamy na pilocie, tylko najpierw włączamy, a potem przechodzimy. Można to zmienić?

  3. W jaki sposób po odpaleniu TV, HA dostaje info co jest aktualnie włączone, aby podświetlić menu odpowiednim obrazkiem. Jaka encja za to odpowiada? Chciałbym móc pobrać te informacje, a mój HA zeznaje że ma do tej integracji tylko jedną encję, która nie zwróci tej informacji.

Nie wiem czy dość jasno opisałem, ale mam nadzieję że to wystarczy :slight_smile:

Ta informacja jest w atrybutach encji [LG] webOS TV

No ok, ale jak teraz wyciągnąć z tego informacje, co aktualnie jest łączone?

Do czego zmierzam.
Mam zrobiony floorplan i przygotowane obrazki aktualnie odpalonego programu na TV na tym floorplanie.
Jeśli odpalone jest HBO, chcę aby na floorplanie na TV pojawiło się logo HBO.
Na tutce na której się wzoruje koleś ma encję “input_select.xiaomi_source_list” tutaj jest ta lista źródłowa, ale nie potrafię wyciągnąć informacji zwrotnej.

Na tej zasadzie:
Tworzymy nowy sensor w template.yaml

ScreenShot_20230307151215

Kod

    - name: "TV source_list"
      unique_id: tv_source_list
      state: >
        {% if "YouTube (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}        
          YouTube
        {% elif "inny" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
          Inny
        {% elif "inny2" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
          Inny2             
        {% else %}
          off
        {% endif %}

Następnie w karcie, zmiana obrazu w zależności od źródła
picture-elements

  - type: image
    entity: sensor.tv_source_list
    show_state: false
    show_name: false
    state_image:
      YouTube: /local/YouTube.gif
      Inne: /local/inne.jpg
      Inne2: /local/inne2.jpg
      failed: /local/nie ma.gif
    style:
      top: 70%
      left: 12%
      width: 25%


Nie mam jeszcze LG i takiej karty ale na 99% będzie działać taka konfiguracja :grinning:

To z jakiego źródła jest aktualnie odtwarzanie na LG WebOS to atrybut source:

Kod do nowego sensora

template:
  - sensor:
     - name: "TV source_list"
       unique_id: tv_source_list
       state: >
        {% if "Netflix" in state_attr('media_player.lg_webos_tv', 'source') %}        
          Netflix
        {% elif "LiveTV" in state_attr('media_player.lg_webos_tv', 'source') %}
          LiveTV
        {% elif "YouTube" in state_attr('media_player.lg_webos_tv', 'source') %}
          YouTube            
        {% else %}
          off
        {% endif %}

Przetestowany na LG działa :slightly_smiling_face:


W kodzie sensora “TV source_list” wprowadzasz swoją listę źródeł i podobnie w karcie picture-elements w zależności od źródła odpowiedni obrazek tak jak podał kolega krskrab wyżej

Można w sensorze określić jaki obraz ma być, dodając picture: i warunki

      - name: "TV source_list"
        unique_id: tv_source_list
        state: >
          {% if "YouTube (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}        
            YouTube
          {% elif "Prime Video (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
            Prime
          {% elif "Netflix" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
            Netflix            
          {% else %}
            off
          {% endif %}
        picture: >-
          {% if "YouTube (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}        
            /local/youtube.png
          {% elif "Prime Video (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
            /local/prime.png
          {% elif "Netflix" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}
            /local/Netflix.png        
          {% else %}
            off
          {% endif %}

Efekt:
ScreenShot_20230307185556
lub
ScreenShot_20230307185928
/
Zamiast lokalnego obrazka np. “/local/youtube.png” można dodać link do obrazka z Internetu
Przykład:

...
        picture: >-
          {% if "YouTube (FireTV)" in state_attr('media_player.fire_tv_192_168_68_162', 'source_list') %}        
          https://upload.wikimedia.org/wikipedia/commons/a/ac/Logo_youtube_ios_%28cropped%29.jpg
...