Sensor actions¶
Contains API calls to interact with sensors.
Sensor sub-types¶
Metering sensor¶
{
"type": "metering",
"id": 860250,
"sensor_type": "temperature",
"name": "OBD Coolant temperature",
"input_name": "obd_coolant_t",
"divider": 1.0,
"accuracy": 0.0,
"units": "",
"units_type": "celsius",
"parameters": {
"parent_ids": [123042, 123566],
"volume": 0.7,
"min": 0.0,
"max": 12.0,
"max_lowering_by_time": 120.0,
"max_lowering_by_mileage": 120.0,
"ignore_drains_in_move": true,
"ignore_refuels_in_move": false,
"refuel_gap_minutes": 11,
"custom_field_name": false
}
}
type
- string. Always "metering".id
- int. Sensor's id.sensor_type
- metering sensor type. Type of the sensor.name
- string, max size 100. A name of sensor.input_name
- string, max size 64.divider
- double.accuracy
- double. The minimum=0.0
, maximum=100.0
with step0.25
.units
- string.units_type
- enum. Units type for a sensor.parameters
- optional object with additional parameters.parent_ids
- optional array of parent_ids for composite sensor.volume
- double. Optional. Volume for composite sensor.parent_ids
- optional. int array. Array ofparent_ids
for composite sensor.volume
- optional. Double. Volume for composite sensor.min
- optional. Double. Min acceptable raw value for a sensor.max
- optional. Double. Max acceptable raw value for a sensor.max_lowering_by_time
- optional. Double. Maximum legal value lowering per hour.max_lowering_by_mileage
- optional. Double. Maximum legal value lowering per 100 km.ignore_drains_in_move
- optional. Boolean. Default is false. If true, the fuel drains will not be detected during movement.ignore_refuels_in_move
- optional. Boolean. Default is false. If true, the refuels will not be detected during movement.refuel_gap_minutes
- optional. Integer. Default is 5. The time in minutes after the start of the movement, refuels will be detected during movement.custom_field_name
- optional. Boolean. Default false. The parameter determines whether theinput_name
field is a custom value was entered by user. This makes sense only if the tracker model has the featurehas_custom_fields
.
Metering sensor type values¶
fuel
temperature
rpm
custom
fuel_consumption
instant_consumption
power
speed
flow_meter
acceleration
Discrete input¶
{
"type": "discrete",
"id": 888951,
"sensor_type": "ignition",
"name": "Ignition",
"input_number": 4
}
type
- string. Always "discrete".id
- int. An ID of a sensor.sensor_type
- discrete sensor type. Type of the sensor.name
- string, max size 100.input_number
- int, [1..8]. Assigned input number.
Discrete sensor type values¶
ignition
sos_button
power
engine
car_alarm
door
charge
detach
custom
Virtual sensor¶
{
"type": "virtual",
"id": 1700049,
"sensor_type": "virtual_ignition",
"name": "Virtual Ignition",
"input_name": "board_voltage",
"custom_field_name": false,
"parameters": {
"calc_method": "in_range",
"range_from": 13.4,
"value_titles": [{
"value": "0",
"title": "Off"
}, {
"value": "1",
"title": "On"
}]
}
}
type
- string. Always "virtual".id
- int. Sensor's id.sensor_type
- virtual sensor type. Type of the sensor. "virtual_ignition" for virtual ignition or "state" for others.name
- string, max size 100. A name of sensor.input_name
- string, max size 64. A source input field name (identifier).custom_field_name
- optional. Boolean. Default false. The parameter determines whether theinput_name
field is a custom value was entered by user. This makes sense only if the tracker model has the featurehas_custom_fields
.parameters
- optional object with additional parameters.calc_method
- enum. A method of sensor value calculation. One of this: "in_range", "identity", "bit_index".range_from
- double. Low bound of range. It is used only with "in_range" calc method.range_to
- double. High bound of range. It is used only with "in_range" calc method.bit_index
- int,[1..N]
. A bit index in input field source value. It is used only with "bit_index" calc method.value_titles
- mapping for bind special titles for sensor values, if it is necessary.value
- string, max size 64. Sensor value.title
- string, max size 64. Title for the sensor value.
Virtual sensor type values¶
state
virtual_ignition
Some requirements:
- There can be only one virtual sensor with type
virtual_ignition
for tracker. - One or both field
range_from
andrange_to
must be present for the calc method "in_range". - Field
bit_index
must be present for the calc method "bit_index". - There can be no more than 100 value titles.
- All values must be unique within
value_titles
.
Described work with virtual sensors in our instructions.
API actions¶
API base path: /tracker/sensor
.
batch_list¶
List tracker sensors bound to trackers with specified identifiers (parameter trackers
).
There exists a similar method for working with a single tracker - list.
Parameters¶
Name | Description | Type |
---|---|---|
trackers | Set of tracker identifiers. Each of the relevant trackers must be accessible to the authorized user and not be blocked. Number of trackers (length of array) is limited to a maximum of 500 (this number may be changed in future). | int array |
Examples¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/batch_list' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "trackers": [204104, 181451]}'
https://api.navixy.com/v2/tracker/sensor/batch_list?hash=a6aa75587e5c59c32d347da438505fc3&trackers=[204104, 181451]
Response¶
Contains a map, where keys are IDs from trackers parameter and values are lists of sensor objects.
{
"success": true,
"result": {
"11": [
{
"id": 1,
"type": "discrete",
"sensor_type": "fuel",
"name": "Main tank",
"input_name": "fuel_level",
"group_type": null,
"divider": 1,
"accuracy": 0.0,
"units": null,
"units_type": "litre"
}
]
}
}
Errors¶
- 217 - List contains nonexistent entities - if one of
trackers
either does not exist or is blocked. - 221 - Device limit exceeded - if too many IDs were passed in
trackers
parameter.
create
¶
Creates a sensor.
required sub-user rights: tracker_update
.
Parameters¶
name | description | type |
---|---|---|
tracker_id | ID of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int |
sensor | Sensor object. | JSON object |
Examples¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/create' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "tracker_id": 123456, "sensor": {"type": "metering", "id": 860250,"sensor_type": "temperature", "name": "OBD Coolant temperature", "input_name": "obd_coolant_t", "divider": 1.0, "accuracy": 0.0, "units": "", "units_type": "celsius"}'
Response¶
{
"success": true,
"id": 937
}
id
- int. An ID of created sensor.
Errors¶
- 232 - Input already in use – if given input number (for discrete input) or input name (for metering sensor) already in use.
- 208 - Device blocked – if tracker exists but was blocked due to tariff restrictions, or some other reason.
- 219 - Not allowed for clones of the device – if tracker is clone.
- 270 - Too many sensors of same type - the number of tracker's sensors, having same
sensor_type
is limited.
delete
¶
Deletes a sensor with sensor_id
from the database.
required sub-user rights: tracker_update
.
Parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | ID of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 123456 |
sensor_id | Sensor ID. | int | 234567 |
Examples¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/delete' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "tracker_id": 123456, "sensor_id": 23456}'
https://api.navixy.com/v2/tracker/sensor/delete?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&sensor_id=23456
Response¶
{ "success": true }
Errors¶
- 201 - Not found in the database - if sensor with a
sensor_id
does not exist or owned by another user. - 208 – Device blocked - if tracker exists but was blocked due to tariff restrictions or some other reason.
- 219 – Not allowed for clones of the device - if tracker is a clone.
list
¶
List tracker sensors bound to tracker with specified ID (tracker_id
parameter).
Parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | ID of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 123456 |
Examples¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/list' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "tracker_id": 123456}'
https://api.navixy.com/v2/tracker/sensor/list?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
Response¶
{
"success": true,
"list": [{
"type": "metering",
"id": 860250,
"sensor_type": "temperature",
"name": "OBD Coolant temperature",
"input_name": "obd_coolant_t",
"divider": 1.0,
"accuracy": 0.0,
"units": "",
"units_type": "celsius"
}]
}
list
- list of sensor objects. See sensor object description.
Errors¶
- 208 - Device blocked – if tracker exists but was blocked due to tariff restrictions, or some other reason.
update
¶
Updates sensor.
required sub-user rights: tracker_update
.
Parameters¶
name | description | type |
---|---|---|
tracker_id | ID of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int |
sensor | Sensor object. | JSON object |
Example¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/update' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "tracker_id": 123456, "sensor": {"type": "metering", "id": 860250, "sensor_type": "temperature", "name": "OBD Coolant temperature", "input_name": "obd_coolant_t", "divider": 1.0, "accuracy": 0.0, "units": "", "units_type": "celsius"}'
Response¶
{ "success": true }
Errors¶
- 201 - Not found in the database – if sensor does not exist or owned by another user.
- 232 - Input already in use – if given input number (for discrete input) or input name (for metering sensor) already in use.
- 208 - Device blocked – if tracker exists but was blocked due to tariff restrictions, or some other reason.
- 219 - Not allowed for clones of the device – if tracker is a clone.
batch_copy¶
Copies sensors from one tracker to another.
Important
This operation will delete sensors of target trackers, and some sensor data could be lost!
required sub-user rights: tracker_update
.
Parameters¶
name | description | type | format |
---|---|---|---|
base_tracker_id | ID of the base tracker (aka "object_id") from which you want to copy sensors. Tracker must belong to authorized user and not be blocked. | int | 123456 |
trackers | ID of trackers. Target trackers for copying sensors. | [int] | [12345, 54321] |
Example¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/batch_copy' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "base_tracker_id": 123456, "trackers": [56789, 54321]}'
Response¶
{
"success": true
}
Errors¶
- 201 – Not found in the database - if there is no tracker with such ID belonging to authorized user.
- 272 – Trackers must have the same model - if base tracker and one of target trackers has a different model.
data/read¶
Gets all metering
or virtual
sensor readings with values and time per requested period. It can't be used with discrete sensor.
Parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | ID of the base tracker (aka "object_id") from which you want to read sensor's data. Tracker must belong to authorized user and not be blocked. | int | 123456 |
sensor_id | Sensor ID. | int | 234567 |
from | Start date and time for searching. | date/time | "2022-02-28 00:00:00" |
to | End date and time for searching. Must be after from date. Maximum period is maxReportTimeSpan , default 30 days. | date/time | "2022-03-28 23:59:00" |
raw_data | If true then the response will contain raw data without any calibration and multiplication. Affects only metering sensors. Default value is false for backward compatibility. | boolean | false |
Example¶
curl -X POST 'https://api.navixy.com/v2/tracker/sensor/data/read' \
-H 'Content-Type: application/json' \
-d '{"hash": "22eac1c27af4be7b9d04da2ce1af111b", "tracker_id": 123456, "sensor_id": 1456789, "from": "2022-02-28 00:00:00", "to": "2022-03-28 23:59:00"}'
Response¶
{
"success": true,
"list": [
{
"value": 100500,
"get_time": "2022-02-28 00:00:00"
},
{
"value": 100501,
"get_time": "2022-02-28 00:00:30"
}
]
}
value
- a value of sensor data. It can be double, int or string depending on the sensor type.get_time
- time when value was received.
Errors¶
- 201 – Not found in the database - if there is no tracker with such ID belonging to authorized user.
- 211 – Requested time span is too big - if interval between "from" and "to" is too big. Maximum period is
maxReportTimeSpan
. - 228 – Not supported by the sensor - if sensor is not a metering or virtual sensor.