Pause volet après ouverture ou fermeture

Bonjour à tous,

Voilà, j’ai des volets connectés à l’aide d’interrupteurs zigbee.

Je souhaite les mettre en pause après ouverture ou bien fermeture. Pourquoi ?
Car si je ferme le volet via siri et qu’une fois fermé il ne passe pas par le statut pause alors je ne peux pas l’ouvrir à distance.

Donc je souhaite faire en sorte qu’après chaque action d’ouverture ou de fermeture, ils repassent au statut pause au bout de 30 secondes (le temps que le volet monte ou descende).

Faut-il passer par une automatisation ou un script ?

Je vous remercie pour votre aide.

Salut.

Pause et stop sont la même chose ?
Si c’est le cas moi je regarderai les 2 integrations custom suivantes:

Et je ferai des volets virtuels qui encapsulent la pause…

Merci @Pulpy-Luke pour ton retour.

Sur la première intégration il n’y a pas l’air d’avoir la fonction stop. Par contre sur le deuxième oui.
Il vaut mieux que je regarde pour la deuxième du coup.

Par contre je ne sais pas du tout quoi mettre dans script.yaml et configuration.yaml pour adapter à mon cas. Je suis vraiment débutant sur HA. Je ne sais pas comment savoir ce qu’il faut mettre j’avoue …

En gros je souhaite mettre en mode Stop 30 secondes après que le mode Monter ou Descente ait été déclenché.

A la base je pensais que via une automatisation j’aurai pu faire ça, mais bon.

Voici le modèle de mes interrupteurs pour info :

Merci de ton aide.

Salut,

A mon avis, tu n’as pas besoin de prévoir la pause de 30 secondes …
Tu dois pouvoir simplement déclarer un volet avec une durée de montée, une durée de descente, définir les actions up/down/stop (via script) et surtout mettre l’option send_stop_at_ends: true

Quant à comment ça s’écrit, reregarde les exemples dans la doc ou là

C’est essentiellement des appels de services vers tes boutons

D’accord,

Si je mets ceci dans mon configuration.yaml :

cover:
  - platform: cover_rf_time_based
    devices:
      volet_salon_time_based:
        name: Volet salon
        travelling_time_up: 28
        travelling_time_down: 27
        cover_entity_id: cover.volet_salon
        send_stop_at_ends: True

Est-ce que ça suffit pour mettre en pause après descente ou montée ? Sachant que je lui indique l’entité ?

Merci

Oui c’est ce principe. Par contre il doit manque la définition du up/down/stop

cover:
  - platform: cover_rf_time_based
    devices:
      volet_salon_time_based:
        name: Volet salon
        travelling_time_up: 28
        travelling_time_down: 27
        cover_entity_id: cover.volet_salon
        send_stop_at_ends: True
        close_script_entity_id: script.volet_salon_down
        stop_script_entity_id: script.volet_salon_stop
        open_script_entity_id: script.volet_salon_up

Ok mais dans les explications du dépôt GitHub, ils proposent deux exemples (voir photo ci-dessous).
Moi j’ai pris le deuxième qui est utilisé pour une entité existante comme mon cas je suppose.

Et celui-ci ne fait pas référence à des scripts de montée et descente.

Donc je me demande si mettre ça dans le configuration.yaml sans faire de script ou d’automatisation ça suffira pour mettre en Stop le volet grâce à l’indication des temps de montée et descente.

Ok vu, ça semble passer par l’entité de ton volet originale (pour utiliser les actions par défaut)
Essaye, ça doit pouvoir le faire si tu as une entité d’origine avec les 3 actions dispo

Avec ces interrupteurs zigbee je peux contrôler la montée, la descente, le stop et la position via le tableau de bord.

Capture d’écran 2022-11-02 à 13.34.11

J’essayerai ce soir pour voir si ça reprend bien les actions de l’entité en question. Si c’est juste ça alors c’est top.

Bon, malheureusement ça ne fonctionne pas…

Je ne sais pas trop comment faire…

Moi non plus. ça s’arrête de marcher à quel moment ?
Ton volet virtuel est crée ? Il pilote le véritable volet ? Comment tu sais que le stop n’est pas déclénché …

