[Tuto] Compteur eau et détecteur fuite sur un GPIO pour 10€
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
merci,
je vais regarder cela de plus près après les vacances,
Olivier
je vais regarder cela de plus près après les vacances,
Olivier
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Bonjour,
Comment faites-vous dans le cas ou le Rasberry est indisponible (reboot, coupure électrique etc...) le décompte n'est-il pas erroné ?
Eric ?
Comment faites-vous dans le cas ou le Rasberry est indisponible (reboot, coupure électrique etc...) le décompte n'est-il pas erroné ?
Eric ?
Raspberry 2B:USB Z-Stick (GEN5):Edimax EW-7811UN:Huawei E220 3G
4xQubino ZMNHCD1
Everspring SE812 & ST812
Mcohome MH-S411, MH-S412 & MH7H
2xAEON LABS ZW-100
2xFibaro FGSD-002:Fibaro FGFS-101:Fibaro FGS-221 & KLF-050
4xQubino ZMNHCD1
Everspring SE812 & ST812
Mcohome MH-S411, MH-S412 & MH7H
2xAEON LABS ZW-100
2xFibaro FGSD-002:Fibaro FGFS-101:Fibaro FGS-221 & KLF-050
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
effectivement c'est l'un des point faible de cette solution.
On peut toujours mettre l’alimentions du raspberry sur batterie (onduleur ou autre) pour ne pas être sensible au coupure de courant.
On peut aussi mettre un système de compteur d'impulsion genre RFXmeter ou Mysensor mais cela complique le système global par rapport à cette solution.
On peut toujours mettre l’alimentions du raspberry sur batterie (onduleur ou autre) pour ne pas être sensible au coupure de courant.
On peut aussi mettre un système de compteur d'impulsion genre RFXmeter ou Mysensor mais cela complique le système global par rapport à cette solution.
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
J'ai mis en place la solution du raspberry sur onduleur. J'ai une différence de quelques litres après plusieurs mois (je ne sais pas vraiment pourquoi, mais rien de grave. Peut-être le raspberry qui reboot...)
Mon objectif était d'avoir mes relevés à 0,1m3 près et de détecter une fuite d'eau. Ce système repond parfaitement à ce besoin.
Mon objectif était d'avoir mes relevés à 0,1m3 près et de détecter une fuite d'eau. Ce système repond parfaitement à ce besoin.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Salut à tous.
Bon, un peu de repos du coup on va bidouiller un poil.
J'ai rentré des TCRT5000 comme dans les liens précédents et suis en train de m'atteler à mon compteur d'eau.
Pour l'instant branché sur un wemos avec espeasy comme firmware et je détecte bien des pulsations en ayant choisi pulse counter.
Vu que j'ai bien aimé les scripts de js-martin je voudrais les intégrer et ceci avec le wemos comme passerelle.
Petite question, vu que c'est du python...puis-je intégrer le script au pi qui va chercher les données envoyées via le wemos au pi ? Ou dois-je bidouiller en python sur le wemos lui même ?
Je précise que j'ai un wemos sur lequel j'ai flashé un firmware avec micropython mais je ne sais pas encore m'en servir.
Merci
Bon, un peu de repos du coup on va bidouiller un poil.
J'ai rentré des TCRT5000 comme dans les liens précédents et suis en train de m'atteler à mon compteur d'eau.
Pour l'instant branché sur un wemos avec espeasy comme firmware et je détecte bien des pulsations en ayant choisi pulse counter.
Vu que j'ai bien aimé les scripts de js-martin je voudrais les intégrer et ceci avec le wemos comme passerelle.
Petite question, vu que c'est du python...puis-je intégrer le script au pi qui va chercher les données envoyées via le wemos au pi ? Ou dois-je bidouiller en python sur le wemos lui même ?
Je précise que j'ai un wemos sur lequel j'ai flashé un firmware avec micropython mais je ne sais pas encore m'en servir.
Merci
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Ton wemos peut envoyer les impulsions au Pi.
Il te suffit d'adapter mon code (du coup tu n'as besoin que de ma boucle nommée Loop4). Le code sera executé sur le Pi.
Il te suffit d'adapter mon code (du coup tu n'as besoin que de ma boucle nommée Loop4). Le code sera executé sur le Pi.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Pour l'instant le DZ recoit bien les impulsions via espeasy, c'est que tu appelles "Ton wemos peut envoyer les impulsions au Pi" ?
J'ai un compteur incrémentiel Water qui arrive bien à lire pour le moment le pulse counter (que je divise par 20) de espeasy.
Je vais essayer de comprendre un peu ton code alors mais python et moi...
Merci
ERIC
J'ai un compteur incrémentiel Water qui arrive bien à lire pour le moment le pulse counter (que je divise par 20) de espeasy.
Je vais essayer de comprendre un peu ton code alors mais python et moi...
Merci
ERIC
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Bonjour js-martin,
Je suis toutjours sur l'adaptation de ton code mais je n'y arrive pas.
Comme je n'utilise pas directement l'état des gpio de ma wemos, j'essaye juste d'intégrer l'état de ma demi lune eau qui se met à jour via esp easy.
Je n'arrive pas à trouver la fonction qui fait ça.
Pourrais tu me dire la commande qui irait ? Et si tu la connais la même en Lua (ca il me semble que je l'ai trouvée sur le wiki)
J'en profite aussi pour te demander si tu connais la manière pour récuperer une valeur qui apparait dans mon log de domoticz (tirée d'un lua) et la faire afficher dans un compteur (ou encore mieux un dummy wind)
Merci
Je mets ce que j'ai commencé à faire pour le script eau après multiples tentatives en ligne 47
Il faut aussi que j'arrive à relancer la boucle
Je suis toutjours sur l'adaptation de ton code mais je n'y arrive pas.
Comme je n'utilise pas directement l'état des gpio de ma wemos, j'essaye juste d'intégrer l'état de ma demi lune eau qui se met à jour via esp easy.
Je n'arrive pas à trouver la fonction qui fait ça.
Pourrais tu me dire la commande qui irait ? Et si tu la connais la même en Lua (ca il me semble que je l'ai trouvée sur le wiki)
J'en profite aussi pour te demander si tu connais la manière pour récuperer une valeur qui apparait dans mon log de domoticz (tirée d'un lua) et la faire afficher dans un compteur (ou encore mieux un dummy wind)
Merci
Je mets ce que j'ai commencé à faire pour le script eau après multiples tentatives en ligne 47
Il faut aussi que j'arrive à relancer la boucle
Code : Tout sélectionner
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import requests
import urllib
#import RPi.GPIO as GPIO # bibliotheque pour utiliser les GPIO
import time
############# Parametres #################################
#~~~~~~~~~~ Parametres Domoticz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip="192.168.0.78"
domoticz_port="8080"
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IDX de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# remplacer XXX par votre idx de votre widget
dummy_idx={'compteur_eau': 1464, 'switch_eau': 1441}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Mode debug
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# si debug = True => on affiche plein de choses... (sinon mettre False)
debug=True
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Choix du GPIO
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# On mesure le compteur d'eau sur le GPIO 22 pin 15
#GPIO.setmode(GPIO.BCM) # mode de numérotation des pins
#GPIO.setup(22,GPIO.IN) # GPIO 22 (pin 15) regle en entree
############### fin des parametres #############################
CheckGoOFF=False
def Loop4(channel):
url = "http://192.168.0.78:8080/json.htm?type=devices&rid=1541"
Status='Status'
resp = requests.get(url=url, params='Status')
json_data = json.loads(resp.text)
print "Status"
global CheckGoOFF
global debug
if 'switch_eau'="ON"
if debug:
print "---interrupt ON---"
print "---Valeur CheckGoOFF="+str(CheckGoOFF)
if CheckGoOFF:
# On met CheckGoOFF Ã False
CheckGoOFF=False
# on met à jour le compteur incremental de Domoticz
requete='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command¶m=udevice&idx='+str(dummy_idx['compteur_eau'])+'&svalue=1'
urllib.urlopen(requete)
#on passe le switch d'etat de la demi-lune à ON
# requete='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command¶m=switchlight&idx='+str(dummy_idx['switch_eau'])+'&switchcmd=On&level=0'
# urllib.urlopen(requete)
if debug:
print "***La roue a bien fait un tour, il faut incrementer le compteur de 1"
r = requests.get('http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=devices&rid='+str(dummy_idx['compteur_eau'])).json()
result={}
index=str(r['result'][0]['Counter'])
print "Compteur eau nouvel index = "+index
else:
CheckGoOFF=False # not needed
if debug:
print "=====Traitement interruptions multiples sur un meme etat===="
print "=====>> CheckGoOFF vaut encore False : la demi lune n'a pas encore fait un tour... on ignore l'interruption"
else:
if debug:
print ":::interrupt OFF:::"
print ":::Valeur CheckGoOFF="+str(CheckGoOFF)
print ":::La lune metalique a fait un demi-tour - on passe la valeur de CheckGoOFF a True"
CheckGoOFF=True
#on passe le switch d'etat de la demi-lune a OFF
# requete='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command¶m=switchlight&idx='+str(dummy_idx['switch_eau'])+'&switchcmd=Off&level=0'
# urllib.urlopen(requete)
callback=Loop4, bouncetime=100)
while True:
time.sleep(100)
print "..."
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
A force de bidouiller j'arrive a parser l'ensemble des valeurs mais je ne trouve pas comment isoler l'etat "status".
Sauf erreur si je lis cet etat ensuite je pourrai ustiliser ta boucle ?
Sauf erreur si je lis cet etat ensuite je pourrai ustiliser ta boucle ?
Code : Tout sélectionner
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
url = "http://192.168.0.78:8080/json.htm?type=devices&rid=1541"
Statut ='Status'
resp = requests.get(url=url, params='Data')
json_data = json.loads(resp.text)
print resp.text
Re: Compteur eau et détecteur fuite sur un GPIO pour 10€
Ce qui exécute la boucle de traitement et de mise à jour de domoticz est bien la fonction Loop4.
Elle est lancée lorsque le gpio concerné est modifié :
GPIO.add_event_detect(22, GPIO.BOTH, callback=Loop4, bouncetime=100)
Dans ton cas, il faut en effet que tu récupères le changement d'état de la demi-lune. Dès qu'il y a un changement, il faudra exécuter la fonction loop4.
Je ne sais pas ce que tu fais avec ton espeasy (et je n'ai jamais utilisé cette bête). Tu peux tenter un traitement dans la boucle while :
While true
1/ je regarde si le compteur est modifié (sinon, je laisse tourner la boucle While dans le vide)
2/ je lance la fonction loop4 qui met à jour Domoticz
Elle est lancée lorsque le gpio concerné est modifié :
GPIO.add_event_detect(22, GPIO.BOTH, callback=Loop4, bouncetime=100)
Dans ton cas, il faut en effet que tu récupères le changement d'état de la demi-lune. Dès qu'il y a un changement, il faudra exécuter la fonction loop4.
Je ne sais pas ce que tu fais avec ton espeasy (et je n'ai jamais utilisé cette bête). Tu peux tenter un traitement dans la boucle while :
While true
1/ je regarde si le compteur est modifié (sinon, je laisse tourner la boucle While dans le vide)
2/ je lance la fonction loop4 qui met à jour Domoticz
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien