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
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)
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
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
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é
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.