| Field | Value |
|---|---|
| Product | Robustel E2C Trinity (E2C Factory / E2C Field) |
| Document Type | Knowledge Base Article — How-to Guide |
| Intended Audience | Users who have already configured data collection in E2C Trinity and need to forward tag data to a cloud platform or web server via HTTP |
| Prerequisites | This guide does not cover how to set up an HTTP server. Before starting, obtain the server URL, authentication details, and any required headers (e.g., API keys) from your cloud administrator or platform documentation. |
| Tested Software | E2C Factory V2.1.4.1 |
| Tested Gateway OS | RobustOS Pro V2.4.2 |
| Tested Model | EG3120 |
| Last Verified | 2026-07-23 |
| Estimated Time | 15-25 minutes |
This article shows you how to forward tag data collected by E2C Trinity to a cloud platform or web server using HTTP (Hypertext Transfer Protocol, the foundation of data communication on the web). You will create a Tag Group, configure an HTTP Cloud Service, and verify the data is received by your server.
Unlike MQTT, which uses a publish-subscribe model with a central broker, HTTP sends data directly to your server in a simple request-response pattern. This makes HTTP ideal for environments where your cloud platform already provides a REST API (Representational State Transfer API, a standard way for web services to accept data) or webhook endpoint.
Stage 1 — Southbound Collection: E2C Trinity reads data from your industrial devices (PLC, sensor, meter, etc.) using protocols like Modbus TCP, OPC UA, or BACnet, and stores the values as internal "Tags."
Stage 2 — Northbound HTTP Forwarding (this guide): E2C Trinity sends the collected tag data as HTTP POST or PUT requests to your server's URL. Each request contains a JSON (JavaScript Object Notation, a lightweight data format) payload with the tag values.
Stage 3 — Cloud Consumption: Your cloud platform, web application, or data pipeline receives and processes the incoming HTTP requests.
Note: E2C Trinity also supports MQTT and Sparkplug B for cloud data forwarding. For MQTT, see How to Publish E2C Trinity Tag Data to an MQTT Broker.
If you are already familiar with HTTP and REST APIs, feel free to skip this section.
| Term | What It Means in Plain English |
|---|---|
| HTTP (Hypertext Transfer Protocol) | The foundation protocol of the web. When you visit a website, your browser uses HTTP to request pages. E2C Trinity uses HTTP to send tag data to your server — think of it as "filling out a web form and submitting it" automatically at regular intervals. |
| HTTPS (HTTP Secure) | The encrypted version of HTTP. Always use HTTPS when sending data over the public internet to prevent eavesdropping and tampering. |
| REST API | An architectural style for designing web APIs. In this guide, the receiving endpoint is referred to as a REST API for simplicity — your cloud platform provides a URL endpoint, and E2C Trinity sends data to it via HTTP. Most cloud platforms (AWS, Azure, Alibaba Cloud) provide HTTP API endpoints for ingesting IoT data. |
| POST / PUT | HTTP methods (verbs) that tell the server what kind of action you want. POST asks the target endpoint to process the submitted data according to the API's contract. PUT creates or replaces the state of the resource identified by the target URL and is idempotent. E2C Trinity supports both. For most cloud data ingestion, POST is the standard choice. Follow your receiving API's documented method requirements. |
| JSON (JavaScript Object Notation) | A lightweight, human-readable data format used by virtually all modern web APIs. E2C Trinity packages tag data into JSON before sending it. |
| URL (Uniform Resource Locator) | The web address of your server endpoint. For example, https://api.example.com/v1/data/ingest. |
| Request Header | Extra information sent alongside the HTTP request, such as authentication tokens (API keys) and the data format (Content-Type: application/json). |
| Request Timeout | The maximum time E2C Trinity waits for a response from your server. If the server does not respond within this time, the data upload is considered failed. |
| Tag Group | In E2C Trinity, a logical collection of data points (tags) that you organize together. Each HTTP Cloud Service sends data from one Tag Group at a time. |
| API Key | A simple secret string used to identify the API client. Often used for usage tracking and rate limiting. Your cloud platform provides this when you create an API endpoint. |
| Bearer Token | A credential used in the Authorization: Bearer ... header. Unlike an API Key, a Bearer Token typically has a defined scope, audience, and expiration time. It must be refreshed periodically when it expires. |
To make it easier to follow, all steps in this guide use the same example values:
| Item | Example |
|---|---|
| HTTP Server URL | https://webhook.site/9f216ad3-f294-4890-a68c-44237948061c |
| HTTP Method | POST |
| Cloud Service Name | MES_HTTP |
| Tag Group | Machine_Data |
| Report Interval | 10 seconds |
| Data Source Type | Tag Data |
| Request Timeout | 3 seconds |
| Header | Content-Type: application/json |
Before beginning the configuration, make sure you have:
Security Notice: Always use HTTPS when sending production data over the public internet. The example in this guide uses a public webhook testing service (webhook.site) for demonstration purposes only. Public webhook services should only be used for testing with non-sensitive data. Do not publish production, customer, credential, or personally identifiable data to a public webhook URL.
Important: The screenshots use E2C Factory as an example. The workflow is also applicable to E2C Field, although some menu names or interface details may differ depending on the software version.
| Step | What You Will Do | Estimated Time |
|---|---|---|
| Step 1 | Verify that E2C Trinity is already collecting live tag data | 2 minutes |
| Step 2 | Create a Tag Group to organize the data points you want to forward | 5 minutes |
| Step 3 | Create an HTTP Cloud Service and configure the server connection | 5 minutes |
| Step 4 | Test the connection and verify data is received by your server | 3 minutes |
Skip ahead: If you already have a Tag Group with live tags, jump to Step 3.
Purpose: HTTP forwarding only sends data that already exists as live tags. Before configuring anything, confirm that your data collection is working.
If you do not see live data, complete the device and tag configuration first. Refer to the relevant protocol guide (e.g., "How to Configure Modbus TCP Data Collection in E2C Factory") on the Robustel Support Center.
Purpose: E2C Trinity forwards data to HTTP by Tag Group — not by individual tags. You must create at least one Tag Group before configuring the HTTP Cloud Service. Think of a Tag Group as a "folder" that bundles related tags for batch transmission.
| Parameter | Description | Example |
|---|---|---|
| Name | A recognizable name for this group of tags. | Machine_Data |
| Report Type | Period (fixed intervals), Change (only when a value changes), or Change & Period (both). | Period |
| Cycle Unit | Subsecond-level or Millisecond-level. | Subsecond-level (default) |
| Report Interval | The reporting interval. The unit depends on the Cycle Unit setting: when set to Subsecond-level, the value is in seconds; when set to Millisecond-level, the value is in milliseconds. Range: 1–999999. | 10 |
| Description | Optional notes about this group's purpose. | Packaging machine production data |
Note: You can always add or remove tags later by selecting the group and using the Add and Batch Delete buttons.
Purpose: Create a connection in E2C Trinity that defines the target HTTP server and how to send data to it.
| Parameter | Description | Example |
|---|---|---|
| Cloud Service Name | A recognizable name for this cloud service connection. | MES_HTTP |
| Cloud Service Type | Select HTTP Server from the dropdown. Note: "HTTP Server" is the E2C UI label for this service type. From a network perspective, the gateway acts as an HTTP client sending requests to your server. | HTTP Server |
| Description | Optional notes about this service's purpose. | (leave blank) |
Fill in the following parameters on the configuration page:
| Parameter | Description | Example |
|---|---|---|
| Server Address | A combined field: select the HTTP method (POST or PUT) from the dropdown, then enter the full URL of your server endpoint. You can use {tag name} as a placeholder in the URL for dynamic routing. Currently supports POST and PUT. | Method: POST, URL: https://webhook.site/9f216ad3-f294-4890-a68c-44237948061c |
| Header Configuration | A table of HTTP headers sent with each request. By default, content-type: application/json is pre-configured. Click Add Header to add authentication headers (e.g., API keys or bearer tokens) as required by your server. | content-type = application/json |
| Data Source Type | Select Tag Data to forward real-time tag values, or Data Management Data to forward data from a custom data table. | Tag Data |
| Group | Select the Tag Group you created in Step 2. Each HTTP Cloud Service can only bind to one Tag Group at a time. | Machine_Data |
| Packet Reassembly (E2C UI term) | A toggle switch for application-level payload transformation. When enabled, a Function Code editor appears on the left and a data format preview panel appears on the right, allowing you to write custom JavaScript to transform the JSON payload before sending. Leave disabled to use the default JSON format. | Disabled (default) |
| Request Timeout | The maximum time (in seconds) E2C Trinity waits for a response from the server. If the server does not respond within this time, the upload is considered failed. Maximum: 300 seconds. | 3 |
About the Right Panel:
The right side of the configuration page provides a Tag Data Format preview tab that shows the JSON structure of your data. You can also use the View Tags, View Parameters, and View Help tabs to browse available tags, check parameter details, and access the API reference. This is especially useful when you enable Packet Reassembly and need to write custom JavaScript — the preview panel shows exactly what your
msgobject looks like.Important — HTTP vs. MQTT:
Unlike MQTT, which has a separate publish message list, the HTTP Cloud Service binds directly to one Tag Group. You do not need to add a separate publish rule. As soon as the connection is saved, E2C Trinity begins sending data according to the Tag Group's reporting interval.
Also note that HTTP data upload is synchronous — the gateway waits for the server's response before sending the next batch. The UI displays a warning: "HTTP data upload is a synchronous operation. It may affect device performance due to communication or server processing efficiency. Adjust this module based on actual conditions." If your server is slow to respond, increase the Request Timeout value.
Critical Step: After completing the configuration, you must save and verify the connection.
Purpose: Confirm that your server is receiving data from E2C Trinity.
Using webhook.site (recommended for initial testing):
If you want to quickly verify the data format without setting up a real server, you can use a free HTTP request inspector like webhook.site. It provides a temporary URL that displays all incoming HTTP requests in real time.
https://webhook.site/9f216ad3-f294-4890-a68c-44237948061c).Using your own server:
If you have your own HTTP server, you can verify it receives data by checking the server logs or using a monitoring tool.
Each HTTP request from E2C Trinity follows this structure:
{
"messageId": "01f19167-4082-4c84-b1de-ad5927b39138",
"messageType": "normal",
"groupName": "Machine_Data",
"groupTime": 1785206897447,
"payload": {
"defect_count": {
"tag": "defect_count",
"time": 1785206896000,
"value": "15",
"deviceName": "A_CNC_Machine"
},
"device_status": {
"deviceName": "A_CNC_Machine",
"tag": "device_status",
"time": 1785206896000,
"value": "1"
},
"cycle_count": {
"deviceName": "A_CNC_Machine",
"tag": "cycle_count",
"time": 1785206896000,
"value": "233"
}
}
}
| Field | Description |
|---|---|
messageId | Unique message identifier (UUID v4) |
messageType | Type of message — normal for standard data reports |
groupName | Name of the Tag Group that was forwarded |
groupTime | Unix timestamp (milliseconds) when the group was sent |
payload.{tag}.deviceName | Source device name |
payload.{tag}.tag | Tag name |
payload.{tag}.time | Unix timestamp (milliseconds) of the tag's last update |
payload.{tag}.value | Current tag value |
Note: The
valuefield is shown as a string in this example. Verify the output format for your tag data type and software version — the encoding may vary depending on the tag type.
If you see real-time data arriving at your server, your configuration is complete.
| Issue | Possible Cause | Solution |
|---|---|---|
| Test Connection shows an error | The server URL is incorrect or unreachable. | 1. Verify the Server Address: select the correct method (POST or PUT) and enter the full URL (e.g., https://webhook.site/...). 2. Use the Ping tool in the gateway's System menu to check network reachability of the server host. 3. Check if a firewall is blocking the port. |
| Test Connection succeeds but no data arrives | The Tag Group is empty or the reporting interval has not elapsed yet. | Verify that the Tag Group contains tags with live data (see Step 1 and Step 2). Wait for at least one reporting interval before checking the server. |
| Data is received but values are null | The underlying tags are in an error state. | Go back to Data Collection and check the device and tag status. If a tag shows a red icon or null value, troubleshoot the southbound connection first. |
| Server returns 401 Unauthorized | Authentication is required but no valid credentials are provided. | Add the required authentication header (e.g., Authorization: Bearer your-token or X-API-Key: your-key) in the Header Configuration section. Click Add Header to add new headers. Contact your cloud administrator for the correct credentials. |
| Server returns 415 Unsupported Media Type | The server does not accept the media type or content encoding of the request body. | Verify that the content-type header matches the format expected by the server (e.g., application/json). If the server expects a different format, enable Packet Reassembly and use a JavaScript function to reformat the payload. |
| HTTPS connection fails | The server's TLS certificate is invalid, not trusted, or the hostname does not match. | 1. Verify that the server's certificate is valid and trusted by the gateway. 2. Check that the URL hostname matches the certificate's Subject Alternative Name (SAN). 3. If using a self-signed certificate, ensure the CA certificate is imported and trusted by the gateway. |
By default, E2C Trinity sends tag data in its standard JSON format (see the example in Step 4). If your cloud platform expects a different JSON structure, you can enable Packet Reassembly in the HTTP Cloud Service settings and write a JavaScript function in the Function Code editor to transform the payload before sending.
The function receives a msg parameter containing the tag data. You can use Edge.ReadTags() to read additional tag values, perform calculations, filter data, or restructure the JSON output. The right-side Tag Data Format preview panel shows the current JSON structure in real time. Other APIs are available for advanced logic. Click View Help in the right-side panel for the full API reference.
Most cloud platforms require authentication for API requests. In the Header Configuration section, you can add custom headers to authenticate your requests. Common authentication patterns include:
| Authentication Type | Header Example | Used By |
|---|---|---|
| API Key | X-API-Key: abc123def456 | Custom web services, API management platforms |
| Bearer Token | Authorization: Bearer eyJhbGciOiJIUzI1NiIs... | OAuth 2.0 services, Azure API Management |
| Basic Auth | Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= | Simple web services, legacy systems |
Contact your cloud platform administrator for the specific header format and credentials required for your endpoint.
E2C Trinity supports both HTTP and MQTT for cloud data forwarding. Here is a quick comparison to help you decide which one to use:
| Aspect | HTTP | MQTT |
|---|---|---|
| Communication Model | Synchronous request-response | Asynchronous publish-subscribe |
| Best For | Simple data ingestion, REST APIs, webhooks, serverless platforms | High-frequency telemetry, real-time dashboards, bidirectional data |
| Data Flow | Gateway pushes data to one server URL | Gateway publishes to a broker; multiple subscribers can consume |
| Configuration | One Tag Group per Cloud Service, no publish rules needed | One Cloud Service can have multiple publish rules for different topics |
| Overhead | Higher per-message overhead (full HTTP headers) | Lower per-message overhead (compact binary protocol) |
For most industrial telemetry scenarios with frequent data updates, MQTT offers better efficiency and reliability. HTTP is a good choice when:
The HTTP Cloud Service described in this guide works with any HTTP/HTTPS endpoint that accepts POST or PUT requests with JSON payloads. This includes popular cloud platforms and integration tools. Guides for connecting E2C Trinity to specific cloud platforms — including AWS API Gateway, Azure API Management, and Alibaba Cloud API Gateway — are planned for future release. For more E2C Trinity articles, visit the Robustel Knowledge Base.