Piloter un volet roulant commandé par un interrupteur, une solution

Ayant des volets roulants très hétérogènes, je ne souhaitais pas utiliser un module X-4VR pour les piloter. De nombreux utilisateurs du forum se posent les mêmes questions que celles que je me suis posées il y a 6 mois, j’espère pouvoir leur apporter ici des éléments de réponse.

Ce témoignage va partir des hypothèses suivantes

  • un interrupteur vous permet de piloter votre volet, peu importe que cet interrupteur dispose de 2 ou 3 boutons (montée, descente, stop mécanique ou pas). Si vous avez un bouton poussoir, ce guide ne peut pas s’appliquer tel quel (j’ai aussi le cas, et je peux partager le paramétrage dans un autre post si nécessaire).
  • votre volet est piloté par la phase, si tel n’est pas le cas adaptez les branchements en conséquence
  • les relais 3 et 4 seront utilisés ici pour la montée et la descente du volet (ce qui donnera un exemple de branchement un peu différent de celui exploitant les relais 1 et 2 démontrés à l’envi). Ils seront identifiés par R3 et R4.
  • les entrées digitales 3 et 4 sont également utilisées et identifiées par DI3 et DI4.
  • il est pour moi aberrant de maintenir fermé des heures durant un relai normalement ouvert, que se soit à travers l’usage de l’interrupteur ou de l’IPX. Un système va donc veiller à réinitialiser les relais si nécessaire en s’appuyant sur le compte à rebours variable déjà présenté dans le wiki.
  • on veut enregister à travers un push la position du volet lorsqu’il arrête sa course

Ce post est long. Ne vous sentez pas obligé de tout mettre en oeuvre en une fois.

Branchements

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

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

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

  • le GND de l’IPX est relié à l’interrupteur en lieu et place de l’arrivée de phase
  • le bouton Up de l’interrupteur est relié à DI3 de l’IPX (au lieu du moteur du volet)
  • le bouton Dn est relié à DI4

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). Le relai 3 est sur le banc 1, le relai 4 est sur le banc 2. Voici les branchements à réaliser :

  • 1.6 est ponté avec 2.1
  • 1.7 arrivée de la phase
  • 1.8 phase de descente allant vers le volet roulant
  • 2.1 ponté avec le 1.6
  • 2.2 phase de montée, allant vers le volet roulant
    Vous pouvez contrôler que ce type de branchement interdit mécaniquement que le moteur du volet roulant reçoive simultanément la phase de montée et de descente.

Configuration minimale

Vraiment 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, seuls 4 éléments physiques sont nécessaires :

  • 2 relais, R3 et R4, avec un TA = 0 et TB = 0
  • 2 entrées digitales, DI3 et DI4

Règles

  • Si DI3 OnOff R3 : Si l’entrée digitale change d’état, son état est répercuté sur le relai (l’interrupteur de montée commande le relai de montée)
  • Si DI4 OnOff R4 : idem pour l’interrupteur de descente
  • Si R3 Off R4 : si fermeture du R3, ouverture du relai 4, le pendant logique du câblage
  • Si R4 Off R3 : si fermeture du R4, ouverture du relai 3
    Ces 2 dernières règles ne sont pas indispensables mais elles vous prémunissent d’une erreur de câblage.

Dès ce stade, vous disposez d’un système opérationnel : vous pouvez piloter votre volet roulant tant par l’interrupteur que par l’interface de l’IPX (relais 3 et 4). Cependant, à part ouvrir le volet sans sortir de votre lit, la valeur ajoutée reste relativement faible

Connaitre la position du volet

Connaître la position du volet s’avère vite indispensable, ne serait-ce que pour répondre à la question « As-tu ouvert les volets ce matin ? ». L’idée n’est pas d’avoir une position précise (la vitesse de descente d’un volet est non linéaire) mais une approximation suffisamment fiable. Voyons comment avoir une estimation, en %, de la fermeture du volet.

Pour cela, il suffit d’ajouter un timer qui va s’activer lorsque le moteur du volet est en marche et d’incrémenter / décrémenter un compteur. Mais avec quelle valeur et à quelle fréquence?

Selon GCE, l’IPX pourrait actualiser le compteur 3 fois par seconde. En réalisant des tests, une actualisation toutes les secondes procure un feed-back saccadé à l’utilisateur (voir IHM en bas). Tourner autour de la demi seconde offre un bon compromis.
Comme il est impossible de réaliser des opérations arithmétiques dans le moteur de règles de l’IPX :frowning: , il faut résoudre au plus juste cette simple équation :

Entier(T/C)*I= 100
sous la contrainte que 1 > C > 0,3


T = le temps de descente ou montée complète du volet exprimé en secondes
C = la durée de fermeture de la sortie virtuelle (en secondes)
I = incrément à appliquer au compteur

Dans l’exemple utilisé le volet met 12,6 secondes pour s’ouvrir. Si la sortie virtuelle reste fermée 0,5 secondes, l’incrémentation sera appelée 25 fois (entier(12,6/0,5)) et l’incrément doit donc être de 4 (100/25).

Périphériques
** C4, le compteur
** VO05, la sortie virtuelle qui va agir comme un timer, TB=5/10 secondes

Règles

  • Si non VO05 et R3 On VO05, C4.decrement(4) : décrément du compteur lors de la montée
  • Si non VO05 et R4 On VO05, C4.increment(4) : incrément du compteur lors de la descente
  • si C4=101 On C4=100 : interdire au compteur de dépasser la valeur 100, si désynchronisation

Un compteur ne peut avoir de valeur négative, inutile de s’en préoccuper.

Ouvrir les relais

Un compte à rebours variable est utilisé ici pour réouvrir les relais lorsque leurs mouvements sont terminés. Ces deux règles ne font qu’incrémenter le compteur de ce compte à rebours de 15 secondes (12,6 secondes avec de la marge) lorsqu’un relai est activé :
Lorsque le compte à rebours arrive à 0, les relais concernés sont ouverts.

Règles

  • Si R3 On Cx.increment(15) : incrément du compte à rebours
  • Si R4 On Cx.increment(15) : idem
  • si Non VOxx Off R3, R4 : fin du compte à rebours …

Mais pourquoi passer par un compte à rebours ? Si on spécifie un TB sur les relais, il n’est plus possible d’arrêter le volet roulant durant sa course.

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 avec la règle suivante :
Si non R3 et non R4 off Push (VR2)

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

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

8 J'aimes

Question bête mais cela nécessite un PC ou serveur pour obtenir le résultat?
Pas moyen de rester sur l’IPX?

Bonjour,

Non tout est réalisé sur l’IPX V4. Qu’est-ce qui vous fait penser qu’un PC est nécessaire ? :slight_smile:

Dois-je éclaircir certains points ?

Désolé, je l’ai cru à tort. Je ne connais pas grand chose en programmation et j’ai un peu de mal.
J’'essaye d’adapter votre cas au mien (je commande 15 volets par des relais existants et je veux juste un widget avec 1 seul volet et son état d’ouverture. J’ai quelques soucis mais je pense que je me mêle les pieds dans les compteurs (Ils s’incrément beaucoup et se décrémente peu.
Eventuellement on pourrait échanger en MP?

Bonjour,

Vous pouvez me contacter par MP sans problème.

A bientôt