New: the AI firewall watches every module and explains each incident in plain words. See how it works

Remote monitoring of pumping stations and reservoirs

A blueprint for putting every pumping station and reservoir of a water network on one platform: point list, asset tree, alarms, SCADA screens, sizing and rollout.

At a glance

ItemTypical answer
ProblemUnmanned pumping stations and reservoirs report only to local panels, so trips, overflows and power cuts are found late.
What is connectedReservoir level, pump run and fault states, pressures, flow, energy and station housekeeping signals, read by a licensed gateway in each station panel.
Who uses itControl room operators, the on-duty field crew, the maintenance planner and the operations manager.
Typical first scopeTwo to four stations and the reservoirs they feed, in one pressure zone.
Time to first screenTypically a few days after the first gateway is wired, because the Water site solution gives a starting dashboard. Budget two to four weeks for a pilot that the operators trust.
Estimates depend on how much signal wiring already exists in the panels.

The situation

A water utility typically runs dozens of unmanned booster and transfer stations and the reservoirs they fill. Each has a small PLC or relay logic that runs duty and standby pumps on reservoir level, and a local panel. Existing telemetry is often a mix of old radio outstations, a few modems and stations with nothing.

A pump trips on Friday night and the reservoir drains until a district loses pressure on Saturday. A level transmitter freezes and water spills from the overflow for hours. After a power cut nobody knows whether a station restarted. Crews drive fixed rounds to read counters, and most visits find nothing wrong.

The aim here is one shared picture: every station reporting to Hermetry, alarms that reach the person on duty, and a history good enough to plan maintenance and energy from.

Goals and measures

Agree the measures before wiring, because they decide which signals are worth connecting. Typical ones, computed from the point list below:

  • Station availability = time the station could deliver its duty flow ÷ total time in the period. In practice: time with at least one healthy pump available and mains present, divided by hours in the month.
  • Pump run hours and starts per pump per day, from the PLC's run-hour and start counters (increase); without counters, send the run contact as a 0/1 number so hourly averages give run hours. Starts per hour above the motor's limit (for example 6 to 10 starts per hour, agree it with the motor supplier) point to a level band set too narrow.
  • Specific energy = kWh used by the station ÷ m³ pumped, per day. A rising value at the same head usually means impeller wear or a partly closed valve.
  • Reservoir security = lowest level reached each day as a percentage of capacity, and hours spent below a minimum operating level.
  • Time to acknowledge and time to resolve per alarm type, read from the alarm timeline.

Hermetry keeps one-minute, hourly and daily aggregates (sum, count, minimum, maximum, last) of every key, so daily energy and daily minimum level need no calculation in the field.

Architecture

Each station gets one licensed gateway running Hermetry Edge in the existing panel. It reads the PLC and instruments over Modbus RTU (RS485) or Modbus TCP, reads dry contacts on its digital inputs and sends everything over MQTT with TLS on one outbound connection; nothing on site accepts connections from the internet. See Hermetry Edge and the licensed devices list for which models offer which inputs and links.

Reservoirs that sit away from a station and have only a level instrument do not need a full gateway. A battery LoRaWAN level sensor, heard by a LoRaWAN gateway at a nearby station, joins Hermetry's own LoRaWAN network server. The codec library turns its radio frames into values such as level_m.

ComponentRoleNotes
Licensed gateway with EdgeReads Modbus and contacts, publishes telemetryOne per station. Leaves the factory with an identity; your organisation claims it, nobody types credentials on site.
Licensed 4G or 5G routerUplink where there is no fixed lineUse your own SIM and operator. eSIM management from the platform is in development (Hermetry Connect).
Station PLC or pump controllerKeeps controlling the pumpsRead-only from the gateway in the first phase.
Level, pressure and flow transmittersProcess values4-20 mA into the PLC or the gateway's analog inputs, or Modbus where the instrument has it.
Energy meterkWh, voltage, current, power factorModbus RTU on the same RS485 line.
LoRaWAN level sensor and gatewayRemote reservoirsEU868, OTAA, class A for battery sensors.
HermetryStorage, alarms, rules, dashboards, SCADAHosted in the EU, US or Türkiye region, or on your own servers.

