Compteur dans ESPHOME

Bonjour à tous,

dans le cadre de la domotisation de ma boite aux lettres, j’ai installé 3 capteurs d’ouvertures (Clapet, porte avant, porte arrière) qui sont relié à un ESP32 avec ESPHOME.
pour l’instant, je récupére l’état d’ouverture/fermeture de chaque ouvrant avec HA et j’ai créé des compteurs bal_nb_colis et bal_nb_lettres qui sont incrémenté et reset via scénarios.
mais je ne pense pas que cela soit une bonne méthode car si l’ESP perd le wifi ou que HA est indisponible alors mon compteur est décalé.

voici pour l’instant mon code :

# Set some variables for convenience
substitutions:
  node_name: bal-esp32
  device_name: Boîte aux Lettres


esphome:
  name: $node_name
  comment: $device_name

esp32:
  board: esp32doit-devkit-v1
#  framework:
#    type: arduino


ota:
  password: "toto"

wifi:
  ssid: !secret wifi_ssidiot
  password: !secret wifi_password
  use_address: $node_name.local

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: $node_name Fallback Hotspot
    password: "toto"

# Enable logging
logger:

# Enable Home Assistant API
api:

captive_portal:

# Enable WebServer  
web_server:
  port: 80

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# A reboot button is always useful
button:
  - platform: restart
    name: Restart $device_name

binary_sensor:
  - platform: status
    name: $device_name Status
  - platform: template
    name: $device_name Power State
    id: power_on_off
    internal: true
  - platform: gpio
    pin:
      number: GPIO19
      mode: INPUT_PULLUP
      #inverted: True
    name: "$device_name Porte Arrière"
    device_class: door
  - platform: gpio
    pin:
      number: GPIO18
      mode: INPUT_PULLUP
      #inverted: True
    name: "$device_name Porte Devant"
    device_class: door
  - platform: gpio
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
      #inverted: True
    name: "$device_name Clapet"
    device_class: door

    #filters:
    #  - delayed_on: 1s      


text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: $device_name ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: $device_name IP
    ssid:
      name: $device_name SSID
    bssid:
      name: $device_name BSSID   

sensor:
  # Uptime sensor.
  - platform: uptime
    name: $device_name Uptime
  # WiFi Signal sensor.
  - platform: wifi_signal
    name: $device_name WiFi Signal
    update_interval: 60s

Est il possible que ESPHOME gérer directement les 2 compteurs?
si porte devant est ouvert alors bal_nb_colis +1
si clapet est ouvert alors bal_nb_lettre +1
si porte arrière est ouvert alors bal_nb_colis = 0 et bal_nb_lettre = 0

est ce que quelqu’un a déjà implémenté ce genre de compteur dans ESPHOME et pourrais me guider?

merci

Salut,

Tu peux faire ça en déclarant des variables globales de type int par exemple et tu pourra les incrémenter par les actions de tes capteurs.

Ou alors créer un Sensor Template avec le compteur en tant qu’état.