Appearance
Integration
Note:
1. Time zone of all returned messages and API input parameters in IoT Hub is UTC+0 ! ! !
2. The HTTP status code 3xx is for URL redirection. In IoT Hub, only 300/301/302/303 are automatically redirected, the other status codes will not receive response. Therefore, customers must NOT respond to other 3xx status codes.
3. The bit data of IoTHub is stored in big-endian.
Integration mainly involves two parts: APIs and alarm reference. APIs include push APIs, request APIs, and query APIs. Push APIs are used to get data pushed out by IoTHub, request APIs are used to quest device to perform some features, query APIs are used to query tracks, heartbeats and alarms, etc.. Alarm reference is used to check the received alarm information. Before delving into each API function, please read the API description
to understand which APIs are suitable for your device. Please ensure that all API related configurations are done before using it(see Installation 1.3 Configure pushURL for configuration details).
APIs
1 Push APIs
IoT hub will parse the data sent by devices and push the parsed data to customers' data receiving servers via http protocol. After the data push fails, it will try to push for 3 consecutive times (interval: 2 mins). If it still does not receive a successful response, the data will be discarded.
In the following API description, { YourURL } is the pushURL
configured in msg-dispatch-iothub
of the yml file, whose format is http://(domain|ip):port/uri
.
After successfully receiving the data, it is highly recommended that you send a response packet to the device to prevent iothub pushing data repeatedly. In addition, you can provide an access token to verify the validity of the data source before receiving the push data.
APIs Description
APIs | API Type | Description | JIMI Protocol Device | JT/T Protocol Device |
---|---|---|---|---|
/pushevent | Push | Login/Logout Notification | [√] | [√] |
/pushhb | Push | Push Heartbeat Data | [√] | [√] |
/pushgps | Push | Push GPS Location Data | [√] | [√] |
/pushalarm | Push | Push Alarm Data | [√] | [√] |
/rfid | Push | Push RFID Data | [√] | |
/wgtc | Push | Push Plug-In Module Data | [√] | |
/pushoil | Push | Push Oil Data | [√] | [√] |
/pushfileupload | Push | Notification Push from the storage service | [√] | [√] |
/pushtem | Push | Push Tem and Hum Data | [√] | |
/pushlbs | Push | Push LBS Data | [√] | |
/pushresourcelist | Push | Push Resource List | [√] | [√] |
/pushftpfileupload | Push | Push Ftp Upload Result | [√] | [√] |
/pushIothubEvent | Push | Push alarm file list, alarm file upload begin and end, multimedia file upload begin and end | [√] | [√] |
/pushPassThroughData | Push | Push PassThrough Data | [√] | [√] |
/pushTerminalTransInfo | Push | Push Extension Data | [√] | [√] |
/pushobd | Push | Push On Board Diagnostic(OBD) Data | [√] | |
/pushfaultinfo | Push | Push Fault Info | [√] | |
/pushtripreport | Push | Push Trip Report | [√] | |
/pushInstructResponse | Push | Asynchronous Commands && Offline Commands | [√] | [√] |
1.1 Login/Logout Notification
Request
URL | { YourURL } /pushevent |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token(same with http.pushToken) |
data_list | string | Y | The data set of login and logout notifications. It is a Character string Json array. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | IMEI of the device |
type | string | Y | Event type is an enumerated string, where LOGIN indicates the device online and LOGOUT indicates the device offline |
gateTime | Date | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
timezone | Y | The East/West timezone at login/logout. Example: GMT+08:00 Note: 1. Zero timezone only retains the western zero time zone, that is, GMT+00:00, no GMT-00:00 2. If the hour and minute are less than 2 digits, zero will be added in front, that is, GMT+03:30. |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"deviceImei":"868120246598152","gateTime":"2023-01-13 02:24:37","timezone":"GMT+08:00","type":"LOGIN"}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
Msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.2 Push Heartbeat Data
Request
URL | { YourURL } /pushhb |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token(same with http.pushToken) |
data_list | string | Y | The data set of heartbeat notifications. It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | IMEI of the device |
gateTime | Date | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
powerLevel | int | N | Power level |
gsmSign | int | N | GSM signal |
acc | int | N | 0: ACC_OFF 1: ACC_ON |
oilEle | int | 0: Fuel or electricity connected 1: Fuel or electricity disconnected | |
gpsPos | int | 0: GPS not positioning 1: GPS positioning | |
remoteLock | int | 0: No remote locking 1: Remote locking | |
powerStatus | int | 0: No power charging 1: Power charging | |
fortify | int | 0: Defense deactivated 1: Defense activated |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"acc":0,"powerStatus":0,"fortify":0,"deviceImei":"868120246598152","gateTime":"2023-01-13 05:34:02","gsmSign":3,"gpsPos":0,"powerLevel":73,"remoteLock":0,"oilEle":0}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where in "0" indicates success and non-zero code means the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
json
{
"code": 0,
"msg": "success"
}
1.3 Push GPS Data
Request
URL | { YourURL } /pushgps |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token(same with http.pushToken ) |
data_list | string | Y | The data set of GPS position fixes. It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | IMEI of the device |
gpsTime | Date | Y | Location time: yyyy-MM-dd HH:mm:ss; example: 2016-01-01 23:00:01(UTC) |
gateTime | Date | Y | It is the time of the server where the gateway is deployed. It is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
satelliteNum | int | Y | Number of satellites engaged in positioning |
lng | double | Y | Longitude |
lat | double | Y | Latitude |
gpsMode | int | Y | 0: Real-time upload 1: Re-upload |
gpsSpeed | int | Y | GPS speed in km/h |
direction | int | Y | Direction angle: 0–360° |
acc | int | Y | 0: ACC_OFF 1: ACC_ON |
postType | int | Y | Positioning method. 1: GPS 2: LBS 3: WiFi |
altitude | int | N | Altitude,unit: Meter |
status | int | N | See the table below |
distance | int | N | Mileage, unit: Meter |
undecodedGpsAddInfo | string | GPS location with additional undefined ID pass-through data. The message content is base64 encoded. | |
postMethod | int | Y | GPS data upload mode. 0x00 Upload by time interval 0x01 Upload by distance interval 0x02 Inflection point upload 0x03 Upload by ACC status change 0x04 Re-upload the last GPS point when back to static. 0x05 Upload the last effective point when network recovers. 0x06 Update ephemeris and upload GPS data compulsorily 0x07 Upload location when side key triggered 0x08 Upload location after power on 0x09 Upload by command “GPSON” 0x0A Upload the last longitude and latitude when device is static; time updated 0x0B Upload after WIFI data query 0x0C upload by command LJDW 0x0D Upload the last longitude and latitude when device is static 0x0E Gpsdup upload (Upload regularly in a static state.) 0x0F Upload after exit tracking mode |
driverLicenseStatus | int | N | Driver license status. 1: No card swiping 75: Not First swipe 143: First swipe |
driverLicense | string | N | New data from driver license. 1: No swipe data Others: Driver license data |
buzzerAlarmStatus | int | N | Buzzer alarm status. 0: No alarm 1: Alarm |
creditCardStatus | int | N | Swipe card status. 0: Other 1: Card swiping detected |
doorStatus | int | N | Door status. 0: Closed 1: Open |
sosStatus | int | N | SOS status. 0: Not Trigged 1: Triggered |
accStatus | int | N | ACC status.(engine) 0: ACC OFF 1: ACC ON |
temperature | float | N | Temperature. Unit: Celsius |
transparentData | string | N | Pass-through data(HEX string) |
Description of status Parameters
Bit | Description |
---|---|
0 | 0: ACC OFF 1: ACC ON |
1 | 0: Not positioned 1: Positioned |
2 | 0: North latitude; 1: South latitude |
3 | 0: East longitude; 1: West longitude |
4 | 0: Operation status; 1: Out of service status |
5 | 0: The latitude and longitude are not encrypted by the security plug-in; 1: The longitude and latitude have been encrypted by the security plug-in |
6-7 | Reserved |
8-9 | 00: Empty; 01: Half-loaded; 10: Reserved; 11: Fully-loaded(It can be used to indicate the empty and full load status of passenger cars, heavy vehicles and trucks, manual input or sensor acquisition) |
10 | 0: The vehicle oil circuit is normal; 1: The vehicle oil circuit is disconnected |
11 | 0: The vehicle circuit is normal; 1: The vehicle circuit is disconnected |
12 | 0: Door unlock; 1: Door lock |
13 | 0: Door 1 closed; 1: Door 1 open (front door) |
14 | 0: Door 2 closed; 1: Door 2 open (middle door) |
15 | 0: Door 3 closed; 1: Door 3 open (back door) |
16 | 0: Door 4 closed; 1: Door 4 open (driver's door) |
17 | 0: Door 5 closed; 1: Door 5 open (custom) |
18 | 0: GPS satellites are not used for positioning; 1: GPS satellites are used for positioning |
19 | 0: Not using Beidou satellites for positioning; 1: Using Beidou satellites for positioning |
20 | 0: GLONASS satellites are not used for positioning; 1: GLONASS satellites are used for positioning |
21 | 0: Do not use Galileo satellites for positioning; 1: Use Galileo satellites for positioning |
22-31 | Reserved |
e.g.
bash
token=a12341234123&data_list=[{"acc":1,"altitude":0,"distance":698,"lng":113.942885,"postType":1,"gateTime":"2023-02-22 01:29:40","undecodedGpsAddInfo":"GQcAAAABAAUA","gpsTime":"2023-02-22 01:29:40","gpsSpeed":0,"satelliteNum":7,"postMethod":0,"deviceImei":"869247060001259","gpsMode":0,"gsmSignal":0,"lat":22.576539,"direction":155,"status":262147}]
bash
token=a12341234123&data_list=[{"acc":0,"altitude":0,"distance":-1,"gateTime":"2023-08-17 09:37:09","undecodedGpsAddInfo":"","driverLicenseStatus":143,"satelliteNum":15,"postMethod":0,"gpsMode":0,"transparentData":"00","sosStatus":1,"gsmSignal":0,"temperature":28.3,"driverLicense":"222000455600106","lat":22.576591,"direction":0,"creditCardStatus":1,"lng":113.943049,"postType":1,"gpsTime":"2023-03-10 10:00:11","gpsSpeed":0,"accStatus":1,"deviceImei":"358511020000007","doorStatus":1,"status":0,"buzzerAlarmStatus":1}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
json
{
"code": 0,
"msg": "success"
}
1.4 Push Alarm Data
Request
URL | { YourURL } /pushalarm |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | The data set of alarm lists. It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
msgClass | string | N | 0 JIMI protocol(JC400 series devices) 1 JT/T protocol(JC450 series devices) If empty, consider it as 0 |
type | string | Y | Data enumerated type: DEVICE or ICCID |
msg | JSON | N | Base on the value of "msgClass" and "type", details see subsequent content. |
gateTime | Date | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
The data format of "msg" when type="ICCID"
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
iccid | string | Y | ICCID |
imsi | string | N | IMSI |
The data format of "msg" when type="DEVICE" and msgClass=0
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
fenceId | int | N | The ID of the device's geo-fence |
driverId | int | N | Driver ID |
driverName | string | N | Driver name |
gpsSpeed | int | N | Speed in km/h |
alarmTime | Date | Y | Device alarm time: yyyy-MM-dd HH:mm:ss(UTC) |
alertType | int | Y | Alarm type, see Alarm Reference |
alertValue | string | N | The threshold or condition for generating an alarm. Base on alertType ,Default:0. E.g.: For overspeed alarm, it is the speed. For eye closed alarm, 0x0000 represents the first level event, 0x0002 represents the second level event. For the DMS camera communication abnormal alarm, 0x0000 indicates camera hasn't connected, 0x0002 indicates camera has been connected but communication is abnormal. |
lng | double | N | Longitude |
lat | double | N | Latitude |
satelliteNum | int | N | Satellite number |
file | string | N | 'file' represent video files in format of "jpg","png","ts","avi","gif","mp3","mp4", and "amr" |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"deviceImei":"353376110007413","msg":{"alertType":1,"deviceImei":"353376110007413","file":"2020_05_13_13_45_46_23.mp4","lat":22.576926,"lng":113.916612},"gateTime":"2020-05-13 05:45:46","type":"DEVICE"}]
The data format of "msg" when type="DEVICE" and msgClass=1
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
lng | double | Y | Longitude |
lat | double | Y | Latitude |
driverId | int | N | Driver ID |
driverName | string | N | Driver name |
alarmTime | Date | Y | Device alarm time: yyyy-MM-dd HH:mm:ss(UTC) |
alertType | int | Y | See Alarm Reference |
gpsSpeed | int | N | Only exist when reporting overspeed alerts |
alarmSerialNo | int | N | Message serial number. It was used when requesting API 33283 |
signalDropChannel | int | N | Video signal loss alarm.This alarm information is only valid when the alertType value is 257 |
signalCoverChannel | int | N | This alarm information is only valid when the alertType value is 258 |
storageFaultChannel | int | N | Storage unit faulty alarm.This alarm information is only valid when the alertType value is 259 |
drivingAlarmFlag | int | N | Abnormal driving behavior alarm.This alarm information is only valid when the alertType value is 262 |
... | Depending on the alertType , this interface will push different information. See Alarm Reference for details. |
e.g.
Request Body
bash
token=a12341234123&data_list=[
{
"gateTime": "2024-02-05 15:36:37",
"imei": "869247060001762",
"msg": {
"alertType": "257",
"deviceImei": "869247060001762",
"lng": 0,
"alarmTime": "2024-02-03 06:34:38",
"signalDropChannel": 18,
"gpsSpeed": 0,
"alarmSerialNo": 401,
"lat": 0
},
"msgClass": 1,
"type": "DEVICE"
},
{
"gateTime": "2024-02-05 15:36:44",
"imei": "869247060001762",
"msg": {
"alertType": "1041",
"deviceImei": "869247060001762",
"lng": 0,
"alarmLabel": "30,30,30,31,37,36,32,24,02,03,14,34,38,00,01,00",
"alarmTime": "2024-02-03 06:34:38",
"lat": 0
},
"msgClass": 1,
"type": "DEVICE"
}
]
Alarm File Name
For a device with msgClass=0, when an alert is generated (such as SOS, collision, vibration, overspeed, harsh acceleration, harsh braking, etc.), the device will capture and upload the alarm image or video to file storage (dvr-upload.xxx
), and DVR gateway service (jimi gateway.x.x.image.xxx
) **. Then the DVR gateway service pushes the alert data to your SaaS Service (request Parameters name: file
). Next, you can pull the corresponding images or videos with the alarm file name from the file storage.
For a device with msgClass=1
, SaaS can call API to send online command VIDEOUPLOAD, with Parameters alarmLabel value in the alarm pushing, device will upload all multimedia files to the file storage (jimi-upload-
). After data uploaded, device will report to the gateway service (jimi-c450-gate.x.x.x.image.xxx
), Iothub will push the file name list to your SaaS. The file is named with the alarmLabel, your SaaS can pull the alarm file with the alarm label from the file storage.
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.5 Push RFID Data
Request
URL | { YourURL } /rfid |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
moduleType | string | Y | RFID module type |
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time the data arrived at iothub gateway. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss(UTC); Example: 2016-01-01 23:00:01(UTC). |
postTime | string | Y | It is the data generation time. Format: yyyy-MM-dd HH:mm:ss(UTC); Example: 2016-01-01 23:00:01(UTC). |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
value | string | Y | Decode value need to check the device packet number or the decoding algorithm. Take VL802 as an example, it uses the 9B packet, and the decoding algorithm is to convert the last 8 bits of the acquired RFID value to hexadecimal. |
Request Body
bash
token=a12341234123&data_list=[{"moduleType"2,"gateTime":"2025-01-07 23:00:01","deviceImei":"861364144249529","value":"00022F0048298C"}]
bash
token=a12341234123 &data_list=[{"postTime":"2025-01-07 23:00:01","gateTime":"2025-01-07 23:00:01","imei":"861364144248927","time":"2025-01-07 23:00:01","value":"1B0013F77768"}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
json
{
"code": 0,
"msg": "success"
}
1.6 Push Plug-In Data
Request
URL | { YourURL } /wgtc |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device IMEI |
hexContent | string | Y | Transmitted content: HEX string |
postTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
category | string | N | Protocol category |
type | int | N | Message type |
token | string | Y | Access token |
data_list | string | Y | It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of category
Category | DataType | Description |
---|---|---|
0x9B | 3 | Temperature sensor data |
0x9B | 5 | Card swipe data without swipe time |
0xF2 | 8 | Card swipe data with swipe time(postTime) |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
hexContent | string | Y | Transmitted content: HEX string |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"deviceImei":"353376110007413"," hexContent ":"48656c6c6f2046726f6d204a494d4920576f726c64210a"}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.7 Push Oil Data
Request
URL | { YourURL } /pushoil |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | The data set of oil lists. It is a Character string Json array. Devices can package and upload up to 50 sets of data at a time, so you need to consider the actual servers of your SaaS when parsing the data. |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
path | int | Y | Sensor ID |
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
value | double | Y | Oil value, divide by 100, unit: CM |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"deviceImei":"353376110007413"," gateTime ":"2020-05-13 05:45:46"," value ":2.3," path ":1}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.8 Push Notification
Request
URL | { YourURL } /pushfileupload |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
fileName | string | Y | File name list, use ; to separate, format as below {deviceImei}_{alarmLabel}_{xy}.mp4; {deviceImei}_{alarmLabel}_{xy}.jpg deviceImei: Device’s imei alarmLabel: Associate to which alarm suffix: ADAS alert: 64 DMS alert: 65 number: S/N,0~2 {xy}: x--> Channel Id y-->Serial number of the mp4/jpg file E.g. 862708042245071_63613365396662220616135436010500_00.mp4 862708042245071_63613365396662220616135436010500_13.jpg |
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
result | string | Y | File Upload Result, SUCCESS or FAILURE |
Description of result
Parameter | DataType | Required | Description |
---|---|---|---|
result | string | Y | when the result value is "FAILURE", the value of fileName may be "no image or no video, means that there is no associated file on the device |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"deviceImei": "353376110007413", "gateTime": "2020-05-13 05:45:46","result":"SUCCESS","fileName": "353376110007413_1000741210314356_64.mp4; 353376110007413_1000741210314356_64_00.jpg;353376110007413_1000741210314356_64_01.jpg ;353376110007413_1000741210314356_64_02.jpg"}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.9 Push Tem and Hum
Request
URL | { YourURL } /pushtem |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
hum | double | Y | Humidity |
tem | double | Y | Temperature |
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is data uploads to gateway time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
postTime | string | Y | It is the data generation time. Format: yyyy-MM-dd HH:mm:ss; Example: 2023-01-01 23:00:01(UTC) |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"hum":79.6,"deviceImei":"861364144249512","gateTime":"2022-04-19 02:23:12","tem":49.5}]
bash
token=a12341234123&data_list=[{"postTime":"2023-10-16 05:41:08","deviceImei":"861364144248927","gateTime":"2023-10-19 03:20:25","tem":-10.5}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.10 Push LBS Data
Request
URL | { YourURL } /pushlbs |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
postType | string | Y | value is "WIFI" or "LBS" |
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time of the server where the gateway is deployed.Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
lbsJson | string | Y | LBS or WIFI informations |
e.g.
Request Body
bash
token=a12341234123&data_list=[{"postType":"LBS","deviceImei":"861364144249512","gateTime":"2022-04-19 02:23:12","lbsJson":"{\"mnc\":0,\"cellList\":[\"33296,104957255,70\",\"33296,135005976,66\",\"33296,250018432,31\",\"32823,97993611,27\",\"33296,97498558,26\",\"33296,139975999,23\",\"33296,104957256,50\"],\"mcc\":460}"}]
The cellList contains multiple sets of LBS information(LAC,CI,RSSI),LAC:Location Area Code, CI:Cell Tower ID,RSSI:Cell signal strength
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.11 Push Resource List
Request
URL | { YourURL } /pushresourcelist |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
totalNum | string | Y | The numbers of resources |
imei | string | Y | Device’s IMEI |
instructionID | string | Y | Unique Instruction ID |
resourceList | string | Y | List of resources name |
e.g.
Request Body
json
token=a12341234123&data_list=[
{
"totalNum": 0,
"imei": "862708042244652",
"instructionID": "08768b02395c4f7da624c2cfa8a0a880",
"resourceList": [
{
"channel": 1,
"beginTime": "2022-07-01 14:07:12",
"endTime": "2022-07-01 14:07:53",
"alarmFlag": 0,
"resourceType": 0,
"codeType": 0,
"storageType": 0,
"fileSize": 33370112
},
{
"channel": 1,
"beginTime": "2022-07-01 14:04:12",
"endTime": "2022-07-01 14:07:12",
"alarmFlag": 0,
"resourceType": 0,
"codeType": 0,
"storageType": 0,
"fileSize": 146116796
}
]
}
]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.12 Push Ftp Upload Result
Request
URL | { YourURL } /pushftpfileupload |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
result | int | Y | Result. 0: Succeed 1: Fail |
deviceImei | string | Y | Device’s IMEI |
instructionID | string | Y | Unique Instruction ID |
gateTime | string | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
e.g. Request Body
json
token=a12341234123&data_list= [{
"result": 0,
"instructionID": "123456789",
"deviceImei": "869247060001259",
"gateTime": "2022-07-01 08:14:21"
}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.13 Push Event
Request
URL | { YourURL } /pushIothubEvent |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
gateTime | long | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss;; Example: 2025-01-07 17:13:32. |
eventType | string | Y | Fixed string value: - UploadAlarmFileList - UploadAlarmFileBegin - UploadAlarmFileEnd - UploadMediaFileBegin - UploadMediaFileEnd |
eventContent | string | Y | See the table below for details |
- Description of
UploadAlarmFileList
eventContent
Parameter | DataType | Required | Description |
---|---|---|---|
alarmLabel | string | Y | see Alarm Reference “ADAS" and “DMS" |
alarmNo | string | Y | |
fileCount | int | Y | files Number |
fileList | string | Y | Description information for each file |
Description of fileList
Parameter | DataType | Required | Description |
---|---|---|---|
filename | string | Y | file name |
fileSize | int | Y | file size |
fileType | int | Y | 0x00 photo, 0x01 audio, 0x02 video , 0x03 text |
e.g.
Request Body
json
token=a12341234123&data_list=[
{
"eventType": "UploadAlarmFileList",
"deviceImei": "869506047517027",
"gateTime": "2025-01-07 17:13:32",
"eventContent": "{
"alarmLabel": "37353137303237220805174334000500",
"alarmNo": "3639353036303437353137303237323230383035313734333334303030353030",
"fileCount": 5,
"fileList": [{
"fileNameLength": 50,
"fileSize": 64,
"fileType": 3,
"filename": "00_65_6501_00_86924706000151220706160217000500.bin",
"status": "NO"
},
{
"fileNameLength": 50,
"fileSize": 7670,
"fileType": 0,
"filename": "00_65_6501_01_86924706000151220706160217000500.jpg",
"status": "NO"
},
{
"fileNameLength": 50,
"fileSize": 7658,
"fileType": 0,
"filename": "00_65_6501_02_86924706000151220706160217000500.jpg",
"status": "NO"
},
{
"fileNameLength": 50,
"fileSize": 7611,
"fileType": 0,
"filename": "00_65_6501_03_86924706000151220706160217000500.jpg",
"status": "NO"
},
{
"fileNameLength": 50,
"fileSize": 1458411,
"fileType": 2,
"filename": "02_65_6501_04_86924706000151220706160217000500.mp4",
"status": "NO"
}
]}",
}
]
- Description of
UploadAlarmFileBegin
eventContent
Parameter | DataType | Required | Description |
---|---|---|---|
filename | string | Y | file name |
fileSize | int | Y | file size |
fileType | int | Y | 0x00 photo, 0x01 audio, 0x02 video , 0x03 text |
e.g.
Request Body
json
token=a12341234123&data_list=[
{
"eventType": "UploadAlarmFileBegin",
"deviceImei": "869506047517027",
"eventContent": "{
"fileName": "00_65_6501_00_86924706000151220706160217000500.bin",
"fileSize": 64,
"fileType": 3
}",
"gateTime": "2025-01-07 17:13:32"
}
]
- Description of
UploadAlarmFileEnd
eventContent
Parameter | DataType | Required | Description |
---|---|---|---|
filename | string | Y | file name |
fileSize | int | Y | file size |
fileType | int | Y | 0x00 photo 0x01 audio 0x02 video 0x03 text |
e.g.
Request Body
json
token=a12341234123&data_list=[
{
"eventType": "UploadAlarmFileEnd",
"deviceImei": "869506047517027",
"eventContent": "{
"fileName": "00_65_6501_00_86924706000151220706160217000500.bin",
"fileSize": 64,
"fileType": 3
}",
"gateTime": "2025-01-07 17:13:32"
}
]
- Description of
UploadMediaFileBegin
eventContent
Parameter | DataType | Required | Description |
---|---|---|---|
filename | string | Y | file name consists of the following fields: deviceImei_channel_mediaId_mediaType_timestamp e.g 869506047517027_2_835509876_0_1659765476555.jpg |
longitude | double | Y | longitude |
latitude | double | Y | latitude |
e.g.
Request Body
json
token=a12341234123&data_list=[
{
"eventType":"UploadMediaFileBegin",
"deviceImei":"869506047517027",
"eventContent":"{
"fileName":"869506047517027_2_835509876_0_1659765476555.jpg",
"latitude":113.94313,
"longitude":22.576571
}",
"gateTime":"2025-01-07 17:13:32"
}
]
- Description of
UploadMediaFileEnd
eventContent
Parameter | DataType | Required | Description |
---|---|---|---|
filename | string | Y | file name |
e.g.
Response Body
json
token=a12341234123&data_list=[
{
"eventType":"UploadMediaFileEnd",
"deviceImei":"869506047517027",
"eventContent":"{"fileName":"869506047517027_2_835511385_0_1659766646070.jpg"}",
"gateTime":"2025-01-07 17:13:32"
}
]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.14 Push PassThrough Data
Request
URL | { YourURL } /pushPassThroughData |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | See the table below for details |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It’s the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC) |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
type | int | Y | Pass-through message type |
content | string | Y | Pass-through message content. The message content is base64 encoded. |
category | string | N | Pass-through protocol category. eg:0x0900,0x9C, etc. |
Description of type
category | type | Description |
---|---|---|
0x0900 | 0 | GNSS module detailed positioning data |
0x0900 | 11 | Road transport permit IC card information |
0x0900 | 65 | Serial port 1 pass-through |
0x0900 | 66 | Serial port 2 pass-through |
0x0900 | 240~255 | User-defined pass-through messages |
0x9C | 50 | 9C packet data pass-through(QCVN31 data, only for KKS gateway) |
0x94 | 0 | 94 packet data pass-through(GV20 External voltage, only for KKS gateway) |
e.g.
Request Body
json
token=a12341234123&data_list=[{
"deviceImei": "869247060001390",
"type": 241,
"category": "0x0900",
"gateTime": "2022-11-04 07:22:20",
"content": "YXBwbGU="
}]
json
token=a12341234123&data_list=[{
"deviceImei":"353376110060339",
"type":50,
"category":"0x9C",
"gateTime":"2022-12-01 05:48:48",
"content":"JEdTSFQsMiw3OCw8SFVBTkdYSU4sNTg0NTIwMTMxNCwwNzoxMTo0NiwwLDAsMDg6MTE6MDgsMTEzLjg4MTU2MTc2NjY2NjY4LDIyLjU5Mjk1ODQxNjY2NjY3PiwxNTgj"
}]
json
token=a12341234123&data_list=[{
"deviceImei":"752533678900242",
"type":0,
"category":"0x94",
"gateTime":"2023-04-20 14:13:27",
"content":"eyJwb3dlclZhbHVlIjoxMy4wfQ=="}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.15 Push Extension Data
Request
URL | { YourURL } /pushTerminalTransInfo |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | See the table below for details |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
postTime | string | Y | Report time.Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
deviceImei | string | Y | Device’s IMEI |
gpsTime | string | N | Reporting time (UTC).Format: yyyy-MM-dd HH:mm:ss(UTC+0); |
Example: 2025-01-07 09:00:54(UTC) | |||
lng | double | N | Longitude |
lat | double | N | Latitude |
extensionId | int | Y | Extension ID 8197: Device status information reporting; 8199: Terminal serial port data upload |
Content | string | Y | The content is related to extensionId, and the content and format vary under different extensionIds. See the table below for deptails |
Description of extensionId
- extensionId = 8197, content can be converted into map structured data, and the meaning of key(int) as follows
key | Description |
---|---|
1 | Voltage. Unit: V |
2 | Daily traffic data report, reported once a day, cleared by month. Unit: KB |
3 | Battery power percentage. Range: 0~100 |
4 | Device charge status. 0x00: not charged; 0x01: discharge |
8193 | External voltage. Unit: V |
Note: when 8197 reports, these keys may not necessarily exist.
- extensionId = 8199, content can be converted into map structured data, and the meaning of key(int) as follows
key | Description |
---|---|
1 | Swipe card data. Get the swipe card data from the serial port and pass-through transmit to the platform direcctly. Base64 encoded, need to be decoded before use. |
Note: when 8199 reports, these keys may not necessarily exist.
e.g.
Request Body
json
token=a12341234123&data_list=[{"postTime":"2025-01-07 09:00:54","deviceImei":"868120303960873","extensionId":8197,"content":"{8193:10.6}"}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.16 Push Offline Command
This API is used to send asynchronous and offline command. Asynchronous Commands: If the "sync" parameter is set to "false", a command in delivery will be changed to an asynchronous command.
Offline Commands: If the response data packet indicates the device is offline (_code:300) or timed out (_code:600) and the "offlineFlag" parameter in a command in delivered is set to "true", then the command will be cached as an offline command, which will be delivered once the device re-accesses the gateway.
The results of offline and asynchronous commands will be pushed via the following interfaces:
Request
URL | { YourURL } /pushInstructResponse |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token (same with http.pushToken) |
msgType | int | Y | 1 means push the result of the asynchronous commands 2 means push the result of the offline commands. |
data_list | string | Y | Deliver Results: The data_list may contain the deliver results of multiple commands. The format and description of the response to each command can be found in Response. Tips: The "serverFlagId" field in the request data and the "_serverFlagId" field in the response data correspond to each other and indicate the relationship between the two pieces of data. |
E.g.
Request Body
{
"token": "a12341234123",
"msgType": 1,
"data_list": [{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "000105042285948",
"_content": "[VERSION]C450_20220309,[BUILD]2022-03-09 14:56",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}, {
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "000105042285999",
"_content": "[VERSION]C450_20220309,[BUILD]2022-06-09 14:56",
"_msg": "Command communication successful response",
"_serverFl: "0"
}
}]
}
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from the data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Response result code, where 0 indicates success and a non-zero code indicates the gateway will try again. |
msg | string | N | Description of the result code |
E.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
APIs for OBD Devices
1.17 Push OBD Data
Request
URL | { YourURL } /pushobd |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | See the table below for details |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
obdJson | JSON | Y | See table below for details |
Description of obdJson
Parameter | DataType | Description |
---|---|---|
car_type | int | 1: Comercial vehicle 2: Passenger vehicle Add sequentially... |
push_time | Date | Format: yyyy-MM-dd HH:mm:ss; Example: 2022-11-24 08:00:48 |
event_time | Date | Format: yyyy-MM-dd HH:mm:ss; Example: 2022-09-28 18:04:04 |
AccState | int | 0 : ACC_OFF, 1: ACC_ON |
statusFlags | See definition in table 20 of OBD Data Description | |
lng | double | Unit: degree. The longitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree |
lat | double | Unit: degree. The latitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree |
dataID1 | int | See details on table 21, table22, table 23 of OBD Data Description |
dataID2 | int | See details on table 21, table22, table 23 of OBD Data Description |
... | ... | |
dataIDn | int | See details on table 21, table22, table 23 of OBD Data Description |
e.g.
Request Body
json
token=a12341234123&data_list=[{
"deviceImei": "358511020000026",
"obdJson": {
"1347": "41.12",
"lng": 31.212468,
"statusFlags": 786434,
"imei": "358511020000026",
"1350": "145000.0",
"AccState": 0,
"push_time": "2022-11-24 10:43:24",
"event_time": "2022-09-28 18:04:04",
"lat": 30.10028,
"1328": "12550 ",
"car_type": 2,
}
}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.18 Push Fault Info
Request
URL | { YourURL } /pushfaultinfo |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | See the table below for details |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2022-11-24 03:24:34. |
lng | double | Unit: degree. The longitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
lat | double | Unit: degree. The latitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
statusFlags | See table 20 of OBD Data Description for the definition of status bits | ||
faultCodeList | string | If faultNum = 0, faultCodeList is empty | |
faultNum | string | ||
dataSendTime | string | Only reupload message has value, otherwise, the value is 0 by default. | |
eventTime | long | Format: yyyy-MM-dd HH:mm:ss(UTC+0); Example: 2025-01-07 09:00:54(UTC) |
e.g.
Request Body
json
token=a12341234123&data_list=[{
"deviceImei":"861364144249529",
"lng":113.1553,
"gateTime":"2022-11-25 03:45:44",
"faultNum":1,
"eventTime":"2025-01-07 09:00:54",
"statusFlags":16777216,
"dataSendTime":0,
"lat":23.0632,
"faultCodeList":"[\"P0301\"}"
}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
1.19 Push Trip Report
Request
URL | { YourURL } /pushtripreport |
---|---|
Http Method | POST |
Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
token | string | Y | Access token |
data_list | string | Y | See the table below for details |
Description of data_list
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | Device’s IMEI |
gateTime | string | Y | It is the time of the server where the gateway is deployed. Note that it is different from the device time. Format: yyyy-MM-dd HH:mm:ss; Example: 2016-01-01 23:00:01(UTC). |
type | int | ||
gnssTypeFlags | Bit | Bit0: begin GNSS latitude, 0:North latitude; 1:South latitude; Bit1: begin GNSS longitude, 0: East longitude; 1: West longitude; Bit2: end GNSS latitude, 0:North latitude; 1:South latitude; Bit3: end GNSS longitude, 0: East longitude; 1: West longitude; Bit4 ~ Bit7: 0000 | |
idleTimes | int | Accumulated idle time. Unit: s | |
tripSeq | int | Terminal accumulative value after each trip. | |
miles | double | Miles in this Trip. Unit: KM; Precision: 0.1 | |
idleNumber | int | ||
beginLat | double | Unit: degree. The latitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
endLat | double | Unit: degree. The latitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
beginLng | double | Unit: degree. The longitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
endLng | double | Unit: degree. The longitude in degrees is multiplied by 10 to the 6th power. Precision: one millionth of a degree | |
beginTime | BCD[6] | Format: YY-MM-DD-HH-MM-SS. Example: 2022-06-26 16:20:14 | |
endTime | BCD[6] | Format: YY-MM-DD-HH-MM-SS. Example: 2022-06-27 08:39:50 | |
oils | double | Fuel consumption. Unit: L; Precision: 0.01 | |
properties | int | 01: Start trip; 02: End trip |
e.g.
Request Body
json
token=a12341234123&data_list=[{
"idleTimes": 53,
"gateTime": "2022-11-25 01:43:13",
"type": 0,
"tripSeq": 34,
"gnssTypeFlags": 0,
"miles": 53.9,
"beginLat": 23.111922,
"idleNumber": 46,
"endLat": 23.111828,
"deviceImei": "861364144249529",
"oils": 7.14,
"beginLng": 114.409752,
"beginTime": "2022-06-26 16:20:14",
"endTime": "2022-06-27 08:39:50",
"endLng": 114.409752,
"properties": 2
}]
Response
Content-Type | application/json;charset=UTF-8 |
---|
Response Content
A correct response in JSON is required from your data receiving service.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | N | Description of the result code |
e.g.
Response Body
json
{
"code": 0,
"msg": "success"
}
2 Request APIs
API Description
APIs | API Type | Description | JIMI Protocol Device | JT/T Protocol Device |
---|---|---|---|---|
128 | Request | `Universal API for sending commands to all JIMI&JT/T devices | [√] | [√] |
37121 | Request | Real-time audio and video transmission request command | [√] | |
37122 | Request | Audio and video real-time transmission control commands | [√] | |
37377 | Request | Remote video playback request | [√] | |
37378 | Request | Remote video playback control | [√] | |
37381 | Request | Query the list of audio and video resources | [√] | |
37382 | Request | FTP file upload command | [√] | |
37383 | Request | FTP file upload control | [√] | |
33027 | Request | Setting terminal parameters | [√] | |
33028 | Request | Query terminal parameters | [√] | |
33029 | Request | Terminal control | [√] | |
33030 | Request | Query specified terminal parameters | [√] | |
33031 | Request | Query terminal properties | [√] | |
33283 | Request | Manual acknowledgment alarm | [√] | |
33536 | Request | Text message distribution | [√] | |
34817 | Request | Camera shoots immediately | [√] | |
34818 | Request | Multimedia data retrieval | [√] | |
34819 | Request | Multimedia data upload | [√] | |
34821 | Request | Single multimedia data upload | [√] | |
35072 | Request | Data downlink transparent transmission | [√] | |
37384 | Request | Alarm attachement upload | [√] | |
33027 | Request | Setting terminal parameters | [√] | |
33028 | Request | Query terminal parameters | [√] | |
33029 | Request | Terminal control | [√] | |
33030 | Request | Query specified terminal parameters | [√] | |
33031 | Request | Query terminal properties | [√] | |
33283 | Request | Manual acknowledgment alarm | [√] | |
33536 | Request | Text message distribution | [√] | |
34817 | Request | Camera shoots immediately | [√] | |
34818 | Request | Multimedia data retrieval | [√] | |
34819 | Request | Multimedia data upload | [√] | |
34821 | Request | Single multimedia data upload | [√] | |
35072 | Request | Data downlink transparent transmission | [√] | |
37384 | Request | Alarm attachement upload | [√] | |
/api/device/queryOfflineInstruct | Request | Query offline command | [√] | [√] |
/api/device/deleteOfflineInstruct | Request | Cancel offline command | [√] | [√] |
Request & Response
URL | {InsAddress} /api/device/sendInstruct |
---|---|
Http Method | POST |
Body Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | The IMEI of the device that receives the command |
cmdContent | string | Y | The command code |
serverFlagId | int | Y | The unique identification field for the current request which is used for correspondence between request and response. It's recommended incrementing in order. |
proNo | int | Y | For details, see Chapter 2.1 API command (ProNo) |
platform | string | Y | Platform: web or app |
requestId | string | Y | The unique identification field for the current request which is used for troubleshooting and log tracing. |
cmdType | string | N | cmdType: normallns or general. It is related to offline commands. Regardless of whether the cmdType value is normallns or general, only one offline command of this type will be saved. |
language | string | N | Language: zh or en |
sync | boolean | N | True: Sync; False: Async. Sync refers to the process of issuing the instruction is considered complete until the device responds and returns a result. Async means that once an instruction is sent, regardless of whether the device returns a result or not, the process of issuing the instruction ends. |
offlineFlag | boolean | N | If offlineFlag is true, indicates that commands will be cached when the device is offline or timed out, and will be automatically resended when the device is online; if it is false, the intructions will not be resended. Default: true |
removeLimitFlag | boolean | N | Working together with WAKE_UP command. True: means can continuously send commands to devices after receiving a timeout response. |
timeOut | int | N | Timeout time. Unit: seconds. Default: 30 |
token | string | Y | Access token |
HTTP header
Since the response body is in JSON format, the response header will be as follows.
header | value |
---|---|
Content-Type | application/json;charset=UTF-8 |
Response Content
The response body is in JSON format. A return code
0 from the HTTP response only indicates that your request was successful, so you still need to check the respond body to ensure that you get the correct return value.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success and a non-zero code indicates there is an error. |
msg | string | Y | Description of the result code |
data | JSON | Y | Command execution result which is return by the device. See the table below for details |
Definition of the "data" object
Parameter | DataType | Required | Description |
---|---|---|---|
_code | int | Y | Command response code: 100: The command sent successfully and received a return code indicating the device status, such as busy or error. 200: Invalid parameter 300: Device offline 301: Device not registered with route table (No mapping between IMEI and gateway ID is found in Redis) 302: The last command has been sent and no response indicating "device busy" is received. 303: SMS sent successfully 304: SMS failed 400: Network error (Interrupted, etc.) 500: Code execution exception 600: Request timeout |
_msg | string | Y | Response message to a command |
_type | string | Y | Server flag ID |
_content | string | Y | Command content |
_proNo | string | Y | Protocol number |
_language | string | N | Language |
_imei | string | Y | Device IMEI |
_route_client_time | Date | Y | Route client time |
_serverFlagId | string | Y | Server flag ID |
_gateId | string | Y | Gateway ID |
_route_server_time | Date | Y | Route server time |
E.g.
Response Body:
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "000105042285948",
"_content": "[VERSION]C450_20220309,[BUILD]2022-03-09 14:56",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
json
{
"code": 400002,
"msg": "Missing required parameter,parameter:device imei",
"data": null
}
json
{
"code": 0,
"msg": "The device is offline or times out, and the command is successfully sent offline. ",
"data": {
"_code": "600",
"_msg": "request timeout"
}
}
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "302",
"_msg": "Device busy (previous command has not returned)"
}
}
2.1 Command API(proNo:128)
This is a universal API for issuing commands. It enables SaaS to communicate and interact with devices by sending commands, such as, VERSION#, VIDEOUPLOAD, STARTLIVEURL,STOPLIVEURL,etc.
. Please refer to device command list for command details.
E.g. Uploading event alarms videos of JT/T device via VIDEOUPLOAD
cmdContent
in the request:
[VIDEOUPLOAD,{IP},{PORT},{ALARM LABEL},{CHANNEL},{TYPE}
Parameter | Description |
---|---|
IP | { FileAddress } customers' storage server IP |
PORT | { FileAddress } Storage service port (Default: IoTHub storage service port 23010) port |
alarmLabel | Inside of ADAS/DMS pushing alarm data list |
channel | The corresponding camera of dashcam |
type | 0: Picture, 1:Video, 2:Both |
Request Body
bash
cmdContent=VIDEOUPLOAD,120.78.224.93,23010,34353737373532220307181923000500,1,2&cmdType=normallns&deviceImei=000105042285948&language=zh&offLineFlag=0&platform=web&proNo=128&requestId=6&serverFlagId=0&sync=true&timeOut=4&token=123
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_language": "zh",
"_proNo": "128",
"_code": "100",
"_type": "normallns",
"_imei": "000105042285948",
"_content": "VIDEOUPLOAD,120.78.224.93,23010,34353737373532220307181923000500,1,2",
"_route_client_time": "1647594488392",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
To support HTTPS
, perform the following steps:
- Apply for domain names and certificates
- Set up your own
nginx
service - Configure domain names and certificates
- Map the
HTTPS
port of thenginx
service (default443
) to thejimi-upload
service port (default23010
). - (Only for sending the
VIDEOUPLOAD
instruction) ChangeIP
to the domain name requested in step 1 andport
to the correspondingHTTPS
port number.
Request Body
bash
cmdContent=VIDEOUPLOAD,hkhttpupload.dev.i.jimicloud.com,443,63613365396431220610185520000500,1,2&cmdType=normallns&deviceImei=862708042244652&language=zh&offLineFlag=0&platform=web&proNo=128&requestId=4473&serverFlagId=4473&sync=true&timeOut=4&token=9d74cfe6bf45470baaee4d1909418424
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "862708042244652",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "4473"
}
}
2.2 Real-time Audio/Video(proNo:37121)
SaaS can send a real-time audio and video request, including real-time video transmission, two-way intercom, one-way monitor, center broadcast and transparent transmission. If the request is successful, customer will receive a response. Then the data(audio and/or video) stream will be pushed to IoTHub stream media server. Next, customer can pull the data stream with the URL address(see details on Pull Live Stream URL
) from the stream media server. Please refer to the table below for cmdcontent
details.
cmdContent | Description |
---|---|
DataType | 0: Audio and video 1: Video 2: Two-way intercom 3: Monitor 4: Center broadcast 5: Transparent transmission |
codeStreamType | 0: Main stream 1: Sub stream |
channel | Camera channel number, corresponding to camera 1-5 |
videoIP | Live Video Server IP Address |
videoTCPPort | Live Video Server TCP Port Number Default: {JR-RtpLivePort} |
videoUDPPort | Live Video Server UDP Port Number |
- Case 1
Channel-1 real-time audio and video transmission request
Request Body
json
{
"deviceImei": "869506047517209",
"cmdContent": {
"dataType": "0",
"codeStreamType": "0",
"channel": "1",
"videoIP": "120.78.224.93",
"videoTCPPort": "10002",
"videoUDPPort": "0"
},
"serverFlagId": "0",
"proNo": "37121",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": "1",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_imei": "869506047517209",
"_content": "ok",
"_code": "100",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
- Case 2
SaaS monitor device in one-way intercom
e.g. Send an instruction to a server with ip: 120.78.224.93, port: 1936,deviceIMEI: 869247060001549
Request Body
json
{
"deviceImei": "869247060001549",
"cmdContent": {
"dataType": "0",
"codeStreamType": "5",
"channel": "16",
"videoIP": "120.78.224.93",
"videoTCPPort": "1936",
"videoUDPPort": "0"
},
"serverFlagId": "0",
"proNo": "37121",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": "1",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_imei": "869247060001549",
"_content": "ok",
"_code": "100",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
Pull stream from stream media server
Pull Live Stream URL
- http://{your IoTHub server IP}:8881/{Channel ID}/{Device IMEI}.flv
- rtmp://{your IoTHub server IP}:1936/{Channel ID}/
E.g.:
bashrtmp://120.78.224.93:1936/3/868120303960873 http://120.78.224.93:8881/3/868120303960873.flv
Install a test tool(media player), configure the URL address and pull the stream.
Take 'VLC media player' as an example:
On main menu of VLC media player, click Media --> open network stream--> input network URL-->click
Play
, the video/audio stream can be played on the media player.
2.3 Real-time Audio/Video Control(proNo:37122)
With this command, SaaS can control a real-time audio and video transmission, for example, switch stream, pause stream, and close the audio and video transmission channel. Please refer to the table below for 'cmdContent' details.
cmdContent | DataType | Description |
---|---|---|
channel | byte | The corresponding camera channel number, range: 1-5 |
cmd | byte | 0: Turn off the audio and video transmission command 1: switch stream (add pause and resume) 2: Pause sending all streams on this channel 3: Resume paused streams with the same data type as before 4: Turn off the two-way intercom |
DataType | byte | Turn off audio and video types 0: close the audio and video stream on this channel; 1: Only close the audio on this channel but keep the video; 2: Only close the video on this channel but keep the audio |
codeStreamType | byte | Switch the code stream type. Switch the previously applied stream to the newly applied stream, and the audio is the same as before. The stream for the new application is: 0: Main stream; 1: Sub stream |
E.g. Close all real-time audio and video of channel 1
Request Body
json
{
"deviceImei":000506047517027,
"cmdContent": {
"channel": 1,
"cmd": "0",
"dataType": "0",
"codeStreamType": 0
},
"serverFlagId": 0,
"proNo": 37122,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
2.4 Query Video List(proNo:37381)
Through this API, SaaS can query the audio and/or video lists from the device by combining the audio and video types, channel number, alert type, begin time and end time. After requesting this API, customers can get the data list by requesting push API 1.11 pushing resource list. Please refer to the table below for cmdContent
details.
cmdContent | DataType | Description |
---|---|---|
channel | byte | Logical camera channel number 1~5. And 0 stands for all cameras |
beginTime | long | Start time |
endTime | long | End Time |
alarmFlag | 64Bit | Alarm flag 64Bit: bit0 ~ bit31 (please refer to standard alarm of Alarm Reference); bit32 ~ bit63 (please refer to standard alarm of Alarm Reference); all zero indicate no alarm type |
resourceType | byte | Audio and video resource types. 0: audio and video 1: audio 2: video 3: With or without audio |
codeType | byte | Stream type: 0: main stream or substream 1: main stream 2: substream |
storageType | byte | Storage type: 0: main storage or disaster recovery storage 1: main storage 2: disaster recovery storage storage |
instructionID | byte | Instruction ID uniquely identifies a command, and is used for the correspondence between downlink commands and uplink responses |
E.g.
Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"channel": 0,
"beginTime": "220402113555",
"endTime": "220402113854",
"alarmFlag": 0,
"resourceType": 0,
"codeType": 0,
"storageType": 0,
"instructionID": "123456789"
},
"serverFlagId": 0,
"proNo": 37381,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "000506047517027",
"_content": "0",
"_msg": "AudioVideoResourceList ack successful response",
"_serverFlagId": "11000"
}
}
2.5 Video Playback(proNo:37377)
When SaaS sends an audio and video recording playback request, the device responds with the 0x1205 (device uploads video file list) command, and then the recorded data is transmitted in the form of real-time audio and video data through the RTP protocol payload package format. To use this API, you need to request the API 37381 to get the beginTime and endTime. The video list can be checked via push resource list API.
Please refer to the table below for cmdContent
details.
cmdContent | DataType | Description |
---|---|---|
serverAddress | string | IP address of real-time audio and video server |
tcpPort | int | The port of the real-time audio and video server, set to zero when not using TCP transmission. Default: {JR-RtpHistoryPort}. |
udpPort | int | The port of the real-time audio and video server, set to zero when not using UDP transmission |
channel | byte | The corresponding camera channel number, range: 1-5. |
resourceType | byte | Audio and video resource types: 0: audio and video 1: audio 2: video 3: audio or video |
codeType | byte | Stream type: 0: main stream or substream 1: main stream 2: substream If the channel only transmits audio, set this field to 0. |
storageType | byte | Storage type: 0: main storage or disaster recovery storage 1: main storage 2: disaster recovery storage |
playMethod | byte | Playback method: 0: normal playback 1: fast-forward playback 2: keyframe fast rewind 3: keyframe playback 4: single frame upload |
forwardRewind | byte | Fast forward or fast reverse multiple. When the playback mode is 1 and 2, the content of this field is valid, otherwise it is set to 0. 0: invalid 1: 1x 2: 2x 3: 4x 4: 8x 5: 16x |
beginTime | BCD(BinarycodedDecimal) | Begin time (format:YYMMDDHHMMSS) |
endTime | BCD(BinarycodedDecimal) | End time (format:YYMMDDHHMMSS) |
instructionID | Instruction ID uniquely identifies a command, and is used for the correspondence between downlink commands and uplink responses |
E.g.
Request Body
json
{
"deviceImei": "869506047517209",
"cmdContent": {
"serverAddress": "120.78.224.93",
"tcpPort": "10003",
"udpPort": "0",
"channel": "1",
"resourceType": "0",
"codeType": "0",
"storageType": "0",
"playMethod": "0",
"forwardRewind": "0",
"beginTime": "220402113555",
"endTime": "220402113854",
"instructionID": "123456789"
},
"serverFlagId": 0,
"proNo": 37377,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
Pull stream from stream media server
Pull History Stream URL
rtmp://{your IoTHub server IP}:1936/{Channel ID}/{Device IMEI}.history
http://{your IoTHub server IP}:8881/{Channel ID}/{Device IMEI}.history.flv
E.g.:
bashrtmp://120.78.224.93:1936/3/868120303960873.history http://120.78.224.93:8881/3/868120303960873.history.flv
2.6 Video Playback Control(proNo:37378)
During the audio and video playback process, SaaS can issue playback control commands to control the playback process. Please refer to the table below for cmdContent
details.
cmdContent | DataType | Description |
---|---|---|
channel | byte | Camera channel number,corresponding to camera 1-5 |
playCtrl | byte | Playback Control: 0: Start playback 1: Pause playback 2: End playback 3: Fast-forward playback 4: Keyframe fast-rewind playback 5: Drag playback |
forwardRewind | byte | Fast forward or reverse by multiple. When the playback mode is 3 and 4, the content of this field is valid, otherwise it is set to 0. 0: invalid 1: 1x 2: 2x 3: 4x 4: 8x 5: 16x |
beginTime | BCD(BinarycodedDecimal) | Drag position (YYMMDDHHMMSS). This field is valid when the playback control is 5. |
instructionID | Instruction ID uniquely identifies a command, and is used for the correspondence between downlink commands and uplink responses. The value of this field should be the same as the value in the "remote video playback request" command when the command is issued. |
E.g.
Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"channel": 1,
"playCtrl": 1,
"forwardRewind": 0,
"beginTime": "220402113555",
"instructionID": "123456789"
},
"serverFlagId": 0,
"proNo": 37378,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
2.7 File FTP Upload(proNo:37382)
This command is used to upload large files to customer's target FTP server. To use this API, you need to request API 37381 first to get the beginTime and endTime. Then request this API to upload video files to the specified target FTP address. Customers can access these files by pointing their FTP server address to the specified address.
Please refer to the table below for cmdContent
details.
cmdContent | DataType | Fixed Field |
---|---|---|
serverAddress | string | FTP server address |
ftpPort | int | FTP server port |
userName | string | FTP username |
password | string | FTP password |
fileUploadPath | string | The address where the file will be uploaded and stored |
channel | byte | Camera channel number |
beginTime | BCD(BinarycodedDecimal) | Start time (YYMMDDHHMMSS) |
endTime | BCD(BinarycodedDecimal) | End Time(YYMMDDHHMMSS) |
alarmFlag | 64Bits | Warning sign. bit0 - bit31 (please refer to standard alarm of Alarm Reference) bit32 - bit63 (please refer to standard alarm of Alarm Reference) All 0 indicates that there is no specified alarm |
resourceType | byte | Audio and video resource types. 0: Audio and video 1: Audio 2: Video 3: With or without audio |
codeType | byte | Stream type. 0: Main stream or sub stream 1: Main stream 2: Sub stream |
storageType | byte | Storage location. 0: Master storage or backup storage 1: Master storage 2: Backup storage |
condition | byte | Task execution conditions(bit). bit0: WIFI, when WIFI is 1, it means WIFI download is available; bit1: LAN, when LAN is 1, it means LAN download is available; bit2: 3G/4G, when 3G/4G is 1, it means 3G/4G download is available |
instructionID | Instruction ID uniquely identifies a command, and is used for the correspondence between downlink commands and the uplink responses |
E.g. Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"serverAddress": "120.78.224.93",
"ftpPort": 1000,
"userName": "testFTP",
"password": "HK85RTEZ",
"fileUploadPath": "/video/",
"channel": 1,
"beginTime": "220402113555",
"endTime": "220402113854",
"alarmFlag": 0,
"resourceType": 0,
"codeType": 0,
"storageType": 0,
"condition": 1,
"instructionID": "123456789"
},
"serverFlagId": 0,
"proNo": 37382,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "869247060001259",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.8 File FTP Upload Control(proNo:37383)
Through this API, SaaS notifies the device to pause, resume or cancel all files being transferred. Please refer to the table below for cmdContent
details.
cmdContent | DataType | Description |
---|---|---|
uploadCtrl | byte | 0: pause 1: continue 2: cancel |
instructionID | Instruction ID uniquely identifies a command, and is used for the correspondence between downlink commands and uplink responses. When the command is issued, the value of this field must be the same as the value in the "FTP file upload" command |
E.g. Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"uploadCtrl": 0,
"instructionID": "123456789"
},
"serverFlagId": 0,
"proNo": 37383,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
2.9 Setting Terminal Parameter(proNo:33027)
SaaS sets the device parameters by sending a setting terminal parameters
request, and the device replies with a response body. Devices under different network standards should support some unique parameters of their respective networks. Please refer to the table below for cmdContent
details.
Table 2.3.9.1
cmdContent | DataType | Description |
---|---|---|
1 | string | Interval for sending heartbeat messages, in seconds (s) |
19 | string | Main server address, IP or domain name |
23 | string | Backup server address, IP or domain name |
24 | string | Server TCP port |
25 | string | Server UDP port |
32 | string | Position reporting strategy. 0: Timing reporting 1: Distance reporting 2: Timing and distance reporting |
33 | string | Location reporting scheme. 0: according to ACC status. 1: Determine the login status based on the login status and ACC status. Check the login status first. If device login, then check the ACC status |
34 | string | The interval between the driver not logging in and reporting, in seconds (s). |
39 | string | Time interval for reporting sleep, in seconds (s). |
40 | string | Emergency alarm reporting interval, in seconds (s). |
41 | string | Default time report interval, in seconds (s). |
44 | string | Default distance reporting interval, in meters (m). |
45 | string | The distance interval between the driver not logging in and reporting, in meters (m). |
47 | string | Emergency alarm reporting distance interval, in meters (m). |
48 | string | Inflection point supplementary transmission Angle. Range: (<180) degree |
49 | string | Radius of electronic fence (illegal displacement threshold), in meters(m) |
85 | string | Maximum speed in kilometres per hour (km/h) |
86 | string | Duration of overspeed, in seconds (s) |
87 | string | Continuous driving time threshold, in seconds (s) |
88 | string | Cumulative driving time threshold of the day, in seconds (s) |
89 | string | Minimum rest time, in seconds (s) |
90 | string | Maximum parking time, in seconds (s) |
91 | string | Overspeed warning difference. 1/10Km/h |
92 | string | Fatigue driving warning difference, in seconds (s) |
93 | string | Collision alarm parameter setting: b7-b0: Collision time, unit: 4ms; b15-b8: Collision acceleration, unit: 0.1 g(g represents gravitational acceleration). Setting range: 0~79, default: 10. |
94 | string | Rollover alarm parameter setting: Rollover Angle, unit: 1 degree, default: 30 degree degrees. |
132 | string | The license plate color is 5.4.12 of JT/T 415-2006 |
Table 2.3.9.2: Set the audio and video parameters of the terminal
cmdContent | DataType | Description |
---|---|---|
117 | string | For audio and video parameter setting, 12 parameter values must be provided at a time. See Table 2.3.9.2.1 for parameter details. Each parameter is separated by comma ",". |
119 | string | For single video channel parameter setting, 13 multiples of parameter values must be provided at a time. See Table 2.3.9.2.3 for details. Each parameter is separated by comma ",". |
Table 2.3.9.2.1: Definition and description of audio and video parameters
Parameters NO | Description |
---|---|
1 | Real-time stream encoding mode. 0: CBR (Constant Bit Rate) 1: VBR (Variable Bit Rate) 2: ABR (Average Bit Rate) |
2 | Real-time stream resolution. 0: QCIF 1: CIF 2: WCIF 3: D1 4: WD1 5: 720P 6: 1080P |
3 | Real-time stream keyframe interval. Range: (1-1000) frames |
4 | Real-time stream target frame rate. Range: (1-120) frames/s |
5 | Real-time stream target bit rate. Unit: (kbps) |
6 | Store stream encoding pattern. 0: CBR (Constant Bit Rate) 1: VBR (Variable Bit Rate) 2: ABR (Average Bit Rate) |
7 | Store stream resolution. 0: QCIF 1: CIF 2: WCIF 3: D1 4: WD1 5: 720P 6: 1080P |
8 | Store stream keyframe interval. Range: (1-1000) frames |
9 | Store stream target frame rate. Range: (1-120) frames/s |
10 | Store stream target bit rate. Unit: (kbps) |
11 | OSD subtitle overlay settings. Bitwise setting: 0 means no overlay, 1 means overlay; Bit0: Date and time; Bit1: License plate number Bit2: Camera channel number Bit3: Latitude and longitude Bit4: Driving record speed Bit5: Satellite positioning speed Bit6: Continuous driving time |
12 | Whether to enable audio output. 0: DISABLE 1: ENABLE |
Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"117": "0,5,25,30,500,0,5,30,30,500,0,1"
},
"serverFlagId": 0,
"proNo": 33027,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
Table 2.3.9.2.3: Set parameters for individual video channels
Parameters NO | Description |
---|---|
1 | Camera channel Number. According to Table 2 in JT/T 1078 -- 2016 |
2 | Real-time stream encoding mode 0: CBR(Constant Bit Rate) 1: VBR(Variable Bit Rate) 2: ABR(Average Bit Rate) |
3 | Real-time stream resolution. 0: QCIF 1: CIF 2: WCIF 3: D1 4: WD1 5: 720P 6: 1080P |
4 | Real-time stream keyframe interval. Range: (1-1000) frames |
5 | Real-time stream target frame rate. Range: (1-120) frames/s |
6 | Real-time stream target bit rate. Unit: (kbps) |
7 | Store stream encoding pattern. 0: CBR(Constant Bit Rate) 1: VBR(Variable Bit Rate) 2: ABR(Average Bit Rate) |
8 | Store stream resolution. 0: QCIF 1: CIF 2: WCIF 3: D1 4: WD1 5: 720P 6: 1080P |
9 | Store stream keyframe interval. Range: (1-1000) frames |
10 | Store stream target frame rate. Range: (1-120) frames/s |
11 | Store stream target bit rate. Unit: (kbps) |
12 | OSD subtitle overlay Settings. Bitwise setting: 0 means no overlay 1 means overlay; Bit0: Date and time Bit1: License plate number Bit2: Camera channel number Bit3: Latitude and longitude Bit4: Driving record speed Bit5: Satellite positioning speed Bit6: Continuous driving time |
Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"119": "1,0,5,25,30,500,0,5,25,30,500,0"
},
"serverFlagId": 0,
"proNo": 33027,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
E.g.: Set the heartbeat sending interval to 3 seconds and the IP address of the primary server to 127.0.0.1
Request Body
json
{
"deviceImei": "000506047517027",
"cmdContent": {
"1": "3",
"19": "127.0.0.1"
},
"serverFlagId": 0,
"proNo": 33027,
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": 1,
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "000506047517027",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "11000"
}
}
2.10 Query Terminal Parameter(proNo:33028)
SaaS queries the setting of a device by sending a query terminal parameters
request, and the device replies with a querying terminal parameters
response. Please refer to above Table 2.3.9.1 for details of cmdContent
. It is empty in this command request, see details below.
Request Body
json
{
"deviceImei": "869247060001390",
"cmdContent": "",
"serverFlagId": "11000",
"proNo": "33028",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": " 1",
"token": "123"
}
Response body
json
{
"code": 0,
"msg": "success",
"data": {
"_proNo": "260",
"_code": "100",
"_imei": "869247060001390",
"_content": "{\"44\":\"2000\",\"88\":\"28800\",\"23\":\"usiothub.tracksolidpro.com\",\"45\":\"2000\",\"89\":\"1200\",\"24\":\"31502\",\"46\":\"2000\",\"25\":\"4000\",\"47\":\"2000\",\"48\":\"90\",\"49\":\"20\",\"132\":1,\"90\":\"600\",\"91\":\"5.0\",\"92\":\"1800\",\"93\":\"2610\",\"32\":\"0\",\"33\":\"0\",\"34\":\"30\",\"39\":\"30\",\"19\":\"120.78.224.93\",\"1\":\"3\",\"3\":\"3\",\"4\":\"0\",\"totalNum\":\"84\",\"40\":\"30\",\"41\":\"10\",\"85\":\"110\",\"86\":\"30\",\"87\":\"14400\"}",
"_msg": "Command communication successful response",
"_serverFlagId": "11000"
}
}
2.11 Query Specified Terminal Parameter(proNo:33030)
This command is used to query the setting of a specified device. For querying the specified terminal parameters, please refer to above Table 2.3.9.1, the cmdContent
of the request body only contains code.
E.g.
44
represents the default distance reporting interval, 45
represents the distance interval between the driver not logging in and reporting,
if set cmdContent
with these two numbers in the request body, the device will return the corresponding distance interval, like {"44":"2000","45":"2000","totalNum":"2"}
, in the corresponding _content
in the response body.
Request Body
json
{
"deviceImei": "869247060001390",
"cmdContent": "{\"44\":\"\",\"45\":\"\"}",
"serverFlagId": "11000",
"proNo": "33030",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"offLineFlag": " 1",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_proNo": "260",
"_code": "100",
"_imei": "869247060001390",
"_content": "{\"44\":\"2000\",\"45\":\"2000\",\"totalNum\":\"2\"}",
"_msg": "Command communication successful response",
"_serverFlagId": "11000"
}
}
2.12 Camera Shoot Immediately(proNo:34817)
SaaS sends the camera shooting immediately command to the device, which requires the device to reply with the terminal general response message. If real-time upload is specified, the device will upload the image/video to customers' IoTHub server folder(default:/iothub/jimi-upload-process/uploadFile) after shooting; otherwise it will store the image/video, customers can get it by requesting the multimedia data upload API (pro.34819). Please refer to the table below for cmdContent
details.
cmdContent | DataType | Description |
---|---|---|
channel | byte | Camera channel number, corresponding to camera 1-5 |
photoCmd | int | Shooting command. 0 means stop shooting 0xFFFF indicates video recording Others indicate the number of photos taken |
timeInterval | int | Photo interval/recording time. Unit: second, 0 means taking pictures at the minimum interval or recording all the time |
saveFlag | byte | Save or upload in real time. 1: save 0: upload in real-time |
resolution | byte | Resolution of a photograph. 0x01: 320 * 240 0x02: 640 * 480 0x03: 800 * 600 0x04: 1024 * 768 0x05: 176 * 144[Qcif] 0x06: 352 * 288[Cif] 0x07: 704 * 288[HALF D1] 0x08: 704 * 576[D1] |
quality | byte | Image/video quality. Range: 1-10 1 means minimum mass loss 10 means maximum compression ratio |
light | byte | Brightness of a photograph. Range: 0~255 |
contrast | byte | Contrast of a photograph. Range: 0~127 |
saturability | byte | Saturation of a photograph. Range: 0~127 |
chroma | byte | Chroma of a photograph. range: 0~255 |
E.g. Request Body
json
{
"imei": "869247060001259",
"cmdContent": {
"channel":1,
"photoCmd":1,
"timeInterval":3,
"saveFlag":1,
"resolution":1,
"quality":10,
"light":200,
"contrast":60,
"saturability":60,
"chroma":60
},
"serverFlagId": "0",
"proNo": "34817",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
json
{
"imei": "869247060001259",
"cmdContent": {
"channel":1,
"photoCmd":65535,
"timeInterval":3,
"saveFlag":0,
"resolution":2,
"quality":10,
"light":200,
"contrast":60,
"saturability":60,
"chroma":60
},
"serverFlagId": "0",
"proNo": "34817",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "869247060001259",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.13 Multimedia Retrieval(proNo:34818)
SaaS acquires the status of the terminal storing multimedia data by sending this command. The terminal is required to reply with the stored multimedia data retrieval response message. Please refer to the table below for details.
cmdContent | DataType | Description |
---|---|---|
mediaType | byte | Multimedia file type. 0: Image 1: Audio 2: Video |
channel | byte | Camera channel number, corresponding to camera 1-5, 0 represents all channels that retrieve the media type |
eventCode | byte | Event encoding. 0: The platform issued commands 1: Timing Action 2: Robbery Alarm Triggered 3: Side-rolling crash alarm triggered; Other reservations |
beginTime | BCD(BinarycodedDecimal) | Start time. Format: YYMMDDHHMMSS. |
endTime | BCD(BinarycodedDecimal) | End time. Format: YYMMDDHHMMSS. |
E.g.
Request Body
json
{
"imei": "869247060001259",
"cmdContent": {
"mediaType":0,
"channel":1,
"eventCode":0,
"beginTime":"220808140000",
"endTime":"220808233000"
},
"serverFlagId": "0",
"proNo": "34818",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code":0,
"msg":"success",
"data":
{
"_proNo":"2050",
"_code":"100",
"_imei":"869247060001259",
"_content":{
"mediaItemsNum": 3,
"mediaItemsList": [{
"eventCode": 0,
"latitude": 22.576555,
"channel": 1,
"id": 835772644,
"type": 0,
"longitude": 113.943044
}, {
"eventCode": 0,
"latitude": 22.57646,
"channel": 1,
"id": 835774005,
"type": 0,
"longitude": 113.943286
}, {
"eventCode": 0,
"latitude": 22.576548,
"channel": 1,
"id": 835774145,
"type": 0,
"longitude": 113.942841
}]
},
"_msg":"Command communication successful response",
"_serverFlagId":"0"
}
}
Description of "\_content" in Response Body
_content
in Response Body
Parameter | DataType | Required | Description |
---|---|---|---|
mediaItemsNum | int | Y | The number of items in the mediaItemsList, 0 means no data |
mediaItemsList | string | Y | Media items list |
Description of mediaItemsList
Parameter | DataType | Required | Description |
---|---|---|---|
mediaId | int | Y | |
DataType | int | Y | Media type 0: Image 1: Audio 2: Video |
channel | int | Y | Channel number |
eventCode | int | Y | |
longitude | double | Y | Longitude |
latitude | double | Y | Latitude |
2.14 Multimedia Upload(ProNo:34819)
This command is used to upload the device stored multimedia data to customers IoTHub server folder(default:/iothub/jimi-upload-process/uploadFile). Customers can get data from the folder through the ftp service. Please refer to the table below for details.
cmdContent | DataType | Description |
---|---|---|
mediaType | int | Multimedia file type. 0: Image 1: Audio 2: Video |
channel | int | Camera channel number, corresponding to camera 1-5. 0 represents all channels that retrieve the media type |
eventCode | int | Event encoding. 0: The platform issued commands 1: Timing action 2: Robbery alarm triggered 3: Side-rolling crash alarm triggered Other reservations |
beginTime | string | Start time. Format: YYMMDDHHMMSS |
endTime | string | End time. Format: YYMMDDHHMMSS |
delFlag | int | Delete flag. 0: Keep 1: Delete |
E.g.
Request Body
json
{
"imei": "869247060001259",
"cmdContent": {
"mediaType":0,
"channel":1,
"eventCode":0,
"beginTime":"220806140000",
"endTime":"220806233000",
"delFlag":0
},
"serverFlagId": "0",
"proNo": "34819",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "869247060001259",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.15 Data Downlink Passthrough(proNo:35072)
cmdContent | DataType | Description |
---|---|---|
DataType | byte | Transmission Message Type. 0x00: GNSS module detailed positioning data 0x0B: Road transport permit IC card information 0x41: Serial port 1 pass-through 0x42:Serial port 2 Transparent transmission 0xF1-0xFF: User-defined pass-through messages 0xF0 is used for device custom commands, the message type sent through this channel cannot be 0xF0 |
rawContent | Transmission Message Content. Message content must be base64 encoded |
E.g. Request Body
json
{
"imei": "869247060001259",
"cmdContent": "{
"type": 241,
"rawContent":"MTIzNDUu5L2g5aW9",
}",
"serverFlagId": "0",
"proNo": "35072",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "869247060001259",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.16 Alarm Manual Acknowledgment(proNo:33283)
This command allows customers to acknowledge alarm message and alarm type manually. Please refer to the table below for details.
cmdContent | DataType | Description |
---|---|---|
alarmSerialNo | int | Alarm message serial number that needs to be confirmed manually, 0 means all alarms of this alarm type |
alarmType | int | Manual acknowledgment of alarm types. Please refer to the table below for details |
Manually acknowledge alarm type
Bit | Description |
---|---|
0 | 1: Confirm critical alarm |
1-2 | Reserved |
3 | 1: Confirm danger alarm |
4-19 | Reserved |
20 | 1: Confirm area alarm |
21 | 1: Confirm route alarm |
22 | 1: Confirm insufficient travel time/process alarm |
23-26 | Reserved |
27 | 1: Confirm illegal ignition alarm |
28 | 1: Confirm illegal displacement alarm |
29-31 | Reserved |
E.g.
Request Body
json
{
"deviceImei": "869247060001259",
"cmdContent": "{\"alarmSerialNo\":0,\"alarmType\":2}",
"serverFlagId": "5",
"proNo": "33283",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123",
"language": "en",
"sync": "true",
"offlineFlag": "false",
"callbackUrl": "http://120.78.224.93:10088"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "869247060001259",
"_content": "ok",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.17 Terminal Control(proNo:33029)
This API is used to control the terminal for upgrading and monitoring. Details about the cmdContent
, please refer to the table below.
cmdContent | DataType | Description |
---|---|---|
cmd | int | Terminal control command. 1: Wireless upgrade 2: Control terminal connection to specified server 4: Terminal reset 5: Terminal restore factory settings |
params | string | Fields are separated by a half corner ';', and each STRING field is first processed according to GBK encoding before forming a message 1: URL address; Dialing point name; Dialpoint username; Dialing password; Address; TCP port number; UDP port number; Manufacturer ID; Hardware version; Firmware version; The time limit for connecting to the specified server Note: each parameter field must have a value, if the parameter field does not have a value, fill in the blank string) 2: Connection control; Regulatory platform authentication code; Dial point name; Dialing username; Dialing password; Address; TCP port number; Udp port number; The time limit for connecting to the specified server (except for the connection control value, if a parameter has no value, fill in a blank character. If the connection control is 1, it means switching back to the default server without any subsequent parameters, which is directly returned here) 4: None 5: None |
E.g.
Request Body
json
{
"deviceImei": "868120303960873",
"cmdContent": "{
"cmd":1,
"params": "www.123.com;test;usr;12345;172.26.10.48;12222;12222;1234567890;1.1.1;2.2.2;2"
}",
"serverFlagId": "5",
"proNo": "33029",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_imei": "868120303960873",
"_content": "ok",
"_code": "100",
"_msg": "Command communication successful response",
"_serverFlagId": "1"
}
}
2.18 Query Terminal Property(proNo:33031)
This API is used to query the specified terminal properties. cmdContent
is empty in the request body. Fields of the response body, please refer to the table below.
Fields of the response body
Param | DataType | Description |
---|---|---|
_code | String | Instruction response code |
_imei | String | IMEI |
_content | String | Instruction content |
_msg | String | Instruction response message |
_serverFlagId | String | Server Flag ID |
For details of _content
, please refer to the table below.
Field | DataType | Description |
---|---|---|
deviceType | String | Terminal type |
companyId | String | Manufacturer ID |
deviceModels | String | Terminal model |
deviceId | String | Terminal ID |
iccid | String | ICCID number |
hwVer | String | Hardware version number length |
firmwareVer | String | Firmware Version |
gnssAttr | String | GNSS Module Properties |
communAttr | String | Communication Module Properties |
Request Body
json
{
"deviceImei": "868120303960873",
"cmdContent": "{}",
"serverFlagId": "0",
"proNo": "33031",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_code": "100",
"_imei": "868120303960873",
"_content": "{"deviceType":127,"companyId":"[0, 0, 0, 0, 0]","deviceModels":"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]","deviceId":"[0, 0, 0, 0, 0, 0, 0]","iccid":"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]","hwVer":"3.1","firmwareVer":"1.6.06","gnssAttr":3,"communAttr":255}",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.19 Text Distribution(proNo:33536)
This API is used to send text message to devices, then the device will play the text. Details of the cmdContent
, please refer to the table below.
cmdContent | DataType | Description |
---|---|---|
flag | int | Please refer to the table below for flag bit definition. Convert it to decimal when issuing commands. |
text | string | Maximum length is 1024 bytes, encoded by GBK. |
Flag bit definition
bit | Description |
---|---|
0 | Emergency |
1 | Reserved |
2 | Terminal display |
3 | Terminal TTS broadcast reading |
4 | Advertising screen display |
5 | 0: Central Navigation Information 1: CAN fault code information |
6-7 | Reserved |
Request Body
json
{
"deviceImei": "868120303960873",
"cmdContent": "{ "flag": 0, "text":"Hello JIMI!"}",
"serverFlagId": "0",
"proNo": "33536",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_imei": "868120303960873",
"_content": "ok",
"_code": "100",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.20 Alarm Attachment Upload(proNo:37384)
After receiving the alarm/event information with attachments, the SaaS platform can issue this attachment upload command to the device and upload the attachment to the server folder(Default:/iothub/jimi-upload-process/uploadFile/). Meanwhile, the attachment will be deleted from the device
, which means the file can only be uploaded once.
cmdContent | DataType | Description |
---|---|---|
serverLen | byte | length |
serverAddress | string | server IP address |
tcpPort | string | TCP transmission server port |
udpPort | string | UDP transmission server port |
alarmLabel | byte | Alarm ID |
alarmNumber | byte | 32 byte unique ID. Definition: an 7-byte terminal ID (represented by the last 14 ASCII digits of the complete IMEI), followed by an 9 bytes of alarm time field + sequence number + number of attachments + reserved(00). Please refer to the example below for details. |
Combination and transformation of alarmNumber
IMEI:
8 68120303960873 -> 3638313230333033393630383733
+
alarmTime:
230821154011 -> 323330383231313534303131
+
attachment number:
0005 -> 30303035
+
reserved 00 -> 3030
=> 3638313230333033393630383733 + 323330383231313534303131 + 30303035 +
3030
=> 3638313230333033393630383733323330383231313534303131303030353030
Request Body
json
{
"deviceImei": "868120303960873",
"cmdContent": "{
"serverLen":13,
"serverAddress":"172.26.10.126",
"tcpPort":21188,
"udpPort":0,
"alarmLabel":"33393630383733230913144118000500",
"alarmNumber":"3638313230333033393630383733323330383231313534303131303030353030"
}",
"serverFlagId": "0",
"proNo": "37384",
"platform": "web",
"requestId": "6",
"cmdType": "normallns",
"token": "123"
}
Response Body
json
{
"code": 0,
"msg": "success",
"data": {
"_imei": "868120303960873",
"_content": "ok",
"_code": "100",
"_msg": "Command communication successful response",
"_serverFlagId": "0"
}
}
2.21 Query Offline Command
Request
URL | {InsAddress} /api/device/queryOfflineInstruct |
---|---|
Http Method | POST |
Body Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | The IMEI of the device that receives the command |
cmdType | string | N | The command type, such as normallns-general |
Response
header | value |
---|---|
Content-Type | application/json;charset=UTF-8 |
Response Content
The response body is in JSON format.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success, a non-zero code indicates there is an error. E.g. :"20002" indicates that the offline command does not exist |
msg | string | Y | Description of the result code |
data | JSON | N | Offline command content |
2.22 Cancel Offline Command
Request
URL | {InsAddress} /api/device/deleteOfflineInstruct |
---|---|
Http Method | POST |
Body Content-Type | application/x-www-form-urlencoded |
Request Parameters
Parameter | DataType | Required | Description |
---|---|---|---|
deviceImei | string | Y | The IMEI of the device that receives the command |
cmdType | string | N | The command type, such as normallns-general |
Response
header | value |
---|---|
Content-Type | application/json;charset=UTF-8 |
Response Content
The response body is in JSON format.
Parameter | DataType | Required | Description |
---|---|---|---|
code | int | Y | Result code, where 0 indicates success, a non-zero code indicates there is an error. E.g.:"20002" indicates that the offline command does not exist |
msg | string | Y | Description of the result code |
3 Query APIs
API Description
API | API Type | Description | JIMI Protocol Device | JT/T Protocol Device |
---|---|---|---|---|
/api/v2/alarm/getAlarm | Request | Query alarm data of JT/T devices | [√] | |
/api/v2/device/deviceTrackerHB | Request | Query the latest Heartbeat of JT/T devices | [√] | |
/api/v2/tracker/trackByTime | Request | Query tracks of JT/T devices | [√] | |
/api/v2/tracker/trackOtherPosByTime | Request | Track JT/T devices other positions by time | [√] | |
/api/alarm/getAlarm | Request | Query alarm data of JIMI devices | [√] | |
/api/device/deviceTrackerHB | Request | Query the latest Heartbeat of JIMI devices | [√] | |
/api/tracker/trackByTime | Request | Track JIMI devices other positions by time | [√] | |
/api/tem/getTemDetail | Request | Query temperature and humidity of JIMI devices | [√] | |
/download/ | Request | File Storage API | [√] |
3.1 Query API (V2, for JT/T devices)
3.1.1 Alarms
Request Parameters
URL | {ApiAddress}/api/v2/alarm/getAlarm |
---|---|
Http Method | GET |
HttpTransfer parameter | URLTransfer parameter |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
alertType | int | N | Alert type |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
http://113.108.62.202:9080/api/v2/alarm/getAlarm?deviceImei=868120240367331&alertType=22&startTime=2020-11-11 00:00:00&endTime=2020-11-12 00:00:00
Response
json
{
"code": 0,
"msg": "The query is successful",
"data": [
{
"alarmMsg": "{\"deviceImei\":\"000105042285948\",\"msg\":{\"alarmId\":0,\"alarmLabel\":\"37,35,31,31,38,39,37,22,01,20,13,45,09,00,05,00\",\"alarmLevel\":2,\"alarmStatus\":0,\"alarmTime\":\"2022-03-16 10:11:09\",\"alarmType\":2,\"alertType\":\"264\",\"altitude\":64,\"carSpeed\":90,\"carStatus\":65535,\"deviceImei\":\"000105042285948\",\"frontCarSpeed\":0,\"frontDistance\":0,\"gateTime\":\"2022-03-17 06:52:08\",\"lat\":22.576553,\"lng\":113.943069,\"offtrackType\":0,\"roadData\":0,\"roadType\":0},\"msgClass\":1,\"postTime\":\"2022-03-16 10:11:09\",\"type\":\"DEVICE\"}"
}
]
}
3.1.2 Latest Heartbeat
Request Parameters
URL | {ApiAddress}/api/v2/device/deviceTrackerHB |
---|---|
Http Method | GET |
HttpTransfer Parameter | URLTransfer Parameter |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImeis | String | Y | The IMEI(s) of the device(s) that receives the command(s), which are separated by commas (,) if multiple devices are involved |
Example
bash
http://113.108.62.202:9080/api/v2/device/deviceTrackerHB?deviceImeis=000105042285948
Response
Example
json
{
"code": 0,
"msg": "The query is successful",
"data": [
{
"gateTime": "2022-03-17T06:35:14.943+00:00",
"deviceImei": "000105042285948"
}
]
}
3.1.3 Tracks
Request Parameters
URL | {ApiAddress}/api/v2/tracker/trackByTime |
---|---|
Http Method | POST |
Http Transfer Parameter | Body, Content-Type: application/x-www-form-urlencoded |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
POST http://120.78.224.11:9080/api/v2/tracker/trackByTimeRequest Body deviceImei: "000105042285948" startTime: "2022-03-17 12:00:00" endTime: "2022-03-17 23:00:00"
Response
Example
json
{
"code": 0,
"msg": "SUCCESS",
"data": [
{
"deviceImei": "000105042285948",
"lat": 21.943045,
"lng": 62.314453,
"gpsTime": "2022-03-17T06:41:38.000+00:00",
"direction": 0,
"gpsSpeed": 0.0,
"postType": "1",
"postMethod": 0,
"distance": 0,
"altitude": 0,
"acc": 1,
"satelliteNum": 2,
"gpsMode": 0,
"gateTime": "2022-03-17T06:42:58.616+00:00",
"status": 262159
}
]
}
3.1.4 OtherPos
Request Parameters
URL | {ApiAddress}/api/v2/tracker/trackOtherPosByTime |
---|---|
Http Method | POST |
Http Transfer Parameter | Body, Content-Type: application/x-www-form-urlencoded |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
POST http://120.78.224.11:9080/api/v2/tracker/trackOtherPosByTime Body deviceImei: "000105042285948" startTime: "2022-05-12 00:00:00" endTime: "2022-05-14 23:00:00"
Response
Example
json
{
"code": 0,
"msg": "SUCCESS",
"data": [
{
"otherPosMsg": "{\"deviceImei\":\"000105042285948\",\"gateTime\":\"2022-05-19 08:50:41\",\"gpsTime\":\"2022-05-13 08:15:06\",\"lbsJson\":\"{\\\"mnc\\\":0,\\\"cellList\\\":[\\\"10365,48913921,74\\\",\\\"10365,48913922,45\\\"],\\\"mcc\\\":460}\",\"postType\":\"LBS\"}"
},
{
"otherPosMsg": "{\"deviceImei\":\"000105042285948\",\"gateTime\":\"2022-05-19 08:54:30\",\"gpsTime\":\"2022-05-13 08:15:06\",\"lbsJson\":\"{\\\"mnc\\\":0,\\\"cellList\\\":[\\\"10365,48913921,74\\\",\\\"10365,48913922,45\\\"],\\\"mcc\\\":460}\",\"postType\":\"LBS\"}"
}
]
}
3.2 General Query API
3.2.1 Alarms
Request Parameters
URL | {ApiAddress}/api/alarm/getAlarm |
---|---|
Http Method | GET |
HttpTransfer parameter | URLTransfer parameter |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
alertType | int | N | Alert type |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
http://113.108.62.202:9080/api/alarm/getAlarm?deviceImei=868120240367331&alertType=22&startTime=2020-11-11 00:00:00&endTime=2020-11-12 00:00:00
Response
json
{
"code": 0,
"msg": "The query is successful",
"data": [
{
"alarmMsg": "{\"deviceImei\":\"000105042285948\",\"msg\":{\"alarmId\":0,\"alarmLabel\":\"37,35,31,31,38,39,37,22,01,20,13,45,09,00,05,00\",\"alarmLevel\":2,\"alarmStatus\":0,\"alarmTime\":\"2022-03-16 10:11:09\",\"alarmType\":2,\"alertType\":\"264\",\"altitude\":64,\"carSpeed\":90,\"carStatus\":65535,\"deviceImei\":\"000105042285948\",\"frontCarSpeed\":0,\"frontDistance\":0,\"gateTime\":\"2022-03-17 06:52:08\",\"lat\":22.576553,\"lng\":113.943069,\"offtrackType\":0,\"roadData\":0,\"roadType\":0},\"msgClass\":1,\"postTime\":\"2022-03-16 10:11:09\",\"type\":\"DEVICE\"}"
}
]
}
3.2.2 Latest Heartbeat
Request Parameters
URL | {ApiAddress}/api/device/deviceTrackerHB |
---|---|
Http Method | GET |
HttpTransfer Parameter | URLTransfer Parameter |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImeis | String | Y | The IMEI(s) of the device(s) that receives the command(s), which are separated by commas (,) if multiple devices are involved |
Example
bash
http://113.108.62.202:9080/api/device/deviceTrackerHB?deviceImeis=202009080911112
Response
Example
json
{
"code": 0,
"msg": "The query is successful",
"data": [
{
"gsmSign": 3,
"gateTime": "2022-03-17T10:56:18.221+00:00",
"deviceImei": "202106290000010",
"powerLevel": 2,
"acc": 1
}
]
}
3.2.3 Tracks
Request Parameters
URL | {ApiAddress}/api/tracker/trackByTime |
---|---|
Http Method | POST |
Http Transfer Parameter | Body, Content-Type: application/x-www-form-urlencoded |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
POST http://120.78.224.11:9080/api/tracker/trackByTimeRequest Body deviceImei: "202106290000010"startTime: "2022-03-17 12:00:00"endTime: "2022-03-17 23:00:00"
Response
Example
json
{
"code": 0,
"msg": "SUCCESS",
"data": [
{
"deviceImei": "202106290000010",
"gpsTime": "2022-03-17T10:56:12.695+00:00",
"gateTime": "2022-03-17T10:56:12.695+00:00",
"satelliteNum": 11,
"lng": 113.864481,
"lat": 22.589609
"gpsMode": 0,
"gpsSpeed": -1.0,
"direction": 332,
"acc": "1",
"distance": "-1",
"postMethod": 0,
"postType": "1",
"status": 0
}
]
}
3.2.4 Tem
Request Parameters
URL | {ApiAddress}/api/tem/getTemDetail |
---|---|
Http Method | GET |
HttpTransfer parameter | URLTransfer parameter |
Parameter | Type | Required | Description |
---|---|---|---|
deviceImei | String | Y | The IMEI of the device that receives the command |
startTime | String | Y | The start time, whose format is 2020-10-10 00:00:00 (UTC) |
endTime | String | Y | The end time, whose format is 2020-10-10 23:59:59 (UTC) |
Example
bash
http://113.108.62.202:9080/api/tem/getTemDetail?deviceImei=861364144249512&startTime=2021-01-20 00:45:09&endTime=2023-01-20 23:45:09
Response
json
{
"code": 0,
"msg": "The query is successful",
"data": [
{
"temMsg": "{\"deviceImei\":\"861364144249512\",\"gateTime\":\"2022-04-07 13:40:09\",\"hum\":79.6,\"pathNum\":0,\"tem\":49.5}"
}
]
}
3.3 File Storage API
This API is used to download images and videos from the data storage service(Default:/iothub/dvr-upload/fileUpload). Customers can develop their own storage service and configure it in the 'volumes' of the iothub dvr-upload service. Request
URL | {ApiAddress}/download/{Filename} |
---|---|
Http Method | GET | POST |
Filename
=Name of the alarm file
http://{storage server IP}:{storage server port}/download/{Filename}
http://{storage server IP}:{storage server port}/download/{Foldername}/{Filename}
Example
bash
http://172.26.10.126:23010/download/CMD_862798051215438_00000001_2023_09_21_10_48_03_I_08.mp4
http://172.26.10.126:23010/download/862798051215438/CMD_862798051215438_00000001_2023_09_21_10_48_03_I_08.mp4
Response
The Interface returns the byte stream of the file. Then read the byte stream to generate the file or use a browser to download the file.
Alarm Reference
1 JIMI Device Alarms (msgClass = 0)
1.1 GNSS-Related Alerts
alertType | Description |
---|---|
4 | Vehicle entered geofence |
5 | Vehicle left geofence |
10 | Entered GNSS dead zone |
11 | Left GNSS dead zone |
13 | Device got the first fix |
1.2 Device Status Alerts
alertType | Description |
---|---|
0 | Device works correctly |
2 | External power was cut off |
12 | Device is powered on |
14 | Voltage of external power is rather low |
15 | Device entered protection mode due to low external power |
16 | SIM card changed |
17 | Device was powered off manually |
18 | Device entered airplane mode due to low external power |
19 | Device was removed |
21 | Device has shut down due to low external power |
24 | Device cover was opened |
25 | Voltage of internal battery is rather low |
40 | Device is about to enter sleep mode |
50 | Device was plugged out |
90 | Voltage of external power is rather low |
136 | External power was cut off |
141 | Device changed to land transport mode |
149 | Device changed to waterborne transport mode |
150 | Device changed to stationery mode |
191 | Device was plugged out |
224 | Device was plugged in |
1.3 Vehicle Status Alerts
alertType | Description |
---|---|
138 | Fuel and power reconnected |
139 | Fuel and power disconnected |
168 | Engine failed |
169 | Vehicle battery was undervoltage |
203 | Vehicle has parked for too long |
227 | Water temperature is too high |
254 | Ignition turned on |
255 | Ignition turned off |
1.4 Personal Safety Alerts
alertType | Description |
---|---|
1 | An emergency alert was triggered |
35 | User has fallen down |
39 | Device was opened unexpectedly |
55 | Device was hit violently |
58 | That the device was opened unexpectedly is known |
82 | The body temperature of the user is abnormal |
101 | That the device was hit violently is known |
1.5 Vehicle Safety Alerts
alertType | Description |
---|---|
3 | Vehicle vibrated unexpectedly |
9 | Vehicle has been moved unexpectedly |
44 | Vehicle collided |
128 | Rear mirror vibration |
131 | Vehicle collided |
147 | Vehicle collided |
1.6 Peripheral-Triggered Alerts
alertType | Description |
---|---|
20 | Abnormal door status |
22 | The ambient sound was too loud |
28 | Door was opened |
29 | Door was closed |
80 | Door was closed |
81 | Door was opened |
83 | Fuel may be stolen |
91 | Temperature was too high |
92 | Temperature was too low |
100 | Temperature recovered to normal |
113 | Tank needs refill |
115 | Abnormal fuel level |
126 | Humidity was too high |
142 | Abnormal ambient environment |
1.7 Driving Behavior Alerts
alertType | Description |
---|---|
6 | Vehicle has been speeding |
41 | Vehicle has been accelerated harshly |
42 | Vehicle has turned left abruptly |
43 | Vehicle has turned right abruptly |
48 | Vehicle has been braked hard |
71 | Fatigue driving was detected |
135 | Vehicle has been speeding |
144 | Vehicle has been accelerated harshly |
145 | Vehicle has been braked hard |
146 | Vehicle has turned abruptly |
202 | Vehicle speed warning |
1.8 Algorithm-Generated Alerts
alertType | Description |
---|---|
45 | Vehicle tipped over onto its side |
76 | Vehicle has turned abruptly |
77 | Vehicle has changed lane abruptly |
78 | Vehicle stability exception |
79 | Vehicle attitude exception |
131 | Seatbelt fastened alarm |
132 | Seatbelt unfastened alarm |
140 | Driver has been blinking frequently |
143 | Driver attention has been distracted |
148 | No driver face detected |
151 | Driver has been using the phone |
154 | Driver has been smoking |
160 | Driver has been yawning |
204 | Forward Collision Warning(ADAS-FCW) |
205 | Lane Departure Warning(ADAS-LDW) |
206 | Headway Monitor Warning(ADAS-HMW) |
207 | Pedestrian collision warning |
1.9 Other Alerts
alertType | Description |
---|---|
23 | Pseudo base station is detected. |
26 | Device has exited transport mode |
27 | Suspected of the subject leaving the designated herd |
30 | Safety airbag deployed |
32 | Device entered deep sleep mode |
36 | Charger connected |
37 | Light detected |
38 | Device has been moving away from the beacon |
49 | Subject has already left designated herd |
51 | Device is locked |
52 | Device is unlocked |
53 | Device has been unlocked unexpectedly |
54 | Failed to unlock the device |
56 | Device is out of the preset range |
57 | Device is out of the preset range |
59 | Device has been stationary for too long |
60 | Vehicle may have been stolen |
61 | Vehicle has been started unexpectedly |
62 | Key press event triggered |
63 | Device has exited defense mode |
64 | Device has entered defense mode |
65 | Device is muted |
66 | Vehicle finding alert (custom) |
67 | Detected truck has been opened |
68 | RSV1 (custom) |
69 | RSV2 (custom) |
70 | RSV3 (custom) |
72 | Detected pet has been lost |
73 | Internal battery is fully charged |
74 | Internal battery error |
75 | Device tilted unexpectedly |
80 | Door opening alarm |
81 | Door closing alarm |
84 | External GNSS antenna disconnected |
85 | Temperature of internal battery was high |
86 | Charging of internal battery has started |
87 | Charging of internal battery has stopped |
88 | Internal battery is about to be fully charged |
89 | Charging of the internal battery is complete |
93 | RFID sensor error |
94 | Pulse exception |
95 | Vehicle has been speeding inside geofence |
96 | Live wire exception |
97 | Temperature sensor error |
98 | Voltage of external power is too high |
99 | Device is close to Bluetooth beacon |
102 | Voltage value exception |
103 | Device has already signed in |
104 | Device has already signed out |
105 | File is uploaded completely by device |
106 | Vehicle tipped over on its side |
112 | SD card is already mounted |
114 | Device is already installed |
116 | Vehicle speed has resumed to normal range |
117 | Driver fatigue is known |
118 | Temperature sensor connection timeout |
119 | Detected voltage is exceptionally high (ADC1) |
120 | Detected voltage is exceptionally low (ADC1) |
121 | Detected voltage has been rising abnormally (ADC1) |
122 | Detected voltage has been dropping abnormally (ADC1) |
123 | Detected temperature has been rising abnormally |
124 | Detected temperature has been dropping abnormally |
129 | Device mobile data usage exception |
130 | Device is already restarted |
132 | Camera 1 exception |
133 | Camera 2 exception |
134 | No SD card is detected |
137 | No USB camera is detected |
152 | Device has already completed the capture |
153 | Driver info has changed |
161 | Camera lens is blocked |
162 | Face alignment error |
163 | Detected driver has lowered the head |
164 | Memory card space low |
165 | RFID sensor has detected a card swipe |
166 | Driver is already buckled up/Seat belt fasten |
167 | Driver is not buckled up/Seat belt unfasten |
170 | Detected driver has been drinking |
171 | Package had been opened unexpectedly |
172 | Bluetooth MAC addresses found |
173 | No Bluetooth MAC addresses are found |
177 | Fuel level has increased unexpectedly (CLS2 peripheral) |
178 | Fuel level has dropped unexpectedly (CLS2 peripheral) |
179 | Fuel sensor communication error (CLS2 peripheral) |
180 | Fuel sensor communication has resumed (CLS2 peripheral) |
181 | Temperature sensor communication error (1-wire peripheral) |
182 | Vehicle has been towing away unexpectedly |
183 | Vehicle has tipped over on its side |
184 | Time to position fix takes too long |
185 | Vehicle has been idling for too long |
186 | Detected 3D acceleration sensor error |
187 | Detected GNSS module error |
188 | Detected UBI sensor chip error |
189 | Detected UBI Encrypted IC error |
190 | Detected UBI GNSS chip error |
197 | Engine is already turned on |
198 | Engine is already turned off |
199 | Driver has been driving extendedly |
200 | Extended driving of driver is already known |
201 | INPUT1 is activated |
225 | Detected FLASH error (GID) |
226 | Detected CAN module error (GID) |
228 | Vehicle has departed from current lane |
229 | Forward collision warning |
2 JT/T Device Alarms (msgClass = 1)
2.1 Standard Alarm
AlertType | DataType | StandardAlarmValue Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
256 | int | Decode standardAlarmValue into binary, and then analyze the received alarm information by comparing the meanings of each bit according to the following description.
|
Example:
json
datalist: [
{
"id": 512,
"msg": {
"alertType": "256",
"standardAlarmValue": 6,
"deviceImei": "000105042285948",
"lng": 113.943057,
"lat": 22.576571,
"gateTime": "2022-03-08 06: 28: 50"
},
"msgClass": 1,
"postTime": "2022-03-07 22: 30: 00",
"type": "DEVICE"
}
]
Parsing process: standardAlarmValue: 6
6 -> 4 bytes in binary (0000 0000 0000 0000 0000 0000 0000 0110)
Contrast the above table: Bitwise analysis results are speeding alarm, fatigue driving
2.2 Video Signal Loss Alarm
AlertType | DataType | Description | ||||
---|---|---|---|---|---|---|
257 | int | Video signal lost alarm. Decode signalDropChannel into binary, and then analyze the received alarm information by comparing the meanings of each bit according to the following description.
|
Bits are arranged from right to left, 0 bit means the smallest bit.
2.3 Video Signal Block Alarm
AlertType | DataType | Description | ||||
---|---|---|---|---|---|---|
258 | int | Video signal blocked alarm. Decode signalCoverChannel into binary, and then analyze the received alarm information by comparing the meanings of each bit according to the following description.
|
Bits are arranged from right to left, 0 bit means the smallest bit.
2.4 Storage Unit Failure Alarm
AlertType | DataType | Description | ||||
---|---|---|---|---|---|---|
259 | short | Storage fault alarm. Decode storageFaultChannel into binary, and then analyze the received alarm information by comparing the meanings of each bit according to the following description. The corresponding bit is 1 means the memory is faulty
|
Bits are arranged from right to left, 0 bit means the smallest bit.
Example:
json
datalist: [
{
"id": 512,
"msg": {
"alertType": "259",
"deviceImei": "000105042285948",
"lng": 113.94304,
"storageFaultChannel": 1,
"lat": 22.576561,
"gateTime": "2022-03-08 08: 07: 29"
},
"msgClass": 1,
"postTime": "2022-03-08 08: 07: 29",
"type": "DEVICE"
}
]
2.5 ADAS Alarm
AlertType | DataType | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
264 | short | ADAS alarm field.
|
Bits are arranged from right to left, 0 bit means the smallest bit.
2.6 DMS Alarm
AlertType | DataType | StorageFaultChannel Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
265 | short | DMS alarm field.
|
Bits are arranged from right to left, 0 bit means the smallest bit.
2.7 Other Alarms
AlertType | DataType | Description |
---|---|---|
262 | int | Abnormal driving behavior alarm. Push field drivingAlarmFlag |
15 | int | Camera fault alarm |
1024 | int | Sharp acceleration |
1025 | int | Sharp deceleration |
1026 | int | Sharp turn |
1027 | int | Overspeed alarm |
1028 | int | Overtime/Fatigue driving alarm |
1029 | int | Driving collision alarm |
1030 | int | Parking vibration alarm |
1031 | int | Displacement alarm |
1032 | int | Fence entry alarm |
1033 | int | Fence exit alarm |
1040 | int | Sleep Mode Event |
1041 | int | Working Mode Event |
3073 | int | SOS emergency alarm |
3074 | int | External low power alarm |
3075 | int | ACC ON alarm |
3076 | int | ACC OFF alarm |
3077 | int | Anti-theft alarm |
3078 | int | Calibration abnormal alarm |
3079 | int | Identification alarm |
3080 | int | Door trigger alarm |
3081 | int | Abnormal oil alarm |
3082 | int | Abnormal temperature and humidity alarm |
3083 | int | DLT card login alarm |
3084 | int | DLT card logout alarm |
3085 | int | DLT non-registered card alarm |
3086 | int | Power Off alarm |
3087 | int | Built in low battery alarm |
3088 | int | Low power shutdown alarm |
3089 | int | Voice controlled alarm |
3090 | int | Anti-disassembly alarm |
3091 | int | Active offline alarm |
3092 | int | SD card/T card insertion or mount |
3093 | int | SD card/T card not inserted or removed |
3094 | int | SD card/T card corrupted(abnormal writing) |
3095 | int | Data overage alarm |
3096 | int | Restore oil and electricity |
3097 | int | Disconnect oil and electricity |
3 OBD Data Description
3.1 Positioning Data
Table 20 Status Bit Definition of Positioning Information
Bit | Description |
---|---|
0 | 0: ACC OFF 1: ACC ON |
1 | 0: Not positioning 1: Positioning |
2 | 0: North latitude 1: South latitude |
3 | 0: East longitude 1: West longitude |
4 | 0: Running status; 1: Stopped status |
5 | 0: Longitude and latitude are not encrypted by the confidential plug-in; 1: Longitude and latitude have been encrypted by confidential plug-in |
6~7 | Reserved |
8~9 | 00: Empty; 01: Half load; 10: Reserved; 11: Full load |
10 | 0: Vehicle oil circuit connected; 1: Vehicle oil circuit disconnected |
11 | 0: Vehicle circuit connected; 1: Vehicle circuit disconnected |
12 | 0: Door unlocked 1: Door locked |
13 | 0: Door 1 closed 1: Door 1 open (front door) |
14 | 0: Door 2 closed 1: Door 2 open (middle door) |
15 | 0: Door 3 closed 1: Door 3 open (rear door) |
16 | 0: Door 4 closed 1: Door 4 open (driver's seat door) |
17 | 0: Door 5 closed 1: Door 5 open (user-defined) |
18 | 0: Positioning without GPS satellites 1: Positioning with GPS satellites |
19 | 0: Positioning without Beidou Satellite 1: Positioning with Beidou Satellite |
20 | 0: Positioning without GLONASS satellite 1: Positioning with GLONASS satellite |
21 | 0: Positioning without Galileo satellite 1: Positioning with Galileo satellite |
22~28 | Reserved |
29~30 | Positioning type: 00: satellite positioning 01: Base station positioning 10: Inertial navigation and dead reckoning positioning 11: Reserved |
31 | 0: Real time positioning data 1: Reupload positioning data |
3.2 Commercial Vehicle Data Description
Table 21 Commercial Vehicle Data Stream ID(256~767)
ID | DataType | Description | Unit | Comment |
---|---|---|---|---|
1320 | double | Total mileage | KM | y=x/10 Precision: 0.1 KM |
1324 | double | Total fuel volume | L | y=x/100 Precision: 0.01 L |
258 | double | Vehicle mileage | KM | y=x/10 Precision: 0.1 KM |
259 | double | Vehicle fuel volume | L | y=x/100 Precision: 0.01 L |
1350 | double | Cumulative mileage | KM | y=x/10 Precision: 0.1 KM |
261 | double | Cumulative fuel consumption | L | y=x/100 Precision: 0.01 L |
1337 | double | Instant fuel consumption | L/H | y=x/100 Precision: 0.01 L/H |
1335 | double | Fuel consumption per 100 km | L/100KM | y=x/100 Precision: 0.01 |
1334 | int | Revolutions per minute(RPM) | r/min | y=x Precision: 1 r/min |
1333 | double | Vehicle Speed | KM/H | y=x/10 Precision: 0.1 KM/H |
1328 | int | Voltage | mV | y=x Precision: 1 mV |
1325 | byte | Water temperature | ℃ | y=x-40 Precision: 1℃ Range: -40~210℃ |
1341 | double | Intake pressure | KPa | y=x/10 Precision: 0.1 KPa |
1340 | double | Intake air flow | g/s | y=x/10 Precision: 0.1 g/s |
270 | double | Fuel injection quantity | ml/s | y=x/10 Precision: 0.1 ml/s |
271 | int | Engine oil temperature | ℃ | y=x-273 Precision: 1℃ Range: -273~ 1734 |
1339 | double | Engine oil pressure | KPa | y=x/10 Precision: 0.1 KPa |
273 | byte | Fuel temperature | ℃ | y=x-40 Precision: 1℃ Range: -40~210 |
1326 | byte | Engine intake air temperature | ℃ | y=x-40 Precision: 1℃ Range: -40~210 |
275 | int | Torque | Nm | y=x Precision: 1 |
276 | byte | Engine load | % | y=x Precision: 1% Range: 0%-100% |
1348 | byte | Oil tank liquid position | % | y=x Precision: 1% Range: 0%-100% |
1343 | byte | Accelerator pedal position | % | y=x Precision: 1% Range: 0%-100% |
279 | byte | Clutch load | % | y=x Precision: 1% Range: 0%-100% |
280 | byte | Torque percentage | % | y=x-125 Precision: 1% Range: -125% ~ 125% |
1318 | byte | Air conditioner state | y=x 0: Stop 1: Start Others: Invalid | |
1319 | byte | Gear position | y=x 0: N Position 1--16: D Position 17--20: R Position 21: P Position Others: Invalid | |
1312 | byte | Safety belt status | y=x 0: Nornal 1: Alert Others: Invalid | |
283 | byte | Clutch state | y=x 0: Up 1: Down Others: Invalid | |
1311 | byte | Foot brake status | y=x 0: Up 1: Down Others: Invalid | |
1310 | byte | Hand brake status | y=x 0: Down 1: Up Others: Invalid | |
286 | byte | SCR Status | y=x 0: Stop 1: Start Others: Invalid | |
287 | int | SCR intake NOx concentration (SCR upstream NOx sensor input value) | ppm | y=x-200 Precision: 1ppm Range: -200 ~ 3012ppm |
288 | int | SCR exhaust gas temperature (SCR outlet temperature) | ℃ | y= x-273 Precision: 1 ℃ Range: -273 ~ 1734℃ |
289 | int | Front oxygen sensor value | mV | y=x Oxygen concentration voltage value Precision: 1 mV Range: 0 ~ 999mV |
290 | int | Rear oxygen sensor value | mV | y=x Oxygen concentration voltage value Precision: 1 mV Range: 0 ~ 999mV |
291 | byte | Temperature of three-way catalyst (temperature of urea tank) | ℃ | y=x-40 Precision: 1℃ Range: -40~210℃ |
292 | byte | Urea level (reagent margin, catalyst tank level) | % | y=x Precision: 1% Range: 0%-100% |
293 | int | NOx concentration range (downstream) | ppm | y=x Precision: 1 ppm Range: 0 ~ 3012ppm |
294 | byte | OBD status (MIL fault lamp) | y=x 0: Nornal 1: Alert Others: Invalid | |
295 | int | Engine running time | s | y=x Precision: 1s; |
296 | int | Gross vehicle weight | kg | y=x Precision: 1kg; |
297 | int | SCR inlet temperature | ℃ | y= x-273; Precision: 1℃; Range: -273 ~ 1734℃ |
298 | byte | Friction torque | % | y=x-125; Precision: 1%; Range: -125% ~ 125% |
299 | double | DPF differential pressure | kPa | y=x/10; Precision: 0.1kPa; Range: 0~ 6425.5 kPa |
300 | byte | Inlet manifold temperature | ℃ | y=x-40; Precision: 1℃; Range: -40~210℃ |
301 | byte | Engine torque mode | 0~3 | 0: Overspeed failure 1: Speed control 2: Torque control 3: Speed/torque control |
302 | double | Oil level (Qinghao project) | mm | y=x/10; Precision: 0.1mm Range: 0~65535 mm |
303 | int | SCR AdBlue injection volume | ml/h | y=x; Precision: 1 ml/h; |
304 | int | SCR system AdBlue pump pressure | kPa | y=x; Precision: 1 kPa; |
305 | int | SCR system pump speed | rpm | y=x; Precision: 1 rpm; |
306 | int | SCR system catalyst downstream temperature | ℃ | y=x-273; Precision: 1℃; Range: -273~1735℃ |
307 | byte | SCR system pump working status | 0~5 | 0: Not used 1: Stop state 2: Pre injection state 3: Injection state 4: Purging state 5: diagnostic state |
308 | byte | Inlet NOx power supply failure | 0~3 | 0: Abnormal power 1: Normal 2: Error 3: Unavailable value |
309 | byte | Inlet NOx heating control | 0~3 | 0: The sensor is not at the working temperature 1: The sensor is at the working temperature 2: Error 3: Unavailable value |
310 | byte | Inlet NOx signal is stable and effective | 0~3 | 0: Signal invalid 1: Signal valid 2: Error 3: Unavailable value |
311 | byte | Inlet NOx heating fault | 3/5/31 | 3: Short circuit 5: Open circuit 31: No fault |
312 | byte | Outlet NOx power supply failure | 0~3 | 0: Abnormal power supply 1: Normal power supply 2: Error 3: the value is unavailable |
313 | byte | Outlet NOx heating control | 0~3 | 0: The sensor is not at the working temperature 1: The sensor is at the working temperature 2: Error 3: Unavailable value |
314 | byte | Outlet NOx signal is stable and effective | 0~3 | 0: Signal invalid 1: Signal valid 2: Error 3: Unavailable value |
315 | byte | Outlet NOx heating fault | 3/5/31 | 3: Short circuit 5: Open circuit 31: No fault |
316 | byte | Inlet NOx sensor heating enable | 0~3 | 0: Dew point not reached 1: Dew point reached, start heating 2: Error 3: Invalid |
317 | byte | Outlet NOx sensor heating enable | 0~3 | 0: Dew point not reached 1: Dew point reached, start heating 2: Error 3: Invalid |
318 | int | Upstream catalyst temperature | ℃ | y=x-273 Precision: 1℃ Range: -273~1735℃ |
319 | int | Revolution limit threshold | rpm | y=x Precision: 1 rpm Range: 0 ~ 8031 rpm |
320 | byte | Percent torque threshold | % | y=x-125 Precision: 1% Range: -125~125% |
321 | byte | Air solenoid valve fault | 0~3 | 0: Normal 1: Short circuit to positive pole of power supply 2: Short circuit to ground 3: Open circuit |
322 | byte | Return pipe plug failure | 0/1 | 0: Normal 1: Blocking |
323 | byte | Pump heating fault | 0/1 | 0: Normal 1: Heating failed |
324 | byte | Low air or low flow fault | 0/1 | 0: Normal 1: Low air or low flow |
325 | byte | SCR motor fault | 0/1 | 0: Normal 1: Motor drive fault |
326 | byte | Metering pump heating status | 0~3 | 0: Icing but unheating state 1: Icing and heating state 2: No icing and unheating state 3: No icing but heating state |
327 | byte | Purge completion flag | 0/1 | 0: Purging completed 1: Purging not completed |
328 | byte | SCR pump temperature | ℃ | y=x-40 Precision: 1℃ Range: -40~215℃ |
329 | int | AD value of pressure switch | - | y=x Precision: 1 Range: 0~4080 |
330 | double | Instant fuel consumption | km/l | y=x/100 Precision: 0.01 km/l |
331 | int | Ambient temperature | ℃ | y=x-273 Precision: 1℃ Range: -273~1735℃ |
332 | double | Particulate concentration | mg/m3 | y=x/1000 Precision: 0.001 mg/m3; |
333 | double | Opacity | % | y=x/10 Precision: 0.1 % Range: 0~99.9 |
334 | double | PM K value | y=x/1000 Precision: 0.001℃ Range: 0~9.99 | |
335 | int | Cumulative urea consumption (total urea consumption) | g | y=x Precision: 1 g; |
336 | int | DPF exhaust temperature | ℃ | y=x-273 Precision: 1℃ Range: -273~1735℃ |
337 | int | Sensor voltage signal (flood measurement) | mv | y=x/10 Precision: 0.1mv Range: 0~3000.0 mv |
338 | int | Sensor temperature signal (flood measurement) | ℃ | y=x-99 Precision: 1℃ Range: -99~+199 |
3.3 New Energy Vehicle Data Description
Table 22 New Energy Vehicle Data ID
ID | DataType | Description | Unit | Comment |
---|---|---|---|---|
1792 | byte | Vehicle status | ||
1793 | byte | Charging state | ||
1794 | byte | Operating mode | ||
1795 | int | Total voltage | ||
1796 | int | Total current | ||
1797 | byte | Remaining power SOC | ||
1798 | byte | DC-DC status | ||
1799 | int | Insulation resistance | ||
1800 | byte | Drive motor numbers | ||
1801 | byte | Drive motor serial number | ||
1802 | byte | Drive motor status | ||
1803 | byte | Drive motor controller temperature | ||
1804 | int | Drive motor revolution speed | ||
1805 | int | Drive motor torque | ||
1806 | byte | Drive motor temperature | ||
1807 | int | Motor controller input voltage | ||
1808 | int | Motor controller linear bus current | ||
1809 | int | Fuel cell voltage | ||
1810 | int | Fuel cell current | ||
1811 | int | Fuel consumption rate | ||
1812 | int | Total fuel cell temperature probes(N) | ||
1813 | byte | Probe temperature | ||
1814 | int | Maximum temperature in hydrogen system | ||
1815 | byte | Maximum temperature probe code in hydrogen system | ||
1816 | int | Maximum hydrogen concentration | ||
1817 | byte | Maximum hydrogen concentration sensor code | ||
1818 | int | Maximum hydrogen pressure | ||
1819 | byte | Hydrogen maximum pressure sensor code | ||
1820 | byte | High voltage DC/DC status | ||
1821 | byte | Engine status | ||
1822 | byte | Highest voltage battery subsystem number | ||
1823 | byte | Maximum voltage battery unit code | ||
1824 | int | Maximum voltage of single battery | ||
1825 | byte | Minimum voltage battery subsystem number | ||
1826 | byte | Minimum voltage cell code | ||
1827 | int | Minimum voltage of single battery | ||
1828 | byte | Maximum temperature subsystem No | ||
1829 | byte | Maximum temperature cell code | ||
1830 | byte | Maximum temperature value | ||
1831 | byte | Minimum temperature subsystem number | ||
1832 | byte | Minimum temperature cell code | ||
1833 | byte | Minimum temperature value |
3.4 Passenger Vehicle Data Description
Table 23 Passenger Vehicle Data Stream ID
ID | DataType | Description | Unit | Comment |
---|---|---|---|---|
1280 | byte | Lamp status (high beam) | y=x 0: OFF 1: ON | |
1281 | byte | Lamp status (low beam) | y=x 0: OFF 1: ON | |
1282 | byte | Lamp status (marker light) | y=x 0: OFF 1: ON | |
1283 | byte | Lamp status (fog lamp) | y=x 0: OFF 1: ON | |
1284 | byte | Lamp status (left turn) | y=x 0: OFF 1: ON | |
1285 | byte | Lamp status (right turn) | y=x 0: OFF 1: ON | |
1286 | byte | Lamp status (hazard lamp) | y=x 0: OFF 1: ON | |
1287 | byte | Door status (left front door) | y=x 0: OFF 1: ON | |
1288 | byte | Door status (right front door) | y=x 0: OFF 1: ON | |
1289 | byte | Door status (left rear door) | y=x 0: OFF 1: ON | |
1290 | byte | Door status (right rear door) | y=x 0: OFF 1: ON | |
1291 | byte | Door status (trunk) | y=x 0: OFF 1: ON | |
1292 | byte | Door lock (full door lock) | y=x 0: Unlocked 1: Locked | |
1293 | byte | Door lock (left front door) | y=x 0: Unlocked 1: Locked | |
1294 | byte | Door lock (right front door) | y=x 0: Unlocked 1: Locked | |
1295 | byte | Door lock (left rear door) | y=x 0: Unlocked 1: Locked | |
1296 | byte | Door lock (right rear) | y=x 0: Unlocked 1: Locked | |
1297 | byte | Door lock (trunk) | y=x 0: Unlocked 1: Locked | |
1298 | byte | Window status (left front window) | y=x 0: Closed 1: Opened | |
1299 | byte | Window status (right front window) | y=x 0: Closed 1: Opened | |
1300 | byte | Window status (left rear window) | y=x 0: Closed 1: Opened | |
1301 | byte | Window status (right rear window) | y=x 0: Closed 1: Opened | |
1302 | byte | Window status (sunroof) | y=x 0: Closed 1: Opened | |
1303 | byte | Fault signal (ECM) | y=x 0: Normal 1: Fault | |
1304 | byte | Fault signal (ABS) | y=x 0: Normal 1: Fault | |
1305 | byte | Fault signal (SRS) | y=x 0: Normal 1: Fault | |
1306 | byte | Alarm signal (oil) | y=x 0: Normal 1: Fault | |
1307 | byte | Alarm signal (tire pressure) | y=x 0: Normal 1: Fault | |
1308 | byte | Alarm signal (maintenance) | y=x 0: Normal 1: Fault | |
1309 | byte | Airbag status | y=x 0: Normal 1: Exploded | |
1310 | byte | Hand brake status | y=x 0: Unbraked 1: Braked | |
1311 | byte | Braking status (foot brake) | y=x 0: Unbraked 1: Braked | |
1312 | byte | Seat belt (driver) | y=x 0: Unfasten 1: Fasten | |
1313 | byte | Seat belt (co-driver) | y=x 0: Unfasten 1: Fasten | |
1314 | byte | ACC signal | y=x 0: Closed 1: Opened | |
1315 | byte | Key status | y=x 0: Key out 1: Key in | |
1316 | byte | Remote control signal | y=x 0: Not pressed 1: Unlocked 2: Locked 3: Trunk lock 4: Long press to unlock 5: Long press to lock | |
1317 | byte | Wiper status | y=x 0: Closed 1: Opened | |
1318 | byte | Air conditioning switch | y=x 0: Closed 1: Opened | |
1319 | byte | Position | y=x 1: P position 2: R position 3: N position 4: D position Others: -- | |
1320 | double | Mileage (total) | KM | y=x/10 Precision: 0.1 |
1321 | double | Mileage (endurance) | KM | y=x/10 Precision: 0.1 |
1322 | double | Instantaneous oil quantity | L | y=x/100 Precision: 0.01 |
1323 | int | Instant oil quantity | % | y=x Precision: 1% Range: 0%-100% |
1324 | double | Oil consumption | L | y=x/100 Precision: 0.01 |
1325 | byte | Water temperature | ℃ | y=x-40 Precision: 1 Range: -40~210 |
1326 | byte | Engine intake air temperature | ℃ | y=x-40 Precision: 1 Range: -40~210 |
1327 | byte | Temperature in air conditioner vehicle | ℃ | y=x-40 Precision: 1 Range: -40~210 |
1328 | int | Current battery voltage | mV | y=x Precision: 1 |
1329 | double | Front left wheel speed | KM/H | y=x/10 Precision: 0.1 |
1330 | double | Front right wheel speed | KM/H | y=x/10 Precision: 0.1 |
1331 | double | Rear left wheel speed | KM/H | y=x/10 Precision: 0.1 |
1332 | double | Rear right wheel speed | KM/H | y=x/10 Precision: 0.1 |
1333 | double | Speed | KM/H | y=x/10 Precision: 0.1 |
1334 | int | Revolutions per minute(RPM) | r/min | y=x Precision: 1 |
1335 | double | Fuel consumption (average) | L/100KM | y=x/100 Precision: 0.01 |
1336 | double | Fuel consumption (instantaneous) | L/100KM | y=x/100 Precision: 0.01 |
1337 | double | Fuel consumption (instantaneous) | L/H | y=x/100 Precision: 0.01 |
1338 | byte | Oil life | % | y=x Precision: 1% Range: 0%-100% |
1339 | double | Oil pressure | kPa | y=x/10 Precision: 0.1 |
1340 | double | Air flow | g/s | y=x/10 Precision: 0.1 |
1341 | double | Intake manifold absolute pressure | kPa | y=x/10 Precision: 0.1 |
1342 | double | Injection pulse | ms | y=x/10 Precision: 0.1 |
1343 | byte | Accelerator pedal position | % | y=x Precision: 1% Range: 0%-100% |
1344 | byte | Accelerator pedal | y=x 0: Up 1: Down | |
1345 | int | Steering wheel angle | ° | y=x Precision: 1 Range: 0~540 |
1346 | byte | Steering wheel angle status | y=x 1: Left 2: Right 3: Middle Others: Invalid | |
1347 | double | Remaining oil(L) | L | y=x/100 Precision: 0.01 |
1348 | byte | Remaining oil(%) | % | y=x Precision: 1% Range: 0%-100% |
1349 | int | Trip ID | ||
1350 | double | Cumulative mileage | km | y=x/10 Precision: 0.1 |
1351 | byte | Relative throttle valve opening | % | y=x Precision: 1% Range: 0%-100% |
1352 | byte | Absolute throttle valve opening | % | y=x Precision: 1% Range: 0%-100% |