Problème pour faire une barre progressive

Mon problème

Bonjour,

Tout d’abord, je m’excuse par avance si cela fait doublon avec un autre topic, mais malgré mes recherches, je n’ai rien trouvé.

J’ai vu que pour les Box Android TV (Shield et Player Pop pour ma part) que des sensors remonte des informations en attributs, comme le titre du media lu, l’artiste si disponible, la durée de la piste lu et la position actuelle. Je me suis dis intéressant, car cela peut me permettre de savoir quand les enfants regardent un film avec VLC dans la chambre via le Player Pop, cela me permet de voir le temps restant sans venir les déranger pendant leur visionnage.

Pour plus de facilité et surtout pour la création d’un sensor temps restant, j’ai donc créé des templates sensors, pour les avoir directement en format horaire. Car les attributs sont en format décimal en secondes. Je précise que tous mes sensors sont créés dans le configuration.yaml

Pour cela, voici les templates :

  - platform: template
    sensors:  
      tmp_media_total_shield:
        friendly_name: "Temps Total"
        icon_template: mdi:timer
        value_template: "{{ state_attr('media_player.shield2', 'media_duration') | float(0) | timestamp_custom('%H:%M:%S', 0) }}"
      tmp_media_actual_shield:
        friendly_name: "Temps Actuel"
        icon_template: mdi:timer-play-outline
        value_template: "{{ state_attr('media_player.shield2', 'media_position') | float(0) | timestamp_custom('%H:%M:%S', 0) }}"
      tmp_media_remain_shield:
        friendly_name: "Temps Restant"
        icon_template: mdi:timer-outline
        value_template: "{{ ((state_attr('media_player.shield2', 'media_duration') | float - state_attr('media_player.shield2', 'media_position') | float) | round(3)) | timestamp_custom('%H:%M:%S', 0) }}"

Et voici un visuel :

bug_progressbar

Et le code :

      - type: entities
        entities:
          - entity: media_player.shield2
            type: attribute
            attribute: media_artist
            name: Artiste
            icon: mdi:account-music-outline
          - entity: media_player.shield2
            type: attribute
            attribute: media_title
            name: Titre
            icon: mdi:music
          - entity: sensor.tmp_media_actual_shield
          - entity: sensor.tmp_media_remain_shield
          - entity: sensor.tmp_media_total_shield

Bon, les infos sont pour la Shield mais est identique pour le Player Pop. Car mon problème se situe après et que pour le moment, j’essaye de le faire avec la Shield.

Je me dis, pourquoi ne pas aller plus loin en créant une barre progressive. Là, non plus, pas de souci. Pour plus de simplicité, j’ajoute un nouveau sensor, avec les attributs et en utilisant timer-bar-card et voici l’ajout

  - platform: template
    sensors:  
      tmp_media_shield:
        friendly_name : "Temps Restant"
        icon_template: mdi:timer-outline
        value_template: >-
          {% if states('media_player.shield2') == 'playing' %}
           active
          {% else %}
           idle
          {% endif %}
        attribute_templates :
          duration: "{{ state_attr('media_player.shield2', 'media_duration') | float(0) | timestamp_custom('%H:%M:%S', 0) }}"
          remaining: "{{ state_attr('media_player.shield2', 'media_duration') | float(0) | timestamp_custom('%H:%M:%S', 0) }}"

Le duration et le remaining ont le même code, c’est normal. Le temps fonctionne correctement

Et le code :

      - type: custom:timer-bar-card
        entities:
          - sensor.tmp_media_shield
        bar_direction: rtl
        invert: true
        guess_mode: true
        bar_foreground: '#0099cb'
        bar_background: '#0039cb'
        bar_radius: 5px
        card_mod:
          style: |
            ha-card {
              margin-top: -25px;
            }

Je me dis youpi, tout s’affiche mais c’est la catastrophe.

En fait, quand cela passe de Inactif en Actif, tout va bien. Mais ma femme a mis Spotify sur la Shield, et c’est du n’importe quoi. On le voit sur la capture plus haut. Car s’il y a un changement de chanson, la barre progressive n’est pas actualisée. Il faut obligatoirement un passage en idle du sensor de la barre progressive et un retour en active. Chose que Spotify n’effectue pas.

Du coup, je bloque sur cette situation. Je me suis dis que peut-être faire une automatisation, mais je ne sais pas s’il est possible d’effectuer un forçage d’état pendant une très courte durée et qu’il reprend son véritable état par la suite…

Je vous remercie par avance pour la lecture de mon pavé, mais j’ai voulu essayer d’être le plus complet possible.

Ma configuration


System Information

version core-2022.10.5
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.10.5
os_name Linux
os_version 5.19.0-0.deb11.2-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.28.3
Stage running
Available Repositories 1204
Downloaded Repositories 58
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 6
resources 41
views 15
mode storage
Recorder
oldest_recorder_run 22 octobre 2022 à 17:30
current_recorder_run 1 novembre 2022 à 10:30
estimated_db_size 1804.44 MiB
database_engine sqlite
database_version 3.38.5

Salut @Yoanf26

Désolé je ne vais pas répondre à ta question directement, mais il y’a une intégration hacs « mini-media-player » qui pourrait peut-être faire le taf sans trop de bidouilles.

Ca ressemble à ça :

image

Salut @Herbs

Ah bah, quand je veux chercher simple, bah je n’avais pas vu cette intégration.

Du coup, prise de tête pour rien. :sweat_smile:

Merci pour cette simplicité de réponse.

Bon aller, je vais faire le ménage dans mes créations de sensors :joy: :joy:

1 « J'aime »