Get Asset Telemetry
curl --request GET \
--url https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetryimport requests
url = "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry")
.asString();require 'uri'
require 'net/http'
url = URI("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyAssets
Asset Feeds
Return the latest message from each feed registered on an asset.
GET
/
api
/
kits
/
{kit_id}
/
assets
/
{asset_id}
/
telemetry
Get Asset Telemetry
curl --request GET \
--url https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetryimport requests
url = "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry")
.asString();require 'uri'
require 'net/http'
url = URI("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}/telemetry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodystring
required
UUID of the kit.
string
required
UUID of the asset.
Response
Returns an object keyed by feed name. Each value is the most recent payload published to that feed. Only feeds that have received at least one message are included.Available feeds by asset type
Drone (MAVLink)| Feed | Description |
|---|---|
gps | Fused position: lat, lon, alt_m, ground_speed, heading |
gps_raw | Raw GPS: lat, lon, alt_m, fix_type, satellites_visible |
battery | voltage, current, remaining_pct |
attitude | roll, pitch, yaw (degrees) |
radio | rssi, remote_rssi, noise, rx_errors |
sys_status | armed, flight_mode, ekf_ok, pre_arm_check |
vfr_hud | airspeed, groundspeed, throttle_pct, climb_mps, heading |
| Feed | Description |
|---|---|
status | online, motion_alarm, ai_alarm |
motion | detected, timestamp |
ai_detection | detected, types (people, vehicle, dog_cat, face, package), timestamp |
| Feed | Description |
|---|---|
status | online, timestamp |
motion | detected |
| Feed | Description |
|---|---|
gps | lat, lon, alt_m, bearing, speed_mps, source, timestamp |
Example
telemetry = client.get_telemetry(kit_id, asset_id)
# Drone
gps = telemetry.get("gps") or {}
print(gps.get("lat"), gps.get("lon"), gps.get("alt_m"))
battery = telemetry.get("battery") or {}
print(f"Battery: {battery.get('remaining_pct')}% {battery.get('voltage')}V")
attitude = telemetry.get("attitude") or {}
print(f"Heading: {attitude.get('yaw')}°")
# Camera
status = telemetry.get("status") or {}
print(f"Online: {status.get('online')} Motion: {status.get('motion_alarm')}")
const telemetry = await client.getTelemetry(kitId, assetId)
const { lat, lon, alt_m } = telemetry.gps || {}
const { remaining_pct } = telemetry.battery || {}
console.log(lat, lon, `${remaining_pct}%`)
curl https://argus.hoplynk.com/api/kits/$KIT_ID/assets/$ASSET_ID/telemetry \
-H "X-API-Key: hlk_..."
Response (drone)
{
"gps": {
"lat": 31.111,
"lon": -93.273,
"alt_m": 120.5,
"ground_speed": 4.2,
"heading": 247
},
"attitude": {
"roll": 0.2,
"pitch": -1.1,
"yaw": 247.3
},
"battery": {
"voltage": 14.8,
"current": 22.4,
"remaining_pct": 72
},
"sys_status": {
"armed": true,
"flight_mode": "GUIDED",
"ekf_ok": true
},
"vfr_hud": {
"groundspeed": 4.2,
"throttle_pct": 38,
"climb_mps": 0.1,
"heading": 247
}
}
Response (camera)
{
"status": {
"online": true,
"motion_alarm": false,
"ai_alarm": false
}
}