IF THEN pour gérer l'ouverture volet roulant

Bonjour à tous,
Je suis nouveau sur HA venant de Jeedom.
Je ne regrette pas mon passage sur HA mais certaines fonctions sont plutôt complexes à mettre en œuvre par rapport aux scenarios de Jeedom.
Je souhaite pouvoir ouvrir mes volets à moitié en jouant sur le temp de déclenchement. J’ai un contact en bas qui m’indique que le volet est fermé.

  • si le volet est fermé je monte de x secondes.
  • si le volet est ouvert ou partiellement ouvert je l’ouvre complètement et de redescend de Y secondes (plus long !)
    J’arrive au résultat mais en passant par 3 scripts ce qui me parait un peu lourd !

Script 1 : lancé par action sur bouton de ma carte :


Ce script lance les deux autres :

alias: VR3demi
sequence:
  - service: script.vr3demi_haut
  - service: script.vr3demi_bas
mode: single

Script 2 : Si volet déjà ouvert ou partiellement ouvert : je monte et redescend)

alias: VR3demi_haut
sequence:
  - condition: state
    entity_id: binary_sensor.dvr_salon3
    state: 'on'
  - service: script.vr3m
  - delay: '00:00:20'
  - service: script.vr3d
  - delay: '00:00:06'
  - service: script.vr3d
mode: single

Script 3 : le volet est fermé (je monte seulement)

alias: VR3demi_bas
sequence:
  - condition: state
    entity_id: binary_sensor.dvr_salon3
    state: 'off'
  - service: script.vr3m
  - delay: '00:00:14'
  - service: script.vr3m
mode: single

Cela fonctionne très bien mais je souhaite optimiser.
J’ai chercher comment utiliser une syntaxe IF THEN ELSE mais je n’arrive à rien !

Merci par avance pour votre aide !
Stéphane

Bonjour

C’est toujours mieux d’optimiser, en plus avec HA cela permet d’utiliser le debugger avec plein de branches :wink:
pour du if then else il faut introduire le choose

J’ai un exemple ici d’optimisation où je suis passé dans l’exemple de 2 scripts en un seul (en réalité 8 scripts):
https://forum.hacf.fr/t/utilisation-de-telegram-plusieurs-commandes-dans-un-seul-trigger/8015

Sinon que se passe t’il quand les volets sont à mi-hauteur?

Salut,

Regarde ce genre d’intégations. C’est l’équivalent du plugin voletprop de jeedom

Salut @Haz ,
Merci pour l’info mais j’ai du mal a adapter ton exemple.
Il doit encore me manquer des notions de base.
Quand le volet est déjà à mi-hauteur il refait le script 1 en ouvrant et redescendant. C’est pas top mais bon je vais pas mettre des capteurs au milieu.

mmmm je ne suis pas certain de ce que j’ai écrit :thinking:

Chez moi, je n’ai pas de script mais que des automations.
Dans l’aide script d’HA, le choose est proposé pour une automation et pas pour un script.

Il faudrait tester le choose avec un script…

Salut @Pulpy-Luke,
merci pour ta réponse.
Je cherche une solution plus universelle car j’ai d’autres besoins avec des IF THEN ELSE.

Justement indiquer directement le % d’ouverture sans avoir à faire les calculs de temps (de ton coté) c’est bien plus souple.
Après effectivement, ça ne traitre que la problématique des volets

Comment est géré le pourcentage d’ouverture ?

Comme tu le fais toi : ratio sur le temps de montée ou de descente… Mais sans le mettre en dur dans les automatisations/scripts
Et comme c’est une entité cover, tu disposes de toutes les fonctions associées directement (position/affichage…)

J’ai effectivement utilisé une automation et cela fonctionne :+1::

alias: VR3demi
description: ''
trigger:
  - platform: state
    entity_id: switch.arro1
    from: 'off'
    to: 'on'
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: binary_sensor.dvr_salon3
            state: 'on'
        sequence:
          - service: script.vr3m
          - delay: '00:00:15'
          - service: script.vr3d
          - delay: '00:00:15'
          - service: script.vr3d
      - conditions:
          - condition: state
            entity_id: binary_sensor.dvr_salon3
            state: 'off'
        sequence:
          - service: script.vr3m
          - delay: null
          - service: script.vr3m
    default: []
mode: single

Par contre j’ai testé avec un switch mais je ne sais pas comment la démarrer en appuyant sur mon icon :thinking:

J’ai essayé avec automation.VR3demi (nom de mon automation) mais cela ne fonctionne pas.

C’est bon j’ai trouvé !!

Et dans autimation je n’ai pas mis de déclencheur !
Merci pour votre aide !!
Stéphane