Détection d'une fuite d'eau
Re: Détection d'une fuite d'eau
Dans le design, maison. Moi. Basé sur les calculs de suivi conso payant
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Re: Détection d'une fuite d'eau
Salut Fwherle et les autresfwehrle a écrit : ↑19 juil. 2018, 11:10J'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 :Scenario d'analyse de conso, planifié toute les 5mn (et qui lance le précédent) :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
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#
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) :
Bref je sèche !
Un coup de pouce svp ?
Fwherle, d'où sors-tu cet indicateur ?
[Consos][Compteur Eau][L/min]
Re: Détection d'une fuite d'eau
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')
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
.
.
Re: Détection d'une fuite d'eau
Merci ! J'avoue que je ne maitrise pas assez ces fonctions...
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Détection d'une fuite d'eau
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
Merci d'avance
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
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
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Re: Détection d'une fuite d'eau
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
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Re: Détection d'une fuite d'eau
Oh voila un sujet très intéressant !
Vous utilisez tous des capteurs wemos pour le débit d'eau ?
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
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
- poluket
- Helper
- Messages : 1908
- Inscription : 19 août 2017, 17:02
- Localisation : Chastre - Belgique
- Contact :
Re: Détection d'une fuite 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
Installation KNX + Sonos + Xiaomi Yeelight + Jeedom sur VM Proxmox + wifi unifi avec contrôleur + NAS DS1513+ + UPS + PFsense FW
Re: Détection d'une fuite d'eau
Non. Impulsion sur rpi distante via jeedouino.mrRck a écrit :Oh voila un sujet très intéressant !
Vous utilisez tous des capteurs wemos pour le débit d'eau ?
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Re: Détection d'une fuite d'eau
Compteur à impulsions raccordé à un module ecodevice chez moi...
Envoyé de mon MHA-L29 en utilisant Tapatalk
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+ ...
- 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+ ...
Re: Détection d'une fuite d'eau
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.
- 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.
Re: Détection d'une fuite d'eau
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).
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).
Ensuite 1ère partie :
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 ... à voir d'ici 1h en fait ou un peu moins.
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).
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).
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).
Ensuite 1ère partie :
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 ... à voir d'ici 1h en fait ou un peu moins.
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).
Re: Détection d'une fuite d'eau
Hurmf, j'ai comme un doute sur la seconde fonction pour la détection de fuite sur consommation ininterrompue sur une heure.
@ 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 ?
Code : Tout sélectionner
min(#[Consommation][Comptage Eau][Consommation 1h]#,3600) > 0
#[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 ?
- Theking31
- Actif
- Messages : 1182
- Inscription : 21 sept. 2017, 11:13
- Localisation : Toulouse - Le Vernet
Re: Détection d'une fuite d'eau
Joli boulot...
Je vais méditer ça pour l'adapter !
Si tu peux nous tenir au jus...
Thx
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
Rfxcom | Z-Wave Plus Z-Stick GEN5 | Conbee 2 | => sur hub alimenté
Blea| Brodlink | Xiaomi |ESPeasy | Wifilightv2
Re: Détection d'une fuite d'eau
Bon déjà la conso ininterrompue ne marche pas...
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Envoyé de mon Moto G (5S) Plus en utilisant Tapatalk
Re: Détection d'une fuite d'eau
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 :
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) :
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.
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
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
Re: Détection d'une fuite d'eau
Bon, je ne dois pas comprendre comment marche la fonction "min" ... c'est pas possible.
Voilà ma conso @ 1 min qui est fiable.
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 ...
Voilà ma conso @ 1 min qui est fiable.
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 ...
- poluket
- Helper
- Messages : 1908
- Inscription : 19 août 2017, 17:02
- Localisation : Chastre - Belgique
- Contact :
Re: Détection d'une fuite d'eau
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.
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
Installation KNX + Sonos + Xiaomi Yeelight + Jeedom sur VM Proxmox + wifi unifi avec contrôleur + NAS DS1513+ + UPS + PFsense FW
Re: Détection d'une fuite d'eau
Non j'ai bien 0.
La preuve à l'instant.
Pas de consommation d'eau, paf 6 puis 9l.
Les logs...
On voit bien :
[2018-08-30 20:57:03][SCENARIO] Evaluation de la condition : [0 > 0] = Faux
La preuve à l'instant.
Pas de consommation d'eau, paf 6 puis 9l.
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
Re: Détection d'une fuite d'eau
je vais reprendre le principe de winhex. en sachant que mon compteur ne fait que "monter".winhex a écrit : ↑17 juil. 2018, 23:26je surveille la conso à la minute
dans une info virtuel avec cron à la minuteet dans action sur valeur(#[Compteur Eau][wemos02_Eau][compteur]#-lastBetween(#[Compteur Eau][wemos02_Eau][compteur]#,, -1mn))
si elle ne retombe pas à 0 (différent) plus de 30 minutes ..
Code : Tout sélectionner
(#[Consommation][Comptage Eau][Comptage]#-lastBetween(#[Consommation][Comptage Eau][Comptage]#,, -1mn))
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 10 invités