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é hardware j’utilise :
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.
- 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.
- 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.
- 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#
- Dans Nom information cliquer sur « Rechercher équipement » et rechercher la commande Stop de votre volet.
- Sauvegarder.
- 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.
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.
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]#.
- 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é.
- 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.
- Cliquer sur « + Ajouter Bloc » pour ajouter un nouveau bloc.
- Sélectionner « Si/Alors/Sinon ».
- Enregistrer.
SI #[Salon][Volets Salon][Etat]# != tag(VoletBeforeSleep) ALORS
Ce 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.
- 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.
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.
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.
bonjour merci pour le tutorial je l’ai suivi mais j’ai rien qui ce lance sur mon volet je vois pas ou est l erreur si joint mon fichier que j’ai creer json https://drive.google.com/drive/folders/12zi59DaB2X9szdblzeAjSNo2Vx8CMJ-N?usp=sharing
Je suis en vacances je vais regarder les images et le json des que possible.
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]#.
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ù.
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 ?
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 ?
Merci pour la réponse je vais modifier ça
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
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
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é.
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.
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
Bonjour et merci de suivre les tutos.
Dans les virtuels il ne faut pas donner le même nom au commandes actions et info.
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
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.
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
Ok merci car j’ai beau regarder tous ton article je pense avoir fait comme toi
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.
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.
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.
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.
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
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.
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
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.
Bonjour à tous,
Serait-il possible d’adapter ce scénario pour le plugin Z-Wave
Merci de votre aide
Cdlt
Zozotitou06
Bonjour,
En zwave il ya des retours d’état du coup le scénario perd de son intérêt non ?
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
Je n’ais pas de volet en zwave. Après si tu as les commandes monter descendre et stop, le tutoriel doit fonctionner.
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
Bonjour,
Le widget est sur la market mais il n’est plus compatible avec Jeedom V4.
https://www.jeedom.com/market/index.php?v=d&p=market&type=widget&&name=SlidVertical_v3
Merci, pour le widget comment as-tu fait pour pour les touches de pourcentage et pour le visuel du widget
cdlt
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.
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 ?
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 ?
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.
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 !
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?
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
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.
Bonjour,
Effectivement il en manquait des morceaux.
Merci beaucoup.
Bonne fin de journée
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
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.