get_notification_data

The get_notification_data function is used to get detailed information about specified notifications.

Copied!
svc=resource/get_notification_data&params={"itemId":<long>,
					   						"col":[<long>]}

Parameters

NameDescription

itemId

Resource ID.

col

The array of notification IDs.

The field is optional. If it is not present, the function is executed for all the notifications.

Response

If the request is completed successfully, a response of the following format is returned:

Copied!
[
	{
		"id":<long>,	/* notification ID */
		"n":"<text>",	/* name */
		"txt":"<text>",	/* notification text */
		"ta":<uint>,	/* activation time (Unix format) */
		"td":<uint>,	/* deactivation time (Unix format) */
		"ma":<uint>,	/* maximum number of alarms (0 — unlimited) */
		"mmtd":<uint>,	/* maximum time interval between messages, s */
		"cdt":<uint>,	/* timeout of alarm, sec */
		"mast":<uint>,	/* minimum duration of the alarm state, s */
		"mpst":<uint>,	/* minimum duration of previous state, s */
		"cp":<uint>,	/* period of control relative to current time, s */
		"fl":<uint>,	/* notification flags (see below) */
		"tz":<uint>,	/* time zone */
		"la":"<text>",	/* user language (two-letter code) */
		"ac":<uint>,	/* alarms count */
		"d":"<text>",		/* notification description */
		"sch":{		/* time limitation */
			"f1":<uint>,	/* the beginning of the interval 1 (minutes from midnight) */
			"f2":<uint>,	/* the beginning of the interval 2 (minutes from midnight) */
			"t1":<uint>,	/* the end of the interval 1 (minutes from midnight) */
			"t2":<uint>,	/* the end of the interval 2 (minutes from midnight) */
			"m":<uint>,	/* the mask of days of month [1: 2||0, 31: 2||30] */
			"y":<uint>,	/* the mask of months [Jan: 2||0, Dec: 2||11] */
			"w":<uint>,	/* the mask of days of week [Mon: 2||0, Sun: 2||6] */
			"fl":<int>	/* schedule flags */
		},
		"ctrl_sch":{	/* the schedule of maximum alarms count intervals */
			"f1":<uint>,	/* the beginning of the interval 1 (minutes from midnight) */
			"f2":<uint>,	/* the beginning of the interval 2 (minutes from midnight) */
			"t1":<uint>,	/* the end of the interval 1 (minutes from midnight) */
			"t2":<uint>,	/* the end of the interval 2 (minutes from midnight) */
		 	"m":<uint>,	/* the mask of days of month [1: 2||0, 31: 2||30] */
		 	"y":<uint>,	/* the mask of months [Jan: 2||0, Dec: 2||11] */
		 	"w":<uint>	/* the mask of days of week [Mon: 2||0, Sun: 2||6] */
			"fl":<int> /* schedule flags */
		},
		"un":[<long>],	/* array of IDs of units/unit groups */
		"act":[			/* actions */
			{
				"t":"<text>",		/* action type (see below) */
				"p":{			/* parameters */
					"blink": "<text>",	/* mini-map blinking when triggered */ 
					"color": "<text>",	/* online notification colour */
					"url": "<text>",		/* URL address of the notification sound */
					...
				},
				...
			}
		],
		"trg":{			/* control */
			"t":"<text>",		/* control type (see below) */
			"p":{			/* parameters */
				"<text>":"<text>",		/* parameter name: value */
				...
			}
		},
		"ct":<uint>,        /* creation time */
		"mt":<uint>         /* last modification time */
	}
]

Notification flags:

FlagDescription

0x0

Notification triggers for the first message.

0x1

Notification triggers for every message.

0x2

Notification is disabled.

For notifications of the Off time control type, the value of the mast parameter specified in seconds must correspond to the value of the min_idle_time parameter specified in minutes. Thus, if you want the notification to be triggered after 10 minutes of off time, specify 10 for min_idle_time and 600 for mast.

If the request fails, an error code is returned.

Action types

The following types of actions are available for notifications:

Notify by email

Copied!
{
	"t":"email",		/* action type */
	"p":{
		"email_to":"<text>",	/* email address */
		"html":"<text>",		/* use HTML tags: 0 — no, 1 — yes */
		"img_attach":"<text>",	/* attach image from notification: 1 — yes, 0 — no */
		"subj":"<text>"		/* text of message */
	}
}

Notify by SMS

Copied!
{
	"t":"sms",		/* action type */
	"p":{
		"phones":"<text>"		/* list of phone numbers (separated by semicolons) */
	}
}

Display online notification in a pop-up window

Copied!
{
	"t":"message",		/* action type */
	"p":{
		"color":"<text>",		/* notification colour */
		"name":"<text>",		/* notification name */
		"url":"<text>"		/* URL address of the notification sound */
	}
}

Send mobile notification

Copied!
{
	"t":"mobile_apps",		/* action type */
	"p":{
		"apps":"{\"<text>\":[	/* mobile app name */
				<uint>	/* user ID */
		]}"
	}
}

Send a request

Copied!
{
	"t":"push_messages",	/* action type */
	"p":{
		"url":"<text>",		/* server name (port may be defined), start it with "http(s)" */
		"get":<bool>		/* request type: 1 — GET, 0 — POST */		
	}
}

Send notification to Telegram

Copied!
{
	"t":"messenger_messages",	/* action type */
	"p":{
		"chat_id":"<text>",		/* channel ID in Telegram */
		"token":"<text>"		/* user token in Telegram */		
	}
}

Register event for unit

Copied!
{
	"t":"event",		/* action type */
	"p":{
		"flags":"<text>"		/* register as: 0 — event, 1 — violation */
	}
}

Send a command

Copied!
{
	"t":"exec_cmd",		/* action type */
	"p":{
		"cmd_type":"<text>",	/* command type */
		"link":"<text>",		/* link type */
		"name":"<text>",		/* command name */
		"param":"<text>"		/* parameters */
	}
}

You can find the list of available types of commands here.

Change access to units

Copied!
{
	"t":"user_access",	/* action type */
	"p":{
		"acl_bits":"<text>",	/* 1 — set bit, 0 — remove bit */
		"acl_mask":"<text>",	/* mask of bits which must be changed */
		"units":"<text>",		/* list of unit IDs (separated by commas) */
		"users":"<text>"		/* list of user IDs (separated by commas) */
	}
}

Set counter value

Copied!
{
	"t":"counter",		/* action type */
	"p":{
		"engine_hours":"<text>",	/* engine hours counter value */
		"flags":"<text>",		/* counter flags (see below) */
		"mileage":"<text>",	/* mileage counter value */
		"traffic":"<text>"	/* GPRS traffic counter value */
	}
}

Counter flags:

FlagDescription
1Set mileage counter value.
2Set engine hours counter value.
4Set GPRS traffic counter value.

Store counter value as a parameter

Copied!
{
	"t":"store_counter",		/* action type */
	"p":{
		"engine_hours":"<text>",		/* name of parameter for engine hours counter */
		"flags":"<text>",			/* flags (see below) */
		"mileage":"<text>"		/* name of parameter for mileage counter */
	}
}

Flags:

FlagDescription
1Store mileage counter value as a parameter.
2Store engine hours counter value as a parameter.

Register unit status

Copied!
{
	"t":"status",		/* action type */
	"p":{
		"ui_text":"<text>"	/* status */
	}
}

Add or remove units from groups

Copied!
{
	"t":"group_manipulation",	/* action type */
	"p":{
		"add_to":"<text>",		/* add to specified groups */
		"remove_from":"<text>"		/* remove from specified groups */
	}
}

Send a report by email

Copied!
{
	"t":"email_report",	/* action type */
	"p":{
		"email_to":"<text>",		/* email address */
		"file_type":"<text>",		/* file format (see below) */
		"flags":"<text>",			/* interval flags */
		"params":"<text>",		/* report configuration (XML) */
		"report_guid":"<text>",		/* resource ID */
		"report_id":"<text>",		/* template ID */
		"report_object_guid":"<text>",	/* ID of item for report */
		"report_object_id":"<text>",	/* ID of subitem (0 — if report executed for item) */
		"time_from":"<text>",		/* the beginning of the time interval */
		"time_to":"<text>"		/* the end of the time interval */
	}
}

Interval flags are described here.

File formats:

  • 1 — HTML;
  • 2 — PDF;
  • 4 — XLS;
  • 8 — XLSX;
  • 16 — XML;
  • 32 — CSV.

Create a ride

Copied!
{
	"t":"route_control",	/* action type */
	"p":{
		"description":"<text>",	/* description */
		"expiration":"<text>",	/* expiration date */
		"flags":"<text>",		/* ride flags */
		"name":"<text>",		/* name */
		"route":"<text>",		/* route ID */
		"schedule":"<text>"	/* schedule ID */
	}
}

Ride flags are described here.

Separate driver

Copied!
{
	"t":"drivers_reset",	/* action type */
	"p":{}
}

Separate trailer

Copied!
{
	"t":"trailers_reset",	/* action type */
	"p":{}
}

Control types

The following control types are available for notifications:

Geofence

Copied!
"trg":{
	"t":"geozone",		/* control type */
	"p":{
		"sensor_type":"<text>",		/* sensor type */
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"lower_bound":<uint>,		/* sensor value from */
		"upper_bound":<uint>,		/* sensor value to */
		"prev_msg_diff":<uint>, 	/* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"merge":<uint>,			/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"reversed":<uint>,		/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"geozone_ids":"<text>",		/* list of geofence IDs (separated by commas) */
		"type":<uint>,			/* control type: 0 — control entries to a geofence, 1 — control exits from a geofence */
		"min_speed":<uint>,		/* minimum speed, km/h */
		"max_speed":<uint>,		/* maximum speed, km/h */
		"include_lbs":<uint>,		/* process LBS messages: 1 — yes, 0 — no */
		"lo":"<text>"			/* logic operator (optional): "AND", "OR" */
	}
}

Address

Copied!
"trg":{
	"t":"address",		/* control type */
	"p":{
		"sensor_type":"<text>",		/* sensor type */
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"lower_bound":<uint>,		/* sensor value from */
		"upper_bound":<uint>,		/* sensor value to */
		"prev_msg_diff":<uint>, 	/* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"merge":<uint>,			/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"reversed":<uint>,		/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"radius":<uint>,		/* trigger radius */ 
		"type":<uint>,			/* control type: 0 — control in the address radius, 1 — control out of the address radius */
		"min_speed":<uint>,		/* minimum speed, km/h */
		"max_speed":<uint>,		/* maximum speed, km/h */
		"country":"<text>",		/* country */
		"region":"<text>",		/* region */
		"city":"<text>",			/* city */
		"street":"<text>",		/* street */
		"house":"<text>",			/* house */
		"include_lbs":<uint>		/* process LBS messages: 1 — yes, 0 — no */
	}
}

Speed

Copied!
"trg":{
	"t":"speed",		/* control type */
	"p":{
		"lower_bound":"<text>",	/* sensor value from */
		"max_speed":"<text>",	/* maximum speed, km/h */
		"merge":"<text>",		/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"min_speed":"<text>",	/* minimum speed, km/h */
		"prev_msg_diff":"<text>", /* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"reversed":"<text>",	/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"sensor_type":"<text>",	/* sensor type */
		"upper_bound":"<text>"	/* sensor value to */
	}
}

Alarm (SOS)

Copied!
"trg":{
	"t":"alarm",		/* control type */
	"p":{}
}

Digital input

Copied!
"trg":{
	"t":"digital_input",	/* control type */
	"p":{
		"input_index":"<text>",	/* digital input (1-32) */
		"type":"<text>"  		/* control type: 0 — check for activation, 1 — check for deactivation */
	}
}

Parameter in a message

