normalement si tu n’a pas de tirage d’eau au bout d’une minute tu devrais avoir 0 l/mm
Pour mon compteur, Je me suis inspirée de ce sujet : Une solution complète de récupération des données Eau, Gaz et Electricite
Mais tu as aussi cet article de Argonaute :
voici mon code, Je me sert de pulse-meter pour avoir l’information de débit l/mm, mais pour le comptage je me sert du binary_sensor, car j’utilise un compteur à impulsion (1L par impulsion) et pas un compteur à effet hall.
J’utilise ce code avec un shelly uni, il faudra adapté les GPIO pour ton Esp
mon code
esphome:
name: shelly-uni
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret api_key
ota:
password: !secret ota_password
# Enable Web server (optional).
web_server:
port: 80
auth:
username: !secret auth_login
password: !secret auth_password
# Wifi Config
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# ...
manual_ip:
# Set this to the IP of the ESP
static_ip: !secret ip_su1
# Set this to the IP address of the router. Often ends with .1
gateway: !secret ip_gateway
# 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: "Shelly-Uni Fallback Hotspot" #!secret ap_ssid_su1
password: !secret ap_password_su1
captive_portal:
##########################
# Device Specific Config
##########################
# Name device mask
substitutions:
friendly_name1: "Sensor ECS"
friendly_name2: "Compteur ECS"
globals:
- id: ecs_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 utilisé pour comptage des impulsions et Totalisateur
binary_sensor:
- platform: gpio
pin:
number: GPIO13
allow_other_uses: true
mode: INPUT_PULLUP
inverted: True
filters:
- delayed_on: 50ms
- delayed_off: 50ms
name: "${friendly_name1} counter state"
id: ecs_counter_state
on_press:
then:
- lambda: |-
// increment le compteur ECS puis publish mqtt
id(ecs_pulse_counter) += 1;
id(ecs_counter_pulse).publish_state(id(ecs_pulse_counter));
id(ecs_counter_l).publish_state(id(ecs_pulse_counter)/1);
id(ecs_counter_m3).publish_state(id(ecs_pulse_counter)/1000);
####################################
# Sensors with general information.
####################################
sensor:
# Débit d'eau instantané l/mm (0 après 10s)
# Ne pas utiliser pour comptage (comptage erroné)
- platform: pulse_meter
name: "${friendly_name1} pulse"
id: pulse_id_ecs
pin:
number: GPIO13
allow_other_uses: true
inverted: true
mode:
input: true
pullup: true
internal_filter: 500ms
icon: mdi:water
timeout: 300s
unit_of_measurement: 'L/mn'
filters:
- multiply: 1
# Comptage impulsion
- platform: template
name: "${friendly_name2} counter pulse"
id: ecs_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: ecs_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: ecs_counter_m3
unit_of_measurement: 'm³'
accuracy_decimals: 3 # Précision en entiers
state_class: total_increasing
device_class: water
############Pour Flash shelly uni -- Tasmota --- Esphome-- mode OTA
# https://ghost.canaletto.fr/flasher-un-shelly-1-avec-esphome/
# http://shellyip/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-ShellyUni.zip