Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Détection d'une fuite d'eau

Pour parler de tout, et surtout de rien !
benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 02 août 2018, 10:03

Dans le design, maison. Moi. Basé sur les calculs de suivi conso payant

Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk


benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 03 août 2018, 17:11

fwehrle a écrit :
19 juil. 2018, 11:10
J'utilise une vanne 2 voies Wiltech branché sur une IPX. Elle a l'avantage de ne pas consommer de courant au repos.
Et elle reste dans son état en cas de coupure de courant.
Mon scénario est imbriqué dans mes flux domotique et n'est pas forcement très clair, mais le voici :
Détection de fuite :

Code : Tout sélectionner

- Nom du scénario : 3.Conso Eau - Fuite
- Objet parent : Consos
- Mode du scénario : provoke

Analyse de la consommation d'eau pour identifier les fuites, les douches, WC, etc..
Vanne : 0=Ouvert

    
    SI #[Paramétrage][Gestion fuite deau][Etat]# == 1 ET (#[Consos][Compteur Eau][L/min]# > 0 OU 3==3) ET (variable(IsConsoEauEnCours,0)==1)
    ALORS
         
        SI min(#[Consos][Compteur Eau][L/min]#,60min)>0 ET (variable(ConsoEau_EnCours,0)>300 OU  (max(#[Consos][Compteur Eau][Index]#,1hour)-min(#[Consos][Compteur Eau][Index]#,1hour)>300))
        ALORS
             
            SI #[Jardin][Arrosage][Etat]# == 1 OU (lastChangeStateDuration(#[Jardin][Arrosage][Etat]#,0)<=600)
            ALORS
             #[Aucun][Script Log][Warning]# - Options : {"enable":"1","background":"0","title":"WATER","message":"Surconsommation d'eau due \u00e0 l'arrosage"}
             (stop) Arret du scenario
            SINON
             
            SI #[Garage][Vanne Eau][Etat]# == 0 ET stateDuration(#[Garage][Vanne Eau][Etat]#)>=(4*3600)
            ALORS
             (scenario) start de [Maison][_Notification Manager]
             #[Aucun][Sarah Parle TTS][Parle]# - Options : {"enable":"1","background":"1","title":"","message":"Alerte. Alerte. Surconsommation d'eau d\u00e9tect\u00e9e."}
                 
                SI 3==3
                ALORS
                 ask - Options : {"enable":"1","background":"0","question":"Consommation d'eau depuis plus d'une heure (variable(ConsoEau_EnCours,0)L). Dois-je couper l'ariv\u00e9e d'eau?","answer":"Oui;Non","variable":"Ask_CouperEau","timeout":"120","cmd":"#[Aucun][Notification Telegram][Franck]#"}
                     
                    SI (variable(Ask_CouperEau,Oui) != "Non" ET (#[Sécurité][Parents][Présence]#!=1 OU variable(Etat_Maison,Dodo)=="Dodo")) OU variable(Ask_CouperEau,Oui) == "Oui"
                    ALORS
                     #[Garage][Vanne Eau][Fermer]# - Options : {"enable":"1","background":"0"}
                     #[Aucun][Script Log][Warning]# - Options : {"enable":"1","background":"1","title":"WATER","message":"Fermeture de l'arriv\u00e9e d'eau principale."}
                     (scenario) start de [Maison][_Notification Manager]
                    SINON
                     (scenario) start de [Maison][_Notification Manager]
                     (scenario) start de [Maison][Alerte][_Notification Maison]
                SINON
             (scenario) start de [Maison][Alerte][_Notification Maison]
             #[Aucun][Script Log][Warning]# - Options : {"enable":"1","background":"1","title":"WATER","message":"Consommation d'eau depuis plus d'une heure ou fuite d\u00e9tect\u00e9e (variable(ConsoEau_EnCours,0)L) ."}
            SINON
        SINON
             
            SI variable(Ask_CouperEau) != ""
            ALORS
             (variable) Affectation de la variable : Ask_CouperEau à 
            SINON
         
        SI #[Maison][Présence][Etat]# == 0 ET (lastChangeStateDuration(#[Maison][Présence][Etat]#,0)>600)
        ALORS
             
            SI Variable(ConsoEau_EnAbsence,0)>0 ET Variable(Ask_ConsoEau_EnAbsence) != "Oui"
            ALORS
             (scenario) start de [Maison][_Notification Manager]
             (variable) Affectation de la variable : Ask_ConsoEau_EnAbsence à Oui
            SINON
        SINON
    SINON
Scenario d'analyse de conso, planifié toute les 5mn (et qui lance le précédent) :

Code : Tout sélectionner

- Nom du scénario : 1.Conso Eau - Calcul 5mn
- Objet parent : Consos
- Mode du scénario : schedule
    - Programmation : */5 * * * *

Analyse de la consommation d'eau et cumul (début / fin) pour identifier les fuites, les douches, WC, etc..

    
    SI (#[Consos][Compteur Eau][Index]#-variable(ConsoEau_LastIndex,0))>0
    ALORS
         
        SI min(#[Consos][Compteur Eau][L/min]#,15min) > 0
        ALORS
        SINON
         
        SI variable(IsConsoEauEnCours,0) ==0
        ALORS
         (variable) Affectation de la variable : IsConsoEauEnCours à 1
        SINON
     (variable) Affectation de la variable : ConsoEau_EnCours à variable(ConsoEau_EnCours,0)+(#1321#-variable(ConsoEau_LastIndex,0))
         
        SI #[Maison][Présence][Etat]# == 0
        ALORS
         (variable) Affectation de la variable : ConsoEau_EnAbsence à variable(ConsoEau_EnAbsence,0)+(#1321#-variable(ConsoEau_LastIndex,0))
        SINON
     (scenario) start de [Consos][Auto][3.Conso Eau - Fuite]
     (sleep) Pause de  : 3
     (variable) Affectation de la variable : ConsoEau_LastIndex à #1321#
    SINON
         
        SI variable(IsConsoEauEnCours,0)==1
        ALORS
         (variable) Affectation de la variable : IsConsoEauEnCours à 0
         #[Aucun][Notification Franck Alarme][Push Très Basse Priorité]# - Options : {"enable":"0","background":"0","title":"Conso d'eau","message":"Conso d'eau : round(variable(ConsoEau_EnCours,0))L"}
         #[Aucun][Script Log][Divers]# - Options : {"enable":"1","background":"0","title":"WATER","message":"Conso d'eau : round(variable(ConsoEau_EnCours,0))L"}
         (variable) Affectation de la variable : ConsoEau_Last à variable(ConsoEau_Last,0)+variable(ConsoEau_EnCours,0)
         (variable) Affectation de la variable : ConsoEau_EnCours à 0
         (scenario) start de [Consos][Auto][2.Conso Eau - Analyse]
        SINON
    
    ACTION
     (variable) Affectation de la variable : ConsoEau_LastIndex à #1321#
         
        SI Variable(Ask_ConsoEau_EnAbsence) == "Oui" ET #[Maison][Présence][Etat]# == 1
        ALORS
         #[Aucun][Notification Telegram][Franck]# - Options : {"enable":"1","background":"0","title":"Conso d'eau en absence","message":"Variable(ConsoEau_EnAbsence)L d'eau consomm\u00e9s pendant votre absence."}
         (variable) Affectation de la variable : ConsoEau_EnAbsence à 0
         (variable) Affectation de la variable : Ask_ConsoEau_EnAbsence à Non
        SINON
     (scenario) start de [Consos][Auto][3.Conso Eau - Fuite]
     (sleep) Pause de  : 2
     (variable) Affectation de la variable : ConsoEau_LastIndex à #1321#
Salut Fwherle et les autres :)

Désolé, je n'ai pas eu le temps d'avancer...

Mais j'avoue que je ne sais pas trop comment le prendre... lol.

Le problème c'est que j'ai un index quotidien qui démarre à 0 à minuit.
J'ai aussi un index permanent depuis l'ajout du compteur.

Comment créer un indicateur de consommateur sur les 60 dernières minutes glissantes ?

Je vois bien dans la documentation la fonction statistics, mais bonjour... il faut rentrer une date/heure de début de fin. Même avec un scénario qui tourne toutes les minutes, il faudrait recalculer tout ça à chaque instant (ou bien gérer un virtuel qui le fait).

Code : Tout sélectionner

average(commande,période) et averageBetween(commande,start,end)
Donnent la moyenne de la commande sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP) :
min(commande,période) et minBetween(commande,start,end) : Donnent le minimum de la commande sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP) :

max(commande,période) et maxBetween(commande,start,end) : Donnent le maximum de la commande sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP) :

duration(commande, valeur, période) et durationbetween(commande,valeur,start,end) : Donnent la durée en minutes pendant laquelle l’équipement avait la valeur choisie sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP) :

statistics(commande,calcul,période) et statisticsBetween(commande,calcul,start,end) : Donnent le résultat de différents calculs statistiques (sum, count, std, variance, avg, min, max) sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP) :

tendance(commande,période,seuil) : Donne la tendance de la commande sur la période (period=[month,day,hour,min] ou expression PHP) :
Ou alors un simple scénario qui fait la valeur actuelle - la valeur il y a 60 minutes et si supérieure à 300 alors fuite. Le truc c'est que je ne vois pas comment récupérer la valeur dans l'historique d'une information 60 minutes plus tôt...

Bref je sèche !

Un coup de pouce svp ?

Fwherle, d'où sors-tu cet indicateur ?

[Consos][Compteur Eau][L/min]

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

Re: Détection d'une fuite d'eau

Message par tomdom » 03 août 2018, 18:23

Bonjour,

Vu que la valeur de ton compteur ne fait qu'augmenter (si j'ai bien compris), un truc comme :
statistics(max, [ton][compteur][valeur],'1 hour') - statistics(min,[ton][compteur][valeur],'1 hour')
devrait te donner ta consommation sur la dernière heure glissante.
Il faut, bien sûr, historiser [ton][compteur][valeur]