Copied!
"trg":{
	"t":"msg_param",	/* control type */
	"p":{
		"kind":"<text>",		/* parameter control type (see below) */
		"lower_bound":"<text>",	/* parameter value from */
		"param":"<text>",		/* parameter name */
		"text_mask":"<text>",	/* text mask */
		"type":"<text>",		/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"upper_bound":"<text>"	/* parameter value to */
	}
}

Parameter control types:

TypeDescription
0Value range.
1Text mask.
2Parameter availability.
3Parameter lack.

Sensor value

Copied!
"trg":{
	"t":"sensor_value",		/* control type */
	"p":{
		"lower_bound":"<text>",		/* sensor value from */
		"merge":"<text>",			/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"prev_msg_diff":"<text>",         /* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"sensor_type":"<text>",		/* sensor type */
		"type":"<text>",			/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"upper_bound":"<text>"		/* sensor value to */
	}
}

Connection loss

Copied!
"trg":{
	"t":"outage",		/* control type */
	"p":{
		"time":"<text>",		/* time interval, s */
		"type":"<text>",		/* control type: 0 — coordinates loss, 1 — connection loss */
		"include_lbs":<uint>,	/* process LBS messages: 1 — yes, 0 — no  */
		"check_restore":<uint>,	/* notify when: 0 — connection lost, 1 — connection lost and restored, 2 — connection restored */
		"geozones_type":"<text>", /* control type: 0 — out of geofence, 1 — in geofence */ 
		"geozones_list":"<text>"  /* the list of geofence IDs (separated by commas) */
	}
}

Off time

Copied!
"trg":{
	"t":"speed",		/* control type */
	"p":{
		"lower_bound":"<text>",		/* sensor value from */
		"max_speed":"<text>",		/* maximum speed, km/h */
		"merge":"<text>",			/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"min_idle_time":"<text>",		/* minimum idle time, min */
		"min_speed":"<text>",		/* minimum speed, km/h */
		"prev_msg_diff":"<text>",         /* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"reversed":"<text>",		/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"sensor_type":"<text>",		/* sensor type */
		"upper_bound":"<text>",		/* sensor value to */
		"geozones_type":"<text>", 	/* control type: 0 — out of geofence, 1 — in geofence */ 
		"geozones_list":"<text>"  	/* the list of geofence IDs (separated by commas) */
	}
}

The value of the min_idle_time parameter specified in minutes must correspond to the value of the mast parameter specified in seconds. Thus, if you want the notification to be triggered after 10 minutes of off time, specify 10 for min_idle_time and 600 for mast.

SMS

Copied!
"trg":{
	"t":"sms",		/* control type */
	"p":{
		"mask":"<text>"		/* SMS text mask */
	}
}

Interposition of units

Copied!
"trg":{
	"t":"interposition",		/* control type */
	"p":{
		"sensor_name_mask":"<text>",	/* sensor name mask */
		"sensor_type":"<text>",		/* sensor type */
		"lower_bound":"<text>",		/* sensor value from */
		"upper_bound":"<text>"		/* sensor value to */
		"merge":"<text>",			/* similar sensors: 0 — calculate separately, 1 — sum up values */
		"max_speed":"<text>",		/* maximum speed, km/h */
		"min_speed":"<text>",		/* minimum speed, km/h */
		"reversed":"<text>",		/* trigger: 0 — in the specified range, 1 — out of the specified range */
		"prev_msg_diff":"<text>",         /* this flag allows forming boundaries for the current value according to the previous value(prev) in the following way: [prev+lower_bound ; prev+upper_bound]; so boundaries for the current value are always relative to the previous value; 0 — disable the option, 1 — enable the option */
		"radius":"<text>",		/* radius, m */
		"type":"<text>",			/* control type: 0 — control approaching to units, 1 — control moving away from units */
		"unit_guids":"<text>",		/* the list of control unit IDs (separated by commas) */
		"include_lbs":<uint>,		/* process LBS messages: 1 — yes, 0 — no */
		"lo":"<text>"			/* logic operator (optional): "AND", "OR" */
	}
}

Excess of messages

Copied!
"trg":{
	"t":"msgs_counter",		/* control type */
	"p":{
		"flags":"<text>",			/* message type: 1 — data messages, 2 — SMS messages */
		"msgs_limit":"<text>",		/* limit of messages */
		"time_offset":"<text>"		/* reset counter each (limit 24h), s */
	}
}

Route progress

Copied!
"trg":{
	"t":"route_control",		/* control type */
	"p":{
		"mask":"<text>",			/* route name mask */
		"round_mask":"<text>",		/* ride name mask */
		"schedule_mask":"<text>",		/* schedule name mask */
		"types":"<text>"			/* route control types (separated by commas) */
	}
}

Route control types:

TypeDescription
1Ride started.
2Ride finished.
4Ride aborted.
8Arrival at check point.
16Check point skipped.
32Departure from check point.
64Delay.
128Outrunning.
256Return to schedule.

Driver

Copied!
"trg":{
	"t":"driver",		/* control type */
	"p":{
		"driver_code_mask":"<text>",	/* driver code mask */
		"flags":"<text>"			/* control type: 1 — driver assignment, 2 — driver separation */
	}
}

Trailer

Copied!
"trg": {
	"t": "trailer",		/* control type */
	"p": {
		"driver_code_mask": "<text>",	/* trailer code mask */
		"flags": "<text>"			/* control type: 1 — trailer assignment, 2 — trailer separation */
	}
}

Maintenance

Copied!
"trg":{
	"t":"service_intervals",	/* control type */
	"p":{
		"days":"<text>",			/* days interval */
		"engine_hours":"<text>",		/* engine hours interval, h */
		"flags":"<text>",			/* maintenance control flags (see below) */
		"mask":"<text>",			/* wildcard based mask */
		"mileage":"<text>",		/* mileage interval, km */
		"val":"<text>"			/* notify when: 1 — service term approaches, -1 — service term is expired */
	}
}

Maintenance control flags:

FlagDescription
0Control all service intervals.
1Mileage interval.
2Engine hours interval.
4Days interval.

Fuel filling or battery charge

Copied!
"trg":{
	"t":"fuel_filling",	/* control type */
	"p":{
		"sensor_name_mask":"<text>",			/* sensor name mask */
		"geozones_type":<uint>,		/* geofence control type: 0 — disabled or outside geofence, 1 — inside geofence */
		"geozones_list":"<text>",			/* the list of geofence IDs (separated by commas) in the format "resourceID_geozone ID" */
		"realtime_only":<uint>,			/* ignore the recalculation of historical data: 0 — disable, 1 — enable */
	}
}

Fuel drain

Copied!
"trg":{
	"t":"fuel_theft",	/* control type */
	"p":{
		"sensor_name_mask":"<text>",			/* sensor name mask */
		"geozones_type":<uint>,		/* geofence control type: 0 — disabled or outside geofence, 1 — inside geofence */
		"geozones_list":"<text>",			/* the list of geofence IDs (separated by commas) in the format "resourceID_geozone ID" */
		"realtime_only":<uint>,			/* ignore the recalculation of historical data: 0 — disable, 1 — enable */
	}
}

Device health check status

Copied!
"trg": {
        "t": "health_check",  /* Control type */
        "p": {
            "healthy": <uint>,  /* Shows if the device is healthy: 0 — no, 1 — yes */
            "unhealthy": <uint>,   /* Shows if the device is unhealthy: 0 — no, 1 — yes */
            "needAttention": <uint>,  /* Shows if the device is needs attention: 0 — no, 1 — yes */
            "triggerForEachIncident": <uint>  /* Trigger for each incident: 0 — disabled, 1 — enabled */
        }
    }

Error codes

CodeDescription
4Wrong input parameters.
7The user doesn't have the required access right to the resource (ADF_ACL_AVL_RES_VIEW_NF).
Download PDF file
Download Word document

See also