Настройка получения показаний с датчиков
Примечание
Работа через API доступна только пользователю с ролью Администратор в сервисе Маршрутизации.
Данные с датчиков нужно передавать на сервер b2bgeo-flex-proxy.maps.yandex.net, порт 6000.
При планировании для автомобиля должен быть указан IMEI-номер GPS-трекера, к которому привязан температурный датчик.
Проверка доступности
Перед началом работы проверте доступность функциональности датчиков в вашей компании.
GET https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/features
В ответе проверьте значение параметра sensors
.
Проверить, что данные с датчиков поступают в сервис Мониторинга, можно в разделе GPS-трекеры.
Диапазон значений
Для датчика можно задать диапазон допустимых значений. Один диапазон можно использовать для нескольких датчиков одной функциональности (например, для всех датчиков температуры в отсеке для замороженных продуктов).
POST https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/sensor-ranges
В теле запроса передаются параметры диапазона значений:
number
— название диапазона значений;min
,max
— допустимый диапазон значений (минимальное и максимальное значения);threshold_time
— максимальное время нахождения за пределами допустимого диапазона в секундах. Если показания датчика находятся за пределами допустимого диапазона дольше указанного времени, график показаний отобразится красным цветом. Также можно настроить отправку уведомления для этого события.
Пример
Допустимый диапазон температур в кузове автомобиля — от 0 до 10 градусов. Уведомление нужно отправлять, если температурный режим нарушается дольше 10 минут.
Запрос:
POST https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/sensor-ranges
Тело запроса:
[
{
"number": "temp_range",
"min": 0,
"max": 10,
"threshold_time": 600
}
]
Запрос вернет код ответа 200 и тело ответа, где параметр id
— это уникальный идентификационный номер диапазона значений.
Тело ответа:
[
{
"id": "78",
"number": "temp_range",
"min": 0,
"max": 10,
"threshold_time": 600
}
]
Привязка датчика к маршруту
Чтобы видеть график показаний датчика в Рабочем месте логиста, привяжите датчик к маршруту.
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/sensors
При привязке датчика к маршруту задаются:
sensor_number
— номер поля в протоколе FLEX, в котором передаются показания датчика (номера от 0 до 7 соответстуют параметрамtemp1
–temp8
, а номера от 8 до 11 — параметрамhp_temp1
–hp_temp4
);sensor_name
— название датчика, которое будет отображаться в интерфейсе;sensor_range_id
— уникальный идентификационный номер диапазона значений.
Примечание
При добавлении датчика на маршрут в запросе нужно указывать также все привязанные ранее датчики.
Пример 1. Привязка первого датчика
Пусть маршрут route_id
= 12 выполняет автомобиль с датчиком температуры кузова sensor_number
= 34. Для датчика указывается определенный ранее диапазон значений sensor_range_id
= 78.
Запрос:
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/12/sensors
Тело запроса:
[
{
"sensor_number": "34",
"sensor_range_id": "78",
"sensor_name": "Температура в кузове"
}
]
Пример 2. Добавление еще одного датчика
Для автомобиля на маршруте route_id
= 12 добавляется еще один датчик температуры sensor_number
= 56 с тем же диапазоном значений sensor_range_id
= 78.
Запрос:
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/12/sensors
Тело запроса:
[
{
"sensor_number": "34",
"sensor_range_id": "78",
"sensor_name": "Температура в кузове"
},
{
"sensor_number": "56",
"sensor_range_id": "78",
"sensor_name": "Температура в прицепе"
}
]
Отключение датчиков от маршрута
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/sensors
Тело запроса должно быть пустым.
Пример
От маршрута route_id
= 12 нужно отвязать датчики.
Запрос:
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/12/sensors
Тело запроса:
[]
Настройка отправки уведомлений
Для настройки отправки уведомлений укажите массив alerts
. Каждый элемент массива задает событие, при наступлении которого будет отправляться уведомление в Рабочее место логиста.
Для каждого элемента массива alerts
укажите параметры:
type
— тип события. Возможные значения:range
— показания датчика выходят за пределы допустимого диапазона и остаются вне диапазона указанное время;no_data
— показания датчика не поступают в течение указанного времени или дольше.
threshold_time
— период времени, по истечении которого событие считается наступившим. Указывается в секундах. Например, максимальное время нахождения показаний датчика за пределами допустимого диапазона или максимальное время отсутствия показаний с датчика.scope
— дополнительное ограничение. Необязательный параметр. Возможное значение:while_not_empty
— событие фиксируется, только если в автомобиле есть груз.repeat
— настройки повторной отправки уведомлений:period
— время между повторными уведомлениями. Указывается в секундах. Уведомление будет отправляться повторно, только если событие все еще продолжается.
Пример
В автомобиле установлен температурный датчик sensor_number
= 56. Уведомление нужно отправлять, если показания датчика выходят за пределы допустимого диапазона и это состояние сохраняется дольше 1 минуты. Уведомление отправляется только в том случае, если в кузове автомобиля есть груз. Уведомления нужно повторять каждые 10 минут. Такие же настройки применяются для уведомлений об отсутствии показаний с датчика.
Запрос:
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/features/sensors
Тело запроса:
{
"alerts": [
{
"type": "range",
"threshold_time": 60,
"scope": "while_not_empty",
"repeat": {
"period": 600
}
},
{
"type": "no_data",
"threshold_time": 60,
"scope": "while_not_empty",
"repeat": {
"period": 600
}
}
]
}