APIs DMO API Work with satellite metrics
This tutorial will show you how to work with Satellite metrics using the DMO API. You’ll learn the basic CRUD (Create, Read, Update, Delete) operations and how to view your Satellite terminal and Satellite metrics.
Supported satellite metrics
The following metrics are supported for a specific terminal, given that the provider provides this data:
Resource Name (rn) | Metric Unit (metUt) | Metric Type | Description |
---|---|---|---|
Network_Status | Numeric | operationalState | The operational state of the connection: 0 – unknown 1 – online 2 – offline 3 – offline and upgrading 4 – offline failed 5 – offline reason unknown 6 – online degraded |
Throughput_Up | Bytes | usAllocatedBwBytes | Upstream bandwidth allocated, in bytes |
Throughput_Down | Bytes | dsAllocatedBwBytes | Downstream bandwidth allocated, in bytes |
Bandwidth_CIR_Uplink | Mbps | usCirCurrent | Upstream Committed Information Rate (CIR) currently in effect |
Bandwidth_CIR_Downlink | Mbps | dsCirCurrent | Downstream Committed Information Rate (CIR) currently in effect |
Bandwidth_MIR_Uplink | Kbps | usMirDemand | Upstream Maximum Information Rate (MIR) bandwidth requested by the subscriber, in Kbps |
Bandwidth_MIR_Downlink | Kbps | dsMirDemand | Downstream Maximum Information Rate (MIR) bandwidth requested by the subscriber, in Kbps |
Latency | Milliseconds | latency | Round-trip time between the NMS and a terminal |
Congestion_Upstream | Percentage | usCirFulfillment | Percentage of upstream frames in which the allocation met the Committed Information Rate (CIR) demand |
Congestion_Downstream | Percentage | dsCirFulfillment | Percentage of downstream allocation periods (10/second) in which the allocation met the CIR demand |
Jitter | Milliseconds | jitter | Amount of variation experienced in the latency measuremen |
Packet_Loss | Percentage | packetloss | Percent of echo requests sent to a terminal for which there was no response |
Signal_Strength | dB | currentSNR | Current signal-to-noise ratio (SNR) as reported by the remote |
Latitude | Decimal | latitude | Terminal latitude |
Longitude | Decimal | longitude | Terminal longitude |
Altitude | Meters | altitude | Terminal altitude |
You will learn how to
- Retrieve a satellite terminal
- Retrieve a satellite terminal and its metrics
- Retrieve a single satellite metric
Prerequisites
Before you begin, make sure you have completed the first tutorial, “Connecting your application to the T IoT Hub” and the connectivity groups tutorial, “Work with connectivity groups”.
Make sure that you:
- Register your application in Application Access Management
- Configure a request to fetch the API access token
- Register an Application Entity (AE) in your environment.
- Have an HTTP client available on your machine, such as cURL .
- Create a connectivity group.
- This tutorial assumes you are using cURL. If you are using a different HTTP client, the setup may be different.
Step 1. Retrieve a satellite object resource name assigned to your group
In order to get the resource name of a satellite assigned to your connectivity group you can refer to Step 5. Retrieve your connectivity group (Read) .
- Copy & paste
- Output
curl --location 'https://api.telekom.de/t-iot-hub/device-management-orchestrator/v3/$TENANT/connectivityGroups/<your_group_name>' \
--header 'Content-Type: application/json' \
--header 'X-M2M-Origin: <your_application_name>' \
--header 'X-M2M-RI: 123' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
{
"dtiot:conGp": {
"cnd": "com.telekom.iot.orchestrator.connectivityGroup",
"conPs": [
{
"coPID": "<your_product_id_number>",
"coPTe": 1,
"netID": "<your_network_id_number>"
}
],
"liCRr": "<your_router_serial_number>",
"priRe": {
"prPID": "<your_priority_product_id_number>",
"faPID": "<your_fallback_product_id_number>",
"priTd": 6
},
"updTe": 3,
"errMe": "command is required.",
"rn": "connectivityGroup_1",
"ty": 28,
"cr": "CPDemo",
"st": 1,
"ri": "64a816836e874776979410ba",
"pi": "64a580864238880cfd551557",
"ct": "20230707T134331,108000",
"lt": "20230707T134332,308000"
}
}
- Make sure that the
coPTe
attribute, Connectivity type, is1
, which stands for the satellite product type.
The value of the <your_network_id_number>
field is the resource name for a satellite terminal to use in the next steps.
Step 2. Retrieve a satellite object assigned to your group
Now, with the terminal resource name retrieved you can retrieve the object itself.
- Copy & paste
- Output
curl --location 'https://api.telekom.de/t-iot-hub/device-management-orchestrator/v3/$TENANT/satelliteTerminal/<your_network_id_number>' \
--header 'Content-Type: application/json' \
--header 'X-M2M-Origin: <your_application_name>' \
--header 'X-M2M-RI: 123' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
{
"rn": "<your_network_id_number>",
"cnd": "com.telekom.iot.orchestrator.satelliteTerminal",
"serNr": "<your_network_id_number>",
"netNt": "<network_name>",
"satNe": "<satellite_name>",
"satBm": "<satellite_beam>",
"satOr": "<satellite_originator>",
"terTe": "<terminal_type>",
"terMl": "<terminal_model>",
"liCGp": "<connectivity_group_resource_id>",
"ty": 28,
"cr": "CConnGroupAE",
"st": 2,
"ri": "64b10160423888a508554bc8",
"pi": "<your_tenant>",
"ct": "20230714T080344,322000",
"lt": "20230714T080412,029000",
}
Step 3. Retrieve a satellite object with satellite metrics (Read)
Satellite metrics are objects created under the parent satellite object. Metrics objects are created for each supported metric, and each of these objects contains the most recently received value. Please note that the value processing is asynchronous and is initiated by the satellite operator, so when new data is available, it is processed by the IT Hub. This means that the data update rate depends on the external system of the satellite operator.
- This request is almost exactly the same as in the previous step with one important addition - the
rcn
query parameter that defines the output.rcn=4
returns attributes and child resources found, andrcn=8
returns child resources found. The following example uses thercn=4
parameter.
- Copy & paste
- Output
curl --location 'https://api.telekom.de/t-iot-hub/device-management-orchestrator/v3/$TENANT/satelliteTerminal/<your_network_id_number>?rcn=4' \
--header 'Content-Type: application/json' \
--header 'X-M2M-Origin: <your_application_name>' \
--header 'X-M2M-RI: 123' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
{
"rn": "<your_network_id_number>",
"cnd": "com.telekom.iot.orchestrator.satelliteTerminal",
"serNr": "<your_network_id_number>",
"netNt": "<network_name>",
"satNe": "<satellite_name>",
"satBm": "<satellite_beam>",
"satOr": "<satellite_originator>",
"terTe": "<terminal_type>",
"terMl": "<terminal_model>",
"liCGp": "<connectivity_group_resource_id>",
"ty": 28,
"cr": "CConnGroupAE",
"st": 2,
"ri": "64b10160423888a508554bc8",
"pi": "<your_tenant>",
"ct": "20230714T080344,322000",
"lt": "20230714T080412,029000",
"dtiot:sitRe": [
{
"cnd": "com.telekom.iot.orchestrator.satelliteMetrics",
"rn": "<metric_resource_name>",
"metTe": "<metric_type>",
"metUt": "<metric_unit>",
"metVe": "<metric_value_stringified>",
"dgt": "20230713T131037,000868",
"ty": 28,
"cr": "CINTELSAT_IPE",
"st": 1,
"ri": "<metric_resource_id>",
"pi": "<your_network_id_number>",
"ct": "20230714T080359,556000",
"lt": "20230714T080403,408000"
}
]
}
- The
dgt
parameter represents the latests update for a metric.
Step 4. Retrieve a satellite metric (Read)
To retrieve a specific metric you can use the following cURL command with your values for <your_network_id_number>
and <metric_resource_name>
fields.
- Copy & paste
- Output
curl --location 'https://api.telekom.de/t-iot-hub/device-management-orchestrator/v3/$TENANT/satelliteTerminal/<your_network_id_number>/`<metric_resource_name>`' \
--header 'Content-Type: application/json' \
--header 'X-M2M-Origin: <your_application_name>' \
--header 'X-M2M-RI: 123' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
{
"cnd": "com.telekom.iot.orchestrator.satelliteMetrics",
"rn": "<metric_resource_name>",
"metTe": "<metric_type>",
"metUt": "<metric_unit>",
"metVe": "<metric_value_stringified>",
"dgt": "20230713T131037,000868",
"ty": 28,
"cr": "CINTELSAT_IPE",
"st": 1,
"ri": "<metric_resource_id>",
"pi": "<your_network_id_number>",
"ct": "20230714T080359,556000",
"lt": "20230714T080403,408000"
}