PHOA Water Meter System.

Wireless water-meter telemetry, end to end

PHOA is a two-tier ESP32 system for getting your utility water-meter reading into a database in real time. A Node device locks onto the meter you own and reads it over the 900 MHz ISM band; a central Gateway aggregates the readings from one or more Nodes over a 433 MHz mesh and uploads them to a PC ingest service on the local LAN.

Hardware is off-the-shelf Heltec / CT62 ESP32 boards plus SX1276 / SX1262 FSK radios and a CC1101 mesh transceiver. Firmware is proprietary, with updates delivered over the air. Each Node is scoped to a single owner-configured meter (see Privacy by default). The dashboards shown below are live; every number is real telemetry captured from the running deployment.

Why real-time?

Utility billing arrives once a month. Between cycles, you can’t see a stuck-open valve, a broken irrigation line, or a slab leak; you only learn about it when the bill shows up with an unexpectedly large total. The conventional alternative, retrofitting outlot irrigation controllers with their own integrated flowmeters, carries substantial equipment and installation costs per zone.

PHOA reads the utility’s own meter wirelessly, with no plumbing changes. Consumption patterns build up over time per meter, so sudden out-of-range conditions stand out before they become an invoice. Line breakage and runaway irrigation are caught while they are still leaks, water is saved, and the end-of-month bill holds no surprises.

Privacy by default: your meter, not the neighborhood

The 900 MHz band is shared, so a receiver in range can physically hear many utility meters. PHOA deliberately does not act on that. Each Node is bound to one default meter, the meter owned by the customer who installs it, and in normal operation the dashboard, the JSON API, the email reports, and the upload to the database surface only that meter. Every other meter the radio happens to hear is withheld at the source.

Seeing the full in-range list requires a debug mode gated by the device's access-point password and held in RAM only, so it is off after every reboot. The result: an operator collects, displays, and stores only their own consumption data, which keeps third-party utility data, and the liability that comes with it, out of the system. More on the Node page.

Receiver

Water Meter Node

Locks onto the utility meter its owner configured and decodes its RF readings. Supports three meter protocols, shows that one meter live on an embedded dashboard, and relays it to the gateway over a long-range 433 MHz mesh link. Other in-range meters are withheld unless debug mode is unlocked.

Screenshot of a Water Meter Node dashboard in normal mode, labelled 'Showing your default meter only' with a single meter row. Read about the Node
Hub

Water Meter Gateway

The mesh hub. Listens on 433 MHz for readings forwarded by Nodes, queues them locally if the PC is offline, and POSTs them to a Windows ingest service on port 41290. Hosts a fallback WiFi AP so distant nodes can always phone home.

Screenshot of the Water Meter Gateway dashboard showing 5 connected mesh clients with RSSI and last-seen times. Read about the Gateway

How it fits together

Reading flow is one-way: meter โ†’ node โ†’ gateway โ†’ PC. Commands flow the other way over the same mesh.

[utility water meter] [utility water meter] [utility water meter] \\ | / \\ 900 MHz FSK | (P223 / P282 / P290) \\ | / +---> [Water Meter Node] ---+ (ESP32 + SX1276/SX1262) embedded dashboard, email reports, OTA | 433 MHz CC1101 mesh (multi-hop, ACKed) | [Water Meter Gateway] (ESP32 + CC1101, optional W5500) client roster, mesh commands, daily 'By Node' email | v HTTP POST :41290 | [Windows ingest service] (FastAPI / MySQL on the LAN)

Two deployment shapes

The same Node firmware supports two install patterns. For large or distributed sites, multiple Nodes feed one Gateway over the 433 MHz mesh and the Gateway uploads to a central database. For small clusters (a single building, a small park, one property), a Node can run standalone on local WiFi, with its own dashboard and daily emails; no Gateway is needed. What changes between the two is only whether the mesh is in use.

For agents

This site is designed to be machine-readable. Structured device specs are available as JSON; a top-level llms.txt indexes the pages.