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).
Je souhaite maintenant passer 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.
Je débute sur ESPHome, malgré avoir cherché sur Google et sur le forum hacf je n’ai pas trouvé ce qu’il faut pour y arriver.
Actuellement :
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 servira pour mon adoucisseur a m’indiquer la position service.
une Led Bleu indiquera que l’appareil est en nettoyage
le second micro switch servira pour indiquer une fuite au rejet
Une Led Rouge indiquera qu’il y a un écoulement d’eau au rejet
1er problème :
- Pouvez vous me confirmer le raccordement sur ESP ? (pour éviter de tous flamber…)
pas bien…
Je ne suis pas électronicien, donc les valeurs de résistances sont celle que j’ai utilisé.
(je n’ai que des 10Kohm ou des 330 ohm) Mais si une autre valeur est necessaire je les commanderais.
2eme problème :
- Pouvez vous m’aider pour le code que je dois ajouter a mon code existant
J’ai essayé d’ajouter le code suivant a mon code existant , mais ce n’est pas bon.
Les leds ne s’allume pas
J’ai des erreurs sur les lignes marque de #*# quand je vérifie le code par esphome(validate)
# Définition du bouton physique Cycle adoucisseur
- platform: gpio
name: "esp1_cycle_adoucisseur"
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
#*# on_press:
#*# then:
#*# - switch.turn_on: esp1_cycle_led_bleu
#*# on_release:
#*# then:
#*# - switch.turn_off: esp1_cycle_led_bleu
# Définition du bouton physique fuite rejet
- platform: gpio
name: "esp1_debit_rejet_adoucisseur"
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: True
#*# on_press:
#*# then:
#*# - switch.turn_on: esp1_fuite_led_rouge
#*# on_release:
#*# then:
#*# - switch.turn_off: esp1_fuite_led_rouge
# LEDs Cycle et fuite (D18 et D19)
- platform: gpio
name: "esp1_cycle_led_bleu"
pin:
number: GPIO18
id: esp1_cycle_led_bleu
#*# restore_mode: RESTORE_DEFAULT_ON
- platform: gpio
name: "esp1_fuite_led_rouge"
pin:
number: GPIO19
id: esp1_fuite_led_rouge
#*# restore_mode: RESTORE_DEFAULT_ON
Voici le message erreur
Merci pour votre aide
Salut Pascal,
Connaissant un peu l’historique de ton sujet je te propose le code ci-dessous. Comme je ne suis pas maître en matière d’ESP, il est probable qu’il y ai des coquilles…
Sinon voilà mes sources :
le code :
esphome:
name: "esphome-test-adoucisseur"
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
####################################
## WIFI #
####################################
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp1-WebAdmin"
password: "admin"
captive_portal:
####################################
## Switch definition #
####################################
switch:
- platform: gpio
pin: GPIO18
name: "esp1_cycle_led_bleu"
id: id_esp1_cycle_led_bleu
- platform: gpio
pin: GPIO19
name: "esp1_fuite_led_rouge"
id: id_esp1_fuite_led_rouge
####################################
## Sensors definition #
####################################
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 # => A vérifier en fonction du nombre de pulse de la turbine par litre
total:
name: "Waterpump-Litres Total"
unit_of_measurement: "L"
accuracy_decimals: 3
filters:
- multiply: 0.001818 # => A vérifier en fonction du nombre de pulse de la turbine par litre
- 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: 10kOhm # => A vérifier en fonction de la résistance ajouté à ton circuit pour le pont diviseur de tension
reference_voltage: 3.3V
name: "Waterpump-Resistance Sensor"
id: waterpump_temperature_resistance_sensor
- platform: ntc
sensor: waterpump_temperature_resistance_sensor
calibration:
b_constant: 3950 # => A vérifier
reference_temperature: 25°C # => A vérifier en fonction de ta sonde de température
reference_resistance: 47kOhm # => A vérifier en fonction de ta sonde de température
name: "Waterpump-Temperature NTC"
id: waterpump_temperature_ntc
####################################
## Binary sensors definition #
####################################
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;
}
- platform: gpio
pin:
number: GPIO14
inverted: true
mode:
input: true
pullup: true
name: "esp1_cycle_adoucisseur"
device_class: None
on_press:
then:
- switch.turn_on: id_esp1_cycle_led_bleu
- platform: gpio
pin:
number: GPIO13
inverted: true
mode:
input: true
pullup: true
name: "esp1_debit_rejet_adoucisseur"
device_class: None
on_press:
then:
- switch.turn_on: id_esp1_fuite_led_rouge
Sinon coté câblage à voir mais je crois qu’il faut que le capteur a effet hall soit alimenté en 5V sinon celui-ci ne fonctionne pas. Ce qui me fait pensé qu’il serait judicieux de regarder la tension en sortie du capteur pour être certain que ce soit autour de 3.3V.
Actuellement il ne fonctionne déjà pas ou plus…
Mais je vais attendre que tu fasse un essai, je dois en recommander un nouveau ou mettre un vrai compteur a impulsion (1 impulsion/1 litres)
Pour les leds j’ai enfin trouvé voici le code que j’ai mis :
(La led bleu est devenu jaune…J’avais pas de bleu )
# Définition du bouton physique Cycle adoucisseur
- platform: gpio
name: "esp1_cycle_adoucisseur"
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
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
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
voici le resultat en montage provisoire :
1 « J'aime »