Piloter un volet roulant commandé par un bouton poussoir, une solution

En complément du tuto sur la commande de volets roulants à travers un interrupteur, voici, suite à une demande, sa variante pour des boutons poussoirs.

Ce témoignage va partir des hypothèses suivantes

  • un bouton poussoir double vous permet de piloter votre volet, un bouton commande la montée du volet, l’autre la descente. Si vous avez un interrupteur (le bouton reste enfoncé lorsque vous appuyez dessus), consultez le post initial (Piloter un volet roulant commandé par un interrupteur, une solution).
  • Il doit être possible de commander le volet depuis les boutons poussoirs (y compris les séquences permettant de réinitialiser la phase d’apprentissage du volet) ou par un widget, le dernier ayant parlé ayant raison (vous pouvez commencer à relever le volet depuis le widget et interrompre sa montée par le bouton poussoir par exemple)
  • votre volet est piloté par le neutre : il est toujours alimenté par la phase et le neutre, et une impulsion raccordant le neutre et un des fils de commande permet de manipuler le volet. Si tel n’est pas le cas adaptez les branchements en conséquence
  • les relais 5 et 6 seront utilisés ici pour la montée et la descente du volet. Ils seront identifiés par R5 et R6.
  • les entrées digitales 5 et 6 sont également utilisées et identifiées par DI5 et DI6.
  • on souhaie connaître la position approximative du volet dans le widget (la vitesse non linéaire du volet induit des approximations et dans certains cas le temps de montée des volets peut différer du temps de descente)

Encore une fois, ce post est long. Ne vous sentez pas obligé de tout mettre en oeuvre en une fois. Testez votre configuration à la fin de chaque étape.

Branchements

Les interrupteurs ne doivent plus piloter directement le volet roulant, sinon le risque qu’il recoive des ordres contraires des boutons et de l’IPX est non nul.

N’oubliez pas de couper l’électricité avant de réaliser ces branchements.

Branchements entre les boutons poussoirs et l’IPX
Idéalement réalisé avec un câble réseau blindé,

  • le GND de l’IPX est relié aux boutons poussoirs, en lieu et place de l’arrivée du neutre
  • le bouton poussoir Up est relié à DI5 de l’IPX
  • le bouton poussoir Dn est relié à DI6

Les borniers des relais sont répartis sur 3 bancs. Ils sont identifiés ici selon la convention x.y, où x est le numéro du banc (1à3) et y et le numéro du bornier (1à8).
Voici les branchements à réaliser :

  • 2.4 : Up
  • 2.5 : ponté avec le 2.6
  • 2.6 : ponté avec le 2.5
  • 2.7 : arrivée neutre 220v (y mettre la phase si le volet est piloté par la phase)
  • 2.8 : Down

Configuration minimale

Comme dans le cas de l’interrupteur, peu de choses sont nécessaires pour piloter un volet roulant depuis l’IPX de manière basique.

Périphériques
Pour le pilotage de base du volet à travers les boutons poussoirs, seuls 4 éléments physiques sont nécessaires :

  • 2 relais, R5 et R6, avec un TA = 0 et TB = 0 : la durée et le nombre d’impulsions initiées par les boutons poussoirs ne doivent pas être altérées.
  • 2 entrées digitales, DI5 et DI6

Règles

  • Si DI5 OnOff R5 : report de l’impulsion du bouton poussoir sur le relai
  • Si DI6 OnOff R6 : idem pour le bouton de descente
  • Si R5 Off R6 : si fermeture du R5, ouverture du relai 6, le pendant logique du câblage
  • Si R6 Off R5 : si fermeture du R6, ouverture du relai 5 (pour rappel, le relai fermé va transmettre le flux alors qu’il va l’arrêter lorsqu’il est ouvert - un interrupteur fermé allume la lumière, un interrupteur ouvert l’éteint)
    Ces 2 dernières règles ne sont pas indispensables. Vous pourriez même devoir les supprimer - et revoir le câblage - si la séquence d’initialisation du volet vous réclame d’appuyer simultanément sur les commandes Up et Down.

A ce stade, vous disposez d’un système opérationnel uniquement à travers les boutons poussoir : difficile de générer des impulsions depuis un widget. Pour cela il est préférable d’utiliser 2 sorties vituelles complémentaires :

  • VO05 et vO06 avec TA =0 et TB = 1/10 seconde qui vont permettre de piloter le volet depuis le widget

et 2 règles complémentaires:

  • Si VO05 OnOff R5 : L’état de la sortie virtuelle, paramétrée pour générer des impulsions d’1/10 seconde, est transmis au relai de montée du volet
  • SI VO06 OnOff R6 : idem pour la descente.
    L’interface utilisateur, contrairement à la variante de l’interrupteur qui pilotait directement les relais, doit piloter ces sorties vituelles.

Estimer la position du volet

