Water Tank Monitoring Needs Alerts, Not Just Sensors
A field-grade guide to monitoring tanks and pumps with telemetry, thresholds, pump runtime logic, WhatsApp alerts, acknowledgement, and weekly utility reporting.
Water systems fail quietly
Power failures are obvious. Empty water tanks are not. By the time tenants complain, the upstream failure has already happened: no one watched the level trend, no one checked pump runtime, and no one owned the alert.
A sensor reading trapped inside a local panel is not monitoring. It is a number waiting to be ignored. Monitoring only becomes useful when data turns into response.
Control stays local. Intelligence sits above it.
Do not make pump control depend on the internet. Field control belongs to the panel, PLC, float switch, pressure switch, or pump controller. OpenClaw belongs above that layer: ingest telemetry, store history, send WhatsApp alerts, handle acknowledgement, and summarize the week.
That boundary is the difference between a safe operational layer and a fragile cloud-controlled utility system.
Start with a boring data model
The first version does not need a hydraulic model. It needs sites, tanks, readings, pumps, pump events, alert events, acknowledgement records, and users.
If that model is clean, the system can answer the questions operators actually ask: which tank is low, which pump is running, when did the alert start, who acknowledged it, and whether the level recovered.
type TankReading = {
siteId: string
tankId: string
levelPercent: number
volumeLiters?: number
sensorHealth: 'ok' | 'stale' | 'fault'
createdAt: string
}
type PumpEvent = {
pumpId: string
state: 'on' | 'off' | 'trip'
runtimeMinutes?: number
createdAt: string
}The alert must explain the situation
“Tank low” is not enough. A useful alert says where, how low, what the pump is doing, what the trend is, and what the technician should check.
Context makes the difference. Roof Tank West at 12%, transfer pump ON for 18 minutes, level not rising, check source tank, valve position, pump suction, and float switch. That is an action, not a notification.
Pump behavior is often more important than level
Level tells you the state. Pump behavior tells you the story. A pump running too long without a level increase can signal an empty source tank, closed valve, failed impeller, suction issue, dry-run risk, or sensor error.
You do not need advanced ML to catch the first version of this. You need rules that match field reality.
if (pump.state === 'on' && pump.runtimeMinutes > 10) {
const delta = latestTank.levelPercent - tankLevelTenMinutesAgo
if (delta < 2) {
createAlert({
severity: 'high',
type: 'pump_running_no_level_gain',
suggestedAction: ['check source tank', 'check valve position', 'inspect pump suction']
})
}
}Debounce alerts or people will mute them
Water level can fluctuate. Sensors can jitter. Gateways can reconnect. If every tiny change becomes a WhatsApp message, the team will mute the bot. Once muted, the system is operationally dead.
Use persistence thresholds. Low level should remain low for several minutes before alerting. Critical low should alert faster. Resolved alerts should be sent once. Repeated alerts should update the existing incident, not create a new storm.
WhatsApp commands make the system usable
Dashboards are useful for analysis. WhatsApp is useful for quick operational checks. A manager should be able to ask for status without opening a browser.
Commands should be small and predictable: /water status, /tank tower-a, /pump status, /alerts water today, /ack WATER-184, /maintenance tower-b 2h.
const commands = {
'/water status': 'summarize all tanks and active alerts',
'/tank tower-a': 'show latest tank level and trend',
'/pump status': 'show pump state and abnormal runtime',
'/ack WATER-184': 'acknowledge alert with actor and timestamp',
'/maintenance tower-b 2h': 'suppress non-critical alerts during service window'
}The report is what management remembers
Operators need alerts. Management needs patterns. The weekly report should show critical low events, longest low duration, abnormal pump runtime, overflow warnings, average acknowledgement time, repeated tank issues, and recommended inspection.
A dashboard may be ignored. A clear weekly utility summary can change maintenance behavior.