Оборудование разных объектов и сервисные команды
Сервисная компания обслуживает кафе на Лесной и склад у вокзала. Один шлюз отправляет JSON в общий канал. Аварии каждого объекта должны получать его инженеры, неизвестные события — диспетчер.
Объект в этом рецепте — поле site.id вашего JSON и метка, а не отдельная сущность или реестр устройств Депешера.
Подготовьте организацию
- Создайте организацию, пригласите сотрудников и дождитесь принятия по инструкции команд.
- Создайте команды «Лесная», «Вокзал» и «Диспетчеры». Ответственного руководителя можно добавить прямым получателем аварии.
- Создайте входящий канал «Оборудование» и оставьте базовых получателей пустыми: команды и руководителя назначим через правила.
- Создайте метки
лесная,вокзал,авария,восстановление,неизвестноев каталоге организации. - Задайте каналу текстовый шаблон:
text
Объект: {{json.site.name}}
Устройство: {{json.device.id}}
Событие: {{json.event.type}}
Значение: {{json.measurement.value}} {{json.measurement.unit}}Базовые получатели получают каждое событие. В этом рецепте база пуста, а default ниже добавит диспетчеров для неизвестного события. Если назначить кого-то базово, этот человек получит также аварии и восстановления всех объектов; default не отменит такое назначение.
Подключите правила
Все сравнения JSON ниже используют строки, режим «Все условия». Шаблон наследуется от канала, преобразования не нужны. В каждом правиле добавьте действие «Получатели» с указанным набором:
| Порядок | Условия | Важность / метки | Получатели |
|---|---|---|---|
| 1 | site.id = lesnaya, event.type = temperature_high | Критично; лесная, авария | «Лесная» и ответственный руководитель |
| 2 | site.id = vokzal, event.type = temperature_high | Критично; вокзал, авария | «Вокзал» и ответственный руководитель |
| 3 | site.id = lesnaya, event.type = restored | Информация; лесная, восстановление | «Лесная» |
| 4 | site.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-site | Default → «Диспетчеры» |
Нет site.id | Default, а не одна из объектных команд |
После симуляции отправьте каждый JSON по HTTP-инструкции. Проверяйте новые события у сотрудников ожидаемой команды и отсутствие назначения у другой. Каждый сверяет свою внешнюю доставку.
Меняйте ответственность без замены URL
При замене инженера измените состав команды и попросите нового сотрудника настроить доставку. Добавление не выдаёт ему прежние события. Общие определения правил можно подключать к нескольким каналам одной организации, если условия и назначения у них действительно одинаковы; редакция определения повлияет на все подключения.
Порог и момент восстановления вычисляет шлюз. Это отдельные сообщения: Депешер не ведёт состояние инцидента, дежурства или контроль молчания датчика. Разбор истории — здесь.