Arréter une pompe au bout de x litres

Bonjour,

Je sèche sur un problème qui devrait être pourtant simple a résoudre
Je cherche a arréter une pompe après x litres
Pour la partie hardware, j’ai réussi : un PI3, compteur eau a implusion et jeedouino, j’ai bien le nombre de litres qui remontent dans jeedom

Pour la partie soft, je suis une bille : j’ai testé un scénario qui reprend une variable « Compteur_eau », en mettant la condition + 5 litres :
#[JARDIN][RPI 3 Test IP 28][7_compteur_pullup]# == variable(Compteur_Eau)+5
Le déclencheur du scénario est le compteur pullup
Le calcul fonctionne, mais ça ne marche pas car, vous avez deviné, la variable s’incrémente en temps réel, ci-dessous le log :
[2020-04-20 11:41:33][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [JARDIN][RPI 3 Test IP 28][7_compteur_pullup].
[2020-04-20 11:41:33][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-04-20 11:41:33][SCENARIO] Affectation de la variable Compteur_Eau => 113 = 113
[2020-04-20 11:41:33][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-04-20 11:41:33][SCENARIO] Evaluation de la condition : [113 == 113+5] = Faux
[2020-04-20 11:41:33][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-04-20 11:41:33][SCENARIO] Fin correcte du scénario
------------------------------------
[2020-04-20 11:42:03][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [JARDIN][RPI 3 Test IP 28][7_compteur_pullup].
[2020-04-20 11:42:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-04-20 11:42:03][SCENARIO] Affectation de la variable Compteur_Eau => 118 = 118
[2020-04-20 11:42:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-04-20 11:42:03][SCENARIO] Evaluation de la condition : [118 == 118+5] = Faux
[2020-04-20 11:42:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-04-20 11:42:03][SCENARIO] Fin correcte du scénario

Je souhaiterais qu’au début du lancement du scénario, il se base sur l’état initital du compteur d’eau sans évoluer
Peut-être avec un tag ?
Merci de m’aiguiller

Salut,
Je ne comprends pas tout ton truc mais pourquoi n’utilises-tu pas une variable intermédiaire qui elle ne s’incrémenterait pas en temps réel ?

Salut,

C’est ce que je voudrais faire mais comment créer une variable intermédiaire qui ne s’incrémente pas ?
Car, dès que je crée la variable « Compteur_Eau », elle s’incrémente dès que le compteur tourne (normal)

Bonjour,
2 variables

memcompteur
et
compteur

lorsque le scénario démarre la pompe
memcompteur = compteur

condition si compteur > memcompteur + 100

arrêtre la pompe

je te laisse ajuster les détails

Je plussoie.
Tu ne déjeunes pas toi?

Merci a vous 2 et bon appétit si ce n’est déjà fait
Olive : merci pour l’info, mais qu’elle valeur je vais chercher pour memcompteur ?
Si je reprend l’équipement compteur, forcément ça ne peux marcher, car il va s’incrémenter

Si tu mets ta valeur à un instant t, la variable intermédiaire ne va pas s’incrémenter.
Tu mets dans memcompteur la valeur de compteur à la volée.
En gros variable(memcompteur) = variable(compteur) après ou avant que tu l’aies récupérée dans ton équipement.
Mais surtout pas variable(memcompteur) = valeur de l’équipement

Je ne suis pas sur de bien comprendre, je souhaiterais que cette valeur soit déterminée automatiquement au démarrage du scénario et ne rien avoir a saisir

A chaque fois que le compteur commence a tourner et envoi 1 implusion (=1 litre), le scénario se déclenche, mémorise l’état du compteur (memcompteur) et la compare

J’ai essayé variable(memcompteur) = valeur de l’équipement , mais ça ne marche pas car il s’incrémente, comme tu l’indique
Je ne suis pas assez calé pour mémoriser cette information et la réutiliser, c’est pour ça que je m’intéressais aux tags, car les variables sont dynamiques

Ok, je crois comprendre ton besoin.
Alors, il faut faire autrement.
Tu dois récupérer la valeur de ton équipement non pas au début mais à la fin du scénario et tu compares cette valeur récupérée avec la valeur courante.
Si cela correspond à ton besoin tu rentres dans ton test et à la fin tu réinitialises la valeur de memcompteur avec la valeur courante de l’équipement sinon tu passes.
Donc, il te faut initialiser la varaible memcopteur à 0 au tout début, indépendemment de l’exécution du scénario, et ensuite, cette valeur n’est réinitialisée qu’à chaque passage dans le ALORS de ton bloc.

A l’extérieur du scénario et une fois pour toute memcompteur = 0

Dans le scénario
variable(compteur) = valeur équipement
SI variable(compteur) > variable(memcompteur)+5
ALORS
variable(memcompteur) = variable(compteur)
Toutes tes actions prévues
Pas de sinon

Ok, je testerais ça ce soir, et ferais un retour, je pense avoir compris le principe…

Au fait, quel est le déclencheur de ton scénario ?
Si c’est ton équipement, le scénario va être sans cesse activé et va saturer ta box.
Tu as peut-être intérêt à faire une déclenchement programmé quitte à louper des passages.

Pour le déclencheur, il s’agit tout simplement de mon compteur
Il envoie 1 impulsion par litre au Pi 3, mais jeedouino renvoie l’information qu’a intervalle régulier, donc je pense que ça pourrait aller

Pour info je suis passé sous proxmox sur intel i7 16 gb de ram et ssd, la charge est de…0,1 %, je pense avoir de la marge avant de saturer jeedom

Mais effectivement, je peux le déclencher toutes les minutes via un cron aussi, je verrais

Alors il te faut séparer en 2 scénario
un qui s’occupe du comptage

un qui n’est déclenché que lorsque ta pompe est mise en marche

c’est celui que je t’ai décrit en haut de ce fil

bonne fin journée

On compte sur toi ca va fonctionner,
C’est juste une histoire de déclancheur qui ne peuvent pas cohabité ensemble

Bonsoir,

Mon scénario va servir à programmer l’arrosage automatique de mon jardin, confinement oblige je viens de passer plus de 300 mètres de tuyaux, avec 8 zones différentes, lol Tout ça piloté automatiquement par jeedom.
Vos réponses m’ont fait réfléchir, et j’ai trouvé une solution un peu similaire, mais je voulais que s’affiche sur mon Dashboard le nombre de litres programmés « à consommer », par rapport à la valeur du compteur d’eau, et le reste dans ma citerne.

J’ai donc créé un virtuel sans commande.
Dans le scénario avec la commande « event », je mets à jour la valeur du virtuel en prenant pour exemple l’état du compteur + 5 litres.
Lorsque le compteur atteint la valeur du virtuel , le scénario fonctionne, et arrête la pompe
Et à la fin de celui-ci, lorsqu’il a arrêté la pompe, il met à jour le virtuel avec la quantité à programmer et qui sera respectée lors du prochain lancement de la pompe.

Je viens de tester ça fonctionne super bien.
Le but est de gérer au mieux l’eau de ma citerne, et de dire par exemple à chaque fois que j’arrose je mets 200 litres, donc si j’ai 10 m³ je vais pouvoir arroser 50 fois.
Ci-dessous copie d’écran de mon scénario.
En tout cas merci de m’avoir aidé

Bon parfait tu nous enverra des légumes :wink:

Si ton sujet ne pose plus de question tu n’a plus qu’a cliquer la case solution et face de la réponse qui correspond le mieux a fin quel celle-ci remonte en début du fil pour les lecteur trouve plus rapidement la solution a un problème identique.

Bonne soirée

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