Bonjour à tous,
Dans ma future maison, j’ai prévu un compteur d’eau à impulsion.
Je cherche donc à configurer une carte via ESPHome pour faire l’acquisition de ce simple discret.
Ca à l’air tout simple, mais je suis pas expert…
Et quoi que je fasse sur mon yaml, je n’arrive pas à faire ressortir les sensors sur Home assistant !
Voilà un extract de mon code actuel.
Sur cette carte j’avais déjà un capteur de présence, celui fonctionne toujours. j’ai bien les sensor et binary_sensor de vivant sous HA.
Mais j’essaie d’ajouter : total_pulses_ev et impulsion_ev, mais rien à faire ils ne resssortent pas sous HA…
Si quelqu’un peut m’aiguiller…
Merci !
globals:
- id: total_pulses_ev
type: int
restore_value: false
initial_value: '0' # initial value, read from power meter and divided by 0.075
binary_sensor:
- platform: ld2410
has_target:
name: Presence
has_moving_target:
name: Moving Target
has_still_target:
name: Still Target
- platform: gpio
id: impulsion_ev
pin:
number: GPIO38
mode: INPUT_PULLUP
filters:
- delayed_on: 70ms
on_press:
then:
- lambda: id(total_pulses_ev) += 1;
sensor:
- platform: ld2410
light:
name: light
moving_distance:
name : Moving Distance
still_distance:
name: Still Distance
moving_energy:
name: Move Energy
still_energy:
name: Still Energy
detection_distance:
name: Detection Distance
1 « J'aime »
Bonsoir
Je ne suis pas un expert en ESP, Mais j’ai l’impression qu’il te manque le Name pour ton compteur.
Voici mon code, si cela peut d’aider
globals:
- id: ef_pulse_counter
type: float #Le counter n'est pas integer car il sert aussi pour la division m3
initial_value: "0"
#################
# Binary Sensor #
#################
# binary sensor comptage impulsion eau froide et adoucie
binary_sensor:
# EAU FROIDE
- platform: gpio
pin:
number: GPIO32
allow_other_uses: true
mode: INPUT_PULLUP
inverted: True
filters:
- delayed_on: 50ms
- delayed_off: 50ms
name: "${friendly_name1} counter state"
id: ef_counter_state
on_press:
then:
- lambda: |-
// increment le compteur EF puis publish mqtt
id(ef_pulse_counter) += 1;
id(ef_counter_pulse).publish_state(id(ef_pulse_counter));
id(ef_counter_l).publish_state(id(ef_pulse_counter)/1);
id(ef_counter_m3).publish_state(id(ef_pulse_counter)/1000);
1 « J'aime »
Super c’est ça tout simplement.
Je pensais que l’idée suffisait…
Merci beaucoup.
et pour ton publish MQTT, ta variable ef_counter_pulse elle est définie quelque part dans ton code ?
Oui, j’ai un code pour avoir le nombre impulsion, litres et m3
# Comptage impulsion
- platform: template
name: "${friendly_name2} counter pulse"
id: ef_counter_pulse
unit_of_measurement: ''
accuracy_decimals: 0 # Précision en entiers
icon: "mdi:counter"
#update_interval: 5s # Mise à jour sur changement de valeur
# Comptage litres
- platform: template
name: "${friendly_name2} counter l"
id: ef_counter_l
unit_of_measurement: 'L'
accuracy_decimals: 0 # Précision en entiers
state_class: total_increasing
device_class: water
# Comptage m³ (utilisé pour le compteur services HA)
- platform: template
name: "${friendly_name2} counter m3"
id: ef_counter_m3
unit_of_measurement: 'm³'
accuracy_decimals: 3 # Précision en entiers
state_class: total_increasing
device_class: water
Bon je ne m’en sors pas…
Je comprends pas le comportement de ces machines.
Ci-dessous le code mon ESPhome.
J’ai bien le binary_sensor donnant le status qui remonte dans Home Assistant.
Mais le binary_sensor pour la détection d’impulsion ne remonte pas…
esphome:
name: capteurlocaltech
friendly_name: "Capteur Local Tech"
platformio_options:
board_build.extra_flags:
- "-DARDUINO_USB_CDC_ON_BOOT=0"
esp32:
board: lolin_s2_mini
framework:
type: arduino
# Enable logging
logger:
uart:
tx_pin: GPIO18
rx_pin: GPIO33
baud_rate: 256000
ld2410:
# Enable Home Assistant API
api:
encryption:
key: "xxx"
ota:
password: "xxx"
wifi:
manual_ip:
# Set this to the IP of the ESP
static_ip: xxx
# Set this to the IP address of the router. Often ends with .1
gateway: xxx
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: xxx
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Presence1 Fallback Hotspot"
password: "xxx"
binary_sensor:
- platform: gpio
pin:
number: GPIO21
mode: INPUT_PULLUP
inverted: True
name: impulsion ev
internal: true
filters:
- delayed_on: 50ms
- delayed_off: 50ms
- platform: status
name: "État de connexion à Home Assistant"
captive_portal:
Essaye de mettre des " pour le name
name: "impulsion ev"
id: impulsion_ev