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:
@@ -128,19 +128,11 @@ lamp("l2",d.p2,d.p2?"работает":"стоит");
|
||||
lamp("lE",d.pE,d.pE?"работает":"ожидание");
|
||||
lamp("o1",d.rMain,d.rMain?"замкнут":"разомкнут");
|
||||
lamp("o2",d.rEmg,d.rEmg?"замкнут":"разомкнут");
|
||||
var k,w,s;
|
||||
if(!d.rdy){k="init";w="Запуск";s="идёт проверка датчиков"}
|
||||
else if(!d.p1&&!d.p2){k="flt";w="Насосы стоят";
|
||||
s=d.pE?"подачу держит резерв":"подачи нет"}
|
||||
else if(d.pE){k="warn";w="Работает резерв";s="основные насосы в работе"}
|
||||
else{k="ok";w="Подача есть";
|
||||
s=d.p1&&d.p2?"работают оба насоса":(d.p1?"работает насос 1":"работает насос 2")}
|
||||
var st=document.getElementById("st");
|
||||
st.className="st "+k;
|
||||
document.getElementById("word").textContent=w;
|
||||
document.getElementById("sub").textContent=s;
|
||||
document.title=w+(dev?" · "+dev:"");
|
||||
fav(F[k])}
|
||||
document.getElementById("st").className="st "+d.k;
|
||||
document.getElementById("word").textContent=d.w;
|
||||
document.getElementById("sub").textContent=d.s;
|
||||
document.title=d.w+(dev?" · "+dev:"");
|
||||
fav(F[d.k])}
|
||||
function poll(){fetch("/status").then(function(r){return r.json()}).then(draw).catch(function(){})}
|
||||
fetch("/config").then(function(r){return r.json()}).then(function(c){
|
||||
dev=c.device;document.getElementById("dev").textContent=c.device;
|
||||
|
||||
Reference in New Issue
Block a user