Bonjour,
j’ai un capteur de pression dans mon puits qui me remonte une hauteur d’eau
ça marche bien mais quand le puits est plein, j’ai des resultats fluctuant entre deux valeur 134 et 137 cm, ça fait 3 cm d’écart et il n’y a pas de vagues dans le puits lol
au niveau du code je fait un relevé toutes les 5s, c’est peut etre trop ? ou peut-etre faut-il filtrer les resultat (et j’ai du mal à comprendre la partie filtre d’esphome) ?
voici le code
i2c:
sda: GPIO21
scl: GPIO22
scan: true
id: bus_a
number:
- platform: template
name: Niveau max puits
id: niveau_max_puits
icon: "mdi:gauge-full"
unit_of_measurement: cm
optimistic: true
min_value: 0
max_value: 130
step: 1
sensor:
# Sonde de niveau puits
- platform: ina219 #https://community.home-assistant.io/t/esphome-water-level-sensor/126504/482
address: 0x40
shunt_resistance: 0.1 ohm
current:
name: "INA219 Current"
id: raw_current
accuracy_decimals: 2
filters:
- multiply: 1000 # conversion to mA
unit_of_measurement: mA
bus_voltage:
name: "INA219 Bus Voltage"
accuracy_decimals: 2
shunt_voltage:
name: "INA219 Shunt Voltage"
accuracy_decimals: 2
filters:
- multiply: 1000 # conversion to mV
unit_of_measurement: mV
max_voltage: 32.0V
max_current: 3.2A
update_interval: 5s
- platform: template
name: Niveau eau puits
unit_of_measurement: cm
accuracy_decimals: 0
update_interval: ${update_interval_distance_measurement}
id: water_level
filters:
- skip_initial: 3
lambda: |-
float current = id(raw_current).state;
float curent_for_zero = 5.00; // courant lu sur HA à sec
float current_by_cm = 0.037; // courant moyen par cm d'eau (calculé sur base de mesures à 0.5m / 1m / 1.5m et 2m)
float sensor_ground_level = 15; // ditance entre capteur et fond du puits
if ( current < curent_for_zero )
{
return 0; // Sonde 4-20 mA -> si courant inférieur à 4 ma = sonde HS ou déconnectée
}
else
{
float cur_level = ((current - curent_for_zero) / current_by_cm ) + sensor_ground_level;
if ( id(niveau_max_puits).state < cur_level)
{
id(niveau_max_puits).publish_state(round(cur_level));
}
return cur_level;
}
une idée pour optimiser ?