Licensed devices authenticate with an X.509 certificate from the platform's own authority; other devices with an access token or user name and password. The profile can require TLS and pin allowed source networks. If a station has several Modbus devices that you want as separate devices in Hermetry, the gateway can report them as child devices of itself, each with its own readings and alarms, over the one connection.

Point list

A typical two-pump booster station with one reservoir. Register numbers are examples from a common PLC map; use your own map. Intervals are starting values to adapt.

PointTelemetry keyUnitSourceIntervalNotes
Reservoir levelres_level_mm4-20 mA via PLC, holding register 4000160 sDeclare range 0 to max depth in the profile.
Reservoir level, percentres_level_pct%Computed in PLC, 4000260 sUsed for alarms so one rule fits reservoirs of different depths.
Inflowinflow_m3hm³/hMagnetic flow meter, Modbus60 s
Outflowoutflow_m3hm³/hMagnetic flow meter, Modbus60 s
Totalised outflowoutflow_total_m3m³Flow meter totaliser15 minDaily volume comes from the increase.
Suction pressuresuction_barbarPressure transmitter, 4001060 sLow suction protects pumps from running dry.
Discharge pressuredischarge_barbarPressure transmitter, 4001160 s
Pump 1 runningp1_run0/1Run contact, gateway DI1on changeReport by exception plus a 15 min heartbeat. Send as a 0/1 number, not true/false, for history.
Pump 1 faultp1_faultboolOverload or VFD fault contact, DI2on change
Pump 1 in autop1_autoboolSelector switch contact, DI3on changeTells operators when a pump is left in hand.
Pump 1 motor currentp1_current_aAVFD or current transducer, Modbus60 s
Pump 1 run hoursp1_hourshPLC counter, 4002015 min
Pump 1 startsp1_startscountPLC counter, 4002115 minStarts per day from the increase.
Pump 2 running, fault, auto, current, hours, startsp2_run, p2_fault, p2_auto, p2_current_a, p2_hours, p2_startsas pump 1as pump 1as pump 1
Mains presentmains_okboolPhase monitoring relay, DI6on change
Station active energyenergy_kwhkWhEnergy meter, Modbus RTU15 min
Station active powerpower_kwkWEnergy meter60 s
Phase voltage L1-L3u_l1_v, u_l2_v, u_l3_vVEnergy meter60 s
Panel doordoor_openboolReed contact, DI7on change
Panel temperaturepanel_temp_c°CGateway or small sensor5 min
Overflow floatoverflow_floatboolFloat switch, DI8on changeIndependent of the level transmitter.
PLC communicationplc_comm_okboolGateway Modbus status60 sFalse when the gateway cannot read the PLC.
About 28 keys per station. Key names are examples; keep them identical across stations of the same type.

Declare every key in the profile's Telemetry keys tab with label, unit, decimals and range; gauges take the range as their scale.

Asset model

Build the tree in Sites & Assets so that it mirrors how the network is operated, not how it was built. A common shape:

  • Region (free kind, for example North) with attributes crew_phone_group and region_code.
  • Pressure zone (Zone) with design_pressure_bar and population_served.
  • Station (Site) with location, time zone, criticality (A, B or C), duty_flow_m3h and has_standby_generator.
  • Reservoir (Area) with capacity_m3, overflow_level_m and min_operating_level_m.
  • Pump 1, Pump 2 (Machine) with rated_kw, max_starts_per_hour and install_date.

Place the gateway on the station asset and child devices on what they measure, and add Feeds relations from station to reservoir to zone. Placement decides which site's status and alarm counts include a device and which rules of a place may act on it. Attributes such as overflow_level_m can also be written as server attributes on the device, so alarm rules use per-site limits while the rule itself stays the same for every station.

Device setup

Device profiles

Create one profile per kind of station, for example Booster station, 2 pumps, and one for Reservoir level sensor (LoRaWAN). A profile holds the transport and login rules, the online rule, rate limits, telemetry keys, configuration keys, alarm rules and the command catalog, so every station of the kind behaves the same. Use the Recent message online rule for stations, with an expected interval that matches the heartbeat, and the built-in LoRaWAN profile for the battery sensors.

Provisioning

Licensed gateways leave the factory with their own identity. The installer mounts the gateway and the administrator claims it into the organisation by scanning its code or typing its claim details, then picks the station profile. For larger rollouts, devices can be imported in a batch. A device that registers itself through a profile's provisioning key waits in quarantine until an administrator activates it.