Là il va falloir un max de détails …

D’accord, on va étudier ça ensemble alors.
Voici ma conf :
Mes volets remontent en zigbee grâce à la clé conbee 2 sur mon raspberry Pi 4.

L’intégration cover_rf_time_based me créée bien une nouvelle entité :

Je peux ajouter une carte sur mon tableau de bord avec les 3 boutons monter, descendre et stop.
Je ne peux pas tester actuellement pour voir s’il contrôle bien mon volet car je ne suis pas chez moi mais je testerai ce soir.

De plus, en ce moment sur la carte présente sur mon tableau de bord il considère le volet fermé alors que la carte de mon véritable volet est ouvert :

Hier j’ai juste testé en fermant le volet voir si au bout du délai que j’ai indiqué dans la conf ( 27s ) il se mettait en pause. Mais non il gardait le statut « descente ».

Pour l’histoire de l’état, à defaut d’avoir partagé la config actuelle, je te conseille de jeter un oeil là

always_confident defaults to False. If set to True, the calculated state will always be assumed to be accurate. This mainly affects UI components - for example, if the cover is fully opened, the open button will be disabled. Make sure to set the current state after first setup and only use this entity to control the covers. Not recommended to be True for RF-based covers.

Ok donc si je comprends bien, je dois fermer le volet puis passer l’option always_confident à True et ensuite contrôler le volet sur HA que via la nouvelle entité ?

Et qu’est ce qui se passe si j’ouvre ou ferme le volet via l’interrupteur physique zigbee plutôt que la carte dans HA ? L’état se mettra à jour sur HA ?

je mettrai l’option à false justement histoire d’avoir toujours les boutons.

Ah mais les boutons je les ai sur ma nouvelle carte. C’est juste que l’état ne correspond pas à l’état réel :

Il faut tester :

  • mettre les volets dans le même état : ouvert ou fermé sur les 2 entités.
  • ne passer QUE par le volet virtuel pour piloter pour que l’état soit toujours synchro

Ensuite, le stop devrait se faire automatiquement :

  • ouverture partielle à X%
  • en butée => ouvert 100% /fermé 0%

D’accord et toujours avec l’option always_confident à false ?

Et si j’ouvre le volet via l’interrupteur, le volet virtuel récupérera l’état ?

Car en gros je peux supprimer la carte du volet réel sur HA et passer que par le volet virtuel ça ok, mais je veux aussi pouvoir contrôler le volet par l’interrupteur (pour ma femme par exemple).

oui, ça s’explique plus bas

Non, je ne penses pas que ton interrupteur dispose de l’info de la position réelle (à toi de confirmer quand même).
Du coup, l’entité volet réel calcule une position relative quand on active les boutons HA.
Quand l’interrupteur est utilisé ça se désynchronise avec le volet physique.
Du coup l’option à false permet de toujours être en mesure d’envoyer un ordre même en cas de désynchro

J’essaye de prendre du recul sur tout ça. Parce que ça me parait un peu compliqué juste pour mettre en pause un volet.

Je demande encore mais ça serait pas plus simple d’appeler le service cover.stop_cover 30s après que le service cover.open_cover ou le service cover.close_cover soit déclenché. Le tout via une automatisation ?

Parce que quand mon volet est fermé et que je le monte entièrement, une fois qu’il est en butée en haut, sur le tableau de bord HA il est considéré comme fermé encore et sur l’interrupteur mural il est toujours en action « montée » (voyant monté allumé).
Si je clique sur stop sur la carte de mon tableau de bord ou bien si j’appuie sur le bouton stop sur l’interrupteur mural alors il passe au statut 100% ouvert. Donc c’est juste que je dois déclencher l’action stop après un certain délai quoi. Car actuellement si je ne le passe pas en stop manuellement dans HA ou bien sur l’interrupteur, il m’est impossible de faire l’action inverse à distance.

En gros il faudrait un truc du genre :

  1. Quand service « cover.open_cover » est déclenché

  2. Attendre 27 secondes

  3. Lancer le service « cover.stop_cover »

pareil pour la descente.

Je débute sur HA, je ne sais pas ce qui est possible de faire ou pas…