Page 1 sur 1

Relance d'une commande sur équipement sensible

Publié : 17 avr. 2019, 12:01
par Domsrx06
Bonjour
Comment s'assurer qu'une commande (*) est bien passée sur un équipement sensible ?
(*) protocole z-wave ou autre : pourvu que l'on ai un retour d'état (direct ou indirect ex: ping ou une autre mesure sur courant, débit d'eau...)

Ce qui m'intéresse c'est que la commande soit bien passée (sans que je relance manuellement)
et je ne souhaite pas attendre trop longtemps pour relancer (voir test durée état ci-dessous en minute)

je ne vois pas d'autre possibilité que de répéter la commande plusieurs fois au cas ou elle se serait "perdue"

Le principe de la relance de la commande, dans le scénario principal lui même ou par appel d'un scénario dédié a cette commande :
- lancer une boucle : De 1 A XX
-- tester (if) la valeur d'état de la commande != [l'état cible] (alors)
--- activer la commande (action)
--- attendre (wait) le retour d'état de la commande et Time out (ex = 1 sec)

donc l'(action) et le (wait) vont se réaliser tant que la valeur d'état de la commande n'est pas à la valeur attendue
si commande est à l'état attendu (donc != [l'état cible] est faux) : la boucle de déroule à "vide" = sans les actions dans le (if)
dans un exemple avec XX == 5 on peut avoir 2 boucles avec actions (1 et 2) si la commande "passe" la deuxième fois et 3 boucles sans actions (3 à 5)

ensuite, juste après la boucle
(qui peut avoir été exécutée 1 fois = ok ; de 2 à 4 fois (pour 5 boucles dans mon exemple) = finalement ok ou 5 fois = nok)
- re-tester (if) la valeur d'état de la commande != [l'état cible] (alors)
-- activer un autre scenario (plan B) ou un message/alarme etc...

C'est un peu lourd : avez vous mieux ? :idea: :idea:

- Par une sortie de la boucle sur condition dans la boucle:
Je n'ai pas trouvé l'instruction Jeedom équivalente à "break" et (stop) est trop puissant car il stoppe le scénario

- Par changement dans la boucle de la valeur de la boucle
(utilisation d'une variable initialisée à 5 avant boucle et passée à 1 dans la boucle) = ne marche pas

- Par surveillance de la durée de l'Etat de la commande (sur une Info = Configuration commande / Alerte / Niveau Warning-Danger)
oui mais c'est un message : je ne peux relancer la commande ou un scénario de relance
et cela ne m'aide pas : c'est la durée du non passage à 1 / On par exemple, qui m'intéresse...

- Par scénario principal (qui gère la commande) avec cron de x minutes :
en gros les conditions de la commande (en incluant l'état de la commande elle même dans les conditions ET) ne sont pas remplie
oui mais si on travaille sur changement état (non répétition) d'une des conditions cela complique
ou oblige à relancer tout le scénario (Programmé) à fréquence plus élevée juste pour cette action (charge CPU)

- Dans la Configuration de la commande / Configuration / Action avant après exécution de la commande :
lancement du scénario ci-dessus possible. Avantage = quelque soit le déclencheur (widget ou scénario) la relance est activée

Merci, @+