Settings, intervals and report by exception

On licensed gateways, remote device settings show every setting of the model with its current value: Modbus addresses, serial parameters, polling intervals and input configuration. Change one station from its Settings tab, or create a baseline for the station type and apply it to all stations with a bulk job that runs in waves and pauses itself if too few devices apply the change. Devices that do not describe their settings can take desired values as cfg.* shared attributes, for example cfg.report_interval_s.

Send contacts on change plus a periodic heartbeat, and analog values on a fixed interval. If the gateway model has a deadband setting, set it there. If not, a block in the profile's root flow can pass a value only when it moves by more than a set amount or percentage before it is stored. Keep the deadband smaller than any alarm hysteresis.

Time and buffering

Synchronise the gateway clock before it sends its own time stamps; a device without a reliable clock should omit ts and let Hermetry stamp the arrival. Licensed gateways can keep readings locally while the link is down and send them when it returns; how much they keep depends on the model, so check it for your outage profile. Buffered readings arrive in order with their original time stamps. Hermetry stores them and evaluates alarm rules on them as a backfill: an overflow that started and ended during the outage appears in the alarm history, marked Backfilled, without paging anyone for the past.

Firmware

Signed gateway firmware is assigned to the station profile and rolled out in waves: a few low-criticality stations, a soak time, then the rest. A failed wave gate pauses the rollout. Devices on mobile data wait unless metered downloads are allowed.

Dashboards

Start from the Water site ready solution, which installs a board with tank levels, pump stations, zones, an alarm list and a station diagram, and adapt it. A typical set of boards:

BoardAudienceWidgets and what they show
Network overviewControl room, managersMap with each station as a marker in the colour of its status; site table with status, devices, open alarms and last seen; stat cards for stations online and open critical alarms; alarm table filtered to Critical and Major. Also shown on a control-room screen through a read-only display link.
Station pageOperators, crewsGauges for reservoir level and pressures; state cards for each pump (running, fault, auto); line chart of level, inflow and outflow over 48 hours; the station's process drawing; activity feed of recent events. Opened from the overview by clicking a station (drill-down with the station as a parameter).
Pump performanceMaintenance plannerRun hours and starts per pump per day; motor current against discharge pressure; heatmap of running by hour.
EnergyOperations managerBar chart of daily kWh per station; stat with trend of specific energy (kWh/m³) against the previous period; table of stations sorted by specific energy, downloadable to Excel.

Entity parameters let one board serve every station: the station page takes the station asset as a parameter and every card follows it.

SCADA screens

Draw one process drawing per station type, not one per station. A booster station drawing holds the reservoir, suction header, two pumps with check and isolating valves, discharge header, meters and the energy meter, joined by pipe and cable connections. Tank, pump and valve symbols come from the core set and the Water pack, which covers water and wastewater and city networks; see the SCADA library.

  • States: a pump symbol shows running, stopped and fault from p1_run and p1_fault; the tank fills with res_level_pct; a rule makes the level text blink red above the overflow level and greys a pump that is not in auto.
  • Second readings: pumps print motor current beside the run state; the flow meter prints instantaneous flow and the total.
  • Conversions: a one-line expression adapts raw values, for example value / 10 for a level sent in decimetres.
  • Reuse: attach the drawing as a view from the station profile's Views button and every station of the profile gets its own view, each with its own device bindings. Match everything proposes a device for every unbound symbol.
  • 3D: make a 3D view from the 2D drawing for walkthroughs and training; it keeps the same bindings.

Check the designer's Problems tab, which lists unbound symbols and rules that never match, before applying.

Rules and alarms

Alarm rules live on the station profile, so every station gets the same rules. Thresholds that differ between sites read a device attribute (for example overflow_level_m) instead of a fixed number.

