Information temporel de la dernière exécution d'une action

Bonjour,

J’ai pas mal cherché mais je sèche.

Je souhaiterai connaitre le temps en seconde de la dernière exécution d’une action d’un équipement RFXcom.

Le contexte :
Madame et moi partons ou rentrons à la maison dans le même véhicule et Jeedom lance la fermeture du portail dès que l’un de nous sort de la zone.

Le soucis c’est que si on sort ensemble, l’action fermeture portail est lancé 2 fois ( le portail est commandé en RFXcom et c’est la même commande (action portail) qui ouvre ou ferme le portail).
L’action ouverture et fermeture n’est pas dissociable car c’est une impulsion d’une télécommande.

Donc ce qui se produit quand on part ensemble c’est « fermeture » - « ouverture » provenant de nos 2 départs ou arrivées en moins de quelques secondes, ce qui a pour effet d’arrêter le portail lors de l’ouverture ou la fermeture, quand on arrive ou l’on part.

On à chacun un scénario pour nos départs et la parade que j’ai trouvé c’est que chacun des scénarios vont checké l’autre avec " si lastScenarioExecution(#[départ][moi][gestion depart]#) < 120 " alors n’exécute pas l’action dans le scénario de l’autre sur le portail et ça fonctionne la plupart du temps.

Mais pas toujours.

Ne peut-on pas avoir l’information de la dernière exécution de l’action ouverture portail directement ?

ps: j’ai un capteur d’ouverture sur le portail mais son état change pas instantanément donc je ne peux pas utiliser « lastChangeStateDuration( » du capteur.

Merci à vous pour vos idées

  • stateDuration(commande) : Donne la durée en secondes depuis le dernier changement de valeur. -1 : Aucun historique n’existe ou la valeur n’existe pas dans l’historique. -2 : La commande n’est pas historisée.
  • lastChangeStateDuration(commande,valeur) : Donne la durée en secondes depuis le dernier changement d’état à la valeur passée en paramètre. -1 : Aucun historique n’existe ou la valeur n’existe pas dans l’historique. -2 La commande n’est pas historisée

Vous pouvez créer un virtuel qui sera MAJ par votre commande d’ouverture et réinitialisé par l’état du capteur ?

Ou utiliser
image
sur votre commande d’ouverture pour initier un état virtuel qui sera lui aussi MAJ de la même façon par l’état de votre détecteur de portail.

Du style :
Impulsion => Vitruel d’état (en mouvement)
détecteur de portail (Ouvert/fermer) => Virtuel d’état (statique)

Dans vos scénarios, par d’effet si en mouvement (ou stateDuration(commande) de l’état du virtuel)

Merci J2B pour ton idée :wink:

Mais comme je disais, je ne peux pas me fier à l’information de l’état du portail avec ses capteurs car le changement n’est pas instantanée (due à la prise en compte de la commande par le portail et sa motorisation qui se met en action pour l’ouvrir)
Et l’envoi de l’action d’ouverture pour nos 2 départs peuvent être de moins d’une seconde d’écart.

L’idéal ce serait d’avoir l’instant de l’impulsion pour éviter que cette impulsion soit redemandé si le scénario de départ se déclenche à nouveau dans la foulée

D’ou ma deuxièmes réponse :wink:
Vous aurez un état instantané de mouvement via un virtuel et une action après exécution de votre commande d’impulsion RFXCOM

Je vais faire des tests avec cette idée de « mouvement en cours » sur le virtuel que j’ai déjà pour le portail, ça me plait bien :wink:
Merci

Dans action après exécution de la commande ajouter un event() pour mettre à jour une info d’état de mouvement dans votre virtuel actuel.

Merci @J2B , j’ai fait avec une variable qui passe à 1 pendant 20 seconde, le temps de l’action.
Les scénarios viendront vérifier cette variable avant de se lancer.

Problème résolu :wink:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.