For about $10 I was able to add a sensor to my return line and monitor flowrate using ESPHome and Home Assistant. I used a cheap hall effect flow rate sensor off of Amazon. I’m not worried about the quality or accuracy – this is more of a “nice to have” feature than a “life support critical” feature. Maybe if/when it fails I’ll upgrade to something a little nicer.

sensor:
#flow meter
– platform: pulse_counter
pin: GPIO15
name: "Reef Flowrate"
unit_of_measurement: 'gph'
accuracy_decimals: 0
filters:
– multiply: 0.0318
  • Make sure to use teflon tape – the part is BSP, not NPT. Thread sealant wasn’t enough.
  • I used the default update interval of 60s. The reading is very stable when summed up for a minute. https://esphome.io/components/sensor/pulse_counter.html
  • The provided formula for converting frequency to flowrate is Freq(Hz)=7.5*Q(Flowrate in L/min). I’m measuring pulses/minute and want to measure flowrate in gal/hour. Here’s the conversion:
  • Now you might notice the calibration factor I used is a little different than the one I calculated. Multiple reviews of the sensor said they found the calibration factor to be off. I manually measured the flowrate with a bucket and stopwatch and found mine to be off by about 10%. This lines up with one of the reviewers that said they found the formula to be more like Freq(Hz)=6.5*Q(L/min). Overall I think my measurement is accurate within 10% and that’s more than enough in this case.
  • You could also modify the calibration factor to output tank turnovers per hour since in the end that’s what we really care about. My total water volume is about 50 gal so I’m getting just under 3 turnovers per hour through my sump.