Volets - Position intermédiaire selon variable

Bonjour,

Dans ma carte pour gérer mes volets, j’ai ajouté un bouton pour les entrouvrir, via une variable de position. Mais je n’arrive pas à utiliser cette variable dans ma carte.

La variable est déclarée dans mon configuration.yaml :

input_number:
  volets_pourcentage_entreouvert:
    name: Volets pourcentage entre-ouvert
    initial: 15
    min: 0
    max: 30
    step: 1

Cette valeur est modifiable via une carte :

title: Paramètres
type: entities
entities:
  - entity: input_number.volets_pourcentage_entreouvert
    name: Pourcentage entre-ouvert
    icon: mdi:window-shutter-settings

Ma carte principale de commande des volets, avec custom:multiple-entity-row :
(monter / stop / descendre / intermédiaire)

2023-02-26 11_36_56-Aperçu – Home Assistant

title: Etage
type: entities
show_header_toggle: false
state_color: true
entities:
  - type: custom:multiple-entity-row
    entity: cover.volet_bureau_alex
    name: Bureau Alex
    secondary_info: position
    show_state: false
    entities:
      - icon: mdi:arrow-up-bold
        tap_action:
          action: call-service
          service: cover.open_cover
          service_data:
            entity_id: cover.volet_bureau_alex
      - icon: mdi:stop
        tap_action:
          action: call-service
          service: cover.stop_cover
          service_data:
            entity_id: cover.volet_bureau_alex
      - icon: mdi:arrow-down-bold
        tap_action:
          action: call-service
          service: cover.close_cover
          service_data:
            entity_id: cover.volet_bureau_alex
      - icon: mdi:window-shutter-settings
        tap_action:
          action: call-service
          service: cover.set_cover_position
          service_data:
            position: '{{ states(''input_number.volets_pourcentage_entreouvert'') | int }}'
            entity_id: cover.volet_bureau_alex

Mais j’ai l’erreur

Échec d'appel du service cover/set_cover_position. expected int for dictionary value @ data['position'] :frowning:

Si je teste le service dans les outils de développement, ça fonctionne

service: cover.set_cover_position
data:
  position: "{{ states('input_number.volets_pourcentage_entreouvert') | int }}"
  entity_id: cover.volet_bureau_alex

Mais la syntaxe data n’est pas transposable dans le tap-action de ma carte, qui à priori ne fonctionne qu’avec service_data :frowning:

J’ai tenté avec data_template également, mais sans succès non plus

Quelqu’un aurait une idée pour arriver à mes fins ?

Salut @alju,

As-tu pu trouver une solution à ton problème ?
Je cherche à pouvoir ouvrir mes volets à certains pourcentage, pas de solution trouvée.

Merci.

J’ai finalement créé un script par volet, utilisant une variable « position intermédiaire » propre à chaque volet (ils ont de tailles différentes)
C’est pas très factorisé, mais en attendant mieux ça fait le boulot

@alju,

Comment récupères-tu y’a position intermédiaire ? Peux m’expliquer dans les grosses lignes la démarche de ton script?

Merci.

Voici le script :

alias: Volets - Position Chambre
mode: single
icon: mdi:window-shutter-settings
sequence:
  - service: cover.set_cover_position
    target:
      entity_id: cover.volet_chambre
    data:
      position: "{{ states('input_number.volets_pourcentage_entreouvert') | int }}"

La variable définie dans le configuration.yaml :

# Paramètres pour volets
input_number:
  volets_pourcentage_entreouvert:
    name: Volets pourcentage entre-ouvert
    initial: 15
    min: 0
    max: 30
    step: 1

Et la partie qui permet de modifier la variable depuis une carte :

title: Paramètres
type: entities
entities:
  - entity: input_number.volets_pourcentage_entreouvert
    name: Pourcentage entre-ouvert
    icon: mdi:window-shutter-settings

image

Salut @alju,

Merci pour avoir partagé ta config.
Je ne peux pas l’utiliser avec mes volets Bubendorff/i-diamant car je n’ai pas le retour position.

:smiling_face_with_tear:

Salut @alju,

Avec le retour d’informations de la position des volets Bubendorff qui vient de tomber, j’ai pu appliquer sans problème ta solution.

Merci pour le temps accordé.
A bientôt.

@urel