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.


Posted

in

, ,

by

Comments

Deja un comentario

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