Перейти к содержимому

10. Связывание правила с группой устройств

Для того, чтобы правило запускалось при получении заданных значений телеметрии, необходимо определить группу устройств и связать ее с существующим правилом.

В рамках примера группа устройств будет определяться классом, полученном на шаге Создание класса устройства.

Чтобы создать группу устройств, используйте метод POST front-api-srv/api/v1.0/rule/device-group.

ПараметрТипТип данныхОбяз.ОписаниеПример
namebodystring+Название группы устройствГруппа устройств
isValidationSkipbodybool+Признак необходимости валидации принадлежности устройств к классуfalse
typesbodyarray[object]+Тип группы устройств. Массив данных. Пример - класс устройств00d00000-0ed0-0a0f-beb0-df0b000a0000

Пример тела запроса:

json
{
"name": "Группа устройств",
"isValidationSkip": false,
"types": [
"00d00000-0ed0-0a0f-beb0-df0b000a0000"
]
}

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

Пример ответа:

json
{
"id": "d82cf582-6a88-459d-8dce-02b3bbc1d87c",
"name": "Группа устройств",
"isValidationSkip": false,
"types": [
"00d00000-0ed0-0a0f-beb0-df0b000a0000"
]
}

Привязка группы устройств к правилу осуществляется с помощью метода POST /front-api-srv//api/v1.0/rule/rule-set/bind.

Тело запроса содержит следующие параметры:

ПараметрТипТип данныхОбяз.ОписаниеПример
ruleSetIdbodystring+Идентификатор правила17b894de-56bb-4dc6-97e6-8f3e0087ddff
deviceGroupIdbodystring+Идентификатор группы устройствd82cf582-6a88-459d-8dce-02b3bbc1d87c

Пример тела запроса:

json
{
"ruleSetId": "17b894de-56bb-4dc6-97e6-8f3e0087ddff",
"deviceGroupId": "d82cf582-6a88-459d-8dce-02b3bbc1d87c"
}

При успешном выполнении запроса будет получен ответ с кодом 200 ОК.

Для проверки работы правила можно выполнить запрос эмуляции передачи телеметрии для устройства с помощью метода POST /front-api-srv//api/v1.0/rule/put-telemetry.

Тело запроса содержит следующие параметры:

ПараметрТипТип данныхОбяз.ОписаниеПример
deviceIdbodystring+Идентификатор устройства000000b0-00ca-0000-00f0-0a0000000eb0
classIdbodystring+Идентификатор класса00d00000-0ed0-0a0f-beb0-df0b000a0000
valuesbodyarray[object]+Значения телеметрии-

object “values”

ПараметрТипТип данныхОбяз.ОписаниеПример
rssibodystring-Параметр телеметрии5

Пример тела запроса:

json
{
"deviceId": "000000b0-00ca-0000-00f0-0a0000000eb0",
"classId": "00d00000-0ed0-0a0f-beb0-df0b000a0000",
"values": {
"rssi": 5
}
}

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