Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée . (140 caractères max). L’envoi est anonyme.

Dans ce tutoriel nous allons voir comment calculer l’état d’ouverture des volets Somfy dans Jeedom. Le principe est simple, il suffit de calculer le temps que mets le volet pour s’ouvrir ou se fermer et avec une règle de trois on détermine l’état. Il sera même possible par la suite de commander les volets avec Google Assistant.

Sachez toute fois qu’il n’y a pas de vrai retour d’état avec les volets Somfy RTS, donc toutes manipulations par les boutons manuels provoquera un décalage entre Jeedom et l’état réel.

  •  Coté Software j’utilise les plugins :

Evidemment le principe est le même avec d’autres appareils permettant de contrôler les volets Somfy RTS.

Création du Virtuel Volets Somfy dans Jeedom

Le virtuel permet d’afficher les commandes Monter, Descendre, Stop mais aussi l’état calculé. Personnellement j’ai ajouter des touches rapide 25%, 50% 75% mais cela est facultatif.

Je crée un virtuel par volet, cela permet de faire un simple dupliquer dès que l’on veut ajouter un volet.

Ce virtuel est mis en forme grâce à la disposition « Tableau », un widget disponible sur le Market et des widgets fait maison.

Virtuel Volets Somfy
Virtuel Volets Somfy
  • Aller dans Plugins / Programmation / Virtuel.
  • Cliquer sur Ajouter.
  • Nommer le virtuel « Volets [Pièce] ».
    • Exemple : « Volets Salon ».
  • Sélectionner un Objet parent, une Catégorie et cocher Activer & Visible.
  • Sauvegarder.
Virtuel Volets Somfy
Virtuel Volets Somfy Onglet Equipement
  • Aller dans l’onglet Commandes.
  • Cliquer sur « Ajouter une info virtuelle ».
  • Nommer la commande « Etat_save ».
    • Sélectionner les Sous-Type : « Numérique ».
    • Décocher « Afficher ».
  • Sauvegarder.
Virtuel Volets Somfy
Virtuel Volets Somfy Onglet Commandes
  • Cliquer 4 fois sur « Ajouter une commande virtuelle ».
  • Nommer une commande « Volet ».
    • Dans Nom information saisir « Etat ».
    • Dans Sous-Type choisir « Curseur ».
  • Nommer la commande suivante « Monter ».
    • Dans Nom information saisir « Etat ».
    • Dans Valeur saisir « 100 ».
  • Nommer la commande suivante « Descendre ».
    • Dans Nom information saisir « Etat ».
    • Dans Valeur saisir « 0 ».
  • Nommer la commande suivante « Stop ».
    • Dans Nom information cliquer sur « Rechercher équipement » et rechercher la commande Stop de votre volet.
      • Exemple : #[Salon][Volet][Stop]#.
    • Cliquer sur la « Roue crantée ».
    • Aller dans l’onglet « Configuration ».
    • Dans Action avant exécution de la commande cliquer sur : « + Ajouter ».
    • Saisir « variable ».
      • Nom : VoletSalonStop
      • Valeur : #timestamp#
  • Sauvegarder.
Virtuel Volets Somfy
Ajouter une commande virtuelle
Virtuel Volets Somfy
Commande « Stop ».
  • Lier la nouvelle commande info « Etat » aux commandes Volet, Monter et Descendre.

Modifier la nouvelle commande info « Etat » :

  • Sélectionner le Sous-Type : « Numérique ».
  • Dans unité saisir « % ».
  • Cliquer sur la « Roue crantée ».
    • Aller dans l’onglet « Configuration ».
    • Dans Arrondi (chiffre après la virgule) saisir : « 0 ».
  • Sauvegarder.
Virtuel Volets Somfy
Lier la nouvelle commande info « Etat ».
Virtuel Volets Somfy
Arrondi (chiffre après la virgule).

Si vous voulez des touches rapide 25%, 50%…. il faut :

  • Cliquer sur « Ajouter une info virtuelle ».
  • Nommer la commande « 25 ».
    • Dans Nom information saisir « Etat ».
    • Dans Valeur saisir « 25 ».
    • Lier la commande info « Etat ».
  • Sauvegarder.

Recommencez pour chacune des touches rapides.

Virtuel Volets Somfy
Touches rapide 25%, 50%….

Voilà pour le virtuel, la commande Etat correspond à la valeur choisi pour l’ouverture du volet et la commande Etat_Save correspond à la valeur précédente qui servira pour les calculs.

La commande Stop mets à jour la variable « VoletSalonStop » avec l’heure d’arrêt.

Il ne vous reste plus qu’à mette en forme votre virtuel.

Création du scénario Volets Somfy dans Jeedom

Comme pour les virtuels nous allons créer un scénario par volet puis le dupliquer autant de fois que nécessaire. Il sera alors simple d’adapter les scénarios en fonction des besoins, les volets du salon ne sont pas forcément gérés comme ceux des chambres.

Pour le tutoriel je prendrais comme exemple les volets du salon. J’ai découpé le scénario en 4 parties pour que vous puissiez plus facilement vous repérez.