Edit :
Tu peux même écrire ça :
max( [ton][compteur][valeur],'1 hour') - min([ton][compteur][valeur],'1 hour')
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.


Avatar de l’utilisateur
Theking31
Actif
Messages : 1182
Inscription : 21 sept. 2017, 11:13
Localisation : Toulouse - Le Vernet

Re: Détection d'une fuite d'eau

Message par Theking31 » 29 août 2018, 11:04

Salut benj29,

A tu finalisé ton projet de fuit d'eau ?

Je suis comme toi avec un compteur à impulsion magnétique qui cumul les litres consommés dans un variable...

J'ai repris les différentes suggestions de ce fil mais j'ai trop de notification fuite d'eau :( :?



Calcul des litres/heure

Code : Tout sélectionner

max(#[Maison][Consommation (Virtuel)][Eau Conso Année]#,1 hour) - min(#[Maison][Consommation (Virtuel)][Eau Conso Année]#,1 hour)

Code : Tout sélectionner

[u]Scénario[/u]
- Nom du scénario : Fuite d'eau
- Mode du scénario : schedule
    - Programmation : */5 * * * *

Fuite d'eau

    
    SI (average(#[Maison][Consommation (Virtuel)][Conso / heure]#, 60 minutes)  == average(#[Maison][Consommation (Virtuel)][Conso / heure]#, 5 minutes))  ET (#[Maison][Consommation (Virtuel)][Conso / heure]# > 0)
    ALORS
     #[Jeedom][Notification Free][Thomas]# - Options : {"enable":"1","background":"0","title":"Notification Jeedom","message":"Consommation anormal d'eau\nMoyenne: average(#[Maison][Consommation (Virtuel)][Conso \/ heure]# , 60 minute) L\/Min"}
    SINON
Scenario fuite eau cron 5 minutes.png
Scenario fuite eau cron 5 minutes.png (35.97 Kio) Consulté 627 fois

Merci d'avance
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 11:22

Salut, non pas encore. Je suis en train de finir d'intégrer la partie harmony. Ce sera le prochain to-do. Entre temps j'ai déjà mis surtout les notifications de consommation.

Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk


mrRck
Timide
Messages : 27
Inscription : 16 juin 2018, 13:27

Re: Détection d'une fuite d'eau

Message par mrRck » 29 août 2018, 11:57

Oh voila un sujet très intéressant !
Vous utilisez tous des capteurs wemos pour le débit d'eau ?
Jeedom sur VM VMware
Full stuff Xiaomi, j'ai même les lunettes de soleil :geek: !
BLEA - Nut, SONOFF Wi-Fi en test
Gestion de présence + Alarme + Éclairage & Prises + Températures

Avatar de l’utilisateur
poluket
Helper
Messages : 1906
Inscription : 19 août 2017, 17:02
Localisation : Chastre - Belgique
Contact :

Re: Détection d'une fuite d'eau

Message par poluket » 29 août 2018, 12:18

mrRck a écrit :
29 août 2018, 11:57
Oh voila un sujet très intéressant !
Vous utilisez tous des capteurs wemos pour le débit d'eau ?
Perso, compteur de passage a impulsion (1l/imp) récupéré sur mon infra Knx. Jeedom incrémente un compteur virtuel.
Il est sûrement possible d'avoir un compteur dans le wemo et de d'incrémenter. Tout en envoyant vers jeedom
Helper Officiel Jeedom

Installation KNX + Sonos + Xiaomi Yeelight + Jeedom sur VM Proxmox + wifi unifi avec contrôleur + NAS DS1513+ + UPS + PFsense FW

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 12:20

mrRck a écrit :Oh voila un sujet très intéressant !
Vous utilisez tous des capteurs wemos pour le débit d'eau ?
Non. Impulsion sur rpi distante via jeedouino.

Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk


dvb
Actif
Messages : 1438
Inscription : 15 févr. 2015, 22:50

Re: Détection d'une fuite d'eau

Message par dvb » 29 août 2018, 14:12

Compteur à impulsions raccordé à un module ecodevice chez moi...

Envoyé de mon MHA-L29 en utilisant Tapatalk

DIY 4*2GHz - 4Go RAM - SSD
- ctrl 1-wire Dallas + IPX800 + X880
- ctrl RFXcom + Oregon (température) + Anémomètre
- ctrl Gen5 + Wallplug + fgrm-222 + Benext + Everspring AN157-6 + Aeon Key Fob+ ...

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 14:24

Je suis en train de faire mes scénarios de gestion de fuite d'eau :

- fuite lente : un pour consommation d'eau ininterrompue sur une base de 60 min pour démarrer.
- fuite rapide : consommation supérieure à 250L sur une heure (pour commencer) => piscine !
Je pense partir sur une consommation max pour l'été (350L) et hiver (250L) en fonction de l'activité de la piscine. A affiner.

En observant mes courbes de consommation quotidienne sur les 10 derniers jours où nous n'étions pas là, je peux en conclure que j'ai eu une fuite lente que je dois toper par le premier scénario.

Image

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 15:37

Hello,

En m'inspirant des retours de chacun et de mon expérience perso... voilà ce que j'ai fait.
J'ai encore un souci sur la détection d'eau - consommation ininterrompue, voir plus bas.

A affiner, notamment lors du prochain remplissage de la piscine.
Normalement, je laisse le robinet ouvert, mais je vais passer en mode ouvert/fermé moi-même.
Ainsi, je pourrais mesurer combien de litres d'eau il me faut pour remettre la piscine à niveau (entre le niveau KO et OK) ainsi que la durée de remplissage. Cela me permettra d'éliminer les fausses "fuites".

Un virtuel :
interrupteur on/off qui active ou désactive le scénario de surveillance

4 led : une pour dire que la surveillance est activée ou non, une pour la fuite conso ininterrompue, une pour la consommation max sur une heure, une qui est le OU des deux dernières (je m'en servirai pour envoyer le SMS ensuite).

Image

Image

Ensuite un scénario qui tourne toutes les 5 minutes pour l'instant... à voir si cela est intéressant de descendre plus bas (???).

2 parties en fait. J'affinerai ensuite les conditions de non-répétitions.

je prends le min sur la dernière heure comme proposé par fwherle et le max pour avoir la consommation de l'heure en cours.
je stocke cela dans un virtuel où je trace un peu tout au besoin (consommation 1h).

Image

Ensuite 1ère partie :

Image

Je regarde le niveau de la piscine
Si KO, j'autorise 350L max sur une heure (à affiner quand j'aurai fait le premier remplissage ...)
si supérieur, alors c'est une fuite de type conso max
Si le niveau est OK, j'autorise 250L max sur une heure (idem... à affiner)
si supérieur, alors c'est une fuite de type conso max.

(il manque un remise à zéro de fuite dans un des if, j'ai corrigé).

Seconde partie la consommation ininterrompue. J'ai utilisé la fonction de fwherle. La valeur est bien historisée, mais je pense que le fait qu'elle n'est jamais été à 0 encore fait que je vais devoir attendre que madame arrête de cuisiner :D ... à voir d'ici 1h en fait :) ou un peu moins.

Image

Je regarde si le niveau de la piscine est KO ou OK ... en fonction je préviens.

Bref, tout cela est à affiner... c'est clair !

- je dois surtout trouver les bons seuils liés à la piscine
- et voir si la fonction conso interrompue fonctionne bien.
- j'ai mis des non-répétitions sur chaque if qui contrôle la consommation d'eau pour éviter de recevoir 50 messages (mais j'ai un doute sur la 1ère partie si elle marchera bien pour sortir de la condition).

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 16:00

Hurmf, j'ai comme un doute sur la seconde fonction pour la détection de fuite sur consommation ininterrompue sur une heure.

Code : Tout sélectionner

min(#[Consommation][Comptage Eau][Consommation 1h]#,3600) > 0
@ fwherle :

#[Consommation][Comptage Eau][Consommation 1h]# est calculée par la différence du max(compteur,1h) - min(compteur,1h) soit la consommation sur la dernière heure glissante.

J'ai l'impression que le min à 3600 > 0 ici sera à 0 qu'après une heure sans consommation.

Or moi, je veux si la consommation ne passe par 0 dans l'heure d'observation alors j'ai une consommation ininterrompue. Suis-je clair ? (lol). A moins que n'utilise pas la consommation 1h pour ça ?

EDIT : j'ai finalement modifié cette partie.
J'ai ajouté une variable qui me calcule la consommation à 1min.

conso_1min #[Consommation][Comptage Eau][Comptage Quotidien]# - variable(conso_prec)
puis je stocke sur conso_prec #[Consommation][Comptage Eau][Comptage Quotidien]#
et du coup ça me calcule ma consommation à la minute que j'historise.

que je stocke dans un virtuel et que j'historise.

Et la condition devient pour la conso ininterrompue :
min(#[Consommation][Comptage Eau][Consommation 1min]#,3600) > 0

ce qui me parait mieux...

non ? Des avis ?

Avatar de l’utilisateur
Theking31
Actif
Messages : 1182
Inscription : 21 sept. 2017, 11:13
Localisation : Toulouse - Le Vernet

Re: Détection d'une fuite d'eau

Message par Theking31 » 29 août 2018, 17:46

Joli boulot...

Je vais méditer ça pour l'adapter !
Si tu peux nous tenir au jus...

Thx
Jeedom 4.0.23 sur Intel NUC 6CAYH | Linux 4.9.0-11-amd64 | Debian 9.11
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 29 août 2018, 18:35

Bon déjà la conso ininterrompue ne marche pas...

Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk


benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 30 août 2018, 15:33

Bon, y a du debug à faire lol...

Bon visiblement, le fait de regarder la conso @ 1 min sur les 60 dernières minutes pose un problème. je dois mal m'y prendre.

Comment faites-vous ?

je viens de modifier car j'utilisais la consommation quotidienne (qui démarrait à 0 et termine à minuit et visiblement à minuit, il y avait un problème de calcul). je suis passé sur la consommation qui n'arrête jamais de grimper (celle depuis la mise en service) et j'ai étendu à 90 min la durée d'observation de la consommation ininterrompue.

Moi chaque min, je fais chaque 1 min :

Code : Tout sélectionner

variable conso_1min <= valeur de mon compteur - variable conso_precedente
variable conso_precedente <= valeur de mon compteur
Je stocke cette variable dans un virtuel dédié avec historique.

Et là dessus j'utilise la fonction proposée par fwherle à 5400s (90 min) :

Code : Tout sélectionner

min(#[Consommation][Comptage Eau][Consommation 1min]#,5400) > 0
EDIT : je vais déjà laisser 3600 dans un premier temps pour voir si la détection de consommation ininterrompue sur 1h est OK ou non. Là en théorie, je ne devrais rien avoir en alerte avant le prochain remplissage de la piscine.

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 30 août 2018, 20:39

Bon, je ne dois pas comprendre comment marche la fonction "min" ... c'est pas possible.

Voilà ma conso @ 1 min qui est fiable.

Image

Et malgré cela j'ai des alertes comme quoi la consommation d'eau est ininterrompue pendant 1h alors qu'on voit bien que ce n'est pas le cas, elle repasse toujours pas 0 ... je pige pas !

Le log ne me permet de remonter en haut... mais via télégram.
Une fuite à 16:16, 16:35, 16:39, 16:56, 17:05, 17:57, 19:16, 19:57, 20:01 ... en fait dès que je consomme de l'eau après plusieurs minutes à 0... je me prends l'évenement. Alors que le min sur une durée de 3600 secondes devrait me donner 0 ...

Avatar de l’utilisateur
poluket
Helper
Messages : 1906
Inscription : 19 août 2017, 17:02
Localisation : Chastre - Belgique
Contact :

Re: Détection d'une fuite d'eau

Message par poluket » 30 août 2018, 20:44

Je parie que ton problème vient du fait que quand tu devrais avoir 0, tu as une absence de valeur.

En gros, a la place d'avoir 0 pour les mins on il se passe rien, tu as "". Puisque tu n'as pas de valeur.
Helper Officiel Jeedom

Installation KNX + Sonos + Xiaomi Yeelight + Jeedom sur VM Proxmox + wifi unifi avec contrôleur + NAS DS1513+ + UPS + PFsense FW

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 30 août 2018, 21:00

Non j'ai bien 0.

La preuve à l'instant.

Pas de consommation d'eau, paf 6 puis 9l.

Image

Les logs...

On voit bien :
[2018-08-30 20:57:03][SCENARIO] Evaluation de la condition : [0 > 0] = Faux

Code : Tout sélectionner

[2018-08-30 20:55:03][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2018-08-30 20:55:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:55:03][SCENARIO] Exécution d'un bloc élément : 1853
[2018-08-30 20:55:03][SCENARIO] Affectation de la variable min_conso_eau_1h => 131 = 131
[2018-08-30 20:55:03][SCENARIO] Affectation de la variable max_conso_eau_1h => 133 = 133
[2018-08-30 20:55:03][SCENARIO] Affectation de la variable diff_conso_eau_1h => 133-131 = 2
[2018-08-30 20:55:04][SCENARIO] Affectation de la variable conso_1min => 19684 - 19678 = 6
[2018-08-30 20:55:04][SCENARIO] Affectation de la variable conso_prec => 19684 = 19684
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1855
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1856
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:55:04][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:55:04][SCENARIO] Affectation de la variable seuil_conso_eau_1h => 250 = 250
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1859
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:55:04][SCENARIO] Evaluation de la condition : [2 > 250] = Faux
[2018-08-30 20:55:04][SCENARIO] Non exécution des actions pour cause de répétition
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1862
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1863
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:55:04][SCENARIO] Evaluation de la condition : [6 > 0] = Vrai
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [action] : then
[2018-08-30 20:55:04][SCENARIO] Exécution d'un bloc élément : 1864
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:55:04][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:55:04][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:55:04][SCENARIO] Exécution de la commande [Interfaces][Telegramavec comme option(s) : {"background":"0","title":"","message":"Alerte Fuite d'eau - Consommation ininterrompue sur une heure atteinte
Consommation d'eau sur la derni\u00e8re heure : 2 L
Min de consommation sur la derni\u00e8re heure : 6 L"}
[2018-08-30 20:55:05][SCENARIO] Exécution de la commande [Consommation][Surveillance Fuite Eau][FuiteOK_inint]
[2018-08-30 20:55:05][SCENARIO] Fin correcte du scénario
------------------------------------
[2018-08-30 20:56:02][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2018-08-30 20:56:02][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:56:02][SCENARIO] Exécution d'un bloc élément : 1853
[2018-08-30 20:56:02][SCENARIO] Affectation de la variable min_conso_eau_1h => 131 = 131
[2018-08-30 20:56:03][SCENARIO] Affectation de la variable max_conso_eau_1h => 139 = 139
[2018-08-30 20:56:03][SCENARIO] Affectation de la variable diff_conso_eau_1h => 139-131 = 8
[2018-08-30 20:56:03][SCENARIO] Affectation de la variable conso_1min => 19693 - 19684 = 9
[2018-08-30 20:56:03][SCENARIO] Affectation de la variable conso_prec => 19693 = 19693
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:56:03][SCENARIO] Exécution d'un bloc élément : 1855
[2018-08-30 20:56:03][SCENARIO] Exécution d'un bloc élément : 1856
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:56:03][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:56:03][SCENARIO] Affectation de la variable seuil_conso_eau_1h => 250 = 250
[2018-08-30 20:56:03][SCENARIO] Exécution d'un bloc élément : 1859
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:56:03][SCENARIO] Evaluation de la condition : [8 > 250] = Faux
[2018-08-30 20:56:03][SCENARIO] Non exécution des actions pour cause de répétition
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:56:03][SCENARIO] Exécution d'un bloc élément : 1862
[2018-08-30 20:56:03][SCENARIO] Exécution d'un bloc élément : 1863
[2018-08-30 20:56:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:56:03][SCENARIO] Evaluation de la condition : [9 > 0] = Vrai
[2018-08-30 20:56:03][SCENARIO] Non exécution des actions pour cause de répétition
[2018-08-30 20:56:03][SCENARIO] Fin correcte du scénario
------------------------------------
[2018-08-30 20:57:02][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2018-08-30 20:57:02][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:57:02][SCENARIO] Exécution d'un bloc élément : 1853
[2018-08-30 20:57:02][SCENARIO] Affectation de la variable min_conso_eau_1h => 132 = 132
[2018-08-30 20:57:02][SCENARIO] Affectation de la variable max_conso_eau_1h => 148 = 148
[2018-08-30 20:57:02][SCENARIO] Affectation de la variable diff_conso_eau_1h => 148-132 = 16
[2018-08-30 20:57:02][SCENARIO] Affectation de la variable conso_1min => 19693 - 19693 = 0
[2018-08-30 20:57:02][SCENARIO] Affectation de la variable conso_prec => 19699 = 19699
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:57:03][SCENARIO] Exécution d'un bloc élément : 1855
[2018-08-30 20:57:03][SCENARIO] Exécution d'un bloc élément : 1856
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:57:03][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:57:03][SCENARIO] Affectation de la variable seuil_conso_eau_1h => 250 = 250
[2018-08-30 20:57:03][SCENARIO] Exécution d'un bloc élément : 1859
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:57:03][SCENARIO] Evaluation de la condition : [16 > 250] = Faux
[2018-08-30 20:57:03][SCENARIO] Non exécution des actions pour cause de répétition
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:57:03][SCENARIO] Exécution d'un bloc élément : 1862
[2018-08-30 20:57:03][SCENARIO] Exécution d'un bloc élément : 1863
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:57:03][SCENARIO] Evaluation de la condition : [0 > 0] = Faux
[2018-08-30 20:57:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:57:03][SCENARIO] Exécution de la commande [Consommation][Surveillance Fuite Eau][NoFuite_inint]
[2018-08-30 20:57:03][SCENARIO] Exécution de la commande [Interfaces][Telegram avec comme option(s) : {"background":"0","title":"","message":"Alerte Fuite d'eau - Il n'y a plus de fuite d'eau de type ininterrompue sur une heure
Consommation d'eau sur la derni\u00e8re heure : 16 L
Min de consommation sur la derni\u00e8re heure : 0 L"}
[2018-08-30 20:57:04][SCENARIO] Fin correcte du scénario
------------------------------------
[2018-08-30 20:58:02][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2018-08-30 20:58:02][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:58:02][SCENARIO] Exécution d'un bloc élément : 1853
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable min_conso_eau_1h => 132 = 132
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable max_conso_eau_1h => 154 = 154
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable diff_conso_eau_1h => 154-132 = 22
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable conso_1min => 19701 - 19699 = 2
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable conso_prec => 19701 = 19701
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1855
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1856
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:58:03][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:58:03][SCENARIO] Affectation de la variable seuil_conso_eau_1h => 250 = 250
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1859
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:58:03][SCENARIO] Evaluation de la condition : [22 > 250] = Faux
[2018-08-30 20:58:03][SCENARIO] Non exécution des actions pour cause de répétition
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1862
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1863
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:58:03][SCENARIO] Evaluation de la condition : [2 > 0] = Vrai
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2018-08-30 20:58:03][SCENARIO] Exécution d'un bloc élément : 1864
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-08-30 20:58:03][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2018-08-30 20:58:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-08-30 20:58:03][SCENARIO] Exécution de la commande [Interfaces][Telegram avec comme option(s) : {"background":"0","title":"","message":"Alerte Fuite d'eau - Consommation ininterrompue sur une heure atteinte
Consommation d'eau sur la derni\u00e8re heure : 22 L
Min de consommation sur la derni\u00e8re heure : 2 L"}
[2018-08-30 20:58:09][SCENARIO] Exécution de la commande [Consommation][Surveillance Fuite Eau][FuiteOK_inint]
[2018-08-30 20:58:09][SCENARIO] Fin correcte du scénario

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: Détection d'une fuite d'eau

Message par benj29 » 30 août 2018, 21:07

winhex a écrit :
17 juil. 2018, 23:26
je surveille la conso à la minute
dans une info virtuel avec cron à la minute
(#[Compteur Eau][wemos02_Eau][compteur]#-lastBetween(#[Compteur Eau][wemos02_Eau][compteur]#,, -1mn))
et dans action sur valeur
si elle ne retombe pas à 0 (différent) plus de 30 minutes ..
je vais reprendre le principe de winhex. en sachant que mon compteur ne fait que "monter".

Code : Tout sélectionner

(#[Consommation][Comptage Eau][Comptage]#-lastBetween(#[Consommation][Comptage Eau][Comptage]#,, -1mn))
Winhex, tu peux me confirmer que tu utilises bien la valeur de ton compteur et non la consommation à la minute. Ton post est ambigu, je n'ai pas compris si tu surveillais à la minute (cron) la valeur du compteur qui s'incrémente ou la valeur de la consommation à la minute.

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités