Bonjour à tous,
J’ai un projet de détection du niveau d’eau de cuve mais j’ai quelques soucis. Je débute totalement avec les ESP.
produits :
Mon premier souci c’est la detection USB du fimware
J’ai ajouté une device comme ci-dessous :

Puis installé les drivers ci-dessous :

+
ensuite :
puis

Je ne comprend pas
J’ai essayé avec 2 boards…
Merci d’avance !
Salut
Déja il faut éclaircir quelques points:
HA tourne dans quelle configuration et sur quoi comme matériel ?
cela veut dire quoi ESPHome est connecté à Windows 11 ?
Le flashage à travers le browser ne marche qu’avec Chrome ou similaire (pas supporté par Firefox entre autre).
As-tu essayé en branchant l’ESP en USB sur la machine qui fait tourner HA et ESPHome et en choisissant « Plug in the computer running ESPHome Dashboard » ?
Vincèn
1 « J'aime »
Ah oui en effet
Alors ha est sur un pc dédié sur un proxmox.
En effet je branche sur mon pc portable donc logique que cela soit pas détecté
mon esp8266 est branché physiquement sur mon pc portable (pas celui de HA) mais pourtant sur

pourtant je suis bien sur web.esphome.io (donc rien à voir avec HA) pour essayer de flasher mon .bin. généré dans HA
Si c’est un PC dédié pourquoi avoir mis Proxmox au lieu d’installer directement HAOS ? Ça serait beaucoup plus simple et source de beaucoup de problèmes en moins 
Non pas la peine de t’embêter avec web.esphome.io, tu flashes directement depuis ESPHome dans HA (il faut que tu installes le module complémentaire dans HA, et tu le démarres et tu auras alors ESPHome dans HA qui te permettra de flasher directement tes ESP 
1 « J'aime »
ok j’avance,
en effet en plugant l’usb sur proxmox et en faisant, « installer via le pc ou y’a esp, ha et tout », cela fonctionne
par contre maintenant en collant le code de : Sign in to your account
venant de https://www.makeuseof.com/build-water-level-sensor-using-ultrasonic-sensor-and-home-assistant/
J’ai cette erreur

mon code yaml :
esphome:
name: waterlevelsensor
friendly_name: waterlevelsensor
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "c+SATU1ejyXFcJyf27KXQpAp4cOvYD7EBUj2o71kRj4="
ota:
- platform: esphome
password: "5ac71d30b5ce7010d9ad9febe6913ae6"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Waterlevelsensor"
password: "aZPnhmLgjCJD"
captive_portal:
# Water Level Sensor
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s #to display WiFi signal strength
- platform: ultrasonic
trigger_pin: D5
echo_pin: D6
unit_of_measurement: "%"
icon: "mdi:water-percent"
accuracy_decimals: 0
update_interval: 300000ms
name: "Sweet Water storage" #You may change the tank name
# tank height: 1.20m
# distance between sensor and water brim 0.10m
# full tank: tank height-0.10m = 1.10m
# current reading: x
# used = (x - 0.10m)
# remaining = (1.10m - used)
# percent = (remaining / 1.10m) * 100
filters:
- lambda: return (1-((x-.20)/1.20))*100;
- filter_out: nan
- platform: ultrasonic
trigger_pin: D5
echo_pin: D6
update_interval: 1200000ms #5 minutes. You can change this value
name: "Remaining Water in Tank"
unit_of_measurement: "l"
accuracy_decimals: 0
filters:
- lambda: return (1-((x-.20)/1.20))*1000;
- filter_out: nan
Ok j’ai réussi.
Pour ceux que cela intéresse. voici comment j’ai fait. (peut-être que c’est à améliorer/modifier je débute)
Projet : Domotiser niveau d’eau d’une cuve enterrée
Ma config et produits utilisés :
- https://amzn.to/4eCRkKD : ESP8266MOD V3 Module Node-Mcu
- https://amzn.to/4eAWjvm : Geroosaty 1 JSN-SR04T IntéGré Module Ultrasonique Capteur
- Pc avece proxmox et HA à jour avec accès duckdns
- module ESPhome officiel
- Drivers cités plus haut
- Installer ESPhome officiel
- Brancher le ESP8266MOD sur le pc proxmox (et déclarer le port usb)
- ajouter une device et configurer le wifi
- décocher « Use recommended settings » et choisir 8266
- dans la liste choisir NodeMCU 1.0 (ESP-12E Module) (déclaré comme « nodemcuv2 »)
- faire l’installation et paf

Pour info l’erreur de mon post précédent c’était une double déclaration de gpio
et ce qui est de ce plan → https://www.makeuseof.com/build-water-level-sensor-using-ultrasonic-sensor-and-home-assistant/
Les pin sont pas bons :
il faut mettre : GPIO3 et GPIO1
esphome:
name: waterlevelsensor
friendly_name: waterlevelsensor
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "c+SATU1ejyXFcJyf27KXQpAp4cOvYD7EBUj2o71kRj4="
ota:
- platform: esphome
password: "5ac71d30b5ce7010d9ad9febe6913ae6"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Waterlevelsensor"
password: "aZPnhmLgjCJD"
captive_portal:
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s #to display WiFi signal strength
- platform: ultrasonic
trigger_pin: GPIO3
echo_pin: GPIO1
unit_of_measurement: "%"
icon: "mdi:water-percent"
accuracy_decimals: 0
update_interval: 60s
name: "Sweet Water storage" #You may change the tank name
filters:
- lambda: return (1-((x-.20)/1.20))*100;
- filter_out: nan
Hello,
J’ai écumé les forum pour un souci de timeout… quelqu’un aurait une idée ?
le yaml est plus haut
Merci d’avance
[17:40:53][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -60.00000 dBm with 0 decimals of accuracy
[17:41:03][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:13][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:17][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[17:41:23][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:33][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:43][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:53][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -60.00000 dBm with 0 decimals of accuracy
[17:42:03][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.006 m
[17:42:03][D][sensor:093]: 'Sweet Water storage': Sending state 71.86878 % with 0 decimals of accuracy
[17:42:13][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.006 m
[17:42:13][D][sensor:093]: 'Sweet Water storage': Sending state 71.86878 % with 0 decimals of accuracy
[17:42:23][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:33][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:43][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:53][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.002 m
[17:42:53][D][sensor:093]: 'Sweet Water storage': Sending state 72.12603 % with 0 decimals of accuracy
[17:43:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -59.00000 dBm with 0 decimals of accuracy
[17:43:03][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
Le code ESPhome fonctionne bien pour les capteurs avec un émetteur et un récepteur séparés. Beaucoup moins bien avec ton capteur étanche d’après mes rapides essais.
C’est probablement parce que l’intervalle de temps entre le trigger et l’émission des ultrasons est bien plus grande avec ton capteur et que la valeur de timeout: (2m par défaut, unité ridicule, en fait c’est une durée) intègre malheureusement cette intervalle.
Augmente timeout: et tout devrait rentrer dans l’ordre.
Je te conseille de vérifier à l’air libre si les valeurs de distances remontées sont correctes.
Les echos sont très perturbés dans une cuve fermée.
Pour ma part, j’ai du utiliser un capteur classique non étanche (1 transducteur pour l’émetteur et un autre pour le récepteur) en réduisant son angle de détection avec 2 tubes de 8cm autour de chaque transducteur (idée trouvé ici dans je ne sais plus quel fil).
Je n’ai jamais réussi à avoir une mesure correcte avec le capteur étanche à transducteur unique, pas moyen de réduire son angle de détection donc de faux échos.
Et un filtre quantile: est un excellent moyen de se débarrasser des fausses mesures qui arrivent de temps en temps.
Salut merci pour l’info
Je vais tester avec un timeout a 4m voir.
Je test a l’air libre en effet pour le moment 
ok ça fonctionne beaucoup mieux. Merci !
D’ailleurs, j’ai revu la formule de calcul lambda car elle n’était pas bonne
Distance du capteur du fond de la cuve : 1.8m
Distance du capteur et du niveau max de l’eau : 0.5m
Soit niveau max de l’eau 1.3m
#Water
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
- platform: ultrasonic
trigger_pin: GPIO14
echo_pin: GPIO12
unit_of_measurement: "%"
icon: "mdi:water-percent"
accuracy_decimals: 0
update_interval: 60s
timeout: 6m
name: "Sweet Water storage" #You may change the tank name
filters:
- lambda: return ((1.8 - x) / 1.3) * 100;
- filter_out: nan