Les commandes du plugin RFXCom sont sous la forme #[Salon][Volet][COMMANDE]# et les commandes du virtuel sont sous la forme #[Salon][Volets Salon][COMMANDE]#.

Scénario Volets Somfy
Scénario Volets Somfy
  • Aller dans Outils / Scénarios.
  • Cliquer sur Ajouter.
  • Nommer le scénario « Volet Salon ».
  • Sélectionner un Groupe, Objet parent, une Catégorie et cocher Activer & Visible.
  • Laisser le Mode de scénario sur « Provoqué ».
  • Cliquer sur « + Déclencher ».
  • Ajouter la commande Etat du virtuel « #[Salon][Volets Salon][Etat]# ».
  • Aller dans l’onglet Scénario.
  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Action ».
  • Enregistrer.
  • Ajouter 2 commandes Action en cliquant deux fois sur « + Ajouter » et « Action ».
Action : tag
Nom : volet100
Valeur : 23

Ce tag représente le temps que mets le volet pour bouger de 0 à 100%.

Chez moi les volets mettent le même temps pour monter ou descendre. Si ce n’est pas le cas chez vous il faudra faire 2 tags.

Par contre avant de monter il y a une étape de dépliage, je commence donc à compter une fois le dépliage effectué.

Dans mon salon il faut 23 secondes.

