---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/kk/extras/temperature-sensors-setup.md
  - https://yandex.kz/routing/doc/ru/extras/temperature-sensors-setup.md
  - href: kk/extras/temperature-sensors-setup.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
title: Яндекс Маршрутизация — температурные датчики — настройка получения показаний с датчиков
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/kk/llms.txt


# Настройка получения показаний с датчиков 

{% note info %}

Работа через API доступна только пользователю с ролью Администратор в сервисе Маршрутизации.

{% endnote %}

Данные с датчиков нужно передавать на сервер **b2bgeo-flex-proxy.maps.yandex.net**, порт 6000.

При планировании для автомобиля должен быть указан IMEI-номер GPS-трекера, к которому привязан температурный датчик. 

## Проверка доступности {#check}

Перед началом работы проверте доступность функциональности датчиков в вашей компании. 

```
GET https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/features
``` 

В ответе проверьте значение параметра `sensors`.

Проверить, что данные с датчиков поступают в сервис Мониторинга, можно в разделе [GPS-трекеры](https://yandex.kz/routing/doc/kk/delivery/interface/gps-trackers.md).

## Диапазон значений {#range}

Для датчика можно задать диапазон допустимых значений. Один диапазон можно использовать для нескольких датчиков одной функциональности (например, для всех датчиков температуры в отсеке для замороженных продуктов). 

```
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
```

Тело запроса:

```json
[
    {
        "number": "temp_range",
        "min": 0,
        "max": 10,
        "threshold_time": 600
    }
]
```

Запрос вернет код ответа 200 и тело ответа, где параметр `id` — это уникальный идентификационный номер диапазона значений.

Тело ответа:

```json
[
    {
        "id": "78",
        "number": "temp_range",
        "min": 0,
        "max": 10,
        "threshold_time": 600
    }
]
```

## Привязка датчика к маршруту {#attach-sensor}

Чтобы видеть график показаний датчика в Рабочем месте логиста, привяжите датчик к маршруту. 

```
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` — уникальный идентификационный номер [диапазона значений](#range). 

{% note info %}

При добавлении датчика на маршрут в запросе нужно указывать также все привязанные ранее датчики.

{% endnote %}

**Пример 1. Привязка первого датчика**

Пусть маршрут `route_id` = 12 выполняет автомобиль с датчиком температуры кузова `sensor_number` = 34. Для датчика указывается определенный ранее диапазон значений `sensor_range_id` = 78.

Запрос:

```
PUT https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/12/sensors
```

Тело запроса:

```json
[
    {
        "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
```

Тело запроса:

```json
[
    {
        "sensor_number": "34",
        "sensor_range_id": "78",
        "sensor_name": "Температура в кузове"
    },
    {
        "sensor_number": "56",
        "sensor_range_id": "78",
        "sensor_name": "Температура в прицепе"
    }
]
```

## Отключение датчиков от маршрута {#detach-sensor}

```
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
```
Тело запроса:

```json
[]
```  

## Настройка отправки уведомлений {#alerts}

Для настройки отправки уведомлений укажите массив `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
```

Тело запроса:

```json
{
    "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
            }
        }
    ]
}
```

<!-- source: kk/extras/_includes/feedback.md -->
<a href="feedback">
  <span class="button">Написать в службу поддержки</span>
</a>


<!-- endsource: kk/extras/_includes/feedback.md -->
