Table of Contents

Notifications: create, edit, delete

To create, edit or delete notifications, use the command resource/update_notification:

svc=resource/update_notification&params={"itemId":<long>,
					 "id":<long>,
					 "callMode":<text>,
					 "n":<text>,
					 "txt":<text>,
					 "ta":<uint>,
					 "td":<uint>,
					 "ma":<uint>,
					 "mmtd":<uint>,
					 "cdt":<uint>,
					 "mast":<uint>,
					 "mpst":<uint>,
					 "cp":<uint>,
					 "fl":<uint>,
					 "tz":<int>,
					 "la":<text>,
					 "un":[<long>],
					 "sch":{	
						"f1":<uint>,
						"f2":<uint>,
						"t1":<uint>,
						"t2":<uint>,
						"m":<uint>,
						"y":<uint>,
						"w":<uint>
					 },
					 "trg":{	
						"t":<text>,
						"p":{	
							<text>:<text>,
							...
						}
					 },
					 "act":[	
						{
							"t":<text>,
							"p":{	
								<text>:<text>,
								...
							}
						}
					 ]}

Parameters

Название Описание
itemId resource ID
id notification ID
callMode action: create, update, delete
Parameters required only for create and update:
n name
txt text of notification
ta activation time (UNIX format)
td deactivation time (UNIX format)
ma maximal alarms count (0 - unlimited)
mmtd maximal time interval between messages (seconds)
cdt timeout of alarm (seconds)
mast minimal duration of alert state (seconds)
mpst minimal duration of previous state (seconds)
cp period of control relative to current time (seconds)
fl notification flags (see below)
tz time zone
la user language (two-lettered code)
un array units IDS
sch time limitation
f1 beginning of interval 1
f2 beginning of interval 2
t1 ending of interval 1
t2 ending of interval 2
m days of month mask
y months mask
w days of week mask
trg control
t – control type (see Control types)
p – parameters parameter name: value
act actions
t – action type (see Action types)
p – parameters parameter name: value

Notification flags:

Flag Description
0x0 notification triggers for first message
0x1 notification triggers for every message
0x2 notification is disabled

Response

On create and edit:

[
	<long>,		/* notification ID */
	{
		"id":<long>,	/* notification ID */
		"n":<text>,	/* name */
		"txt":<text>,	/* text of notification */
		"ta":<uint>,	/* activation time (UNIX format) */
		"td":<uint>,	/* deactivation time (UNIX format) */
		"ma":<uint>	/* maximal alarms count (0 - unlimited) */
		"mmtd":<uint>,	/* maximal time interval between messages (seconds) */
		"cdt":<uint>,	/* timeout of alarm (seconds) */
		"mast":<uint>,	/* minimal duration of alert state (seconds) */
		"mpst":<uint>,	/* minimal duration of previous state (seconds) */
		"cp":<uint>,	/* period of control relative to current time (seconds) */
		"fl":<uint>	/* notification flags (see abowe) */
		"tz":<int>	/* time zone */
		"la":<text>,	/* user language (two-lettered code) */
		"ac":<uint>,	/* alarms count */
		"sch":{		/* time limitation */
			"f1":<uint>,	/* beginning of interval 1 (minutes from midnight) */
			"f2":<uint>,	/* beginning of interval 2 (minutes from midnight) */
			"t1":<uint>,	/* ending of interval 1 (minutes from midnight) */
			"t2":<uint>,	/* ending of interval 2 (minutes from midnight) */
			"mdm":<uint>,	/* days of month mask [1: 2^0, 31: 2^30] */
			"ymm":<uint>,	/* months mask [Jan: 2^0, Dec: 2^11] */
			"wdm":<uint>	/* days of week mask [Mon: 2^0, Sun: 2^6] */
		},
		"un":[<long>],	/* array units GUIDS  */
		"act":[{	/* actions */
			"t":<text>,	/* action type (see below) */
			"p":{		/* parameters - parameter name: value */
				<text>:<text>,
				...
			}
		}],
		"trg":{		/* control */
			"t":<text>,	/* control type (see below)я */
			"p":{		/* parameters - parameter name: value */
				<text>:<text>,
				...
			}
		}
	}
]

