Topology
Device topologies
OpenGate platform supports different device connection strategies. The following sections explain these connection strategies.
Direct connection strategy
Direct connection strategy is the most common connection scenario. Gateways and devices use it.
flowchart BT
GA["GatewayA"]
GB["GatewayB"]
NET(["Internet"])
OG["OpenGate Platform"]
GA -.-> NET
GB -.-> NET
NET -.-> OG
classDef platform fill:#fde8c8,stroke:#c98f2b,color:#000
classDef node fill:#e2e4e8,stroke:#8a8f98,color:#000
class OG platform
class GA,GB node
Each device reaches the platform on its own, with no intermediate node to traverse: deviceId alone
identifies the destination, and path is empty.
Indirect connection strategy
Devices behind gateways and complex connection scenarios like non-transparent mesh networks use an indirect connection strategy.
OpenGate supports these scenarios using a path. The path is an array of nodes (devices) to be traversed to reach the destination:
flowchart BT
D11["Device_1_1"]
D12["Device_1_2"]
MESH2(["mesh network"])
D1["Device_1"]
MESH1(["mesh network"])
GA["GatewayA"]
GB["GatewayB"]
NET(["Internet"])
OG["OpenGate Platform"]
D11 -.-> MESH2
D12 -.-> MESH2
MESH2 -.-> D1
D1 -.-> MESH1
MESH1 -.-> GA
GA -.-> NET
GB -.-> NET
NET -.-> OG
classDef platform fill:#fde8c8,stroke:#c98f2b,color:#000
classDef node fill:#e2e4e8,stroke:#8a8f98,color:#000
class OG platform
class D11,D12,D1,GA,GB node
- The endpoint device, in case of operations, diagnostics sent by the platform.
- The platform, in case of events, responses, etc., sent by the on-field device.
Indirect connection scenarios
Taking an indirect connection scenario, we have:
- A gateway device with the id:
GatewayA - An intermediate device connected to the gateway with the id:
Device_1 - Two endpoint devices connected to the intermediate device with the ids:
Device_1_1andDevice_1_2respectively.
From a platform point of view, the path and deviceId parameter values are:
- To reach the Gateway:
"deviceId": "GatewayA""path": []
- To reach the intermediate device:
"deviceId": "Device_1""path": ["GatewayA"]
- To reach an endpoint device:
"deviceId": "Device_1_1""path": ["GatewayA", "Device_1"]