The SGS Device Portal delivers status, line current, and real-time fault data from field devices to your operational systems. This document describes the integration recipes available for connecting your SCADA, OMS, GIS, data platforms, and other systems to the portal.
It will help your technical and security teams understand the available options, what each recipe requires from your side, and how to choose the right approach for your environment.
| Recipe | Protocol | Connectivity | Typical Use Case |
|---|---|---|---|
| A - DNP3 over Public Endpoint | DNP3/TCP + mTLS | Internet | SCADA integration via public network |
| B - DNP3 over VPN | DNP3/TCP + mTLS | Site-to-site VPN | SCADA integration with no public exposure |
| C - MultiSpeak (Direct) | MultiSpeak SOAP/HTTPS | Internet | OMS notification via internet-facing endpoint |
| D - MultiSpeak via DMZ | MultiSpeak SOAP/HTTPS | Internet to DMZ | OMS notification with DMZ separation |
| E - REST API | REST/HTTPS/JSON | Internet | OMS, data lake, or custom system integration |
Each recipe is described in detail below, including architecture, data flow, what you need to provide, and key security considerations.
SGS Cloud
┌─────────────────────────────────────────────────────────────┐
│ │
│ Devices ──► SGS Device Portal ──► DNP3 Outstation │
│ │ │
│ Public NLB (TCP 20000) │
└─────────────────────────────────────────────────────────────┘
│
mTLS (Internet)
│
┌──────────────────────────────┐
│ Customer Network │
│ DNP3 Master (RTAC / RTU / │
│ Gateway) │
└──────────────────────────────┘
Customer Network
┌────────────────────────────────────┐
│ DNP3 Master (RTAC / RTU / │
│ Gateway) │
└──────────────────┬─────────────────┘
│ DNP3 (TCP 20000)
Site-to-Site VPN
│
▼
SGS Cloud (Private)
┌────────────────────────────────────┐
│ Internal NLB (TCP 20000) │
│ │ │
│ ▼ │
│ DNP3 Outstation │
│ │ │
│ ▼ │
│ SGS Device Portal │
└────────────────────────────────────┘
SGS Cloud Customer Network
┌──────────────────────┐ HTTPS/SOAP ┌──────────────────────────────────┐
│ SGS Device Portal │ ─────────────────►│ Customer OMS MultiSpeak Endpoint │
│ (MultiSpeak client) │ │ (Internet-facing, WAF/proxy) │
└──────────────────────┘ └──────────────────────────────────┘
MultiSpeakMsgHeader). SGS encrypts these at rest (AES encryption with keys managed in AWS Secrets Manager) and uses them exclusively for sending notifications to your endpoint.To help your OMS pre-map incoming notifications to the correct assets, SGS exposes a SOAP endpoint that returns all devices in your organization as SCADA points:
GET /soap/wsdlGetAllSCADAPointsMultiSpeakMsgHeader with your SGS Device Portal UserID and PwdEach entry in the response includes:
| Field | Description |
|---|---|
objectID |
Device identifier (IMEI number) used in all fault and check-in notifications |
objectName |
Human-readable device name |
description |
Device serial number, where available |
Use the objectID values to build your OMS point mapping before going live. All subsequent fault and check-in notifications will reference this same identifier.
SGS Cloud Customer DMZ Customer Internal
┌──────────────────┐ HTTPS/SOAP ┌──────────────────┐ HTTP(S) ┌────────────────┐
│ SGS Device Portal│ ────────────►│ Reverse Proxy │ ─────────►│ OMS / DMS │
│ (MultiSpeak │ │ / WAF │ │ (MultiSpeak │
│ client) │ │ (DMZ listener) │ │ server) │
└──────────────────┘ └──────────────────┘ └────────────────┘
The same GetAllSCADAPoints SOAP endpoint described in Recipe C is available for DMZ-based integrations. Use it to retrieve the objectID values for all devices in your organization before configuring your internal OMS point mapping. See the Device Point Mapping section under Recipe C for details.
Customer Network SGS Cloud
┌───────────────────────────┐ HTTPS/JSON ┌──────────────────────────┐
│ Customer System │◄──────────────►│ SGS Device Portal │
│ (OMS / Data Lake / Custom)│ REST API │ REST API │
└───────────────────────────┘ └──────────────────────────┘
To authenticate, send a POST request to the SGS API with your Device Portal organizational admin credentials:
POST https://api.portal-sgs.com/api/auth/login
Content-Type: application/json
{
"email": "<your_email>",
"password": "<your_password>"
}
The response includes an accessToken (Bearer token, valid for 24 hours). Include it in subsequent requests:
Authorization: Bearer <accessToken>
Query device data for your organization:
GET https://api.portal-sgs.com/api/dnp3/dnp3OrganizationDevices
Authorization: Bearer <accessToken>
The response is a JSON array of device objects, each containing:
SGS will provide organizational admin credentials once onboarding begins. Store these securely in your own secret management system.
For MultiSpeak integrations (Recipes C and D), the SGS platform currently supports the following SOAP operation names. You configure one method per integration:
Fault / status notifications:
SCADAStatusChangedNotificationByPointID (MultiSpeak 4.1)SCADAStatusChangedNotification (MultiSpeak 4.1)SCADAStatusChangedNotification (MultiSpeak 3.0)AssessmentLocationChangedNotification (MultiSpeak 4.1)ODEventNotification (MultiSpeak 4.1)SCADAAnalogChangedNotificationByPointID (MultiSpeak 4.1)Check-in / heartbeat notifications:
SCADAAnalogChangedNotificationByPointID (MultiSpeak 4.1)Note: SCADAStatusChangedNotification is available in both MultiSpeak 3.0 and 4.1 variants. When configuring your integration with SGS, specify which version your OMS expects so the correct namespace and SOAPAction are used.
If your OMS requires a method not listed here, please contact SGS to discuss feasibility. Additional methods can be implemented by extending the platform’s MultiSpeak adapter.
| Consideration | Recommendation |
|---|---|
| You have a SCADA system using DNP3 | Recipe A (public + mTLS) or Recipe B (VPN + mTLS) |
| You require no public internet exposure for SCADA | Recipe B (VPN) |
| Your OMS uses MultiSpeak and can accept internet traffic | Recipe C (direct) |
| Your security policy requires DMZ separation | Recipe D (DMZ/proxy) |
| You need flexible data access for OMS, analytics, or custom tools | Recipe E (REST API) |
| You need a combination of real-time SCADA + data access | Recipes A or B combined with Recipe E |
To get started, let your SGS account contact know:
Once you’ve identified which recipe fits your environment, contact your SGS sales rep to begin onboarding. We’ll work through the specific requirements for your chosen integration (certificates, endpoints, credentials, VPN details, etc.) together. For general questions: info@smartgridsolutions.com