AlarmConditionDelay and hysteresisSeverityNotifiedEscalation
Reservoir overflowoverflow_float == true, or res_level_m >= attribute overflow_level_mDebounce 60 s raise, 120 s clearCriticalOn-duty operator group, SMS and pushReminder every 15 min until acknowledged
Reservoir highres_level_pct > 95Debounce 120 s; hysteresis 3 %MajorControl room, push and in-appReminder every 30 min
Reservoir lowres_level_pct < 25 (Major), < 15 (Critical)Debounce 300 s; hysteresis 5 %Major / CriticalControl room; Critical also SMS to zone supervisorSeverity rise notifies again
Pump faultp1_fault == trueDebounce 2 samplesMajorMaintenance group, e-mail and pushReminder every 30 min
Pump left in handp1_auto == falseDebounce 30 minWarningControl room, in-appNone
Low suction pressuresuction_bar < 0.5Debounce 30 s; hysteresis 0.2 barMajorControl room, pushReminder every 15 min
Mains failuremains_ok == falseDebounce 20 sCriticalOn-duty operator, SMSReminder every 10 min
Station offlineInactivity rule, no message for 15 minMajorControl room, pushReminder every 30 min
Door open out of hoursdoor_open == true, raised by a rule only outside working hoursMinorSecurity contact, pushNone

Lifecycle. An alarm opens when its condition holds through the debounce, is acknowledged by the person who takes it and resolves by itself when the condition clears. Only one alarm is open per device and type, so a pump that keeps tripping counts occurrences on one alarm. Acknowledging needs the User role; resolving by hand needs Admin. Each rule can carry a runbook text, for example the reset procedure for the pump's overload relay, shown with the alarm.

Time-dependent alarms. Alarm rules on profiles compare values; they do not know the time of day. For the door alarm, write a rule in the station's Rules card: when door_open becomes true, only if the time is outside 07:00 to 17:00 on weekdays, then raise a Minor alarm and notify security.

Maintenance. Mute a station before planned work. A muted device still records its alarms, marked as muted, but nobody is paged; a mute ends by itself after the set time and never lasts more than 90 days.

Floods. A regional power cut can trip twenty stations in a minute. Above the storm threshold (20 alarm notifications a minute by default) Hermetry collects the rest into a five-minute digest. Design for it anyway: mains failure at Critical, its consequences (pump stopped, pressure low) at lower severities with longer delays, and dampening on any chattering signal.

Automation and integrations

Control stays in the station PLC. Hermetry supervises and, where the team wants it, sends commands that the PLC accepts.

  • Commands: define a catalog on the station profile, for example pump.reset_fault (basic tier) and station.inhibit (critical tier, high impact, with a typed confirmation). Which methods a gateway can carry out depends on its model and firmware. Every command is stored and followed from queued to successful, failed or timed out, and high-impact commands are written to the audit log. A board control sends only basic-tier commands; a SCADA symbol can run a command behind a confirmation that names the symbol, the command and the values.
  • Rules as a fallback: a station's Rules card can hold a supervisory rule such as: when res_level_pct stays above 98 for 5 minutes and the feeding pump still runs, then send station.inhibit and notify the control room. Switch the station to Manual when operators want to take over; every rule of that place then stops, and the switch is audited.
  • Flows: a flow can send each new Critical alarm to a ticketing or maintenance system through an HTTP endpoint you configure, or publish it to an MQTT broker.
  • Webhooks: alarm.created, alarm.acknowledged and alarm.cleared, signed with HMAC, feed a CMMS or an operations log. rpc.completed and rpc.failed report command outcomes.
  • Reporting: history tables download to Excel for monthly energy and run-hour reports. Scheduled, e-mailed reports are not built in today.

For site work, an engineer can open a licensed router's web panel from the device page through router remote access: no fixed IP or VPN, sessions limited in time and audited.

Roles and access

WhoRole or groupCan
Control room operatorUser + IoT operator groupSee all stations, acknowledge alarms, send basic commands, switch a place to Manual.
Field crewUserSee stations and alarms of their region, acknowledge alarms.
Maintenance plannerUser + IoT viewer groupRead everything, export history, no changes.
SCADA engineerAdminEdit profiles, alarm rules, drawings, rules and the command catalog; mute devices; roll out firmware.
Utility IT ownerOwnerMembers, sign-in policy, signing keys for firmware, raw commands.

Attribute-based policies can narrow access down to single devices, for example a regional crew that sees only its own stations. A utility that operates for several municipalities can run each as its own organisation, isolated by row-level security in the database, with one account holding memberships in several. The audit log records sign-ins, role changes, high-impact commands, firmware actions and setting changes in a hash chain that can be verified and exported.

