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

Оборудование разных объектов и сервисные команды ​

Сервисная компания обслуживает кафе на Лесной и склад у вокзала. Один шлюз отправляет JSON в общий канал. Аварии каждого объекта должны получать его инженеры, неизвестные события — диспетчер.

Объект в этом рецепте — поле site.id вашего JSON и метка, а не отдельная сущность или реестр устройств Депешера.

Подготовьте организацию ​

  1. Создайте организацию, пригласите сотрудников и дождитесь принятия по инструкции команд.
  2. Создайте команды «Лесная», «Вокзал» и «Диспетчеры». Ответственного руководителя можно добавить прямым получателем аварии.
  3. Создайте входящий канал «Оборудование» и оставьте базовых получателей пустыми: команды и руководителя назначим через правила.
  4. Создайте метки лесная, вокзал, авария, восстановление, неизвестное в каталоге организации.
  5. Задайте каналу текстовый шаблон:
text
Объект: {{json.site.name}}
Устройство: {{json.device.id}}
Событие: {{json.event.type}}
Значение: {{json.measurement.value}} {{json.measurement.unit}}

Базовые получатели получают каждое событие. В этом рецепте база пуста, а default ниже добавит диспетчеров для неизвестного события. Если назначить кого-то базово, этот человек получит также аварии и восстановления всех объектов; default не отменит такое назначение.

Подключите правила ​

Все сравнения JSON ниже используют строки, режим «Все условия». Шаблон наследуется от канала, преобразования не нужны. В каждом правиле добавьте действие «Получатели» с указанным набором:

ПорядокУсловияВажность / меткиПолучатели
1site.id = lesnaya, event.type = temperature_highКритично; лесная, авария«Лесная» и ответственный руководитель
2site.id = vokzal, event.type = temperature_highКритично; вокзал, авария«Вокзал» и ответственный руководитель
3site.id = lesnaya, event.type = restoredИнформация; лесная, восстановление«Лесная»
4site.id = vokzal, event.type = restoredИнформация; вокзал, восстановление«Вокзал»
DefaultБез условийПредупреждение; неизвестное«Диспетчеры»

Сохраните определения и подключите их к каналу. После подключения все потенциальные получатели, включая диспетчеров и руководителя, настраивают «Мою доставку». Для настройки источники могут быть отключены; перед проверкой сообщений включите определения и подключения. Человек, выбранный напрямую и через команду, получает одно назначение запроса.

Проверьте маршруты ​

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

json
{
  "site": { "id": "lesnaya", "name": "Кафе на Лесной" },
  "device": { "id": "freezer-02" },
  "event": { "type": "temperature_high" },
  "measurement": { "value": -9, "unit": "°C" }
}

В симуляции должны быть выбраны правило №1, команда «Лесная», руководитель, важность «Критично» и две метки. Итог:

text
Объект: Кафе на Лесной
Устройство: freezer-02
Событие: temperature_high
Значение: -9 °C

Повторите проверки:

Изменение JSONОжидаемый результат
site.id = vokzal, название складаАвария → «Вокзал» и руководитель
event.type = restored у ЛеснойТолько «Лесная», Информация, метка восстановления
site.id = new-siteDefault → «Диспетчеры»
Нет site.idDefault, а не одна из объектных команд

После симуляции отправьте каждый JSON по HTTP-инструкции. Проверяйте новые события у сотрудников ожидаемой команды и отсутствие назначения у другой. Каждый сверяет свою внешнюю доставку.

Меняйте ответственность без замены URL ​

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

Порог и момент восстановления вычисляет шлюз. Это отдельные сообщения: Депешер не ведёт состояние инцидента, дежурства или контроль молчания датчика. Разбор истории — здесь.