Boucle pour contrôler qu'une commande est passée

Bonjour

Pour sécuriser l’arrosage je cherche a faire un contrôle sur le résultat d’une commande :

(A) Commande ouverture vanne
si vanne ouverte alors sleep temps d’arrosage
sinon
revenir à (A)

j’ai essayé avec une boucle mais elle tourne quelque soit le résultat

il me faudrait un « tant que » mais je ne trouve pas

Bonjour,

Ouverture de Vanne
Si ouverte alors DANS x min fermer Vanne
Sinon scenario démarrer (en appelant le scénario lui même)

Merci

La suite su scénario c’est la commande fermer la vanne. Pour faire le même contrôle ça va relancer tout le scénario et donc l’arrosage …
je peux faire 2 scénarios mais si c’est possible d’avoir un seul scénario par vanne ça simplifie les contrôles

Bonjour,
Le bloc dans ne relance pas tout le scenario il fait seulement les actions dans le bloc dans au moment ou tu le demandes.

Ca n’existe pas dans Jeedom en tant que tel.

Si ton scénario ne fait que ça, le plus simple est de faire un SI dans ta boucle et si tu est dans la condition pour où tu n’a plus besoin de boucler tu fais un stop du scénario. Il faut bien entendu que tu n’ait plus rien à faire derrière mais c’est le plus simple.

Tu as un équivalent du tant que avec l’action wait, en gros c’est une action qui attend qu’une condition soit valide pour passer a la suite ou sort au bout d’un certain timeout. Te suffit donc de mettre un wait avec la condition et ton timeout puis ensuite de tester l’état de l’arrosage si il est pas bon faut relancer la commande.

1 « J'aime »

Bonjour

Voilà où j’en suis

Le WAIT ne fait qu’attendre que la condition se remplisse mais ne relance pas la commande ?

Je ne comprend pas comment fonctionnerait le bloc DANS pour ce cas ?

Dans le cas où la commande ne passerait définitivement pas comment sortir de la boucle pour lancer une autre action (message alerte , relance demon ou autre ?)

merci pour les retours

Vous ouvrez la vanne.

Le DANS programme une tâche dans x minutes pour éteindre et votre scénario s’arrête.
Quand l’heure est arrivée, la tâche programmée dans le cron par le DANS s’exécute.

Autre exemple, un scénario qui se lance a 5h du matin et vous faites un DANS 120 ouvrir volet

Votre scénario s’arrête. Pourtant à 7h00 la tâche d’ouvrir les volets va s’exécuter

Avec un wait le scénario reste en cours d’exécution puisqu’il est en attente de quelque chose.
Ce qui au niveau charge si on est sur une brouette peut l’écrouler si on fait cela dans beaucoup de scénarios.

2 « J'aime »

As tu jeté un oeil au plugin-swassist qui fait ce que tu souhaites me semble t’il

Norbert

1 « J'aime »

Bonjour,

Je fais ça pour mettre en chauffe un jacuzzi un peu récalcitrant

Le scénario s’appelle lui même récursivement
ça fonctionne parfaitement

1 « J'aime »

le WAIT avec un « SI/ALORS | SINON » juste après, ca fonctionne pas mal aussi, par exemple:

SI la condition du wait n’a pas été atteinte dans le timeout défini, ALORS relancer le même scénario (en jouant éventuellement au début du scénario sur le trigger et donc en faisant d’autres actions si le trigger n’est pas celui initial)… SINON faire l’action correspondant au condition du wait…

bref c’est infini comme possibilités…

Hello

Je vais me servir du plugin swassist pour gérer les répétitions d’ordre et gérer l’echec dans le scénario : alerte par message, fermeture de la vanne centrale d’arrosage … à voir

Est que je peux relancer le Demon Z2M via le scénario ?

Oui, avec Jeelink (en boucle local) ou plus perenne, avec la beta du plugin-virtual qui permet de creer un equipememnt « jeedom interne » qui permet de gerer son jeedom et notamment d’arreter et relancer les demons

Norbert

1 « J'aime »