Sizing and data

As an order of magnitude, for 40 stations and 10 remote reservoirs:

  • Analog values: about 18 keys per station every 60 s. If the gateway sends all of them in one message per minute, that is 40 × 1,440 = 57,600 messages a day; if it reports Modbus devices as child devices, count one message per child per reading.
  • Contacts and counters: allow about 200 change and heartbeat messages per station per day, another 8,000 messages a day.
  • LoRaWAN reservoirs: one uplink every 15 minutes is 10 × 96 = 960 messages a day.
  • Total: roughly 67,000 messages a day, or about 2 million a month. Only telemetry and attribute messages count toward the monthly allowance; commands, alarms and connection events do not.
  • Values: about 1.1 million a day, around 400 million a year.

Storage per value depends on the deployment, so confirm the estimate with us. The retention class of your plan decides how long raw rows are kept; long-range charts read the minute, hour and day aggregates, which are much smaller. Raw readings are kept for at most 90 days (7 to 90 depending on the class); hourly and daily aggregates, kept for the full class, carry multi-year energy and run-hour trends. The default per-device rate limits (10 messages a second, 300 a minute) leave ample headroom for this design. For larger fleets, see how the platform is load-tested.

Rollout plan

PhaseWeeksWorkExit criteria
0. Survey1-2Collect PLC register maps, panel drawings and existing signals per station; choose the station types; agree measures and alarm limits.Signed point list per station type.
1. Pilot3-6Two to four stations and one LoRaWAN reservoir. Profiles, alarm rules, Water site board, one drawing.Two weeks of data without gaps; every alarm tested end to end; operators confirm values against the local panel.
2. Zone7-10All stations of one pressure zone. Baselines for gateway settings; first firmware wave.Station availability and energy figures accepted by operations; alarm noise under an agreed level (for example under 5 nuisance alarms a station a week).
3. Network11-20Remaining zones, one per week or two. Webhooks to the CMMS; display links in the control room.All stations online; on-duty list and escalation tested on a weekend.
4. Supervisory controlAfter 3Command catalog and fallback rules, if the team wants them.Commands tested on each station type with the PLC in a safe state.

Commissioning checklist

  1. Gateway claimed, on the right profile, placed on the right station asset, certificate active.
  2. Each analog value compared with the local panel at two points of its range (for example empty and half-full level); scaling and units correct.
  3. Each contact toggled on site and seen in Hermetry with the right sense (running = true).
  4. Time stamps checked: a reading taken on site at a known time appears at that time in the chart, in the station's time zone.
  5. Every alarm forced once: overflow float lifted, pump fault simulated, door opened. The alarm opens, the right people are notified on the right channels, acknowledgement and clearing work.
  6. Offline test: uplink unplugged for 20 minutes. The offline alarm opens; after reconnection the buffered readings fill the gap.
  7. Command test (if used): each catalog command sent with the PLC in a safe state; result reported as successful.
  8. SCADA view bound with no unbound symbols in the Problems tab.
  9. Runbook texts filled in on the alarm rules.

Pitfalls

  • Different key names per station. level here, res_lvl there, and no rule fits both. Fix the key list per station type before the first gateway is configured.
  • Alarming on the level transmitter only. A frozen transmitter hides an overflow. Wire the independent overflow float and alarm on it separately.
  • Everything Critical. Reserve Critical for loss of supply, overflow and mains failure, or people stop answering at night.
  • No heartbeat on contact-only devices. A station that only reports on change looks healthy while it is dead. Send a heartbeat and use the Recent message online rule with an inactivity alarm.
  • Unsynchronised clocks. Records more than ten minutes in the future are dropped.
  • Commands before trust. Start read-only until operators trust the values.

What Hermetry does not replace

Hermetry is a monitoring and supervision platform. Pump control, dry-run protection, overload trips and any safety interlocks stay in the station PLC, motor protection and hard-wired circuits, and must keep working when the link or the platform is unavailable. Supervisory commands from Hermetry are requests that the PLC may accept or refuse. Water quality compliance records, billing and the asset register stay in the systems that hold them.

See your field data live this week

Start a trial in your region with your first devices, or book a demo and bring your own use case.