Action : tag
Nom : VoletWait
Valeur : ((#[Salon][Volets Salon][Etat_save]# - #[Salon][Volets Salon][Etat]#)*tag(volet100))/100

Ici nous avons la première formule qui permet de convertir les pourcentages en secondes afin de déterminer combien de temps s’écoule entre le démarrage et l’arrêt.

((Etat précèdent – Etat choisi) multiplié par le temps pour parcourir 100%) divisé par 100.

Exemple d’un volet à 80% que l’on baisse à 30% : ((80 – 30) X 23) / 100 = 11,5 secondes.

  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.

SI tag(VoletWait) >= 0 ALORS

Ici on vérifie si la formule renvoi un nombre supérieur à 0 ou pas. Si c’est le cas on descend le volet sinon on le monte.

Ajouter une commande action en cliquant sur « + Ajouter » et « Action ».

Action : #[Salon][Volet][Descendre]#

On ajout l’action descendre du plugin RFXCom.

SINON

Le sinon correspond à la montée du volet. 

  • Cliquer sur « > » à côté du « + Ajouter ».
  • Cliquer sur « + Ajouter » de la partie Sinon.
  • Cliquer sur « Action ».

Action : #[Salon][Volet][Monter]#

On ajout l’action monter du plugin RFXCom.

Si vous voulez ajouter une pause pour le dépliage du volet il faudra ajouter ce bloc avant la commande monter.

  • Cliquer sur « + Ajouter » de la partie Sinon.
  • Cliquer sur « Bloc ».
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.

SI #[Salon][Volets Salon][Etat_save]# == 0 ALORS

Ici on vérifie si le volet est à 0% (fermé).

Ajouter 2 commande action en cliquant sur « + Ajouter » et « Action » deux fois.

Action : #[Salon][Volet][Stop]#

On ajout l’action stop du plugin RFXCom qui permet, chez moi, de déplier le volet (My).

Action : sleep
Durée(sec) : 5

Pour finir, on fait une pause de 5 secondes afin de laisser le temps au volet de se mettre en position déplié.

Scénario Volets Somfy Part 1
Scénario Volets Somfy Part 1
  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Action ».
  • Enregistrer.
  • Ajouter 6 commandes Action en cliquant sur « + Ajouter » et « Action » 6 fois.
Action : tag 
Nom : VoletStart 
Valeur : #timestamp#

On sauvegarde l’heure de démarrage du mouvement.

Action : tag
Nom : VoletBeforeSleep
Valeur : #[Salon][Volets Salon][Etat]#

On sauvegarde l’état en cas de changement pendant le mouvement.

Action : variable
Nom : VoletSalonWait
Valeur : abs(tag(VoletWait))

Ici on est obligé d’utiliser une variable car les tags ne fonctionnent pas avec la fonction « Wait ». On en profite pour rendre VoletWait positif avec la fonction abs.

Action : variable
Nom : VoletSalonStop
Valeur : 0

Là on réinitialise la variable VoletSalonStop qui sera mise à jour depuis la commande stop en cas d’arrêt manuel avant la fin du mouvement.

Action : wait
Condition : variable(VoletSalonStop)!=0
TimeOut : variable(VoletSalonWait)

La fonction Wait permet de vérifier si la variable VoletSalonStop devient différente de 0, cela signifie que l’on a cliqué sur Stop pour arrêter manuellement le mouvement. Si la variable reste à 0 alors on utilise la variable VoletSalonWait dans le time out pour arrêter le mouvement.

Action : delete_variable
Nom : VoletSalonWait

On supprime la variable VoletSalonWait qui n’est plus utile.

Scénario Volets Somfy Part 2
Scénario Volets Somfy Part 2
  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.
SI #[Salon][Volets Salon][Etat]# != tag(VoletBeforeSleep) ALORSCe test permet de vérifier si l’état a été modifié pendant le mouvement et si c’est le cas on remet l’état initial que l’on avait sauvegardé dans le tag VoletBeforeSleep.
  • Ajouter 1 commande Action en cliquant sur « + Ajouter » et « Action ».
Action : event
Commande : #[Salon][Volets Salon][Etat]#
Valeur : tag(VoletBeforeSleep)
On applique une commande Event pour mettre à jour l’état avec le tag VoletBeforeSleep.
Scénario Volets Somfy Part 3
Scénario Volets Somfy Part 3
  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.

SI variable(VoletSalonStop) == 0 ALORS

Ici on test la variable VoletSalonStop, si elle est à 0 alors il n’y a pas eu d’arrêt manuel du volet via le bouton Stop.

  • Cliquer sur « + Ajouter ».
  • Cliquer sur « Bloc ».
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.

SI #[Salon][Volets Salon][Etat]# != 0 ET #[Salon][Volets Salon][Etat]# != 100 ALORS

Dans les cas où les volets vont à 0% ou 100% il n’y a pas besoin d’actionner le bouton Stop car le volet s’arrête automatiquement, dans les autres cas on stop le volet pour qu’il s’arrête à la bonne hauteur.

  • Ajouter 1 commande Action en cliquant sur « + Ajouter » et « Action ».

Action : #[Salon][Volet][Stop]#

On ajout l’action stop du plugin RFXCom.

  • Cliquer sur « > » à côté du « + Ajouter».
  • Cliquer sur « + Ajouter » de la partie Sinon.
  • Cliquer sur « Action ».
Action : tag
Nom : VoletWait
Valeur : variable(VoletSalonStop) - tag(VoletStart)

Dans le cas où l’on a cliqué sur le bouton Stop on recalcule le temps de mouvement avec l’heure de l’arrêt du mouvement moins l’heure du démarrage du mouvement.

  • Cliquer sur « + Ajouter » de la partie Sinon.
  • Sélectionner « Bloc ».
  • Sélectionner « Si/Alors/Sinon ».
  • Enregistrer.

SI #[Salon][Volets Salon][Etat_save]# > #[Salon][Volets Salon][Etat]# ALORS

Avant de calculer le pourcentage de mouvement nous avons besoin de savoir si le volet allait vers le bas ou le haut. Pour vérifier cela on regarde si l’état précèdent (Etat_Save) et supérieur ou inférieur à l’état choisi (Etat).

  • Ajouter 1 commande Action en cliquant sur « + Ajouter » et « Action ».
Action : event
Commande : #[Salon][Volets Salon][Etat]#
Valeur : #[Salon][Volets Salon][Etat_save]#-(tag(VoletWait)*100/tag(volet100))

Dans le cas où le volet est descendu on applique cette règle de trois pour convertir le temps en pourcentage.

Etat précèdent – (le temps parcouru multiplié par 100 divisé par le temps pour parcourir 100%).

Exemple d’un volet à 80% que l’on baisse pendant 11,5 secondes : 80 – (11,5*100/23) = 30%.

  • Cliquer sur « > » à côté du « + Ajouter ».
  • Cliquer sur « + Ajouter » de la partie Sinon.
  • Cliquer sur « Action ».
Action : event
Commande : #[Salon][Volets Salon][Etat]#
Valeur : #[Salon][Volets Salon][Etat_save]#-(-tag(VoletWait)*100/tag(volet100))

Dans le cas où le volet est monté on applique cette règle de trois pour convertir le temps en pourcentage.

Etat précèdent – (–  le temps parcouru multiplié par 100 divisé par le temps pour parcourir 100%).

Exemple d’un volet à 30% que l’on monte pendant 11,5 secondes : 80 – (–11,5*100/23) = 80%.

  • Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
  • Sélectionner « Action ».
  • Enregistrer.
  • Ajouter 2 commandes Action en cliquant sur « + Ajouter » et « Action » 2 fois.
Action : event
Commande : #[Salon][Volets Salon][Etat_save]#
Valeur : #[Salon][Volets Salon][Etat]#

On met à jour la commande Etat_save avec la valeur de la commande Etat pour le prochain lancement du scénario.

Action : variable
Nom : VoletSalonStop
Valeur : 0

Pour finir on réinitialise la variable VoletSalonStop à 0.

Scénario Volets Somfy Part 4
Scénario Volets Somfy Part 4

Dupliquer le scénario Volets Somfy

Maintenant que notre scénario est terminé nous allons pouvoir le dupliquer pour contrôler d’autres volets. Jeedom propose 2 options pour cela. La fonction « Dupliquer » qui va recréer à l’identique votre scénario et la fonction « Template » qui va nous permettre de remplacer les commandes existante (Salon) par les nouvelles commandes, par exemple Chambre. Personnellement je préfère l’option Template.

Fonction « Dupliquer ».

  • Cliquer sur le bouton « Dupliquer » en haut à droite.
  • Donner un nom au scénario.
  • Modifier « Nom à afficher » et « Objet parent ».
  • Modifier « Evénement » avec la nouvelle commande Etat du virtuel.
  • Aller dans l’onglet Scénario.
  • Faite une recherche CTRL + F ou touche F3 du clavier.
  • Taper « Salon » pour voir apparaitre les éléments à changer.
  • Modifier les éléments en surbrillance.
  • Sauvegarder.

Cette technique est la plus simple à utiliser mais aussi la plus longue et la moins sure surtout si les commandes de vos virtuels ou volets ne sont pas enregistrés sous la même forme.

Fonction « Template ».

  • Cliquer sur le bouton « Template » en haut à droite.
  • Saisir un nom dans « Nom du Template ». Exemple « Modèle Volet ».
  • Cliquer sur « + ».
  • Fermer la fenêtre et sortir du scénario.
  • Cliquer sur Ajouter pour créer un nouveau scénario.
  • Nommer le nouveau scénario « Volet Chambre ».
  • Cliquer sur le bouton « Template » en haut à droite.
  • Rechercher le Template « Modèle Volet ».
  • Rechercher les nouvelles commandes et modifier le nom des variables.
  • Cliquer sur « Appliquer ».
  • Cliquer sur « D’accord ».
  • Fermer la fenêtre et sortir du scénario sans enregistrer.
Virtuel Volets Somfy
Virtuel Volets Somfy
Scénario Volets Somfy
Scénario Volets Somfy

Voilà j’espère avoir été clair pour ce tutoriel sur les Volets Somfy RTS avec pseudo retour d’état dans Jeedom. Regardez bien les copies d’écrans pour la hiérarchie des blocs.

Le problème du RTS sans retour d’état reste présent et si vous utilisez les commandes manuelles vous aurez des décalages avec les informations de Jeedom.

Pour éviter au maximum ce désagrément il est possible d’utiliser les commandes vocales comme Google Assistant ou Alexa afin de passer par Jeedom. Vous pouvez aussi remplacer les télécommandes d’origine par des commandes compatible Jeedom.

Personnellement sur certaines portes je passe l’état des volets à 100% dès que la porte est ouverte. Plus vous automatisez les volets moins vous aurez à utiliser les commandes manuelles.

Si vous avez des questions n’hésitez pas à laisser un commentaire.

Laisser un commentaire

Ce site est protégé par reCAPTCHA et le GooglePolitique de confidentialité etConditions d'utilisation appliquer.

Cet article a 43 commentaires

    1. Guillaume

      Je suis en vacances je vais regarder les images et le json des que possible.

    2. Guillaume

      D’après l’image la première commande descendre c’est la commande du virtuel et non celle du RFXCOM.
      Rappel: Les commandes du plugin RFXCom sont sous la forme #[Salon][Volet][COMMANDE]# et les commandes du virtuel sont sous la forme #[Salon][Volets Salon][COMMANDE]#.

  1. Jackadit

    Bonjour,
    Comme l’indique Gregory, je pense qu’il y a quelques problèmes d’adaptation pour que ce scénario soit fonctionnel.
    J’arrive pour ma part à faire de façon aléatoire descendre le volet.
    Je pense que c’est au niveau du virtuel qu’il y a un problème sans arriver à déceler où.

    1. Guillaume

      Bonjour,
      J’utilise tous les jours le scénario pour 4 volets dans l’état donc il fonctionne.
      Êtes-vous sûr d’avoir bien suivi toutes les étapes ?
      Quelles sont exactement les symptômes ?

    2. Guillaume

      Essai aussi d’ajouter des commandes log avec les variables et valeurs des commandes pour voir se qui est réellement utilisé. As tu bien vu la différence entre les commandes du virtuel et celles du plugin rfxcom ?

  2. Gregory

    Merci pour la réponse je vais modifier ça

  3. gregory

    voila j’ai modifier mais tjrs pareil

    – Nom du scénario : Bureau volet
    – Objet parent : Volets maison
    – Mode du scénario : provoke
    – Evènement : #[Volets maison ][Bureau volet][Etat]#

    ACTION
    tag – Options : {« enable »: »1″, »background »: »0″, »name »: »Volet100″, »value »: »23″}
    tag – Options : {« enable »: »1″, »background »: »0″, »name »: »VoletWait », »value »: »((#[Volets maison ][Bureau volet][Etat_save]# – #[Volets maison ][Bureau volet][Etat]#) *tag (volet100)) \/100″}

    SI tag(VoletWait) > 0
    ALORS
    #[Volets maison ][Bureau volet][Descendre]# – Options : {« enable »: »1″, »background »: »0″}
    SINON

    SI #[Volets maison ][Bureau volet][Etat_save]# == 0
    ALORS
    #[Volets maison ][Bureau volet][Stop]# – Options : {« enable »: »1″, »background »: »0″}
    (sleep) Pause de : 5
    SINON
    #[Volets maison ][Bureau volet][Monter]# – Options : {« enable »: »1″, »background »: »0″}

    ACTION
    tag – Options : {« enable »: »1″, »background »: »0″, »name »: »VoletStart », »value »: »#timestamp# »}
    tag – Options : {« enable »: »1″, »background »: »0″, »name »: »VoletBeforeSleep », »value »: »#[Volets maison ][Bureau volet][Etat]# »}
    (variable) Affectation de la variable : VoletSalonWait à abs(tag(VoletWait))
    (variable) Affectation de la variable : VoletSalonStop à 0
    wait – Options : {« enable »: »1″, »background »: »0″, »condition »: »variable(VoletSalonStop)!=0″, »timeout »: »variable(VoletSalonWait) »}
    delete_variable – Options : {« enable »: »1″, »background »: »0″, »name »: »VoletSalonWait », »value »: » »}

    SI #[Volets maison ][Bureau volet][Etat]# != tag(VoletBeforeSleep)
    ALORS
    event – Options : {« enable »: »1″, »background »: »0″, »cmd »: »#[Volets maison ][Bureau volet][Etat]# », »value »: »variable(VoletBeforeSleep) »}
    SINON

    SI variable(VoletBureauStop) == 0
    ALORS

    SI #[Volets maison ][Bureau volet][Etat]# == 100
    ALORS
    #[Volets maison ][Bureau volet][Stop]# – Options : {« enable »: »1″, »background »: »0″}
    SINON
    SINON
    tag – Options : {« enable »: »1″, »background »: »0″, »name »: »VoletWait », »value »: »variable(VoletBureauStop) – tag(VoletStart) »}

    SI #[Volets maison ][Bureau volet][Etat_save]# > #[Volets maison ][Bureau volet][Etat]#
    ALORS
    event – Options : {« enable »: »1″, »background »: »0″, »cmd »: »#[Volets maison ][Bureau volet][Etat]# », »value »: »#[Volets maison ][Bureau volet][Etat_save]#-(tag(VoletWait)* »}
    SINON
    event – Options : {« enable »: »1″, »background »: »0″, »cmd »: »#[Volets maison ][Bureau volet][Etat]# », »value »: »#[Volets maison ][Bureau volet][Etat_save]#-(-tag(VoletWait)' »}

    ACTION
    event – Options : {« enable »: »1″, »background »: »0″, »cmd »: »#[Volets maison ][Bureau volet][Etat_save]# », »value »: »#[Volets maison ][Bureau volet][Etat]# »}
    (variable) Affectation de la variable : VoletBureauStop à 0

  4. gregory

    est voici le log
    [2019-08-15 12:29:52][SCENARIO] Start : Scenario lance manuellement.
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [action] : action
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable volet100 => 22 = 22
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable VoletWait => ((100 – 100) *tag (volet100)) /100 = ((100 – 100) *tag (volet100)) /100
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-15 12:29:52][SCENARIO] Evaluation de la condition : [« ((100 – 100) *tag (volet100)) /100 » > 0] = Faux
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [action] : else
    [2019-08-15 12:29:52][SCENARIO] Exécution d’un bloc élément : 35
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-15 12:29:52][SCENARIO] Evaluation de la condition : [100 == 0 ] = Faux
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [action] : else
    [2019-08-15 12:29:52][SCENARIO] Exécution de la commande [Volets maison ][Bureau volet][Monter]
    [2019-08-15 12:29:52][SCENARIO] Exécution du sous-élément de type [action] : action
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable VoletStart => 1565864992 = 1565864992
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable VoletBeforeSleep => 100 = 100
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable VoletSalonWait => 0 = 0
    [2019-08-15 12:29:52][SCENARIO] Affectation de la variable VoletSalonStop => 0 = 0
    [2019-08-15 12:29:53][SCENARIO] [Wait] Condition valide par dépassement de temps : 0!=0 =>
    [2019-08-15 12:29:53][SCENARIO] Suppression de la variable VoletSalonWait
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-15 12:29:53][SCENARIO] Evaluation de la condition : [100 != «  »] = Vrai
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [action] : then
    [2019-08-15 12:29:53][SCENARIO] Changement de [Volets maison ][Bureau volet][Etat] à 100
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-15 12:29:53][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [action] : then
    [2019-08-15 12:29:53][SCENARIO] Exécution d’un bloc élément : 39
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-15 12:29:53][SCENARIO] Evaluation de la condition : [100 == 100 ] = Vrai
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [action] : then
    [2019-08-15 12:29:53][SCENARIO] Exécution de la commande [Volets maison ][Bureau volet][Stop]
    [2019-08-15 12:29:53][SCENARIO] Exécution du sous-élément de type [action] : action
    [2019-08-15 12:29:53][SCENARIO] Changement de [Volets maison ][Bureau volet][Etat_save] à 100
    [2019-08-15 12:29:54][SCENARIO] Affectation de la variable VoletBureauStop => 0 = 0
    [2019-08-15 12:29:54][SCENARIO] Fin correcte du scénario

    1. Guillaume

      J’essaie de trouver un moment pour regarder ça. N’hésitez pas à ajouter des commandes log avec les variables tag et commandes pour bien voir se qui est calculé et utilisé.

    2. Guillaume

      Comme ça je vois que ça ne peut pas fonctionner avec un lancement manuel, il faut que se soit le virtuel qui provoque le scénario pour que les commandes état et état save aient les bonnes valeurs.

      Il ne faut pas d’espace après les tag. Tag(valeur) et non tag (valeur).

      Là ça me paraît étrange qu’il n’y est rien :
      [2019-08-15 12:29:53][SCENARIO] Evaluation de la condition : [100 != « »] = Vrai

      Par contre les commandes :
      [Volets maison ][Bureau volet][Monter]
      C’est le virtuel, je ne vois pas les commandes du plugin rfxcom.

      Voilà déjà en regardant les log je n’ai pas de Jeedom sous la main pour comparer au fonctionnement chez moi je te donnerai plus de détails des que possible.

  5. Alfundo

    Salut,
    Toy d’abord, merci pour le tuto qui est tres bien documenté.
    J’ai un problème lorsque je fais « Nommer la commande suivante « Stop » » et que je fais « Rechercher équipement ». En sauvegardant, j’ai le message suivant : « Vous ne pouvez appeller la commande elle meme (boucle infinie) sur : Stop ».
    Peux tu stp m’aider, je suis tres novice …
    Merci

  6. Guillaume

    Bonjour et merci de suivre les tutos.
    Dans les virtuels il ne faut pas donner le même nom au commandes actions et info.

  7. gregory

    tu fait comment pour enlever les espaces car quand je regarde la scenario il n’y as pas espace mais si je regarde le log il y a des espaces

    1. Guillaume

      Du coup c’est bon si dans le scénario il n’y en a pas. Je devrais avoir accès a un pc cet après-midi pour regarder.

  8. gregory

    voici le nouveau log

    [2019-08-16 11:26:09][SCENARIO] Start : Scenario lance manuellement.
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [action] : action
    [2019-08-16 11:26:09][SCENARIO] Mise à jour du tag #Volet100# => 23
    [2019-08-16 11:26:09][SCENARIO] Mise à jour du tag #VoletWait# => ((100 – 100) *tag (volet100)) /100
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-16 11:26:09][SCENARIO] Evaluation de la condition : [« ((100 – 100) *tag (volet100)) /100 »> 0] = Faux
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [action] : else
    [2019-08-16 11:26:09][SCENARIO] Exécution d’un bloc élément : 35
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2019-08-16 11:26:09][SCENARIO] Evaluation de la condition : [100 == 0 ] = Faux
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [action] : else
    [2019-08-16 11:26:09][SCENARIO] Exécution de la commande [Volets maison ][Bureau volet][Monter]
    [2019-08-16 11:26:09][SCENARIO] Exécution du sous-élément de type [action] : action
    [2019-08-16 11:26:09][SCENARIO] Mise à jour du tag #VoletStart# => 1565947569
    [2019-08-16 11:26:09][SCENARIO] Mise à jour du tag #VoletBeforeSleep# => 100
    [2019-08-16 11:26:09][SCENARIO] Affectation de la variable VoletSalonWait => 0 *tag (volet100 /100) = 0 *tag (volet100 /100)
    [2019-08-16 11:26:09][SCENARIO] Affectation de la variable VoletSalonStop => 0 = 0

  9. gregory

    Ok merci car j’ai beau regarder tous ton article je pense avoir fait comme toi

  10. Alx68

    Bonjour
    Et bravo pour se tuto il est excellent fonctionne nickel je n’est pas de somfy mais sa marche pour mes volets,par contre je possède un retour d’état de sur les volets et n’y comprenant pas grand chose,
    je souhaiterai pouvoir mettre a jour le statut du virtuel (ETAT) avec mon statut de mon volet qui est en pourcentage puis je l’intégré dans le scénario que tu as fait ?.

    Merci pour ta réponse.

    1. Guillaume

      Bonjour,
      Le but de ce scénario c’est justement de simuler un retour d’état. Si vous avez déjà un retour d’état il n’y a pas d’intérêt d’utiliser ce scénario.
      Il suffit de faire un virtuel avec les commandes du Volet.

  11. Alx68

    Oui mais je n’arrive pas a faire du slide je n’est que les fonction ouvrir – fermer – stop ,alors que grâce a ce scenario j’y arrive je peut l’ouvrir en pourcentage et ainsi faire des scenarios qui me permette d’ouvrir a un certain pourcentage les volets sans que cela ne devienne une usine a gaz.

  12. Guillaume

    Ok donc les retours d’États sont juste ouvert et fermé ?
    Il faut rajouter un test du genre :
    si etatvolet = ouvert alors état = 100.
    Pareil pour le fermé.
    Si tu veux de l’aide il me faudra plus d’info sur les état récupérer.
    Bon courage et bonne journée.
    Guillaume.

  13. Thomas

    Bonjour Guillaume,
    Grand fan de ton travail, propre, net et clair 🙂
    Je viens de faire l’acquisition de module Shelly 2.5 pour piloter mes volets roulants,
    Lorsqu’on crée un virtuel, il est possible d’importer un équipement! Crois-tu qu’il serait intéressant de passer par cette fonction?
    Merci de l’intérêt que tu porteras à me lire, bonne journée

    1. Guillaume

      Bonjour et merci pour ton commentaire.
      Je n’ai pas de module Shelly 2.5 donc je ne sais pas qu’elles sont les commandes qui remontent mais pour le tuto la seule commande utilisée dans le virtuel c’est la commande Stop, car les autres (descendre et monter) sont utilisées depuis le scénario.

  14. Vincent

    Bonsoir Guillaume,
    Merci pour ce partage.
    Tu dis que des commandes manuelles engendrent des décalages dans jeedom, je le comprends parfaitement.
    Mais n’y-a-til vraiment aucun moyen pour que le RFXCom puisse décoder les commandes envoyées par les autres télécommandes afin de garder l’état de l’actionneur à jour dans Jeedom ?
    Je ne suis pas calé en RFXCom, mais le module ne fonctionne que dans un sens (vers l’extérieur) ? ou bien peut-il fonctionner en émission et en réception ? car dans ce second cas, pourquoi ne pourrait-il recevoir l’info d’une action sur une télécommande manuelle ?
    Merci

    1. Guillaume

      Bonjour,
      Le rfxcom fonctionne dans les 2 en émission et réception. J’avoue avoir essayé de récupérer le signal des télécommandes mais sans succès.

  15. Zozotitou06

    Bonjour à tous,
    Serait-il possible d’adapter ce scénario pour le plugin Z-Wave
    Merci de votre aide
    Cdlt
    Zozotitou06

    1. Guillaume

      Bonjour,
      En zwave il ya des retours d’état du coup le scénario perd de son intérêt non ?

  16. Zozotitou06

    Merci, mais je n’arrive pas récupérer les infos et faire comme dans ton scénario, aurais-tu des infos à me donner ou tutoriel.
    Merci beaucoup
    Zozotitou06

    1. Guillaume

      Je n’ais pas de volet en zwave. Après si tu as les commandes monter descendre et stop, le tutoriel doit fonctionner.

  17. Zozotitou06

    Bonjour,
    Je suis intéressée par ton widget car je n’arrive pas le faire, merci de mon donné quelle idée
    Cdlt
    Zozotitou06

  18. Zozotitou06

    Merci, pour le widget comment as-tu fait pour pour les touches de pourcentage et pour le visuel du widget
    cdlt

  19. Gavyherel

    Bonjour Guillaume,
    Merci pour ce tuto. Il fonctionne à merveille sur mes 4 volets roulants.
    Néanmoins, mes volets ne mettent pas le même temps à monter qu’à descendre (phase de dépliage enlevée).
    Du coup, la position 50 % lorsque je pars du bas (ouverture du volet à 50%) ne correspond pas du tout à la position 50% lorsque je pars du haut (fermeture à 50%).
    Comment intègrerais-tu un tag « Volet0 » dans le scénario ?
    Merci pour ton aide.

    1. Guillaume

      Bonjour,
      Je pense que j’ajouterai un tag volet100up et un tag volet100dwn a la place du tag volet100. Il suffit ensuite d’appeler le non tag dans le scénario a la place de volet100.
      Est-ce que cela répond à ta problématique et fonctionne ?

  20. Mat

    Bonjour, super taf merci!!!
    je reprend la question ci dessus, j’ai aussi du mal à savoir où remplacer les tag par volet100up ou volet100dwn. Tu pourrais détailler s’il te plait ?

    1. val0m

      Bonjour Mat, j’avais le même problème concernant mes volets.
      J’ai rajouter les deux tags Volet100Up (temps total en monter) et le tag Volet100Down (temps total en descente), et le tag Volet100 qui récupère le bon tag.

      tag : Volet100Down – Valeur : 20
      tag : Volet100Up – Valeur : 25
      tag : Volet100 – Valeur : (#[Salon][Volet Salon][Etat_save]# > #[Salon][Volet Salon][Etat]# ? tag(Volet100Down) : tag(Volet100Up))

      En rajoutant ces deux tags et en modifiant le tag Volet100, on ne modifie pas le scénario de Guillaume.

  21. val0m

    Petite erreur dans le texte lorsque tu rajoute la condition SI « SI tag(VoletWait) = 0 ALORS » dans ton scénario, il faut mettre une condition « > » (supérieur) à la place 🙂 , j’ai cherché pas mal de temps l’erreur.
    Merci en tout cas pour ce scénario tout beau, tout propre !

    1. solidkris

      salut valom, je cherche a mettre en place le scénario avec ton adaptation mais ca ne marche pas.
      sur le tag volet 100 ca me renvoi que le tag est noK.
      j ai 8 en down et 13 en up.
      Pourrais tu me détailler d’avantage ton modificatif s’il te plait?

  22. Paroche

    Bonjour,
    Après plusieurs heures à suivre ce tuto, je ne parviens pas à ouvrir ou fermer le volet.
    J’ai l’impression qu’aucune commande n’est envoyée au RFXCom.
    En revanche, les commandes fonctionnent correctement depuis le Dashboard ou l’appli mobile.
    Les commandes virtuelles ne fonctionnent pas
    Merci d’avance pour votre aide et meilleurs voeux pour cette nouvelle année…
    Voir le log suivant:
    ————————————
    [2021-01-02 15:05:42][SCENARIO] Start : Scenario lance manuellement.
    [2021-01-02 15:05:42][SCENARIO] Exécution du sous-élément de type [action] : action
    [2021-01-02 15:05:43][SCENARIO] Mise à jour du tag #volet100# => 23
    [2021-01-02 15:05:43][SCENARIO] Mise à jour du tag #VoletWait# => 0
    [2021-01-02 15:05:43][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2021-01-02 15:05:43][SCENARIO] Evaluation de la condition : [0 = 0] = Vrai
    [2021-01-02 15:05:43][SCENARIO] Exécution du sous-élément de type [action] : then
    [2021-01-02 15:05:43][SCENARIO] [Erreur] Aucune commande trouvée pour #[Salon][Volet][Descendre]#
    [2021-01-02 15:05:43][SCENARIO] Exécution du sous-élément de type [action] : action
    [2021-01-02 15:05:43][SCENARIO] Mise à jour du tag #VoletStart# => 1609596343
    [2021-01-02 15:05:43][SCENARIO] Mise à jour du tag #VoletBeforeSleep# => 0
    [2021-01-02 15:05:43][SCENARIO] Affectation de la variable VoletSalonWait => 0 = 0
    [2021-01-02 15:05:43][SCENARIO] Affectation de la variable VoletSalonStop => 0 = 0
    [2021-01-02 15:05:44][SCENARIO] [Wait] Condition valide par dépassement de temps : 0!=0 =>
    [2021-01-02 15:05:44][SCENARIO] Suppression de la variable VoletSalonWait
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2021-01-02 15:05:44][SCENARIO] Evaluation de la condition : [0 != 0] = Faux
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [action] : else
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2021-01-02 15:05:44][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [action] : then
    [2021-01-02 15:05:44][SCENARIO] Exécution d’un bloc élément : 16
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2021-01-02 15:05:44][SCENARIO] Evaluation de la condition : [0 != 0 ET 0 != 100] = Faux
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [action] : else
    [2021-01-02 15:05:44][SCENARIO] Mise à jour du tag #VoletWait# => -1609596343
    [2021-01-02 15:05:44][SCENARIO] Exécution d’un bloc élément : 17
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [condition] : if
    [2021-01-02 15:05:44][SCENARIO] Evaluation de la condition : [0 > 0] = Faux
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [action] : else
    [2021-01-02 15:05:44][SCENARIO] Changement de [Salon][Volets Salon][Etat] à 0-(–1609596343*100/23)
    [2021-01-02 15:05:44][SCENARIO] Exécution du sous-élément de type [action] : action
    [2021-01-02 15:05:45][SCENARIO] Changement de [Salon][Volets Salon][Etat_save] à 0
    [2021-01-02 15:05:45][SCENARIO] Affectation de la variable VoletSalonStop => 0 = 0
    [2021-01-02 15:05:45][SCENARIO] Fin correcte du scénario

  23. Guillaume

    Bonjour,
    Meilleurs vœux a vous aussi.

    Pour le scenario la commande #[Salon][Volet][Descendre]# n’existe pas.
    Log : [2021-01-02 15:05:43][SCENARIO] [Erreur] Aucune commande trouvée pour #[Salon][Volet][Descendre]#
    Vous n’avez surement pas appelé la commande de votre équipement avec ce nom.
    Bon courage.

  24. Hubert

    Bonjour,

    Effectivement il en manquait des morceaux.
    Merci beaucoup.

    Bonne fin de journée

  25. ashkii7

    Bonjour,
    Je découvre cet excellent TUTO que j’ai parcouru avec attention. Bravo beau travail !
    Mais avant de me lancer j’aimerai savoir SVP une chose juste pour confirmer mon analyse.
    Voilà : je commande actuellement mes volets en tout ou rien (Up-Stop-Down) à l’aide du plugin AirSend associé à mon module Devmel.
    1 – Est-ce cela fait la même chose que le plugin RFXcom associé au RFXtrx433XL cité en prérequis ?
    2 – Si oui, je n’ai juste qu’à transposer. C’est bien cela ?
    Merci de vos réponses
    Cordialement
    ashkii7

    1. Guillaume

      Bonjour,
      Je ne connais pas ce plugin mais le script ne nécessite que les 3 actions up down stop. Du coup ça devrait fonctionner sans problème.
      Bon courage.
      Guillaume.

Les liens d’affiliation vers les partenaires nous permettent de recevoir du matériel gratuit afin de proposer plus de tests. Nous refusons les partenaires qui ne nous laissent pas dire ce que nous voulons dans les articles. Les commissions perçues sont réutilisées pour l’achat de matériel et l’entretien du site.
Merci de soutenir les sites amateurs et indépendants !

Merci à ceux qui ont contribué.

Fermer le menu

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :