Uplink
Node-RED edge data gateway with offline buffering and dynamic signal fetching.
→ 90–95% bandwidth reduction on a constrained uplink.
The on-site half of the Industrial Monitor stack. A small Node-RED runtime at each site or asset, packaged to run unattended on cheap industrial hardware, that does three jobs:
- Speaks the local protocols natively — Modbus TCP/RTU, OPC UA, MQTT, S7, BACnet, plain HTTP REST, plus a handful of less-common buses where the off-the-shelf nodes were too lossy or too chatty. Custom nodes filled those gaps.
- Filters what crosses the link. A signal-catalogue config drives what gets forwarded and when: change-detection thresholds, per-signal sample rate, hysteresis, dead-bands. Most of the bandwidth saving is here. The platform never sees redundant samples for signals that haven’t moved.
- Buffers across outages. SQLite ring buffer on disk, with store-and-forward over MQTT once the link comes back. A site can lose connectivity for hours and the time-series store behind it gets a clean catch-up rather than a gap.
┌─[ 00 SIGNALS ]───────────────────────────────────────┐ │ > 600+ tags from PLC, OPC UA, Modbus, MQTT │ └─────────────────────────┬────────────────────────────┘ ▼ ┌─[ 01 LOCAL ]─────────────────────────────────────────┐ │ │ │ read ──> dedupe ──> dynamic-rate buffer │ │ │ └─────────────────────────┬────────────────────────────┘ ▼ ┌─[ 02 SHIP ]──────────────────────────────────────────┐ │ │ │ delta-only ──> compress ──> retry-safe TLS │ │ │ └─────────────────────────┬────────────────────────────┘ ▼ ┌─[ 03 BANDWIDTH ]─────────────────────────────────────┐ │ raw ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% │ │ shipped ▓▒░░░░░░░░░░░░░░░░░░ 7% │ │ 93% saved │ └──────────────────────────────────────────────────────┘
What it gives up by design
The gateway is not a place for business logic. It enforces local-side safety alarms and nothing else. The judgement call here was: every operator has a different idea of “anomaly”, and re-deploying logic to fifty rolling assets is a worse problem than centralising the analysis on the spine. The gateway stays small, dumb, and reliable. The cleverness lives in the Industrial Monitor backend.
The bandwidth number
The 90–95% reduction is measured against a naïve full-stream approach where every PLC scan is forwarded as it arrives. Real comparison baselines vary; the figure holds for deployments where a constrained uplink — narrow, expensive, or both — is the reason the gateway exists in the first place.
Stack
- Node-RED, with custom protocol nodes published to a private registry
- SQLite for the on-disk buffer, with a back-pressure policy that drops derived data before raw samples
- MQTT (EMQX or HiveMQ on the spine, Mosquitto on the edge)
- Systemd-managed service with watchdog and signed update path
Status: production. Specifics under NDA — see the Industrial Monitor case study for the broader engagement context.