Skip to content

Commit 3391e29

Browse files
authored
Merge pull request #86 from angeloINTJ/feature/alarm-telemetry
Alarm telemetry — segunda linha de telemetria + alarme de ERRO de sensor
2 parents 5e8bb57 + 6982b33 commit 3391e29

82 files changed

Lines changed: 6300 additions & 974 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,39 @@
44

55
All notable changes to SIMUT firmware.
66

7+
## v2.3.3-beta (2026-08-23)
8+
9+
### Alarms get their own telemetry line, and sensor errors get their own voice
10+
11+
The firmware now ships a **second, independent telemetry line dedicated to
12+
alarms**, running alongside the measurement line that already exists. Each
13+
alarm key carries two domains — `alarm` (the limit threshold) and `err` (a
14+
hardware/communication failure) — so a sensor that trips a limit and a sensor
15+
that stops answering are told apart end to end, on screen, in syslog and in the
16+
uploaded payload. The `{err}` domain carries the full lifecycle: silencing and
17+
per-slot deactivation become codes in the payload, not just local UI state. The
18+
alarm queue is held in RAM with ACK, its payload is editable, and it inherits
19+
the transport already configured for the main telemetry line (CLI, Web and
20+
metrics all see it).
21+
22+
Sensor errors are now first-class citizens. A sensor that loses communication —
23+
or is swapped on a live channel — fires a dedicated **ERROR alarm** with an
24+
amber-and-white panel that stays fixed at the top of the dashboard. Limit and
25+
error alarms are fully independent per slot: clearing one never clears the
26+
other, and a sensor re-established after a fault regenerates its own error
27+
alarm. Disabling a sensor that is in ERROR clears the amber display, and syslog
28+
now reflects the real state. Per-slot deactivation is **RAM-only** — it never
29+
touches the filesystem, so it survives neither a reboot nor a stray write.
30+
31+
The web UI gains a dedicated **Telemetry page with a Live Preview of alarms**
32+
that mirrors the main builder, plus a visual standardization pass on buttons,
33+
text boxes and toggles. On the transport side, a telemetry cursor that ran
34+
ahead of the data could wedge the sender — it now self-resets instead of
35+
stalling the upload.
36+
37+
Hardware validation completed on the bench before publishing: HTTP (14/14),
38+
TLS (15/15), MQTT+ACK (8/8) and CLI dump/flush (3/3) suites all pass.
39+
740
## v2.3.2-beta (2026-08-21)
841

942
### The white flash between pages is gone

CHANGELOG.pt-BR.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,40 @@
44

55
Todas as mudanças notáveis do firmware SIMUT.
66

7+
## v2.3.3-beta (2026-08-23)
8+
9+
### Alarmes ganham a própria linha de telemetria, e erros de sensor ganham voz própria
10+
11+
O firmware agora envia uma **segunda linha de telemetria, independente e
12+
dedicada a alarmes**, rodando ao lado da linha de medição que já existia. Cada
13+
chave de alarme carrega dois domínios — `alarm` (o limite) e `err` (uma falha
14+
de hardware/comunicação) — de modo que um sensor que estoura o limite e um
15+
sensor que para de responder são distinguidos de ponta a ponta, na tela, no
16+
syslog e no payload enviado. O domínio `{err}` carrega o ciclo de vida
17+
completo: silenciar e desativar por slot viram códigos no payload, e não apenas
18+
estado local da interface. A fila de alarmes fica em RAM com ACK, o payload é
19+
editável e herda o transporte já configurado para a linha principal de
20+
telemetria (CLI, Web e métricas enxergam tudo).
21+
22+
Erros de sensor agora são cidadãos de primeira classe. Um sensor que perde
23+
comunicação — ou é trocado num canal vivo — dispara um **alarme de ERRO**
24+
dedicado, com painel âmbar e branco fixado no topo do dashboard. Alarme de
25+
limite e de erro são totalmente independentes por slot: limpar um nunca limpa o
26+
outro, e um sensor restabelecido após a falha regenera o próprio alarme de
27+
erro. Desativar um sensor que está em ERRO limpa o âmbar do display, e o syslog
28+
passa a refletir o estado real. A desativação por slot é **só em RAM** — nunca
29+
toca o sistema de arquivos, então não sobrevive a reboot nem a uma escrita
30+
perdida.
31+
32+
A interface web ganha uma **página dedicada de Telemetria com Live Preview dos
33+
alarmes** espelhando o builder principal, além de uma padronização visual de
34+
botões, caixas de texto e toggles. No transporte, um cursor de telemetria que
35+
ficava à frente dos dados podia travar o envio — agora ele se auto-corrige em
36+
vez de travar o upload.
37+
38+
Validação em hardware concluída na bancada antes de publicar: suítes HTTP
39+
(14/14), TLS (15/15), MQTT+ACK (8/8) e CLI dump/flush (3/3), todas passando.
40+
741
## v2.3.2-beta (2026-08-21)
842

