feat(webhook): слать в status человеческую фразу вместо кода

В теле уведомления status теперь содержит ту же формулировку, что видит
оператор в панели: «Насосы стоят, подачу держит резерв». Прежние
машиночитаемые значения переехали в новое поле state (ALARM / OK /
STARTED / STOPPED), чтобы сценарий на сервере ветвился по нему, а не
разбирал русский текст.

ЛОМАЮЩЕЕ ИЗМЕНЕНИЕ: если сценарий в n8n сравнивал status с "ALARM",
условие надо переключить на state.

Формулировки собраны в одном месте прошивки (statusKind / statusWord /
statusSub / statusPhrase) и оттуда попадают и в webhook, и в панель через
новые поля k, w, s в /status. Раньше та же логика была продублирована в
JS панели; два набора фраз разошлись бы при первой правке. Побочно JS
сократился почти вдвое.

Прошито и проверено на приборе: /status отдаёт
{"k":"ok","w":"Подача есть","s":"работает насос 1"}, /config по-прежнему
отдаёт только имя хоста без токена.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-08 01:33:48 +07:00
co-authored by Claude Opus 5
parent 6240862c27
commit 0c06ba1032
4 changed files with 100 additions and 32 deletions
+11 -5
View File
@@ -217,12 +217,18 @@ ALARM:OFF BACKUP:OFF
При изменении ситуации прибор отправляет сообщение на настроенный адрес:
| Событие | Что означает |
В сообщении приходит **та же фраза, что показывает панель** — читать можно
без расшифровки кодов:
| Ситуация | Текст в сообщении |
|---|---|
| `MAIN PUMPS` / `ALARM` | Оба основных насоса стоят |
| `MAIN PUMPS` / `OK` | Работа восстановлена |
| `EMERGENCY PUMP` / `STARTED` | Запустился резервный насос |
| `EMERGENCY PUMP` / `STOPPED` | Резервный насос остановился |
| Оба основных стоят, резерв качает | «Насосы стоят, подачу держит резерв» |
| Оба основных стоят, резерва нет | «Насосы стоят, подачи нет» |
| Работает резерв, основные в порядке | «Работает резерв, основные насосы в работе» |
| Работа восстановлена | «Подача есть, работает насос 1» |
Рядом с текстом передаётся служебное поле для автоматики: `MAIN PUMPS` или
`EMERGENCY PUMP` и `ALARM` / `OK` / `STARTED` / `STOPPED`.
Уведомления отправляются один раз на каждое изменение, а не повторяются.
Если в момент события связи не было — уведомление **не будет** отправлено