Mon problème
Bonjour
Je voudrais pouvoir contrôler l’absence de fuite sur mon adoucisseur.
Je voudrais donc installer des débitmètre à turbine pour vérifier l’eau utilisé, mais surtout pouvoir effectuer un contrôle d’absence de fuite.
Principe de fonctionnement :
Après avoir utiliser sa capacité en eau adoucie, l’adoucisseur passe en cycle de régénération.
-
lors de ce cycle le micro switch régénération (3) s’enclenche jusqu’à la fin du cycle complet
-
La durée d’un cycle est d’environ 90 minutes
-
pendant ce cycle de l’eau s’écoule par le rejet et traverse le compteur à turbine (2)
-
Je voudrais donc vérifier qu’il n’y a pas d’eau qui traverse le compteur (2) si l’adoucisseur n’est pas en régénération.
et donc recevoir une alerte si le compteur tourne.
-
Je voudrais aussi totaliser le nombre de déclenchement de régénération (cycle) (3) afin de recevoir une alerte pour remplir le bac à sel tous les X cycles.
-
Je voudrais que 90 minutes après un déclenchement de cycle de régénération (3), vérifier que l’eau ne coule plus par le compteur (2) et recevoir une alerte si c’est pas le cas.
le compteur a turbine serait de ce type :
https://fr.aliexpress.com/item/4001114496369.html?gatewayAdapt=glo2fra&spm=a2g0o.cart.0.0.46973c00dvGKUI&mp=1
le switch de régénération est un simple contact sec inverseur.
Je sollicite votre aide, votre expérience, ou votre avis pour mener a bien ce projet
Mes questions sont les suivantes :
-
Qu’elle type de matériel je dois utiliser pour pouvoir réaliser un tel montage ?
(j’ai vu que certains ont utilisé des ESPhome pour domotiser leur adoucisseur, mais je dois bien avouer que je n’y connais rien.)
-
Pensez vous que ce soit réalisable pour un débutant ?
-
Ceci est il intégrable à Home Assistant ?
Merci par avance a tous ceux qui m’apporteront leur aide, ou qui auront pris le temps de me lire.
Ma configuration
System Health
version |
core-2022.3.5 |
installation_type |
Home Assistant OS |
dev |
false |
hassio |
true |
docker |
true |
user |
root |
virtualenv |
false |
python_version |
3.9.9 |
os_name |
Linux |
os_version |
5.10.92-v8 |
arch |
aarch64 |
timezone |
Europe/Paris |
Home Assistant Community Store
GitHub API |
ok |
GitHub Content |
ok |
GitHub Web |
ok |
GitHub API Calls Remaining |
4742 |
Installed Version |
1.23.0 |
Stage |
running |
Available Repositories |
1080 |
Downloaded Repositories |
41 |
Home Assistant Cloud
logged_in |
false |
can_reach_cert_server |
ok |
can_reach_cloud_auth |
ok |
can_reach_cloud |
ok |
Home Assistant Supervisor
host_os |
Home Assistant OS 7.5 |
update_channel |
stable |
supervisor_version |
supervisor-2022.03.5 |
docker_version |
20.10.9 |
disk_total |
219.4 GB |
disk_used |
18.1 GB |
healthy |
true |
supported |
true |
board |
rpi4-64 |
supervisor_api |
ok |
version_api |
ok |
installed_addons |
Terminal & SSH (9.3.0), Samba share (9.5.1), File editor (5.3.3), Duck DNS (1.14.0), Mosquitto broker (6.0.1), MariaDB (2.4.0), NGINX Home Assistant SSL proxy (3.1.1), Nginx Proxy Manager (0.11.0), Simple Scheduler (0.40), Check Home Assistant configuration (3.10.0), Node-RED (11.1.0), Studio Code Server (4.1.0), Plex Media Server (2.8.0) |
Lovelace
dashboards |
2 |
resources |
33 |
views |
17 |
mode |
storage |
Xiaomi MIoT
logged_in |
true |
can_reach_micloud_server |
ok |
accounts_count |
1 |
account_devices_count |
1 |
added_devices |
1 |
___
hello
pour ma part je mesure ma conso heure par heure
compteur avec reset.
de 2h à 4h (chez moi on dort hi )
ma conso doit être égale à 0.
si <> il y a fuite
notification sms free (fuite eau)
bye
Le problème, c’est que l’adoucisseur se nettoie automatiquement au bout d’un certain volume d’eau consommé, et donc le cycle de nettoyage peut être n’importe quel jour (entre les 7 à 10jours ), mais toujours à partir 2H et jusqu’à 4H maxi.
Donc le contrôle d’absence de fuite ne doit se faire que en dehors de cet horaire.
Voila ou en est ce projet,
J’ai installé le shelly uni, le switch et le capteur de débit sur un banc d’essai avant de le mettre en place sur adoucisseur.
Le câblage des différent élément est le suivant :
Dans HA j’ai crée quelques automatismes qui sont :
- Si switch cycle à l’arrêt (OFF) et contact de débit rejet (ON) pendant + 30 secondes alors Notification et fermeture électrovanne eau
- Si contact de débit rejet (ON) pendant plus de 80 minutes alors notification et fermeture électrovanne eau
- Si switch cycle en marche (ON) pendant plus de 80 minutes alors notification et fermeture électrovanne eau
Maintenant je voudrais ajouter quelques options. C’est la que j’ai besoin de votre aide car je ne sais pas trop comment faire
Carte Gestion Adoucisseur
La partie Suivi des phases de cycle n’est pas opérationnel
Je viens de finir la partie suivi des phases de cycle à l’aide d’automatisme .
Ce qui me donne une carte de ce type
Bon après cette période d’essai j’ai du modifier un peu le système.
En effet certaine impureté (micro bille) venait bloquer le détecteur de fuite.
J’ai donc du mettre un filtre tamis devant pour le protéger
La carte finale a aussi un peu évolué :
Bonjour a tous
J’ai domotiser mon adoucisseur, il y a quelque temps avec un Shelly uni ou je récupère la position service de l’appareil et les fuites au rejet de mon adoucisseur. Sa fonctionne plutôt bien (sauf que le shelly perd sa connexion au réseau de temps en temps).
J’ai donc décider de basculer sur un ESP32, car je veux regrouper mes deux contact cycle et fuite et y joindre un capteur a effet hall (compteur eau adoucie) et une sonde de température. (et peut être de récupérer le comptage de mon adoucisseur fleck)
Je débute sur ESPHome et esp32. Je ne suis ni electronicien, ni devellopeur donc c’est pas facile et je galère un peu…beaucoup…passionnément…
pour m’aider je me suis inspiré de ce projet :
https://forum.hacf.fr/t/connecter-un-adoucisseur-deau-et-recuperation-info-debitmetre/4870 et de quelques autres sur le forum.
**Pour le schema : **
le capteur à effet hall est branché sur GPIO23 et le 3,3V
la sonde de température est branché sur GPIO35 et le 3,3V
le premier Micro Switch (GPIO14) sert pour mon adoucisseur a m’indiquer la position service. une Led Jaune (GPIO18 ) indiquera que l’appareil est en nettoyage
le second micro switch (GPIO13) servira pour indiquer une fuite au rejet. Une Led Rouge (GPIO19) indiquera qu’il y a un écoulement d’eau au rejet
Je ne suis pas électronicien, donc les valeurs de résistances sont celle que j’avais de disponnible. (je n’ai que des 10Kohm ou des 330 ohm)
J’ai fait un premier essais pour la détection de fuite OK
Position de régénération et la température c’est OK.
Pour le compteur sa ne fonctionne pas…probablement le capteur qui est HS suite a une erreur de branchement.
Pour le code ESP :
Résumé
esphome:
name: "esphome-esp1-water"
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# password: !secret api_password
ota:
# password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# ...
manual_ip:
# Set this to the IP of the ESP
static_ip: !secret ip_esp1
# Set this to the IP address of the router. Often ends with .1
gateway: !secret gateway_esp1
# 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: !secret ap_ssid
password: !secret ap_password
captive_portal:
# Example configuration entry
time:
#- platform: sntp
# id: my_time
- platform: homeassistant
id: homeassistant_time
on_time:
- seconds: 57
minutes: 59
hours: 23
then:
- sensor.template.publish:
id: esp1_template_water_veille
state: !lambda return id(esp1_daily_water).state;
# reboot
switch:
- platform: restart
name: "Esp1_restart"
# sensor
# Mesure Temperature eau
sensor:
- platform: adc
pin: GPIO35
name: "esp1_water_temperature_raw_volts"
id: esp1_water_temperature_raw_volts
update_interval: 15s
accuracy_decimals: 5
attenuation: auto
- platform: resistance
sensor: esp1_water_temperature_raw_volts
configuration: DOWNSTREAM
resistor: 50kOhm
reference_voltage: 3.3V
name: "esp1_water_temperature_resistance_sensor"
id: esp1_water_temperature_resistance_sensor
- platform: ntc
sensor: esp1_water_temperature_resistance_sensor
calibration:
b_constant: 3950
reference_temperature: 25°C
reference_resistance: 10kOhm
# calibration:
# - 200.720kOhm -> 6.0°C
# - 57.094kOhm -> 22.0°C
# - 28.766kOhm -> 37.0°C
# unit_of_measurement: "°C"
# accuracy_decimals: 2
name: "esp1_water_temperature_ntc"
id: esp1_water_temperature_ntc
# Mesure de pression non utilisé
# - platform: adc
# pin: A0
# name: "esp1 - water_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);
# Definition du flow meter (en cours de test)
# pulse meter Jybi89
# - platform: pulse_counter
# id: water_flow_meter
# pin: GPIO22
# name: "debit_chaude_water_flow_meter"
# update_interval: 1s
# icon: mdi:water
# filters:
# - lambda: return (x / 5.48);
# unit_of_measurement: "l"
# Pulse meter Aliexpress
- platform: pulse_meter
pin: GPIO23
name: "esp1_water_litres_par_min"
id: esp1_water_flow_meter
unit_of_measurement: "L/min"
timeout: 10s
filters:
- multiply: 0.001818
# Consommation eau du jour
- platform: total_daily_energy
name: "esp1_water_conso_du_jour"
power_id: esp1_water_flow_meter
unit_of_measurement: "l"
accuracy_decimals: 2
id: esp1_daily_water
# Consommation eau de la veille
- platform: template
name: "esp1_water_conso_veille"
id: esp1_template_water_veille
unit_of_measurement: "l"
accuracy_decimals: 2
icon: mdi:water
update_interval: 10s
# capteur numerique
# Signal Wifi
- platform: wifi_signal
name: "esp1_wifi_puissance"
update_interval: 10s
# ESP Durée fonctionnement
- platform: uptime
name: "esp1_uptime"
update_interval: 10s
id: esp1_uptime_sec
# Status ESP connexion
binary_sensor:
- platform: status
name: "esp1_status"
# Flow meter
- platform: template
name: "esp1_water_instantanée"
id: esp1_template_isflowing
lambda: |-
if (id(esp1_water_flow_meter).state > 0) {
// Water flowing
return true;
} else {
// Water not flowing
return false;
}
# Définition du bouton physique Cycle adoucisseur
- platform: gpio
name: "esp1_cycle_adoucisseur"
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
# commande de la led Jaune
on_press:
then:
- output.turn_on: esp1_cycle_led_jaune_output
on_release:
then:
- output.turn_off: esp1_cycle_led_jaune_output
# Définition du bouton physique fuite rejet
- platform: gpio
name: "esp1_debit_rejet_adoucisseur"
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: True
# commande de la led rouge
on_press:
then:
- output.turn_on: esp1_fuite_led_rouge_output
on_release:
then:
- output.turn_off: esp1_fuite_led_rouge_output
# Leds cycle et fuite (D18 et D19)
# Switch test led
light:
- platform: binary
name: "esp1_cycle_led_jaune_switch"
output: esp1_cycle_led_jaune_output
- platform: binary
name: "esp1_fuite_led_rouge_switch"
output: esp1_fuite_led_rouge_output
# Sortie Leds GPIO 18 & 19
output:
- id: esp1_cycle_led_jaune_output
platform: gpio
pin: GPIO18
- id: esp1_fuite_led_rouge_output
platform: gpio
pin: GPIO19
# Transformation des secondes en jours
text_sensor:
- platform: template
name: "esp1 Allumé depuis (j)"
lambda: |-
int seconds = (id(esp1_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
La carte Home Assistant :
Ce qu’il reste a faire :
- Faire fonctionner le capteur a effet hall compteur eau de ville et le placer sur arrivée d’eau.
- Raccorder le capteur a effet hall compteur eau adoucie sur ESP (en attente des résistances et des connecteurs)
- Faire la gestion des compteurs
- intégrer un relais pour piloter une vanne de coupure