Le même principe que dans le cas d’un interrupteur est utilisé pour approcher la position du volet. Je vous renvoie vers ce post (repris plus haut) pour calculer la fréquence d’actualisation du compteur et l’incrément à utiliser.

La particularité tient ici au fait que l’on ne peut s’appuyer sur aucun relai pour savoir si le volet est en mouvement. Il est donc nécessaire de « mémoriser » la commande de montée ou de descente à travers 2 sorties virtuelles : VO08 (up), VO09 (dn) avec TA=TB=0
et 2 scénarios

  • Si R5 On VO08 : si le relai de montée est fermé, mémorisation de l’action de montée dans la sortie virtuelle
  • Si R6 On VO09 : idem vers le bas

la logique est similaire à celle de l’interrupteur

  • C5, le compteur

  • VO07, la sortie virtuelle qui va agir comme un timer, TB= la fréquence que vous aurez calculée

  • Si non VO07 et VO08 On VO07, C5.decrement(I) : décrément du compteur lors de la montée

  • Si non VO07 et VO09 On VO07, C5.increment(I) : incrément du compteur lors de la descente

  • si C5=101 On C5=100 : interdire au compteur de dépasser la valeur 100, si désynchronisation

  • Si C5=101 off V009 : volet arrivé en bas

  • Si Non C5=1 Off VO08 : le volet est relevé au maximum, arrêter tout mouvement

il faut également compléter 2 règles précédemment écrites pour interrompre la mémorisation du mouvement lorsqu’un ordre contraire est donné

  • Si R5 Off R6 , VO09 : montée du volet en cours, arrêt de la mémorisation de la descente
  • Si R6 Off R5 , V008: idem pour la descente

Mémoriser la position du volet

Un push avec les bonnes étiquettes permet de transmettre la position du volet en fin de mouvement de ce dernier en modifiant les 2 dernières règles :

  • Si C5=101 off V009, Push(VR3) : volet arrivé en bas
  • Si Non C5=1 Off VO08, PUsh(VR3) : le volet est relevé au maximum, arrêter tout mouvement

et voici l’URL du push, à titre d’exemple, qui retourne la position du volet et le timestamp
/rollingshutter?timestamp=$TS&ID=3&position=$C05

##Présentation
Ca y est. Vous êtes au bout. Il vous reste à connecter votre IHM. Vous en trouverez un exemple ici :

Si vous avez des questions ou des propositions d’améliorations, n’hésitez pas à intervenir.

4 J'aimes

Bonjour Teebex,
On voit bien que vous maîtrisez l’IP800, alors je me permet de vous poser ma question.
Je vais installer des BSO qui seront commandé individuellement par 2 boutons poussoirs (un bp montée et un pb descent). Comme vous le savez les BSO sont des volets à lames orientables et ont la possibilité de pouvoir orienter leurs lames. Cette particularité les rends un peu différents des volets roulants dans leurs fonctionnement.
Ainsi, est-il possible via l’IPX800 de programmer cette configuration:

  • Appuis court sur le bp commande « descendre » (ou « monté ») <1s = commande par impulsion du moteur du volet. Cela permet d’orienter les lames du BSO.
  • Appuis long sur le bp commande « descendre » (ou « monté ») >1s = commande continu du moteur du volet jusqu’à la fermeture (ou ouverture), coupure par fin de course.

Merci de votre réponse
Cordialement

Bonjour JMarc01,

Merci pour le compliment mais je pense que d’autres membres du forum ont un niveau d’expertise largement supérieur au mien :slight_smile:.

Je vais essayer de publier ce weekend une simplification de mon premier post que j’ai en test depuis quelques temps chez moi (merci @tirso). Je vais imaginer en // comment le script pourrait évoluer pour couvrir vos besoins.

Ceci dit, si vous avez plusieurs BSO, vous devriez regarder l’extension X4VR…

A bientôt,

Merci pour votre réponse.
Je n’avais pas pris connaissance du X4VR. Ca me semble plutôt bien pour piloter des BSO.
Je vais m’orienter vers cette solution.
Cordialement

Salut, merci pour ce super tuto. J’ai juste une petite question, comment fait-on pour mettre à un TB moins de 1 seconde ?

car quand je me 1/10 à la sauvegarde j’ai 1.
Si je met 0.1 ou 0,1 à la sauvegarde j’ai 0.

Merci de votre aide :grinning:

Si vous êtes en 1/10, alors la valeur minimum 1 équivaudra à 0.1 seconde.

Ah ok merci pour l’info :wink:

1 J'aime

J’ai réalisé le tuto en test (pas encore raccordé le volet). Lorsque j’active la VO05, cela active le relais concerné puis ça le coupe je ne comprend pas :frowning_face:

De plus je ne comprend pas cela :

Citation
La particularité tient ici au fait que l’on ne peut s’appuyer sur aucun relai pour savoir si le volet est en mouvement

En fonction du relais activé on sait si le volet monte ou descend ?

Ou j’ai loupé qql chose

Ça va j’avais mal compris le système. C’est résolu :wink: