Mon problème
Bonjour a tous
Je possède un capteur de débit de ce type :
Les indication du capteur sont les suivante :
Je souhaite utiliser avec un ESP (car pas possible avec shelly uni), mais je n’y connais rien.
Je vous remercie par avance pour votre aide
Après plusieurs heures de recherche, il s’avère que le shelly n’est pas adapté pour utilisation que je voulais en faire.
Je me tourne maintenant vers ESP32, je sais que c’est réalisable notamment comme sur cette vidéo.
Mon souci c’est que j’y connais rien en esp32, donc je vais commencer par regarder des tutos et essayer de réaliser ce type de montage pour pouvoir utiliser le flowmeter et comptabiliser mon eau.
1 « J'aime »
Bonjour
J’ai installer ESP Home sur Home Assistant
J’ai du changer de navigateur, pour pouvoir utiliser interface web car par compatible avec firefox (problème webserial). Je suis donc passé sous chrome.
Mon premier souci est le suivant :
pour les ESP car il y a une multitude (ESP32 , ESP8266,…) de choix sur aliexpress et je ne sais pas lequel utiliser, pouvez vous me conseiller un modèle (avec lien achat) et si possible avec une carte de développement (bornier)
Je suis débutant sur ESP et en électronique aussi (Électricien t plombier de métier), donc quelque chose qui soit simple a prendre en main.
Merci par avance pour votre aide
Bonjour
Je sollicite votre aide, c’est mon premier montage en ESP 32 et en electronique aussi…
J’ai un module ESP de ce type :
Mon souci est pour le raccordement électrique de l’ensemble.
Je compte alimenté ESP par le port Micro Usb
Mais je ne sais pas comment raccordé le capteur de débit et la sonde de température cité plus haut sur ESP
Le pulse du capteur débit (fil jaune) doit être raccordé sur le GPI023 ce qui doit correspondre a la borne 23 de ESP
la sonde (fil noir) doit être raccordé sur le GPI035 ce qui doit correspondre à la borne 35 de ESP
Ou faut il brancher l’alimentation du capteur de débit (fil rouge et noir) en 3,3V ou 5V ?
Pour la sonde de température , faut il alimenter en 3,3V ou 5V et Faut il mettre une résistance 10Kohm ?
Mon code pour ESP :
Résumé
esphome:
name: "esphome-cpt-eau"
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
captive_portal:
# Example configuration entry
binary_sensor:
- platform: template
name: “Waterpump is Flowing"
id: template_isflowing
lambda: |-
if (id(sensor_waterpump_litres_per_min).state > 0) {
// Water flowing
return true;
} else {
// Water not flowing
return false;
}
# statut
- platform: status
name: "Statut"
sensor:
- platform: pulse_meter
pin: GPIO23
name: "Waterpump-Litres per min"
id: sensor_waterpump_litres_per_min
unit_of_measurement: "L/min"
timeout: 10s
filters:
- multiply: 0.001818
total:
name: "Waterpump-Litres Total"
unit_of_measurement: "L"
accuracy_decimals: 3
filters:
- multiply: 0.001818
- platform: adc
pin: GPIO35
name: “Waterpump-Temperature Raw Volts"
id: waterpump_temperature_raw_volts
update_interval: 15s
accuracy_decimals: 5
attenuation: auto
- platform: resistance
sensor: waterpump_temperature_raw_volts
configuration: DOWNSTREAM
resistor: 50kOhm
reference_voltage: 3.3V
name: "Waterpump-Resistance Sensor"
id: waterpump_temperature_resistance_sensor
- platform: ntc
sensor: waterpump_temperature_resistance_sensor
calibration:
b_constant: 3950
reference_temperature: 25°C
reference_resistance: 47kOhm
name: "Waterpump-Temperature NTC"
id: waterpump_temperature_ntc
# Qualité du signal
- platform: wifi_signal
name: "Signal Wifi"
update_interval: 60s
# Temps de fonctionnement
- platform: uptime
name: "Allumé depuis (s)"
id: uptime_sec
switch:
# Bouton de redémarrage
- platform: restart
name: "Redémarrage"
# Transformation des secondes en jours
text_sensor:
- platform: template
name: "Allumé depuis (j)"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 60s
1 « J'aime »
bonjour
Pouvez vous me dire si mon schéma est correct :
J’ai bien une mesure de température, mais quand je souffle dans le capteur de debit, je n’ai pas de comptage
Merci pour votre aide
1 « J'aime »
jybi89
Juillet 30, 2022, 8:03
6
salut @pascal_ha a ta place, je ferai juste le raccordement du debit metre pour etre sur que cela fonctionne dans 1er temps avec ton code esphome , et juste pour cette partie là, oui ton cablage a l’air bon. Si tu veux le code du fichier esphome, tu me demanderas, on l’avais revu avec seb2docky à l’époque de sa video.
1 « J'aime »
Merci pour ton aide…
J’ai fait un essai, mais j’ai vu une subtilité chinoise dans le câblage
Le câblage est inversé entre les 2 connecteurs, malheureusement je ne l’ai vu qu’après avoir raccordé…
du coup le capteur a effet hall est H.S.
Mais j’ai fait un essai avec un capteur a effet hall d’adoucisseur et cela fonctionne
…sa compte. Sa compte faux mais sa compte…
Le montage fait peur a voir
Il faut que je recommande un capteur…
Le fait d’alimenter le capteur en 5V, sa ne pose pas de problème pour ESP ?
Voici le code que j’utilise actuellement.
Résumé
esphome:
name: "esphome-test-adoucisseur"
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# ...
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.1.190
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.1.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-D21Af8"
password: "7WEw5SrMsT5u"
captive_portal:
# Example configuration entry
binary_sensor:
- platform: template
name: “Waterpump is Flowing"
id: template_isflowing
lambda: |-
if (id(sensor_waterpump_litres_per_min).state > 0) {
// Water flowing
return true;
} else {
// Water not flowing
return false;
}
# statut
- platform: status
name: "Statut ESP"
sensor:
- platform: pulse_meter
pin: GPIO22
name: "Waterpump-Litres per min"
id: sensor_waterpump_litres_per_min
unit_of_measurement: "L/min"
timeout: 10s
filters:
- multiply: 0.001818
total:
name: "Waterpump-Litres Total"
unit_of_measurement: "L"
accuracy_decimals: 3
filters:
- multiply: 0.001818
- platform: adc
pin: GPIO35
name: “Waterpump-Temperature Raw Volts"
id: waterpump_temperature_raw_volts
update_interval: 15s
accuracy_decimals: 5
attenuation: auto
- platform: resistance
sensor: waterpump_temperature_raw_volts
configuration: DOWNSTREAM
resistor: 50kOhm
reference_voltage: 3.3V
name: "Waterpump-Resistance Sensor"
id: waterpump_temperature_resistance_sensor
- platform: ntc
sensor: waterpump_temperature_resistance_sensor
calibration:
b_constant: 3950
reference_temperature: 25°C
reference_resistance: 10kOhm
name: "Waterpump-Temperature NTC"
id: waterpump_temperature_ntc
# Qualité du signal
- platform: wifi_signal
name: "Signal Wifi"
update_interval: 300s
# Temps de fonctionnement
- platform: uptime
name: "Allumé depuis (s)"
id: uptime_sec
switch:
# Bouton de redémarrage
- platform: restart
name: "Redémarrage ESP"
# Transformation des secondes en jours
text_sensor:
- platform: template
name: "Allumé depuis (j)"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 3600s
Mais je n’ai pas réussi a faire fonctionner le code pour faire la sauvegarde journalière …
je veux bien votre code Esphome révisé afin d’essayer d’avoir quelque chose de fonctionnel.
Y a t’il moyen que ESP garde en mémoire la valeur de comptage, sans que sa reparte a zéro quand on coupe l’alimentation ?
Merci pour ton aide
Je rencontre un souci, le flow meter compte de façon éradique, des fois il ne se stop pas, malgré que je n’ai plus de tirage d’eau… J’utilise un ESP32-vroom-32D celui ci est il bien adapté ?
J’ai testé avec un premier capteur de débit…mais suite a un branchement erroné celui ci ne compte pas…
J’ai fait un test avec une turbine adoucisseur (n’ayant aucune info je l’ai testé en 3,3V et 5V , cela fonctionne, mais des fois le comptage ne se stop pas et continu à compter malgré qu’il n’y a pas de tirage d’eau.
J’utilise la carte de développement suivante :
https://fr.aliexpress.com/item/1005004285791004.html?spm=a2g0o.order_list.0.0.203e5e5bAiSeQJ&gatewayAdapt=glo2fra
J’utilise un esp32-wroom-32D
https://fr.aliexpress.com/item/1005002196907572.html?spm=a2g0o.order_list.0.0.203e5e5bAiSeQJ&gatewayAdapt=glo2fra
L’ESP32S serait il mieux ?
https://fr.aliexpress.com/item/1005001855273414.html?spm=a2g0o.cart.0.0.59f5378dDv1ozf&mp=1&gatewayAdapt=glo2fra
Je suis novice en esphome et esp32. Merci de votre aide ou de vos conseils
j’utilise un esp32 Vroom devkit, mais a mon avis tu devrais d’abord faire le calibrage, c’est a dire de prendre un pichet ou une bouteille d’un litre ou un verre mesureur, le remplir au robinet et faire le delta entre ce que ta sonde t’indique et les 1 litre réelle :
cette exemple tu le retrouves dans mon code esphome :
filters:
- lambda: return (x / 5.48);
unit_of_measurement: "l"
filters:
- sliding_window_moving_average:
window_size: 7
send_every: 1
- lambda: return ((x - 0.1)*1.333333*10);
code
esphome:
name: debit_chaude
platform: ESP32
board: esp32dev
wifi:
ssid: "topodoco"
password: "remplacelesopardesu"
manual_ip:
static_ip: 192.***.***.**
gateway: 192.*..**.**
subnet: 255.255.0.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Debit Chaude Fallback Hotspot"
password: "qfsdfsdfvfdbdgbdfvdffgfdhbdggfhdghfnfhbdhgvfbgdnbgdfgfvngj,jhbdfsfsvstsgfvrfgshI7bE"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
time:
#- platform: sntp
# id: my_time
- platform: homeassistant
id: homeassistant_time
on_time:
- seconds: 57
minutes: 59
hours: 23
then:
- sensor.template.publish:
id: template_efs_veille
state: !lambda return id(daily_efs).state;
switch:
- platform: restart
name: "debit_chaude_restart"
sensor:
- platform: adc
pin: A0
name: "debit_chaude_pression"
update_interval: 10s
unit_of_measurement: "bar"
icon: mdi:gauge
accuracy_decimals: 3
filters:
- sliding_window_moving_average:
window_size: 7
send_every: 1
- lambda: return ((x - 0.1)*1.333333*10);
#- lambda: return ((x - 0.1)*1.49993*10);
- platform: pulse_counter
id: water_flow_meter
pin: GPIO02
name: "debit_chaude_water_flow_meter"
update_interval: 1s
icon: mdi:water
filters:
- lambda: return (x / 5.48);
unit_of_measurement: "l"
- platform: total_daily_energy
name: "debit_chaude_conso_du_jour"
power_id: water_flow_meter
unit_of_measurement: "l"
accuracy_decimals: 2
id: daily_efs
- platform: template
name: "debit_chaude_conso_veille"
id: template_efs_veille
unit_of_measurement: "l"
accuracy_decimals: 2
icon: mdi:water
update_interval: 10s
- platform: wifi_signal
name: "debit_chaude_wifi_puissance"
update_interval: 10s
- platform: uptime
name: "debit_chaude_uptime"
update_interval: 10s
binary_sensor:
- platform: status
name: "debit_chaude_status"
et ce code là qui fonctionne chez moi à été repris sur les tuto de seb2dock (e2nommy sur Youtube) dans sa video 10 ou 11 de mémoire
J’ai pas bien compris cette partie du code ?
Le capteur de débit, il faut l’alimenter en 3,3V ou 5V ?
1 « J'aime »
Lol au lieu de masquer des infos perso je marques toujours des bêtises ^^
C est du 3v pour moi
McFly
Août 9, 2022, 5:42
13
J’arrive un peu tard mais pour les branchements il y a cet article sur sigalou domotique
http://jeedom.sigalou-domotique.fr/domotiser-sa-consommation-deau
3 « J'aime »
Merci pour votre aide
Mais après plusieurs essais je pense que mon capteur a effet hall est HS.
Je vais en commander un nouveau et refaire des tests.
Bonjour,
J’ai du mal à calibrer mon débitmètre.
J’utilise ce code pour mon capteur.
#eau totale
- platform: pulse_counter
pin:
number: 4
mode:
input: true
pullup: true
unit_of_measurement: 'L/min'
accuracy_decimals: 2
id: water_usage
name: "Débit d'eau total instantané"
update_interval: 5s
filters:
- lambda: return (x / 170);
La valeur 170 donne 2l
si je mets 200, j’ai 1,69l
si je mets 120, j’ai 2,5l
Je pensais que c’était proportionnel (ou assez proche), mais c’est incohérent.
Merci pour votre aide
jybi89
Octobre 29, 2022, 8:33
16
le code que j’utilise :
- platform: pulse_counter
id: water_flow_meter
pin: GPIO02
name: "debit_chaude_water_flow_meter"
update_interval: 1s
icon: mdi:water
filters:
- lambda: return (x / 5.48);
unit_of_measurement: "l"
x / 5.48 et j’ai juste un décallage de quelques centilitres par litre, je n’ai pas chercher pour me rapprocher de 1 litre pile poil. il faudrait essayer juste en changeant par 5.50 par exemple…
et je crois avoir utilisé cette video : (100) #11 Monitorer son puits/citerne – partie 2 – configuration de l’ESP avec ESPhome - YouTube à 45mn
1 « J'aime »
jrvrcd
Octobre 29, 2022, 9:44
17
Bonjour
je crois que tu peux faire un étalonnage a plusieurs entrée
c’est a dire qui si ta variation n’est pas linéaire tu peux fournir plusieurs points d’étalonnages
voir doc ESPHOME
1 « J'aime »
Bonjour,
Merci pour vos retours, j’ai pu étalonner mes capteurs en divisant ( x / 1),
et j’ai mis ce résultat qui au final est pertinent.
J’espère que ça pourra aider d’autre personne.
1 « J'aime »
J’essaye d’installer un debimettre à effet hall sur avec un esp 32 mais je cale sur le code yaml.
Je ne connais pas encore très bien le fonctionnement et l’ecriture en yaml.
J’ai recuperer un code via le ghitub de Papamica (merci à lui pour tout son travail).
Mais j’ai des erreur en voula nt faire l’installation. Est ce que quelqu’un pourrait m’aider.
Merci.
esphome:
name: esphome-web-252b3c
friendly_name: Eau froide
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "Masquée"
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-252B3C"
password: "Masqué"
captive_portal:
# Enable logging
logger:
baud_rate: 0
level: INFO
# level: DEBUG
# Enable Home Assistant API
api:
ota:
web_server:
port: 80
time:
- platform: homeassistant
id: homeassistant_time
# Reset sensors at 00h
on_time:
- seconds: 57
minutes: 59
hours: 23
then:
- sensor.template.publish:
id: eau_conso_veille
state: !lambda return id(eau_conso_jour).state;
- pulse_meter.set_total_pulses:
id: eau
value: 0
- sensor.template.publish:
id: eau_m3_veille
state: !lambda return id(eau_m3_jour).state;
- lambda: |-
id(eau_m3_jour) = 0;
# Add sensors
sensor:
# Wi-Fi signal
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
# Uptime
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
########### EAU ###############################################################################
# Eau usage
- platform: pulse_meter
id: eau
pin: 17
unit_of_measurement: "l/mn"
icon: mdi:water
#internal_filter: 100ms
name: "Debit Eau"
state_class: measurement
filters:
- lambda: return x / 487; # 1l = 487 impulsions
#########################
# Total eau usage today
total:
unit_of_measurement: "l"
name: 'Eau Consommation Jour'
filters:
- lambda: return x / 487; # (pour avoir des litres)
accuracy_decimals: 2
icon: mdi:water
id: eau_conso_jour
device_class: "water"
#########################
# Total eau usage yesterday
- platform: template
name: "Eau Consommation Veille"
state_class: measurement
device_class: "water"
id: eau_conso_veille
unit_of_measurement: "l"
accuracy_decimals: 2
icon: mdi:water
update_interval: 10s
#########################
# Total eau m3 today
- platform: template
name: "Eau m3 Jour"
lambda: |-
return id(eau_conso_jour).state / 1000;
device_class: water
unit_of_measurement: "m³"
accuracy_decimals: 2
id: eau_m3_jour
state_class: total_increasing
#########################
# Total eau m3 yesterday
- platform: template
name: "Eau m3 Veille"
state_class: total_increasing
device_class: water
id: eau_m3_veille
unit_of_measurement: "m³"
accuracy_decimals: 3
icon: mdi:water
update_interval: 10s
########### EAU ###############################################################################
binary_sensor:
# ESP Status
- platform: status
name: "Eau (Statut)"
switch:
# Restart button
- platform: restart
name: "${name} reboot"
text_sensor:
# Uptime human readable
- platform: template
name: "${name} - Uptime"
update_interval: 60s
icon: mdi:clock-start
lambda: |-
int seconds = (id(uptime_seconds).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
Jusqu’à « Captive portail » c’est mon instal de base. Après c’est le code copié.
Comme erreur j’ai :
INFO ESPHome 2023.12.5
INFO Reading configuration /config/esphome/esphome-web-252b3c.yaml…
ERROR Error while reading config: Invalid YAML syntax:
Duplicate key « logger »
in « », line 33, column 1
NOTE: Previous declaration here:
in « », line 11, column 1
Merci Beaucoup
bonjour
Tu as des lignes dupliquer "Duplicate key « logger »
il faut que tu supprime le api: et ota: que tu as en double
Il faut déplacer web server: et logger: au dessus de captival_portal (c’est comme cela chez moi)
Je ne suis pas un pro de ESPHOME, mais tu devrais avoir quelque chose comme cela:
esphome:
name: esphome-web-252b3c
friendly_name: Eau froide
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
baud_rate: 0
level: INFO
# level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "Masquée"
ota:
web_server:
port: 80
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-252B3C"
password: "Masqué"
captive_portal:
1 « J'aime »