Badger E-Series Ultrasonic water meter in HA via ESPHome — hard-wired, utility grade and cheap new from Ebay

I wanted whole-house water use in Home Assistant without a camera on the utility meter, a clamp-on sensor, or a reed switch counting pulses. What I ended up with is a used utility-grade ultrasonic meter from eBay, installed after the utility meter and read directly over its own encoder cable by an ESP32.

This is a Badger E-Series Ultrasonic 1": utility grade, no moving parts, ±1.5% over the normal flow range and ±3% down to 0.25 gpm. 316 stainless body, can run fully submerged, sealed 20-year battery. Every read returns the same total the LCD shows, down to 0.001 ft³ (about 28 mL) on mine. The units are set at the factory (gallons, ft³ or m³), so check the LCD on yours. New from a distributor they run $500–1k; I paid $75 on eBay.

It didn’t work out of the box: Badger doesn’t publish the encoder’s electrical interface, so I worked it out from public documents and measurement, which turned out easier than expected. All you need is an ESP32 and a 4.7–10 kΩ resistor :slight_smile:

One warning before you wire anything: Badger ships the encoder cable in two colour codes, and a red/black/white cable fits both. Wired to the wrong one, the meter just stays silent. The repo has a multimeter test that tells them apart.

Code, notes and gotchas at Github repo,

You might want to consider posting this here: ESPHome or ESPHome Feature Requests

and seeing if it could be added to the ESPHome core…

Very cool! If I remember correctly, these ultrasonic types are supposed to be pretty good and are what is used in commercial building automation systems frequently too. I couldn’t find any similar sensors 2+ years ago when I did mine and so I used an inline flow meter that I calibrated initially and has been very reliable and very accurate because I occasionally compare it against my water meter the water company uses out in my yard. For people who don’t want to spend hundreds of $$ on a single sensor or can’t find a discounted one, I would highly recommend using an inline flow meter as an alternative!