943
### A piscada branca entre páginas acabou

WebUI.h

Lines changed: 715 additions & 477 deletions
Large diffs are not rendered by default.

data/lang/language_es-ES.lng

Lines changed: 7 additions & 2 deletions
Large diffs are not rendered by default.

data/lang/language_pt-BR.lng

Lines changed: 7 additions & 2 deletions
Large diffs are not rendered by default.

data/themes/cafe.thm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ btnText=#786455
1919
titleText=#3C2D23
2020
sensorName=#3C2D23
2121
btnTextActive=#FCF8F2
22-
alarmBg=#B41E1E
23-
alarmText=#FFFFFF
24-
alarmTextDim=#DCC8C8
22+
alarmBg=#FFE600
23+
alarmText=#000000
24+
alarmTextDim=#46464A
2525
alarmBorder=#FF3C3C
2626
cautionBg=#B45A00
2727
selBg=#323237

data/themes/contraste.thm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ btnText=#E6E6E6
1919
titleText=#FFFFFF
2020
sensorName=#FFFFFF
2121
btnTextActive=#000000
22-
alarmBg=#B41E1E
23-
alarmText=#FFFFFF
24-
alarmTextDim=#DCC8C8
22+
alarmBg=#FFE600
23+
alarmText=#000000
24+
alarmTextDim=#46464A
2525
alarmBorder=#FF3C3C
2626
cautionBg=#B45A00
2727
selBg=#323237

data/themes/esmeralda.thm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ btnText=#8CB4A0
1919
titleText=#DEF0E6
2020
sensorName=#DEF0E6
2121
btnTextActive=#0E1A14
22-
alarmBg=#B41E1E
23-
alarmText=#FFFFFF
24-
alarmTextDim=#DCC8C8
22+
alarmBg=#FFE600
23+
alarmText=#000000
24+
alarmTextDim=#46464A
2525
alarmBorder=#FF3C3C
2626
cautionBg=#B45A00
2727
selBg=#323237

data/themes/grafite.thm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ btnText=#A0A6AC
1919
titleText=#E8EAEC
2020
sensorName=#E8EAEC
2121
btnTextActive=#181A1C
22-
alarmBg=#B41E1E
23-
alarmText=#FFFFFF
24-
alarmTextDim=#DCC8C8
22+
alarmBg=#FFE600
23+
alarmText=#000000
24+
alarmTextDim=#46464A
2525
alarmBorder=#FF3C3C
2626
cautionBg=#B45A00
2727
selBg=#323237

data/themes/nordic.thm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ btnText=#9AA5B6
1919
titleText=#E2E8F0
2020
sensorName=#E2E8F0
2121
btnTextActive=#1C212A
22-
alarmBg=#B41E1E
23-
alarmText=#FFFFFF
24-
alarmTextDim=#DCC8C8
22+
alarmBg=#FFE600
23+
alarmText=#000000
24+
alarmTextDim=#46464A
2525
alarmBorder=#FF3C3C
2626
cautionBg=#B45A00
2727
selBg=#323237

0 commit comments

Comments
 (0)