At a glance
| Item | Typical answer |
|---|---|
| Problem | Remote equipment rooms lose mains, run on batteries and go dark before anyone knows; generators fail to start or run out of fuel. |
| What is connected | UPS, generator controller, transfer switch, fuel level, room temperature and humidity, cooling, door, smoke and water sensors, optionally a camera. |
| Who uses it | Network or facilities operations centre, field technicians, the fuel and maintenance contractors, the energy manager. |
| Typical first scope | Ten to twenty sites of two or three standard layouts. |
| Time to first screen | Typically the same day a gateway is claimed, starting from the Remote sites ready solution; a pilot that includes a real mains failure test usually takes three to five weeks. |
The situation
Telecom shelters, radio sites, branch equipment rooms, pumping and treatment outstations, and edge data rooms share the same power chain: utility supply, an automatic transfer switch, a standby generator with its own fuel tank, a UPS or DC plant with batteries, and cooling. Most of these rooms are visited a few times a year.
When the chain fails, it fails in sequence. Mains drops, the generator does not start because its starter battery is flat, the UPS carries the load for its rated autonomy, and the site goes dark an hour later. Or the generator starts and runs until the tank is empty because nobody saw the fuel level. Or the cooling unit trips in summer, the room reaches 45 °C and the batteries age years in a few weeks. Each of these was visible early, on a local panel nobody was looking at.
Many operators already receive some alarms through dry contacts and autodiallers, or through vendor tools for one brand of UPS. This blueprint puts the whole power chain and the room climate of every site on Hermetry, so the operations centre sees the sequence while it is still recoverable.
Goals and measures
- Mains availability = time with utility supply present ÷ total time, per site and month.
- Site availability = time the protected load was supplied ÷ total time; the figure customers and contracts care about.
- Generator start success = mains failures where the generator was running within an agreed time (for example 60 seconds) ÷ all mains failures longer than that time.
- Battery autonomy margin = runtime remaining reported by the UPS at full charge ÷ required autonomy for the site (an asset attribute). Below 1 means the batteries no longer cover the design case.
- Fuel autonomy = usable fuel in litres ÷ consumption at the current load (litres per hour, from the generator data sheet or measured). Shown in hours; compare with the time a refuelling truck needs to reach the site.
- Battery temperature exposure = hours per month above 25 °C. A common rule of thumb for lead-acid batteries is that life roughly halves for every 10 °C above 25 °C; agree the exact curve with the battery supplier.
- Generator exercise = run hours added per week; zero for two weeks in a row means the scheduled test did not happen.
Architecture
Each site gets one licensed gateway or industrial router running Hermetry Edge. It reads the generator controller and transfer switch over Modbus RTU (RS485), the UPS over Modbus TCP or RS485 where its card offers Modbus, and environmental sensors and dry contacts on its inputs. Everything travels to Hermetry over MQTT with TLS on one outbound connection, using your own SIM and operator. eSIM profile management on licensed routers, part of Hermetry Connect, is in development.
UPS network cards that speak SNMP can also be polled by Hermetry directly from the cloud, with a ready template for the standard UPS-MIB (RFC 1628) that maps battery status, charge, runtime remaining, output source, load, input, output and bypass lines, alarms present and the last self-test to telemetry keys. Cloud polling needs the card to be reachable on a public address and through your firewall from Hermetry's fixed poller addresses; prefer SNMPv3, because SNMPv2c is off by default and sends its community in clear. SNMP polling done on site by the gateway itself is planned, not available today, so for most sites behind NAT the gateway path is the practical one.
| Component | Role | Notes |
|---|---|---|
| Licensed gateway or router with Edge | Reads Modbus and contacts, publishes telemetry, carries the uplink | Factory identity, one-step claim, remote web panel, signed firmware. |
| Generator controller | Engine state, mains and generator measurements, alarms | Modbus RTU; register maps differ by controller make, map each once per profile. |
| Automatic transfer switch | Which source feeds the load | Position contacts or Modbus. |
| UPS | Battery, load, autonomy, source | Modbus card through the gateway, or SNMP card polled from the cloud. |
| Fuel level transmitter | Tank contents | 4-20 mA on a gateway analog input; tank geometry as an attribute. |
| Room sensors | Temperature, humidity, smoke, water on the floor, door | Wired to the gateway, or LoRaWAN sensors through a LoRaWAN gateway. |
| Cooling unit | Run and fault state | Dry contacts or Modbus. |
| RTSP camera | Live view of the room or the gate | Optional; live H.264 view in Hermetry. |
Point list
A site with a three-phase generator, a transfer switch and one UPS. Keys for the UPS follow the platform's UPS-MIB template so that SNMP and Modbus sites share names; tables in that template add the line number to the key, for example output.load.1.
| Point | Telemetry key | Unit | Source | Interval | Notes |
|---|---|---|---|---|---|
| Mains present | mains_ok | bool | Generator controller or phase relay | on change | |
| Mains voltage L1-L3 | mains_l1_v, mains_l2_v, mains_l3_v | V | Generator controller, Modbus | 60 s | |
| Transfer switch on generator | ats_on_gen | bool | ATS position contact | on change | |
| Generator running | gen_running | bool | Controller status | on change | Heartbeat every 15 min. |
| Generator common alarm | gen_alarm | bool | Controller status | on change | |
| Generator in auto | gen_auto | bool | Controller mode | on change | A set left in manual will not start on mains failure. |
| Generator output power | gen_kw | kW | Controller, Modbus | 60 s | |
| Generator run hours | gen_hours | h | Controller counter | 15 min | |
| Starter battery voltage | gen_batt_v | V | Controller, Modbus | 5 min | The usual reason a set fails to start. |
| Coolant temperature | gen_coolant_c | °C | Controller | 60 s while running | |
| Fuel level | fuel_pct | % | Tank transmitter, analog input | 5 min | Convert to litres with the tank attribute. |
| UPS output source | output.source | enum | UPS-MIB upsOutputSource or Modbus | 60 s | normal, bypass, battery and others. |
| UPS battery status | battery.status | enum | UPS-MIB upsBatteryStatus | 60 s | normal, low, depleted, unknown. |
| UPS battery charge | battery.charge | % | UPS-MIB | 60 s | |
| UPS runtime remaining | battery.minutes_remaining | min | UPS-MIB | 60 s | Some cards report 0; check during commissioning. |
| UPS battery temperature | battery.temperature | °C | UPS-MIB | 60 s | |
| UPS output load | output.load.1 | % | UPS-MIB output table | 60 s | One key per output line. |
| UPS input voltage | input.voltage.1 | V | UPS-MIB input table | 60 s | |
| UPS alarms present | alarms.present | count | UPS-MIB | 60 s | |
| UPS last self-test | test.result | enum | UPS-MIB | 60 s | donePass, doneWarning, doneError and others. |
| Room temperature | room_temp_c | °C | Sensor | 5 min | |
| Room humidity | room_rh_pct | % | Sensor | 5 min | |
| Cooling unit fault | cooling_fault | bool | Dry contact | on change | |
| Smoke detected | smoke | bool | Detector relay | on change | |
| Water on floor | water_leak | bool | Leak sensor | on change | |
| Door open | door_open | bool | Reed contact | on change |
Asset model
In Sites & Assets, model the estate the way operations dispatch work:
- Region (free kind) with the field team and the fuel contractor as attributes.
- Site with location, time zone,
site_class(for example core, aggregation, edge),required_autonomy_min,tank_capacity_l,gen_consumption_lphandtravel_time_h. - Equipment room (Room) holding the gateway and room sensors.
- Generator, UPS and Cooling unit (Machine) with make, model, rating and installation date as attributes.
Place the gateway on the room, and UPS devices polled by SNMP on the UPS asset. Add a Feeds relation from the generator and the UPS to the site, as the Remote sites solution does for its UPS units, so a site page can find the UPS feeding it. The Sites board then rolls up status per room, site and region: a site takes the worst status of the devices under it, and a region the worst of its sites.
Device setup
Start from the ready solution
The Remote sites ready solution installs profiles for a site controller and a UPS, board pages for sites, alarms, one site, history, UPS units and cameras, and a UPS root flow with a watchdog per UPS unit that raises a warning when a unit stops reporting. Install it, then adapt the keys and alarm limits to your equipment rather than starting from an empty organisation.
Profiles
Keep one profile per site layout for the gateway, for example Site, generator and UPS and Site, UPS only, and one SNMP profile per UPS card family when you poll from the cloud. Use the Recent message online rule for gateways; SNMP devices use Last seen only, and a device is shown offline after several failed polls in a row. Declare the UPS and generator keys with units and ranges so gauges scale correctly.
SNMP UPS devices
For cloud polling, copy the UPS-MIB template into a profile, add an endpoint per UPS card with its host and SNMPv3 credentials (secrets are write-only and stored encrypted), test the endpoint, and register the UPS as a device on it. Polls are made one at a time per endpoint, back off when they fail, and each poll result counts as one message of your monthly allowance. SNMP traps are not received in the cloud.
Gateways, settings and firmware
Claim licensed gateways by scanning their code. Generator and UPS register maps, serial settings and reading intervals are managed with remote device settings; apply one baseline per site layout with a bulk job that runs in waves and pauses itself if devices do not apply it. Firmware is signed, assigned to the gateway profile and rolled out in waves; gateways on mobile data wait for a download until metered downloads are allowed. Readings are buffered on licensed gateways while the uplink is down, with capacity depending on the model, and arrive later with their original time stamps.
Intervals
Sixty seconds is enough for power values; contacts report on change with a heartbeat. During a mains failure the interesting values change quickly, so a gateway that supports it can report the generator and UPS more often while mains_ok is false. If not, sixty seconds still shows the sequence clearly.
Dashboards
| Board | Audience | Widgets |
|---|---|---|
| Estate overview | Operations centre | Map of sites coloured by status; site table with mains, source, UPS runtime, fuel and open alarms; stat cards for sites on battery and sites on generator now; alarm table filtered to Critical and Major. |
| Site page | Operations, field technicians | State cards for mains, transfer switch, generator and UPS source; gauges for fuel, UPS load and room temperature; line chart of mains voltage, generator power and UPS charge over 48 hours; the site drawing; live camera card where fitted. |
| Power events | Operations manager | Table of mains failure alarms with start, end and duration; bar chart of mains failures per region and month; stat with trend for generator start success. |
| Fuel | Fuel contractor | Table of sites sorted by fuel autonomy in hours; bar chart of fuel level per site; key filter for sites below a level the viewer can change. |
| Batteries and climate | Maintenance | Heatmap of room temperature by site and hour; table of UPS self-test results and battery temperature; line chart of runtime remaining at full charge over 12 months. |
A shared board always acts on each viewer's own permissions, so a contractor whose access is limited by policy to their own sites sees only those sites on the Fuel board.
SCADA screens
A single-line style drawing per site layout makes the power chain readable at a glance: utility source, transfer switch, generator, UPS with its battery, the protected load, and the cooling unit. Breakers, busbars and the utility source come from the power pack's single-line symbols; UPS, equipment rack and precision cooling symbols from the Telecom pack; the standby generator from the Building pack. See the SCADA library.
- States: connections are coloured by which source is live; the generator symbol shows running, stopped and alarm; the UPS shows normal, on battery and bypass from
output.source; the battery prints charge and runtime remaining as a second reading. - Rules: the fuel tank blinks below 25 %; the room symbol turns red above 35 °C; the generator greys out when
gen_autois false. - Reuse: attach the drawing to the site profile through its Views button so every site gets its own view; connect each symbol to the gateway's keys or to the SNMP UPS device.
- 3D: for larger rooms, make a 3D view from the drawing; status colours mark the room by the worst status of its devices.
Rules and alarms
| Alarm | Condition | Delay and hysteresis | Severity | Notified | Escalation |
|---|---|---|---|---|---|
| Mains failure | mains_ok == false | Debounce 30 s raise, 120 s clear | Warning | Operations centre, in-app | Covered by the alarms below |
| Site on battery | output.source == battery | Debounce 60 s | Major | Operations centre, push | Reminder every 15 min |
| Generator failed to start | Rule: when mains_ok becomes false and stays so for 2 min, only if gen_running is false, then raise alarm | Held by the rule's 2 min | Critical | Field technician on duty and supervisor, SMS | Reminder every 10 min |
| Battery runtime low | battery.minutes_remaining < 20 (Major), < 10 (Critical) | Debounce 2 samples | Major / Critical | Operations centre; Critical also SMS to duty technician | Severity rise notifies again |
| Fuel low | fuel_pct < 30 (Minor), < 15 (Major) | Debounce 600 s; hysteresis 3 % | Minor / Major | Fuel contractor e-mail; operations push at Major | Reminder every 4 h |
| Generator not in auto | gen_auto == false | Debounce 30 min | Major | Field team lead, e-mail | Reminder daily |
| Starter battery low | gen_batt_v < 24.0 (24 V system) | Debounce 15 min | Minor | Maintenance, in-app | |
| Room overheating | room_temp_c > 30 (Warning), > 35 (Major), > 40 (Critical) | Debounce 300 s; hysteresis 2 °C | Warning to Critical | Operations centre; Critical SMS | Severity rise notifies again |
| Smoke or water | smoke == true; water_leak == true (two rules) | Debounce 10 s | Critical | Operations centre and duty technician, SMS | Reminder every 10 min |
| UPS self-test failed | test.result == doneError | Minor | Maintenance, e-mail | ||
| Gateway offline | Inactivity rule, 10 min | Major | Operations centre, push | Reminder every 30 min |
Sequence, not noise. A mains failure produces a chain of conditions. Make mains failure itself a Warning, and page people for what threatens the load: a generator that did not start, a battery about to run out, a room overheating. One notification per real problem keeps people answering at night.
Per-site limits. Sites differ in battery size and fuel tank. Put limits that differ, such as the runtime threshold, in device attributes and let one rule read them; a per-device threshold is an attribute edit, not a rule edit.
Acknowledge, resolve, mute. Alarms resolve by themselves when their condition clears. The alarm page shows the runbook, for example how to start the set locally and what to check first. Mute a site during generator maintenance or battery replacement; its alarms are recorded but nobody is paged, and the mute ends by itself.
Regional outages. A storm can take mains from a hundred sites at once. Alarm notifications above the storm threshold (20 a minute by default) are collected into a digest every five minutes; Critical alarms are still delivered even when recipients turned that kind of notification off, unless an administrator switches that off.
Automation and integrations
- Commands: keep generator starts and transfers in the controller and the transfer switch. Useful remote commands are smaller: rebooting a hung router (
sys.reboot, a high-impact command with a typed confirmation), or switching a gateway relay output that resets a cooling unit, where the gateway model offers it. Each command is tracked to its result and high-impact commands are audited. - Fuel orders: a webhook on
alarm.createdfor the fuel alarm sends the site, level and tank size to the fuel contractor's system;alarm.clearedafter refuelling confirms the delivery. - Service tickets: generator and UPS alarms raise tickets in the service desk or CMMS over a signed webhook, or through a flow that calls the ticket system's HTTP API.
- Customer notices: for sites that serve customers under an availability contract, a flow can e-mail a notice when a site goes on battery for more than an agreed time.
- Remote panel: an engineer opens a licensed router's web panel from the device page through router remote access, without a fixed IP or VPN; sessions are limited in time, capped on metered links and audited.
Asset registers, maintenance contracts and fuel invoices stay in their own systems. Hermetry supplies the live state and the events.
Roles and access
| Who | Access | Can |
|---|---|---|
| Operations centre | User with the IoT operator group | See every site, acknowledge alarms, send basic commands. |
| Field technician | User, scoped to a region by policy | See their sites and cameras, acknowledge alarms. |
| Fuel contractor | User, scoped to their sites by policy | See the Fuel board, acknowledge fuel alarms. |
| Maintenance engineer | Admin | Profiles, alarm rules, settings jobs, firmware waves, mutes, drawings. |
| Head of operations | Owner | Members, sign-in policy, raw commands, signing keys. |
Contractors sign in with their own accounts, with two-factor authentication or single sign-on as your policy requires, never with shared logins. The audit log records acknowledgements, mutes, commands, remote panel sessions and setting changes, and can be exported for contract reviews.
Sizing and data
As an order of magnitude for 300 sites:
- Gateway: one combined message a minute, 300 × 1,440 = 432,000 messages a day.
- Contacts and heartbeats: about 150 a site a day, 45,000 a day.
- If 100 UPS units are polled by SNMP every 60 s instead of through the gateway, add 100 × 1,440 = 144,000 messages a day; each poll result counts as one message.
- Total between roughly 480,000 and 620,000 messages a day, or 15 to 19 million a month.
- Values: about 30 keys per site per minute ≈ 13 million a day for the estate.
Most of these values are flat most of the time. Report-by-exception with a heartbeat, or a two- to five-minute interval for room climate and fuel, cuts the volume by more than half without losing the events that matter. Raw readings are kept for at most 90 days, so export the raw data a contract review needs within that window, and use hourly and daily aggregates, kept for the full retention class, for multi-year trends of battery health. The default per-device limits (10 messages a second, 300 a minute) are far above this load. Treat all numbers as planning estimates; for large estates see the load tests.
Rollout plan
| Phase | Weeks | Work | Exit criteria |
|---|---|---|---|
| 0. Inventory | 1-2 | List site layouts, generator controller and UPS models, Modbus and SNMP options, uplinks. | One register map per controller and UPS model; layouts agreed. |
| 1. Pilot | 3-7 | Ten to twenty sites, Remote sites solution adapted, alarm rules, one drawing per layout. | A planned mains failure test at two sites shows the full sequence and the right alarms. |
| 2. Tuning | 8-9 | Adjust limits from real data; agree routing with operations, field teams and the fuel contractor. | Notifications per real incident close to one. |
| 3. Rollout | 10-30 | Regions in turn, 20 to 40 sites a week; settings baselines and firmware waves per layout. | Every site reporting; estate overview in daily use. |
| 4. Integrations | from 6 | Webhooks to fuel and ticket systems; contractor accounts. | Fuel orders and tickets created from alarms without manual steps. |
Commissioning checklist
- Gateway claimed, on the right layout profile, placed in the right room; uplink signal recorded.
- Generator controller values compared with its own display: mains voltage, run hours, starter battery.
- UPS values compared with its front panel; runtime remaining and rated values checked for zeros.
- Fuel level checked against a dip; tank capacity attribute set.
- Room sensors compared with a reference thermometer; smoke and water sensors tested with their test function.
- Planned mains failure: mains alarm, transfer, generator running, UPS source and the return to mains all seen with correct times.
- Generator start failure simulated (set in manual): the failed-to-start rule raises its alarm after 2 minutes.
- Uplink cut for 15 minutes: offline alarm opens, buffered readings arrive afterwards.
- Every notification route tested: SMS, push, e-mail and in-app reach the right people.
- Drawing bound with no unbound symbols; camera live view opens.
Pitfalls
- Trusting runtime remaining blindly. Some UPS cards report 0 or a fixed value; verify during commissioning and fall back on charge and load.
- Polling SNMP cards over the internet with v2c. Use SNMPv3 or read the UPS through the gateway.
- Paging on mains failure alone. Short dips happen daily in some regions; page on consequences.
- Fuel in percent only. Two sites at 30 % can have very different hours left; compute autonomy in hours with tank and consumption attributes.
- Generator left in manual after service. Alarm on
gen_auto; it is the most common cause of a failed start. - Different key names per controller make. Normalise keys per profile so one board and one rule set fit all sites.
- Forgetting the cooling. Battery life is lost to heat long before any outage.
What Hermetry does not replace
Automatic transfer, generator start and stop, load shedding and fire suppression stay in the transfer switch, the generator controller, the UPS and the fire system, and must work without the link. Hermetry does not start or stop generators in this design. Battery and generator maintenance remain contracted work; Hermetry shows when it is due and whether it happened.

