IoT: Перегрев и восстановление температуры
Контроллер холодильной камеры сообщает, что температура вышла за допустимый предел, а затем восстановилась. Оба сообщения нужны ответственному, но с разной важностью и метками.
Порог и момент отправки определяет контроллер или внешняя автоматизация. В примере она уже выдаёт temperature_high и restored; сравнивать число с порогом в Депешере не потребуется.
Подготовьте оформление
- Создайте канал по инструкции IoT. В личном контексте привяжите свой подтверждённый способ получения. В организации назначьте команду и попросите сотрудников настроить «Мою доставку».
- В каталоге «Метки» того же контекста создайте
температура,аварияивосстановление. - Создайте текстовый шаблон «Температура» и выберите его у канала:
text
{{message}}
Объект: {{json.site.name}}
Датчик: {{json.device.id}}
Температура: {{json.measurement.value}} {{json.measurement.unit}}
Важность: {{importance}}
Метки: {{tags}}Создайте три правила
Создайте правила в том же контексте, сохраните и подключите к каналу:
| Порядок | Вид и условие | Текст сообщения | Важность | Полный набор меток |
|---|---|---|---|---|
| 1 | По условиям: JSON event.type равно строке temperature_high | «Задать текст сообщения»: Температура выше допустимой | Критично | температура, авария |
| 2 | По условиям: JSON event.type равно строке restored | «Задать текст сообщения»: Температура восстановилась | Информация | температура, восстановление |
| Default | По умолчанию, без условий | «Задать текст сообщения»: Неизвестное событие датчика | Предупреждение | Только температура |
Для текста добавьте операцию «Задать текст сообщения», для остальных настроек — действия важности и меток. Действия шаблона и доставки не добавляйте: все три правила наследуют шаблон и базовый маршрут канала.
Выбор меток задаёт весь набор. Значения выбираются из созданного каталога, а не автоматически генерируются из JSON.
Проверьте аварию
Откройте проверку на примере, выберите application/json и тело:
json
{
"site": {
"name": "Склад №1"
},
"device": {
"id": "sensor-03"
},
"event": {
"type": "temperature_high"
},
"measurement": {
"value": 12.5,
"unit": "°C"
}
}Должно выиграть первое правило, важность — critical, метки — температура и авария, маршрут — из настроек канала. При указанном порядке выбора меток итоговый текст:
text
Температура выше допустимой
Объект: Склад №1
Датчик: sensor-03
Температура: 12.5 °C
Важность: critical
Метки: температура, аварияПроверьте восстановление и неизвестное событие
Во втором примере измените event.type на restored, а measurement.value на 4. Должно выиграть второе правило, текст начнётся с Температура восстановилась, важность — info, метки — температура и восстановление.
В третьем примере измените тип на sensor_restarted. Должен выполниться default с текстом Неизвестное событие датчика, важностью warning и меткой температура.
Дополнительно отправьте только измерение без event.type. Оно тоже попадёт в default: Депешер сам не определяет перегрев по значению 12.5.
Проверьте реальное получение
Сохраните каждое тело в отдельный JSON-файл. Например, первое — в temperature-high.json. Замените URL своим:
bash
curl --include \
--request POST \
--header 'Content-Type: application/json' \
--data-binary @temperature-high.json \
'https://depesher.ru/w/ВАШ_PUBLIC_ID'Для защищённого канала добавьте Bearer-токен. Повторите запрос с восстановлением и неизвестным событием. После HTTP 202 проверьте три отдельных сообщения в истории, их исходные и итоговые тексты, метки, важность и внешнее получение. Симуляция сама уведомления не отправляла.
«Критично» не меняет маршрут автоматически. Чтобы авария шла дополнительной команде, добавьте её в действие доставки соответствующего правила. Если аварии и восстановления нужны разным командам, оставьте базовых получателей пустыми и назначьте их в каждой ветке по примеру JSON-маршрутизации. Правило не исключает базовых получателей.
На стороне источника настройте отправку при переходе состояния, задержку или гистерезис, если сигнал колеблется у порога. Повторный запрос создаст новое сообщение; восстановления и аварии не объединяются автоматически. Если что-то расходится с ожиданиями, используйте диагностику.