Création de script ouvertures séquencées

Bonjour à tous!!

Alors voilà, j’ai depuis un petit moment installé home assistant et acquis les systèmes nécessaires à l’intégration de mes capteurs et autres éléments.
Tout n’a pas été simple mais ça y est tout fonctionne et je peux enfin passer à la partie sympa, la création de mon dashboard.

J’avance petit à petit, tutoriel par tutoriel, d’une résolution de problème à l’autre.

Et il y en a une série que je ne parviens pas à résoudre :

J’ai un vélux avec motorisation et volet.
Le problème est que je dois éviter de manipuler le volet lorsque le vélux est ouvert, même partiellement.
Je cherche donc à créer un script (ou automatisme ou autre) à appeler à l’aide d’une carte dans mon dashboard.
Je souhaiterais que cette carte ressemble aux « mushrooms cover » que j’ai pour mes autres ouvertures, avec les mêmes boutons ouvrir, fermer et stop…

Donc voilà ci-dessous les points bloquants que je rencontre :

  • peut-on affecter des autres actions aux boutons de la carte mushroom cover que celles programmées? Plutôt que l’action ouvrir sur telle ou telle entité je souhaiterais lancer mon script par le biais de ce bouton.
  • Pour faire un truc propre, j’essaie de garder en variable la position initiale du vélux afin de le rouvrir à l’identique après la manip du volet. Malheureusement je ne trouve nulle part la syntaxe d’appel de la valeur.
    Mettons que j’aie par exemple
    condition: state
    entity_id: cover.8
    state: open
    Et que je souhaite créer la variable « posit initiale »
    Je pensais à quelque chose comme
    position initiale: [cover.8].state

Mais j’ai beau chercher et tenter, rien n’y fait…
Pour aller à peine plus loin, comment syntaxer une valeur qui se situe dans une liste ou une sous liste du genre?
data:
condition: state
entity_id: cover.8
state: open

Merci d’avance pour toutes les pistes que vous pourrez me donner!!

Bon we à tous.

Bonjour,
Mais que veux tu faire ?

Hello,

je souhaite créer un bouton pour fermer mon volet de vélux avec les particularités suivantes.
Si le vélux est ouvert, celui doit d’abord se fermer pour qu’ensuite le volet se ferme et que finalement le vélux se rouvre à sa position initiale.

Salut,

Plus facile qu’un script Cover Time Based - Custom Repository
Sur un velux, il n’y a pas de temps de décollement, donc temps de montée = temps de descente
Et en plus ça va mettre physiquement moins de temps a arriver à la bonne position

Merci beaucoup pour le lien je vais regarder ça!!

En revanche sauriez-vous me dire qu’elle est la syntaxe pour appeler une valeur en Yaml SVP?

Appeler qui/quoi/pour faire quoi ?
Avec ce composant tu crées un volet proportionnel. Il se manipule comme n’importe quel volet via les actions cover.set_cover_position par exemple.
Donc yaml, pas besoin dans une carte (mushroom prend en charge les volets avec la position nativement) et dans les automatisations c’est principalement graphique

J’ai dû manquer un truc…

En effet dans l’automatisation je peux faire toute la manip, à savoir si le volet est actionné en fermeture le alors que le vélux est ouvert, le mouvement est arrêté, le vélux est fermé et ensuite le volet.
Je peux ensuite rouvrir complètement le vélux mais comme je n’arrive à aucun moment à sauvegarder sa position de départ quelque part (variable?!) je ne parviens pas à le remettre à sa position initiale.

Navré je suis au début de mes tentatives et encore pas mal limité en yaml et sur HA donc tout me parait flou😰.

Par ailleurs j’ai regardé le lien. Je n’ai bien entendu pas tout compris mais il me semble que ç a permet de créer une commande basée sur le temps d’ouverture/fermeture et donc de créer des positions fictives en fonction des timing. N’est-ce pas dommage dans cas alors que j’ai les positions réelles de toutes mes ouvertures avec retours d’états?!

Si le velux (intergra en IO ?) dispose déjà d’un retour d’état effectivement le composant ne fait qu’imiter ce mécanisme. Donc doublon ou pas utile c’est au choix

Mais il y a un souci dans l’attendu, ce n’est pas la position initiale qui est importante mais la position cible.

Création d’un input_number par volet concerné + automatisation dédié

  • triggers : changement d’état de l’input number
  • conditions : aucune
  • actions :
    1
    si velux est ouvert
    • fermer le velux
    • attendre la position fermée du velux
      2
      puis dans tous les cas
    • puis dans tous les cas placer le volet à la position de l’input_number

Dans tous les usages, carte ou automatisation, on ne passe jamais directement pas la position du velux mais toujours par son input number.

Coté carte on affiche le curseur de l’input number, éventuellement 2 boutons ouvert/fermé qui mettent l’input number à 0 ou 100 via une action

Exemple copilot, pas testé choose à la place d’un if mais l’idée est là


automation:
  - alias: 'Automatisation Volets'
    trigger:
      - platform: state
        entity_id: input_number.mon_volet
    condition: []
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: cover.mon_velux
                state: 'open'
            sequence:
              - service: cover.close_cover
                target:
                  entity_id: cover.mon_volet
              - wait_template: "{{ is_state('cover.mon_velux', 'closed') }}"
      - service: cover.set_cover_position
        target:
          entity_id: cover.mon_volet
        data:
          position: "{{ states('input_number.mon_volet') }}"

Encore merci ça semble correspondre à ma recherche!! Je vais tenter ça rapidement et te dire ce qu’il en est.
Bon je suis encore franchement limité en yaml mais en forçant un peu ça devrait rentrer😁