On delete:

[
	<long>,		/* notification ID */
	null
]

Errors

Code Value
1 invalid session
2 invalid service name
3 invalid result
4 invalid format or value of parameters
6 - notification with current ID doesn't exist
- error deleting notification
7 - access denied
- service is not activated

Action types

Notify by e-mail

{
	"t":"email",		/* action type */
	"p":{
		"email_to":<text>,	/* e-mail 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

{
	"t":"sms",		/* action type */
	"p":{
		"phones":<text>		/* list of phone numbers (semicolon-separated) */
	}
}

Display online notification in a popup window

{
	"t":"message",		/* action type */
	"p":{
		"name":<text>		/* name of notification */
	}
}

Register event for unit

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

Execute a command

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

Modify users access level

{
	"t":"user_access",	/* action type */
	"p":{
		"acc_level":<text>,	/* access rights */		
		"users":<text>		/* list of users GUIDs (comma-separated) */
	}
}

Access rights are described in chapter Get access level.

Set counter value

{
	"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:

Store counter value as parameter

{
	"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:

Register unit status

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

Modify unit groups

{
	"t":"group_manipulation",	/* action type */
	"p":{
		"add_to":<text>,		/* add to specified groups (comma-separated GUIDs) */
		"remove_from":<text>		/* exclude from specified groups (comma-separated GUIDs) */
	}
}

Send a report by e-mail

{
	"t":"email_report",	/* action type */
	"p":{
		"user":<text>,			/* user GUID */
		"report_object_guid":<text>,	/* GUID of item for report */
		"report_object_id":<text>,	/* ID of subitem (0 - if report executed for item) */
		"report_guid":<text>,		/* resource GUID */
		"report_id":<text>,		/* template ID */
		"time_from":<text>,		/* beginning of time interval */
		"time_to":<text>,		/* ending of time interval */
		"flags":<text>,			/* interval flags */
		"file_type":<text>,		/* file format: html, pdf, xls, xlsx, xml, csv */
		"email_to":<text>,		/* e-mail address */
		"pack":<text>,			/* compress report files: 1 - yes, 0 - no */
		"params":<text>,		/* report configuration (xml) */
        	"lang":<text>,			/* two-lettered language code */
        	"subj":<text>			/* subject */
	}
}

Interval flags are described in the chapter Reports: Execute report.

Assign route

{
	"t":"route_control",	/* action type */
	"p":{
		"name":<text>,		/* route name */
		"descr":<text>,		/* description */
		"flags":<text>,		/* route flags */
		"act_time":<text>,	/* activation time */
		"zone_id":<text>	/* geofence ID */
	}
}

Route flags are described in the chapter Routes: create, edit, delete.

Reset driver

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

Control types

Geofence control

"trg":{
	"t":"geozone",		/* control type */
	"p":{
		"geozone_ids":<text>,	/* list of geofences IDs (comma-separated) */
		"lower_bound":<text>,	/* sensor value from */
		"max_speed":<text>,	/* maximal speed, km/h */
		"merge":<text>,		/* similar sensors: 0 - calculate separately, 1 - sum up values */
		"min_speed":<text>,	/* minimal speed, km/h */
		"reversed":<text>,	/* trigger: 0 - in specified range, 1 - out of specified range */
		"sensor_name_mask":<text>,	/* sensor name mask */
		"sensor_type":<text>,	/* sensor type */
		"type":<text>,		/* check type: 0 - control entries to a geofence, 1 - control exits from a geofence */
		"upper_bound":<text>	/* sensor value to */
	}
}

Speed control

"trg":{
	"t":"speed",		/* control type */
	"p":{
		"lower_bound":<text>,	/* sensor value from */
		"max_speed":<text>,	/* maximal speed, km/h */
		"merge":<text>,		/* similar sensors: 0 - calculate separately, 1 - sum up values */
		"min_speed":<text>,	/* minimal speed, km/h */
		"reversed":<text>,	/* trigger: 0 - in specified range, 1 - out of specified range */
		"sensor_name_mask":<text>,	/* sensor name mask */
		"sensor_type":<text>,	/* sensor type */
		"upper_bound":<text>	/* sensor value to */
	}
}

Alarm button trigger

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

Digital input activation/deactivation

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

Message parameter control

"trg":{
	"t":"msg_param",	/* control type */
	"p":{
		"kind":<text>,		/* type of parameter control */
		"lower_bound":<text>,	/* parameter value from */
		"param":<text>,		/* parameter name */
		"text_mask":<text>,	/* text mask */
		"type":<text>,		/* trigger: 0 - trigger in specified range, 1 - trigger out of specified range */
		"upper_bound":<text>	/* parameter value to */
	}
}

Types of parameter control:

Sensor value control

"trg":{
	"t":"sensor_value",		/* control type */
	"p":{
		"lower_bound":<text>,		/* sensor value from */
		"merge":<text>,			/* similar sensors: 0 - calculate separately, 1 - sum up values */
		"sensor_name_mask":<text>,	/* sensor name mask */
		"sensor_type":<text>,		/* sensor type */
		"type":<text>,			/* trigger: 0 - in specified range, 1 - out of specified range */
		"upper_bound":<text>		/* sensor value to */
	}
}

Connection or coordinates loss

"trg":{
	"t":"outage",		/* control type */
	"p":{
		"time":<text>,		/* time interval, sec */
		"type":<text>		/* control type: 0 - coordinates loss, 1 - connection loss */
	}
}

Idles

"trg":{
	"t":"speed",		/* control type */
	"p":{
		"lower_bound":<text>,		/* sensor value from */
		"max_speed":<text>,		/* maximal speed, km/h */
		"merge":<text>,			/* similar sensors: 0 - calculate separately, 1 - sum up values */
		"min_idle_time":<text>,		/* minimal idle time, min */
		"min_speed":<text>,		/* minimal speed, km/h */
		"reversed":<text>,		/* trigger: 0 - in specified range, 1 - out of specified range */
		"sensor_name_mask":<text>,	/* sensor name mask */
		"sensor_type":<text>,		/* sensor type */
		"upper_bound":<text>		/* sensor value to */
	}
}

SMS control

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

Interposition of units

"trg":{
	"t":"interposition",		/* control type */
	"p":{
		"lower_bound":<text>,		/* sensor value from */
		"max_speed":<text>,		/* maximal speed, km/h */
		"merge":<text>,			/* similar sensors: 0 - calculate separately, 1 - sum up values */
		"min_speed":<text>,		/* minimal speed, km/h */
		"radius":<text>,		/* radius, m */
		"reversed":<text>,		/* trigger: 0 - in specified range, 1 - out of specified range */
		"sensor_name_mask":<text>,	/* sensor name mask */
		"sensor_type":<text>,		/* sensor type */
		"type":<text>,			/* check type: 0 - control approaching to units, 1 - control moving away from units */
		"unit_guids":<text>,		/* GUIDs of control units (comma-separated) */
		"upper_bound":<text>		/* sensor value to */
	}
}

Route control

"trg":{
	"t":"route_control",		/* control type */
	"p":{
		"mask":<text>,			/* route name mask */
		"types":<text>			/* types of route control (comma-separated) */
	}
}

Types of route control:

Driver control

"trg":{
	"t":"driver",		/* control type */
	"p":{
		"driver_code_mask":<text>,	/* driver code mask */
		"flags":<text>			/* control type: 1 - driver assignment,  2 - driver reset */
	}
}

Maintenance

"trg":{
	"t":"service_intervals",	/* control type */
	"p":{
		"days":<text>,			/* days interval */
		"engine_hours":<text>,		/* engine hours interval, h */
		"flags":<text>,			/* maintenance control flags */
		"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: