Device Properties
Device Property List
- pushMode:
-
0: Device pushes periodic data, reporting at a frequency of 0.5Hz (Topic
/product/{device_sn}/osd)
-
1: Device pushes state data, reporting when there is a status change (Topic
/product/{device_sn}/state)
-
- accessMode:
-
r: Read-only property
-
rw: Read-write property (Topic
/product/{gateway_sn}/property/set)
-
Column | Name | Type | constraint | Description | accessMode | pushMode |
---|---|---|---|---|---|---|
live_status | Current live status of the gateway | array | {"size": -, "item_type": struct} | r | 1 | |
»video_id | Video stream identifier | text | Identifier of the video stream in the format of {sn}/{camera_index}/{video_index} where {sn} is the device serial number, {camera_index} follows the {type-subtype-gimbalindex} format, and {video_index} refers to the camera’s available video streams | r | 0 | |
»video_quality | Quality of the video stream | enum_int | {"0":"Auto","1":"Smooth","2":"HD","3":"Ultra HD"} | r | 0 | |
»status | Live status | enum_int | {"0":"Not live","1":"Live"} | r | 0 | |
longitude | Current longitude | float | {"max":"180","min":"-180","unit_name":"degrees / °"} | r | 0 | |
latitude | Current latitude | float | {"max":"180","min":"-180","unit_name":"degrees / °"} | r | 0 | |
height | Absolute altitude | float | {"unit_name":"meters / m"} | Altitude relative to the Earth ellipsoid | r | 0 |
firmware_version | Firmware version | text | {"length":"64"} | r | 1 | |
sub_device | Sub-device status | struct | r | |||
»device_sn | Sub-device serial number | text | r | |||
»product_type | Sub-device product type | text | r | Format: {domain-type-subtype} | ||
»device_online_status | Power status of the drone in the docking station | enum | {"0":"Off","1":"On"} | r | ||
»device_paired | Frequency pairing status of the drone in the docking station | enum | {"0":"Not paired","1":"Paired"} | r | ||
cover_state | Cabin cover status | enum | {"0":"Closed","1":"Open","2":"Half-open","3":"Cover malfunction"} | 0 | r | |
putter_state | Pushrod status | enum | {"0":"Closed","1":"Open","2":"Half-open","3":"Pushrod malfunction"} | 0 | r | |
supplement_light_state | Supplementary light status | enum | {"0":"Off","1":"On"} | 0 | r | |
network_state | Network status | struct | Network Status | 0 | r | |
»type | Network type | enum | {"1":"4G","2":"Ethernet"} | |||
drone_in_dock | Is the drone in the dock | enum | {"0":"Outside","1":"Inside"} | 0 | r | |
rainfall | Rainfall | enum | {"0":"No rain","1":"Light rain","2":"Moderate rain","3":"Heavy rain"} | 0 | r | |
wind_speed | Wind speed | float | 0 | r | ||
environment_temperature | Environmental temperature | float | 0 | r | ||
temperature | Cabin temperature | float | 0 | r | ||
humidity | Cabin humidity | float | 0 | r | ||
storage | Storage capacity | struct | 0 | r | kb | |
»total | Total capacity | int | r | |||
»used | Used capacity | int | r | |||
alternate_land_point | Alternate landing point | struct | 0 | r | ||
»longitude | Longitude | float | r | |||
»latitude | Latitude | float | r | |||
height | Ellipsoid height | double | 0 | r | ||
air_conditioner | Air conditioner status | struct | r | 0 | r | |
»air_conditioner_state | Air conditioner mode | (int type) enum | {"0":"Idle","8":"Heating preparation","9":"Dehumidification preparation"} | r | ||
emergency_stop_state | Emergency stop button status | enum | {"0":"Off","1":"On"} | 0 | r | |
position_state | Star tracking status | struct | 0 | r | ||
»is_calibration | Calibration status | enum | {"0":"Not calibrated","1":"Calibrated"} | r | ||
»is_fixed | Fix status | enum | {"0":"Not started","1":"In progress","2":"Success","3":"Failure"} | r | ||
»quality | Star tracking level | enum | {"1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5"} | r | ||
»gps_number | GPS star tracking count | int | r | |||
»rtk_number | RTK star tracking count | int | r | |||
drone_charge_state | Charging status | struct | r | |||
»capacity_percent | Remaining battery percentage | int | {min:0~max:100} | 0 | r | |
»state | Charging state | int | {"0":"Charging","1":"Not charging"} | 0 | r | |
flighttask_step_code | Task execution step code | Int | r | |||
backup_battery | Backup battery status | struct | r | |||
»remain_cap | Remaining backup battery capacity | int | {min:0~max:100} | 0 | r | |
»temperature | Battery temperature | int | Temperature divided by 100 | 0 | r | |
»voltage | Battery voltage | int | Voltage divided by 100 | 0 | r | |
»switch | Backup battery switch | int | {"0":"Off","1":"On"} | 0 | r | |
drc_state | DRC status | Int | {"0":"Not connected","1":"Connecting","2":"Connected"} | 0 | r | |
environment_humidity | Environmental humidity | r | ||||
rth_altitude | Return-to-home altitude | rw | ||||
scram_status | Emergency stop status | {"0":"Not stopped","1":"Stopped"} | r | |||
takeoff_altitude | Takeoff altitude | rw | ||||
air_link_signal_strength | Air link signal strength | int | {0-100} | |||
rid_config | RID configuration | struct | rw | |||
»region | Region | int | {0:UNKNOWN1:CN 2:US 3:EU 4:JP} | |||
»flight_purpose | Flight destination, required in CN and US | text | ||||
»key | Key (Required in JP) | text | ||||
»pilot_id | Pilot ID | text | ||||
»remote_id | Remote ID (Required in JP) | text | ||||
wireless_link | Video transmission link | struct | r | 0 | ||
»4g_link_state | 4G connection state | enum_int | {"0":"Not connected","1":"Connected"} | 0 | ||
»sdr_link_state | SDR connection state | enum_int | {"0":"Not connected","1":"Connected"} | 0 | ||
»link_workmode | Transmission mode | enum_int | {"0":"Transmission mode","1":"4G Fusion mode"} | 0 | ||
»sdr_quality | SDR signal quality | int | {"max":"5","min":"0","step":"1"} | 0 | ||
»4g_quality | Overall 4G signal quality | int | {"max":"5","min":"0","step":"1"} | 0 | ||
air_transfer_enable | Air data transmission | int | {"0":"Disabled","1":"Enabled"} | rw | ||
home_position_is_valid | Home point validity | enum_int | {"0":"Invalid","1":"Valid"} | |||
heading | Dock heading angle | double | {"max":"180","min":"-180","step":"","unit_name":"degrees / °"} | |||
activation_time | Dock activation time (Unix timestamp) | long | ||||
live_capacity | Gateway device streaming capability | struct | r | 1 | ||
»available_video_number | Number of selectable video streams | int | 0 | |||
»coexist_video_number_max | Maximum number of concurrent streams | int | 0 | |||
»device_list | List of available video source devices | array | {"size": -, "item_type": struct} | Available video source devices (e.g., drones) | 0 | |
»»sn | Serial number of video source device | text | 0 | |||
»»available_video_number | Number of selectable streams from device | int | 0 | |||
»»coexist_video_number_max | Max number of concurrent streams from device | int | 0 | |||
»»camera_list | List of cameras on the device | array | {"size": -, "item_type": struct} | 0 | ||
»»»camera_index | Camera index | text | Format: {type-subtype-gimbalindex} | 0 | ||
»»»available_video_number | Number of selectable streams from camera | int | 0 | |||
»»»coexist_video_number_max | Max number of concurrent streams from camera | int | 0 | |||
»»»video_list | List of selectable streams from camera | array | {"size": -, "item_type": struct} | 0 | ||
»»»»video_index | Stream index from camera | text | 0 | |||
»»»»video_type | Type of stream from camera | text | 0 | |||
»»»»switchable_video_types | Switchable video types | array | {"size": -, "item_type": text} |
Device Attribute Push
Topic: thing/product/{device_sn}/state State data: reported when the device state changes
Topic: thing/product/{device_sn}/osd Regular data: device reports at a frequency of 0.5Hz
Direction: up
API Description:
Payload attribute reporting refers to the reporting of the attributes of the payloads mounted on the drone, such as the camera attributes. A payload is uniquely identified by its payload index (payload index: product type - subtype - mount position {type-subtype-gimbalIndex}), type, and subtype. Please refer to the product support page for values, and for the corresponding relationship of gimbalindex, check the wayline file format under wpml.
Currently, the protocols that involve payload attribute reporting include the device attribute push
of gateway devices and the live capability update
for live streaming functionality. For device attribute push
, the payload attribute reporting contains information about the camera itself, such as the angles of gimbal pitch, yaw, and roll. For live capability update
, the payload attribute reporting focuses more on the camera’s capabilities during live streaming, such as the maximum number of streams that can be pushed simultaneously. The specific payload attribute structure can be found in the example below. Please note that the remote controller's device attributes are reported in a single message body, while the airport's device attributes are reported in multiple pushes.
Data:
Column | Name | Type | constraint | Description |
---|---|---|---|---|
data | Message content | text | {} | For details, refer to the device properties of the device. |
»#{camera_index} | type-subtype-gimbalIndex | text | {} | gimbalIndex is the camera position, type, sub_type |
Example:
Topic: thing/product/{remote_controller_sn}/state Topic: thing/product/{remote_controller_sn}/osd{
"bid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data":{
"capacity_percent":0,
"latitude":0,
"live_status":{
"live_time":0,
"live_trendline":0,
"video_id":"",
"video_quality":65535
},
"longitude":0,
"transmission_signal_quality":0,
"wireless_link":{
"4g_freq_band":5.8,
"4g_gnd_quality":65535,
"4g_link_state":0,
"4g_quality":65535,
"4g_uav_quality":65535,
"dongle_number":0,
"link_workmode":1,
"sdr_freq_band":5.8,
"sdr_link_state":0,
"sdr_quality":65535
},
"wireless_link_state":{
"download_quality":0,
"frequency_band":0,
"upward_quality":0
}
},
"tid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp":1676434755031,
"gateway":"4LFCJCC001008S"
}
{
"bid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data":{
"43-0-0":{
"gimbal_pitch":0,
"gimbal_roll":0,
"gimbal_yaw":-103.7,
"measure_target_altitude":100,
"measure_target_distance":1256.800049,
"measure_target_error_state":1,
"measure_target_latitude":21.99849,
"measure_target_longitude":112.987933,
"payload_index":"43-0-0",
"version":1
},
"attitude_head":0,
"attitude_pitch":-0.5,
"attitude_roll":-0.1,
"battery":{
"batteries":[
{
"capacity_percent":90,
"firmware_version":"01.02.05.31",
"index":0,
"loop_times":131,
"sn":"xxxx",
"sub_type":0,
"temperature":23.1,
"type":0,
"voltage":49032
}
],
"capacity_percent":45,
"landing_power":5,
"remain_flight_time":0,
"return_home_power":10
},
"elevation":0,
"firmware_version":"04.00.0014",
"gear":1,
"height":100.020332,
"home_distance":0,
"horizontal_speed":0,
"latitude":22,
"longitude":113,
"mode_code":0,
"position_state":{
"gps_number":15,
"is_fixed":0,
"quality":5,
"rtk_number":0
},
"total_flight_distance":0,
"total_flight_time":0,
"vertical_speed":0,
"wind_direction":0,
"wind_speed":0
},
"tid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp":1643268212187,
"gateway":"xxxxx"
}
Low-speed channel reporting
Topic: thing/product/{gateway_sn}/state
Direction: up
Direction: Upstream (Device -> Cloud)
Data:
Column | Name | Type | Notes |
---|---|---|---|
low_speed_data | Live Streaming Capability | struct | |
»device_id | Device Number | int | |
»sn | Drone SN | String | |
»data_type | Data Type | int | |
»payload_id | Payload ID | int | |
»data | Low-Speed Channel Data | text | {"length":"10240"} |
{
"bid": "6b3665e1-be0f-4c7c-86ee-e387edd668e7",
"data": {
"low_speed_data": {
"device_id": 315535819380,
"sn": "10001",
"data_type": 1,
"payload_id": 2,
"data": ""
}
},
"gateway": "TH7923350808",
"tid": "c441054b-88f7-4d88-ae66-2732f803310c",
"timestamp": 1724054078099
}