Connecting Data
Goal: Get your industrial data flowing into the Control Plane.
What is a Data Connection?
A data connection is where telemetry enters the Control Plane:
| Aspect | Description |
|---|---|
| Entry point | Where data arrives from devices, systems, APIs |
| Backed by | Azure IoT Hub (for device data) or direct integrations |
| Protocols | MQTT, AMQP, HTTPS, REST |
| Result | Data available for surfaces and warm queries |
Think of a data connection as the "main water line" to your workspace. Surfaces are where you use that water for specific purposes.
Connection Types
| Type | Best For | Status |
|---|---|---|
| IoT Hub (Managed) | Production devices, sensors | Available |
| CosmosDB | A database your workspace provisions and owns | Available |
| Database (other) | Historical data from databases you already run | Custom Code |
| External API | Third-party systems, weather, etc. | Custom Code |
OpenIndustrial provides a managed IoT Hub - you don't need to set up Azure infrastructure. Create a connection, get device credentials, start sending data.
For testing without real devices, use a Simulator node (separate from Connection) to generate test data.
Quick Start: Simulator
For testing and learning, use the built-in simulator:
Option A: Drag and Drop
- Open your workspace canvas
- Find Connection in the Node Bank (left edge, chain link icon)
- Drag Connection onto canvas
- Name it (e.g., "test-sensors")
- Find Simulator in the Node Bank (flask icon)
- Drag Simulator onto canvas
- Draw a line from Simulator output to Connection input
- The edge will show "simulates" label
Option B: Ask Azi
I'll propose the connection and simulator configuration. Review and approve.
Verifying Data Flow
After connecting:
- Click the connection node
- Open the Inspector panel
- See impulses arriving with:
- Timestamp
- Device ID
- Payload data
No data after 30 seconds? Check that your simulator or device is properly attached to the connection.
What is an Impulse?
An impulse is a single telemetry event:
{
"timestamp": "2026-01-18T10:30:00Z",
"deviceId": "temp-sensor-01",
"temperature": 72.5,
"humidity": 45.2
}
Every impulse is:
- Immediately queryable via warm queries
- Governed - all access logged
- Retained based on your workspace settings
Device Credentials
For production connections, you'll access device credentials from the Inspector:
- Connection strings for SDK-based connections
- SAS tokens for direct authentication
- MQTT details for protocol-level connections
See Device Credentials Guide →
Next Steps
| If you want to... | Go to... |
|---|---|
| Test with simulated data | Simulator Guide → |
| Connect production IoT devices | IoT Hub Guide → |
| Access device credentials | Device Credentials → |
| Provision a CosmosDB account | CosmosDB Setup → |
| Create containers and manage documents | Database Management → |
| Expose a container as a surface table | Database Tables → |
| Connect a database (custom code) | Database Guide → |
| Connect external APIs (custom code) | External API Guide → |
| Route data to queries | Surfaces Guide → |
Once data is flowing, connect it to a surface. That's where queries live.