Содержание

Уведомления: подробная информация

Для того, чтобы получить подробную информацию об интересующих вас уведомлениях, нужно использовать команду resource/get_notification_data:

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

Параметры

Название Описание
itemId ID ресурса
col массив идентификаторов уведомлений

Возвращаемый результат

[
	{
		"id":<long>,	/* ID уведомления */
		"n":<text>,	/* название */
		"txt":<text>,	/* текст уведомления */
		"ta":<uint>,	/* время активации (UNIX формат) */
		"td":<uint>,	/* время деактивации (UNIX формат) */
		"ma":<uint>,	/* максимальное количество срабатываний (0 - не ограничено) */
		"mmtd":<uint>,	/* максимальный временной интервал между сообщениями (секунд) */
		"cdt":<uint>,	/* таймаут срабатывания(секунд) */
		"mast":<uint>,	/* минимальная продолжительность тревожного состояния (секунд) */
		"mpst":<uint>,	/* минимальная продолжительность предыдущего состояния (секунд) */
		"cp":<uint>,	/* период контроля относительно текущего времени (секунд) */
		"fl":<uint>,	/* флаги (см. ниже) */
		"tz":<uint>,	/* часовой пояс */
		"la":<text>,	/* язык пользователя (двухбуквенный код) */
		"ac":<uint>,	/* количество срабатываний */
		"sch":{		/* ограничение по времени */
			"f1":<uint>,	/* время начала интервала 1 (количество минут от полуночи) */
			"f2":<uint>,	/* время начала интервала 2 (количество минут от полуночи) */
			"t1":<uint>,	/* время окончания интервала 1 (количество минут от полуночи) */
			"t2":<uint>,	/* время окончания интервала 2 (количество минут от полуночи) */
			"m":<uint>,	/* маска дней месяца [1: 2^0, 31: 2^30] */
			"y":<uint>,	/* маска месяцев [янв: 2^0, дек: 2^11] */
			"w":<uint>	/* маска дней недели [пн: 2^0, вс: 2^6] */
		},
		"ctrl_sch":{	/* расписание периодов ограничения количества срабатывания */
			"f1":<uint>,	/* время начала интервала 1 (количество минут от полуночи) */
			"f2":<uint>,	/* время начала интервала 2 (количество минут от полуночи) */
			"t1":<uint>,	/* время окончания интервала 1 (количество минут от полуночи) */
			"t2":<uint>,	/* время окончания интервала 2 (количество минут от полуночи) */
		 	"m":<uint>,	/* маска дней месяца [1: 2^0, 31: 2^30] */
		 	"y":<uint>,	/* маска месяцев [янв: 2^0, дек: 2^11] */
		 	"w":<uint>	/* маска дней недели [пн: 2^0, вс: 2^6] */
		},
		"un":[<long>],	/* массив ID объектов/групп объектов */
		"act":[			/* действия */
			{
				"t":<text>,		/* тип действия (см. ниже) */
				"p":{			/* параметры */
					"blink": <text>,	/* мигать миникартой при срабатывании */ 
					"color": <text>,	/* цвет онлайн уведомления */
					"url": <text>,		/* url адрес звука срабатывания */
					...
				},
				...
			}
		],
		"trg":{			/* контроль */
			"t":<text>,		/* тип контроля (см. ниже) */
			"p":{			/* параметры */
				<text>:<text>,		/* название параметра: значение */
				...
			}
		},
		"ct":<uint>,        /* время создания */
		"mt":<uint>         /* время последнего изменения */
	}
]

Флаги уведомлений:

Флаг Описание
0x0 уведомление срабатывает на первое сообщение
0x1 уведомление срабатывает на каждое сообщение
0x2 уведомление выключено

Типы действий

Уведомить по e-mail

{
	"t":"email",		/* тип действия */
	"p":{
		"email_to":<text>,	/* e-mail адрес */
		"html":<text>,		/* использовать html-теги: 0 - нет, 1 - да  */
		"img_attach":<text>,	/* прикрепить изображение из сработавшего уведомления (1 - да, 0 - нет) */
		"subj":<text>		/* текст сообщения */
	}
}

Уведомить при помощи SMS

{
	"t":"sms",		/* тип действия */
	"p":{
		"phones":<text>		/* список телефонных номеров (через точку с запятой) */
	}
}

Отобразить онлайн уведомление во всплывающем окне

{
	"t":"message",			/* тип действия */
	"p":{
		"color":<text>,		/* цвет уведомления */
		"name":<text>,		/* название уведомления */
		"url":<text>		/* URL-адрес звука уведомления */
 
	}
}

Отправить мобильное уведомление

{
	"t":"mobile_apps",		/* тип действия */
	"p":{
		"apps":"{\"<text>\":[	/* имя мобильного приложения */
				<uint>	/* id пользователя */
		]}"
	}
}

Выполнить запрос

{
	"t":"push_messages",	/* тип действия */
	"p":{
		"url":<text>,		/* имя сервера (может быть указан порт), начните его с "http(s)" */
		"get":<bool>		/* тип запроса: 1 - GET, 0 - POST */		
	}
}

Зарегистрировать событие в истории объекта

{
	"t":"event",		/* тип действия */
	"p":{
		"flags":<text>		/* зарегистрировать как: 0 - событие, 1 - нарушение */
	}
}

Выполнить команду

{
	"t":"exec_cmd",		/* тип действия */
	"p":{
		"cmd_type":<text>,	/* тип команды */ 
		"link":<text>,		/* тип связи */
		"name":<text>,		/* название команды */
		"param":<text>		/* параметры */
	}
}

:!: Доступные типы команд можно посмотреть Список доступных команд

Изменить доступ к объектам

{
	"t":"user_access",	/* тип действия */
	"p":{
		"acl_bits":<text>,	/* биты, которые нужно изменить */
		"acl_mask":<text>,	/* маска */
		"units":<text>,		/* список объектов (через запятую) */
		"users":<text>		/* список пользователей (через запятую) */
	}
}

Установить значение счетчика

{
	"t":"counter",		/* тип действия */
	"p":{
		"engine_hours":<text>,	/* значение счетчика моточасов */
		"flags":<text>,		/* флаги (см. ниже) */
		"mileage":<text>,	/* значение счетчика пробега */
		"traffic":<text>	/* значение счетчика GPRS-трафика */
	}
}

Возможные флаги счетчиков:

Сохранить значение счетчика как параметр

{
	"t":"store_counter",		/* тип действия */
	"p":{
		"engine_hours":<text>,	/* название параметра для счетчика моточасов */
		"flags":<text>,			/* флаги (см. ниже) */
		"mileage":<text>		/* название параметра для счетчика пробега */
	}
}

Флаги:

Зарегистрировать статус объекта

{
	"t":"status",		/* тип действия */
	"p":{
		"ui_text":<text>	/* статус */
	}
}

Изменить вхождение в группы

{
	"t":"group_manipulation",	/* тип действия */
	"p":{
		"add_to":<text>,		/* добавить в указанные группы */
		"remove_from":<text>		/* исключить из указанных групп */
	}
}

Отправить отчет по e-mail

{
	"t":"email_report",	/* тип действия */
	"p":{
		"email_to":<text>,		/* e-mail адрес */
		"file_type":<text>,		/* формат файла */
		"flags":<text>,			/* флаги интервала */
		"params":<text>,		/* конфигурация отчета (xml) */
		"report_guid":<text>,		/* ID ресурса */
		"report_id":<text>,		/* ID шаблона */
		"report_object_guid":<text>,	/* ID элемента для отчета */
		"report_object_id":<text>,	/* ID подэлемента (0 - если отчет строится для элемента) */
		"time_from":<text>,		/* начало временного интервала */
		"time_to":<text>		/* конец временного интервала */
	}
}

Флаги интервала рассмотрены в разделе Отчеты: Выполнение отчета.

Форматы файлов:

Создать рейс

{
	"t":"route_control",	/* тип действия */
	"p":{
		"description":<text>,	/* описание */
		"expiration":<text>,	/* срок действия */
		"flags":<text>,		/* флаги рейса */
		"name":<text>,		/* название */
		"route":<text>,		/* ID маршрута */
		"schedule":<text>	/* ID расписания */
	}
}

Флаги рейса рассмотрены в разделе Информация о рейсах.

Снятие водителя

{
	"t":"drivers_reset",	/* тип действия */
	"p":{}
}

Снятие прицепа

{
	"t":"trailers_reset",	/* тип действия */
	"p":{}
}

Типы контроля

Контроль геозоны

"trg":{
	"t":"geozone",		/* тип контроля */
	"p":{
		"sensor_type":<text>,		/* тип датчика */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"lower_bound":<uint>,		/* значение датчика от */
		"upper_bound":<uint>,		/* значение датчика до */
		"prev_msg_diff":<uint>, 	/* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */		
		"merge":<uint>,			/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"reversed":<uint>,		/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"geozone_ids":<text>,		/* список идентификаторов геозон (через запятую) */
		"type":<uint>,			/* тип проверки: 0 - контролировать вход в геозону, 1 - контролировать выход из геозоны */
		"min_speed":<uint>,		/* минимальная скорость, км/ч */
		"max_speed":<uint>,		/* максимальная скорость, км/ч */
		"include_lbs":<uint>,		/* учитывать LBS-сообщения: 1 - да, 0 - нет  */
		"lo":<text>			/* логический оператор (опциональный): "AND", "OR" */
	}
}

Контроль адреса

"trg":{
	"t":"address",		/* тип контроля */
	"p":{
		"sensor_type":<text>,		/* тип датчика */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"lower_bound":<uint>,		/* значение датчика от */
		"upper_bound":<uint>,		/* значение датчика до */
		"prev_msg_diff":<uint>, 	/* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */		
		"merge":<uint>,			/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"reversed":<uint>,		/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"radius":<uint>,		/* радиус срабатывания */ 
		"type":<uint>,			/* тип проверки: 0 - контролировать в адресе, 1 - контролировать вне адреса */
		"min_speed":<uint>,		/* минимальная скорость, км/ч */
		"max_speed":<uint>,		/* максимальная скорость, км/ч */
		"country":<text>,		/* страна */
		"region":<text>,		/* регион */
		"city":<text>,			/* город */
		"street":<text>,		/* улица */
		"house":<text>,			/* дом */
		"include_lbs":<uint>		/* учитывать LBS-сообщения: 1 - да, 0 - нет  */
	}
}

Контроль скорости

"trg":{
	"t":"speed",		/* тип контроля */
	"p":{
		"lower_bound":<text>,	/* значение датчика от */
		"max_speed":<text>,	/* максимальная скорость, км/ч */
		"merge":<text>,		/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"min_speed":<text>,	/* минимальная скорость, км/ч */
		"prev_msg_diff":<text>, /* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */
		"reversed":<text>,	/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"sensor_type":<text>,	/* тип датчика */
		"upper_bound":<text>	/* значение датчика до */
	}
}

Нажатие тревожной кнопки

"trg":{
	"t":"alarm",		/* тип контроля */
	"p":{}
}

Активация/дезактивация цифрового входа

"trg":{
	"t":"digital_input",	/* тип контроля */
	"p":{
		"input_index":<text>,	/* цифровой вход (1-32) */
		"type":<text>  		/* тип проверки: 0 - на активацию, 1 - на дезактивацию */
	}
}

Контроль параметра в сообщении

"trg":{
	"t":"msg_param",	/* тип контроля */
	"p":{
		"kind":<text>,		/* тип контроля параметра */
		"lower_bound":<text>,	/* значение параметра от */
		"param":<text>,		/* название параметра */
		"text_mask":<text>,		/* текстовая маска */
		"type":<text>,		/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"upper_bound":<text>	/* значение параметра до */
	}
}

Типы контроля параметра:

Контроль значения датчика

"trg":{
	"t":"sensor_value",		/* тип контроля */
	"p":{
		"lower_bound":<text>,		/* значение датчика от */
		"merge":<text>,			/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"prev_msg_diff":<text>, /* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"sensor_type":<text>,		/* тип датчика */
		"type":<text>,			/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"upper_bound":<text>		/* значение датчика до */
	}
}

Потеря/восстановление связи или координат

"trg":{
	"t":"outage",		/* тип контроля */
	"p":{
		"time":<text>,		/* длительность потери (секунд) */
		"type":<text>,		/* тип потери: 0 - координаты, 1  - связь */
		"include_lbs":<uint>,	/* учитывать LBS-сообщения: 1 - да, 0 - нет  */
		"check_restore":<uint>,	/* уведомлять о: 0 - потере связи, 1 - потере и восстановлении связи, 2 - восстановлении связи  */
		"geozones_type":<text>, /* тип проверки: 0 - контролировать вне геозоны, 1 - контролировать в геозоне */ 
		"geozones_list":<text>  /* список ID геозон (через запятую) */
	}
}

Простой Т/С

"trg":{
	"t":"speed",		/* тип контроля */
	"p":{
		"min_speed":<text>,		/* минимальная скорость, км/ч */
		"max_speed":<text>,		/* максимальная скорость, км/ч */
		"merge":<text>,			/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"min_idle_time":<text>,		/* допустимое время простоя, мин */
		"prev_msg_diff":<text>,         /* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */
		"reversed":<text>,		/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"sensor_type":<text>,		/* тип датчика */
		"lower_bound":<text>,		/* значение датчика от */
		"upper_bound":<text>,		/* значение датчика до */
		"include_lbs":<uint>,		/* учитывать LBS-сообщения: 1 - да, 0 - нет  */
		"geozones_type":<text>, 	/* тип проверки: 0 - контролировать вне геозоны, 1 - контролировать в геозоне */ 
		"geozones_list":<text>  	/* список ID геозон (через запятую) */
	}
}

Контроль SMS

"trg":{
	"t":"sms",		/* тип контроля */
	"p":{
		"mask":<text>		/* маска для текста SMS-сообщения */
	}
}

Взаиморасположение объектов

"trg":{
	"t":"interposition",		/* тип контроля */
	"p":{
		"sensor_type":<text>,		/* тип датчика */
		"sensor_name_mask":<text>,	/* маска названия датчика */
		"lower_bound":<text>,		/* значение датчика от */
		"upper_bound":<text>		/* значение датчика до */
		"prev_msg_diff":<text>,         /* флаг, позволяющий сформировать диапазон для текущего значения с помощью предыдущего значения(prev) следующим образом: [prev+lower_bound ; prev+upper_bound] -- таким образом диапазон для текущего значения всегда относителен и зависит от предыдущего значения; 0 - выключить опцию, 1 - включить опцию */
		"merge":<text>,			/* одинаковые датчики: 0 - считать отдельно, 1 - суммировать значения */
		"reversed":<text>,		/* срабатывать: 0 - в рамках установленных значений, 1 - за пределами установленных значений */
		"unit_guids":<text>,		/* ID контролируемыx объектов (через запятую) */
		"radius":<text>,		/* радиус, м */
		"type":<text>,			/* тип проверки: 0 - контролировать приближение к объектам, 1 - контролировать удаление от объектов */
		"max_speed":<text>,		/* максимальная скорость, км/ч */
		"min_speed":<text>,		/* минимальная скорость, км/ч */
		"include_lbs":<uint>,		/* учитывать LBS-сообщения: 1 - да, 0 - нет  */
		"lo":<text>			/* логический оператор (опциональный): "AND", "OR" */
	}
}

Превышение количества сообщений

"trg":{
	"t":"msgs_counter",		/* тип контроля */
	"p":{
		"flags":<text>,			/* тип сообщений: 1 - сообщения от объекта, 2 - SMS-сообщения */
		"msgs_limit":<text>,		/* лимит сообщений */
		"time_offset":<text>		/* интервал сброса датчика, секунд */
	}
}

Контроль маршрута

"trg":{
	"t":"route_control",		/* тип контроля */
	"p":{
		"mask":<text>,			/* маска имени маршрута */
		"round_mask":<text>,		/* маска имени рейса */
		"schedule_mask":<text>,		/* маска имени расписания */
		"types":<text>			/* типы контроля маршрута (через запятую) */
	}
}

Типы контроля маршрута:

Контроль водителя

"trg":{
	"t":"driver",		/* тип контроля */
	"p":{
		"driver_code_mask":<text>,	/* маска кода водителя */
		"flags":<text>			/* тип контроля: 1 - назначение водителя,  2 - снятие водителя */
	}
}

Контроль прицепа

"trg": {
	"t": "trailer",		/* тип контроля */
	"p": {
		"driver_code_mask": <text>,	/* маска кода прицепа */
		"flags": <text>			/* тип контроля: 1 - привязка прицепа, 2 - снятие прицепа */
	}
}

Техобслуживание

"trg":{
	"t":"service_intervals",	/* тип контроля */
	"p":{
		"days":<text>,			/* интервал в днях */
		"engine_hours":<text>,		/* интервал по моточасам, ч */
		"flags":<text>,			/* флаги контроля техобслуживания */
		"mask":<text>,			/* маска фильтра инревалов */
		"mileage":<text>,		/* интервал по пробегу, км */
		"val":<text>			/* уведомлять: 1 - о приближении срока техобслуживания, -1 - о просрочке */
	}
}

Флаги контроля техобслуживания: