Medindo o nível da caixa d’água com sensor ultrassônico e esphome 

Você vai precisar de:

1 sensor ultrassônico: https://s.click.aliexpress.com/e/_9zcQf0 3

1 nodemcu: https://s.click.aliexpress.com/e/_A4vTUQ 1

Código Esphome

# SENSOR NIVEL DE AGUA INICIO #
sensor:
  - platform: ultrasonic
    echo_pin: D1
    trigger_pin: D2
    name: "Sensor de água (Porcentagem)"
    accuracy_decimals: 0
    unit_of_measurement: "%"
    update_interval: 2s
    filters:
      - lambda: return ((((x*100)-20)-(123-20))/(123-20))*-100;
      - filter_out: nan
      
  - platform: ultrasonic
    echo_pin: D1
    trigger_pin: D2
    name: "Sensor de água (Volume)"
    accuracy_decimals: 0
    unit_of_measurement: "L"
    update_interval: 2s
    filters:
      - lambda: return ((((x*100)-20)-(123-20))/(123-20))*-1000;
      - filter_out: nan
# SENSOR NIVEL DE AGUA FIM #

Lembre-se de ligar os pinos GND e 5v da placa do sensor ultrassônico nos pinos GND e VU do Nodemcu.

Como calcular as medidas da caixa

Cálculo para porcentagem (%)
return ((((x100)-NA)-(NB-NA))/(NB-NA))-100
NB = Distância do sensor até o nível baixo de água
NA = Distância do sensor até o nível alto de água

Cálculo para volume (L)
return ((((x100)-NA)-(NB-NA))/(NB-NA))-CM
NB = Distância do sensor até o nível baixo de água
NA = Distância do sensor até o nível alto de água
CM = Capacidade máxima da caixa (Ex: 1000L)

Basta substituir no código ESPHome os valores da sua caixa

Card

Para o card utilizei o Mini Graph Card que pode ser instalado via HACS ou pelo repositório: GitHub – kalkih/mini-graph-card: Minimalistic graph card for Home Assistant Lovelace UI

Código do card

type: custom:bar-card
entities:
  - entity: sensor.sensor_de_agua_volume
    direction: up
    height: 240px
    severity:
      - color: Red
        from: 0
        to: 250
    target: 500
    min: '0'
    max: '1000'
    positions:
      icon: 'off'
      name: 'off'
      minmax: 'off'
      value: outside
      indicator: 'off'
    name: Volume de água
positions:
  indicator: inside
  name: 'off'
severity:
  - {}

Instalando o sensor na caixa

O processo de instalação é bem simples. Faça dois furos no diâmetro dos sensores na tampa da caixa de forma que fique bem justo e vedado. Eu utilizei silicone para ajudar na fixação.