Erreur dans un Template

Bonjour à toutes et tous,

J’ai un soucis sur le template de mes volets:
Voici le code:

  - platform: template
    sensors:
      position_volets_chambres_amis:
        friendly_name: "Position volets Chambres d'amis"
        unit_of_measurement: "%"
        value_template: >
          {% set ns = namespace(total = 0,  list= states['cover.volets_chambres_d_amis'].attributes.entity_id ) %}
          {% set count =ns.list|count %}
          {%if count > 0 %}
            {%- for volet in ns.list %}
              {% set ns.total = ns.total + (states[volet.replace("cover.volet_", "sensor.position_")].state | int(default=0))  %} 
            {%- endfor %}
            {{ (ns.total / count) | round(0) }}
          {% else %}
           0
          {% endif %}

Le soucis est que quand j’active ( monter/descente) un volet (ou un groupe) le % de la position passe de 0 à 100 (on inversement) directement au lieu d’afficher le % de la position au fur a mesure du mouvement du volet.
Je sais pas si je suis très clair ^^

Quelqu’un a une idée de la correction a apporter?
Merci d’avance.

Hello,

Déjà est-ce que l’état du sensor de position évolue en temps réèl, tu peux voir qaund tu l’affiches la valeur changer ?
Ensuite bosser avec des logiques un peu plus complexes avec des listes c’est bien quand tu as un nombre in déterminé ou très variable, mais là tu ne dois pas avoir des 10aines de volets par chambre je suppose et tu ne vas pas ajouter des volets tous les 4 matins, donc ce serait pas plus facile pour la compréhension et le debug de directement faire des calculs avec les noms complets des entités?

Alors oui, j’ai l’état du sensor qui évolue en temps réel (moins le tems de latence :wink: )
J’ai pas compris la deuxième partie …

Voici les différentes chose que j’ai pour mes volets:
Je récupère/envoi les infos et les commandes via MQTT.

Exemple d'un volet
- platform: template
  covers:
    volet_baie_suite:
      friendly_name: "Baie Chambre Parentale"
      open_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'up'
      close_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'down'
      stop_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'stop'
      set_cover_position:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: "{{position}}"
Exemple d'un groupe de volet
- platform: group
  name: Volets Suite Parentale
  entities:
    - cover.volet_baie_suite
    - cover.volet_pano_p
    - cover.volet_sdb_p
Sensor MQTT de la position
- name: "position_baie_suite"
  state_topic: "nodered/volet/baie_Suite/get"
  unit_of_measurement: '%'
Le template de la position d'un groupe de volet
  - platform: template
    sensors:
      position_volets_suite:
        friendly_name: "Position volets Suite Parentale"
        unit_of_measurement: "%"
        value_template: >
          {% set ns = namespace(total = 0,  list= states['cover.volets_suite_parentale'].attributes.entity_id ) %}
          {% set count =ns.list|count %}
          {%if count > 0 %}
            {%- for volet in ns.list %}
              {% set ns.total = ns.total + (states[volet.replace("cover.volet_", "sensor.position_")].state | int(default=0))  %} 
            {%- endfor %}
            {{ (ns.total / count) | round(0) }}
          {% else %}
           0
          {% endif %}
La carte lovelace d'un volet
- type: custom:mushroom-cover-card
  entity: cover.volet_baie_suite
  fill_container: false
  primary_info: name
  show_position_control: true
  show_tilt_position_control: false
  show_buttons_control: true
  tap_action:
    action: none
  hold_action:
    action: none
  double_tap_action:
    action: none

Voila je crois que j’ai tout mis ^^

Hello,

J’ai résolu le soucis en ajoutant la position du volet dans le template:

- platform: template
  covers:
    volet_baie_suite:
      friendly_name: "Baie Chambre Parentale"
      position_template: "{{ states('sensor.position_baie_suite') }}"
      open_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'up'
      close_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'down'
      stop_cover:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: 'stop'
      set_cover_position:
        service: mqtt.publish
        data_template:
          topic: 'nodered/volet/baie_Suite/set'
          payload: "{{position}}"
      icon_template: >-
        {% if is_state('sensor.position_baie_suite', '100') %}
          mdi:window-shutter-open
        {% elif is_state('sensor.position_baie_suite', '0') %}
          mdi:window-shutter
        {% else %}
          mdi:window-shutter-alert
        {% endif %}