Envio de app utilizada en Nvidia Shield (media_player) a un dispositivo LaMetric Time localmente.

El siguiente código ejemplo permite que cuando se este utilizando una app determinada se muestre el icono y el nombre en LaMetric. Con cada cambio de aplicación LaMetric mostrara el nombre y el icono.

Primero hay que hacer el siguiente comando rest dentro de configuration.yaml

rest_command:
  lametric_app_shield:
    url: https://<IP LAMETRIC>:4343/api/v2/device/notifications
    method: POST
    payload: >
      {% set icon = {
        'Netflix': '1442',
        'YouTube': '5941',
        'Google Cast': '37237',
        'Prime Video': '37779',
        'Disney+': '1266',
        'com.disney.starplus': '8175',
        'com.hbo.hbonow': '52503',
      } %}
      {
        "model": {
          "frames": [
            {
              "icon": "{{ icon.get(app_name) }}",
              "text": "{{ text }}"
            }
          ]
        }
      }
    headers:
      Content-Type: application/json
    verify_ssl: false
    username: dev
    password: '<API>'

Se debe de colocar en el codigo la API y la IP interna del dispositivo LaMetric.

Después en la sección de sensores generamos un sensor que nos proporcione la aplicación utilizada por el dispositivo media_player.

  - platform: template
    sensors:
      shield_app_name:
        friendly_name: "Nombre de App utilizado en SHIELD"
        value_template: "{{ state_attr('media_player.shield', 'app_name') }}"

Por ultimo hay que generar la automatización, este seria el código yaml:

alias: Funcionalidad - APP Shield a Lametric
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.shield_app_name
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: sensor.shield_app_name
        state: unknown
      - condition: state
        entity_id: sensor.shield_app_name
        state: unavailable
action:
  - service: rest_command.lametric_app_shield
    data_template:
      text: "{{ states('sensor.shield_app_name') }}"
      app_name: "{{ state_attr('media_player.shield', 'app_name') }}"
mode: single

Básicamente este código lo que hace es cuando hay una aplicación reproduciendo (si abren la aplicación y no estan reproduciendo nada no muestra el mensaje) vídeo en mi dispositivo Shield se envía en paralelo una petición rest a la API dentro de lametric y este muestra el mensaje y icono que se muestra como en la imagen superior.

Entradas relacionadas

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.