fieldmesh

Water meters and head flows: the arithmetic of a clogged head#

Saved 2026-10-11. Items 1–3 below were built the same day, as modules/zoneflow; item 4 on 2026-10-12.

A zone's flow is the sum of its heads' flows. With a meter on the irrigation line, each run of each zone has a measured flow, which can be set beside the flow its heads should give.

This note lists the meters a farm or a home can add easily, and the makers' flow figures per head. It then works through how small a fault the arithmetic can see.

What exists already#

Meters that install easily#

meter how it goes in output reaches fieldmesh open? caveat
A pulse-output meter on the irrigation line, such as Hunter's HC Flow, a Dwyer multi-jet with pulse output, or Rain Bird's FS with a pulse transmitter Plumbed in after the backflow preventer, on the irrigation line only A dry contact pulsing per volume. Hunter lists 1 pulse per 0.1 gallon on the ¾-inch HC and 1 per gallon on the larger, ±2% of reading (as resellers reproduce Hunter's listing) Today: through OpenSprinkler's flow input and the bridge; or an ESPHome pulse counter and the bridge the protocol is a pulse; the meters are proprietary it needs a plumber, or a homeowner who solders PVC; the meter's pulse rate goes in a calibration (§3.2)
A sensor on the utility meter's dial: an inductive proximity sensor (such as the LJ18A3-8-Z/BX) over the meter's turning metal target, counted by ESPHome's pulse meter Strapped on, no plumbing, nothing cut Pulses, one per turn of the target Today: through ESPHome and the bridge the firmware is open (ESPHome) It measures the whole house, so irrigation is told apart only by when a zone runs. Not every meter has a metal target. The meter is the utility's: a sensor beside it alters nothing, but nothing should be opened
A camera reading the dial: AI-on-the-edge, an ESP32-CAM and a neural network Clipped over the meter's face The reading, by MQTT Through MQTT, under a profile to write Not open source since January 2025: its Dual Use License allows private, non-commercial use only A home lawn may use it. A farm is a business, and would need the author's commercial licence
A small turbine flow sensor (Hall-effect, for small pipe) Cut into a drip zone's line Pulses Through ESPHome and the bridge open in practice uncalibrated; calibrate with a bucket and a stopwatch before trusting it

Flow per head, from the makers' charts#

Fixed spray nozzles: Rain Bird MPR, 4-inch pop-ups, at 30 psi.

series (radius) full circle half quarter
8 Series (8 ft) 1.05 gpm 0.52 0.26
10 Series (10 ft) 1.58 0.79 0.39
12 Series (12 ft) 2.60 1.30 0.65
15 Series (15 ft) 3.70 1.85 0.92

Rotor nozzles: Rain Bird 5000 / 5000 Plus Rain Curtain, at 45 psi.

nozzle 1.5 2.0 2.5 3.0 4.0 5.0 6.0 8.0
gpm 1.54 2.07 2.51 3.09 4.01 5.09 6.01 8.03

Drip emitters: Rain Bird Xeri-Bug, pressure-compensating from 15 to 50 psi. 0.5, 1.0 and 2.0 gallons an hour, which is 0.008, 0.017 and 0.033 gpm.

Pressure changes every head at once, as its square root. A nozzle is an orifice, so its flow goes as √P. The charts bear it out: the 15F gives 2.60 gpm at 15 psi and 3.70 at 30, a ratio of 1.42, where √2 is 1.41. A pressure drop lowers every head together, by a share that does not depend on the head. A clog takes one head's whole share. That difference is how the two can be told apart, especially with a pressure sensor on the line.

The arithmetic: how small a fault can be seen#

A lawn zone: six 15-foot half heads and two quarters, at 30 psi.

What hides a fault:

So on flow alone:

A pressure sensor on the line, dividing the flow by √(P/P₀), removes most of the pressure term, and quarter heads come into view.

A rotor zone: four 5000s with #3.0 nozzles at 45 psi, 12.36 gpm. One clogged rotor is −25%, plain at any pressure.

A drip zone: a hundred 1-gph emitters, 1.67 gpm.

Counting is not the limit, if the meter is sized to the zone.

What fieldmesh builds: all four built#

  1. A zone's inventory as a record: its heads and nozzles, and the pressure they were set for. From it, the zone's expected flow from the makers' charts, scaled by √P.
  2. Each zone's own flow, learned: the median of its recent runs, from OpenSprinkler's station flow already in the log. It is the bed's-own-soil idea applied to pipes. The inventory is the check on what was learned, not the other way round.
  3. An advisory decision for low flow and for high flow, sized in heads: "zone 3 ran at 11.1 gpm where it usually runs 12.9: about one half-circle head's worth is not flowing". And for drip, a drift over weeks.
  4. A pressure series on the line, so a pressure drop is not called a clog.

Items 1–3 are modules/zoneflow. Its drill over 300 simulated seasons bears out the arithmetic above: no false alert in 12,000 healthy runs, when a low or high flow must hold for two runs; a clogged half head, a stuck rotor and a broken head caught every time, by their second run; a quarter head in a fifth of seasons; drip silting as drift in about two weeks. Item 4, a gauge on the line, takes each run to one pressure; at a 6% tolerance it then sees every clogged quarter-circle head, with one false alert in 12,000 runs (modules/zoneflow). None of it has met a meter (UNTESTED).

Sources#