# Allarmi

> Gli allarmi in attesa di una risposta, tacitati là dove si leggono, sulla cronologia duratura di ogni transizione di stato degli allarmi.

La scheda Allarmi è la schermata di esercizio degli allarmi: che cosa è in attesa adesso e la
registrazione di ciò che è già accaduto, impilate su una sola schermata. È la prima scheda di
[Eventi](events) (`/events?view=alarms`), la scheda su cui la pagina si apre, e il punto in cui
atterra l'indicatore di allarme della barra di stato quando lo si preme. Vederla richiede
**Visualizzare gli eventi**; rispondere qui a un allarme richiede **Comandare Logic**; esportare lo
storico richiede **Esportare/importare gli storici**. Gli allarmi si definiscono su
[Logic > Alarms](logic-alarms); questa scheda non ne modifica mai uno.

La scheda impila due riquadri: **Allarmi in corso** in alto, letto dal vivo dal registro degli
allarmi, e **Storico** in basso, letto dal diario duraturo.

## Allarmi in corso {#current-alarms}

Il riquadro elenca ogni allarme attivo o ancora in attesa di una tacitazione: esattamente la
popolazione che la barra di stato conta, così le due non possono mai smentirsi. È letto direttamente
dal registro dal vivo e ridisegnato sui segnali del registro stesso (una salita, un rientro o una
tacitazione da qualunque superficie, una definizione salvata, disabilitata o eliminata), mai su un
orologio.

### La testata {#the-head}

| Elemento | Che cosa mostra |
| --- | --- |
| Campana | Il segno dell'allarme. Passa alla sua variante suonante mentre qualcosa è attivo o non tacitato e prende il colore della priorità peggiore dell'elenco. |
| Riepilogo | "N attivi (M non tacitati)": quante condizioni sono vere adesso e quanti allarmi attendono ancora una risposta. Un allarme rientrato prima che qualcuno lo tacitasse resta contato come non tacitato. Il testo prende il tono della priorità peggiore. |
| Tacita tutti | Risponde a ogni allarme in attesa con un solo comando. Disegnato solo per un ruolo con **Comandare Logic**. In grigio, con il motivo nel suggerimento, mentre il runtime è fermo ("Runtime fermo") o mentre niente è in attesa ("Nessun allarme attende una risposta."); altrimenti il suggerimento dice "Tacita ogni allarme che attende ancora una risposta". Il registro delle azioni risponde "Tutti gli allarmi sono stati tacitati." |

### Le righe {#the-rows}

Le righe sono ordinate per priorità, dalla peggiore (Critica, Alta, Media, Bassa) e, all'interno di
una priorità, dall'attivazione più vecchia, così l'allarme che più merita una risposta è il più
vicino alla cima. La griglia è compatta, alta al massimo 240 pixel, e scorre dentro il riquadro.

| Colonna | Che cos'è |
| --- | --- |
| Nome | Un punto nel tono della priorità, poi il nome dell'allarme. Passando sopra il nome compare il messaggio dell'allarme. |
| Indirizzo | L'indirizzo Logic radicato dell'allarme, `Alarms.<folders>.<name>`, il modo in cui vi si riferiscono espressioni e dashboard. |
| Stato | Lo stato e la priorità, per esempio "Attivo, non tacitato · Critica". Le parole di stato sono le quattro della macchina a stati dell'allarme: **Normale**, **Attivo, non tacitato**, **Attivo, tacitato** e **Rientrato, non tacitato** (la condizione è tornata normale prima che qualcuno rispondesse). |
| Dalle | La data e l'ora in cui è cominciata l'attivazione in corso; un trattino una volta che la condizione è rientrata e la riga attende soltanto la propria tacitazione. |
| Tacita | Disegnato solo su una riga ancora non tacitata, e solo per un ruolo con **Comandare Logic**. Il suo suggerimento dice "Tacita" seguito dal nome dell'allarme; è in grigio con "Runtime fermo" mentre il runtime è fermo. Il registro delle azioni risponde con il nome dell'allarme seguito da "tacitato." |

Si invia una tacitazione per volta; una seconda pressione mentre la prima è ancora sulla coda della
logica viene ignorata anziché rispondere a una riga che l'elenco ha già lasciato andare. Ogni
tacitazione fatta da questo riquadro passa per lo stesso unico punto di scrittura registrato a
diario che usa la pagina Logic ed è riportata nello storico qui sotto con il nome dell'utente che ha effettuato l'accesso in quella finestra, oppure Stazione quando lì
nessuno ha effettuato l'accesso. Tacitare un allarme che non ha niente in sospeso
non fa nulla. Un allarme la cui definizione non richiede tacitazione non compare mai come non
tacitato: sale direttamente ad "Attivo, tacitato" e scende direttamente a Normale, quindi la sua riga
si vede finché è attivo e non porta **Tacita**.

Quando niente è attivo o in attesa, il riquadro dice "Nessun allarme è attivo o in attesa di
risposta." con "Quando un allarme si attiva compare qui per poter essere tacitato."

### Rifiuti {#refusals}

| Situazione | Che cosa accade |
| --- | --- |
| Il ruolo non ha Comandare Logic | Non vengono disegnati né **Tacita** né **Tacita tutti**; le righe restano leggibili. Una pressione che raggiunga comunque il gestore risponde "Il ruolo in uso può vedere la Logic ma non può operarla (scrivere valori, eseguire azioni, tacitare allarmi)." |
| Il runtime è fermo | I due verbi restano disegnati e in grigio con "Runtime fermo"; l'elenco mostra comunque lo stato che il registro tiene. |
| Niente è in attesa | **Tacita tutti** è in grigio con "Nessun allarme attende una risposta."; nessuna riga porta **Tacita**. |

## Storico {#history}

Il riquadro sotto gli allarmi in corso è la cronologia duratura: una riga per transizione di stato di
un allarme, nella condotta comune alle tre cronologie descritta su
[Eventi](events#how-the-three-timelines-behave).

### Ricerca e filtro {#search-and-filter}

| Comando | Valori | Che cosa fa |
| --- | --- | --- |
| Ricerca | Testo segnaposto "Cerca per nome, messaggio o origine" | Confronto "contiene" sul nome dell'allarme, sul suo messaggio e sulla sorgente della transizione, come sono stati fotografati in quel momento. |
| Priorità | **Tutte le priorità** (predefinito), **Critica**, **Alta**, **Media**, **Bassa** | Tiene solo le transizioni di allarmi che avevano quella priorità quando sono avvenute. |
| Da, A | Due caselle di data, vuote all'inizio | Tiene solo le transizioni dentro il periodo, ciascuna casella un suo estremo: una casella vuota non è alcun limite, e il giorno scelto in **A** rientra per intero. Finché una delle due contiene una data, una croce accanto ("Azzera il periodo") le svuota entrambe. Le regole sono quelle che tutte le cronologie condividono, su [Eventi](events#how-the-three-timelines-behave). |
| Aggiorna | | Rilegge il diario; suggerimento "Aggiorna gli eventi di allarme". |
| Esporta | **Esporta come CSV…**, **Esporta come JSON…** | Scrive ogni transizione che la ricerca, la priorità e il periodo raggiungono, pagina dopo pagina, non solo le righe attualmente elencate. Disegnato solo con **Esportare/importare gli storici**; in grigio finché l'elenco è vuoto. |

### Le righe {#the-rows-1}

| Parte della riga | Contenuto |
| --- | --- |
| Ora | Data e ora della transizione. |
| Punto | Il tono della priorità: critico per Critica, cautela per Alta, attenzione per Media, neutro per Bassa. |
| Nome | Il nome dell'allarme al momento della transizione. |
| Riepilogo | "Da → A · Sorgente", per esempio "Normale → Attivo non tacitato · Logic". |
| Livello | La parola della priorità. |

Ogni transizione della macchina a stati è registrata, qualunque cosa l'abbia causata. La **Sorgente**
nomina l'origine:

| Sorgente | Significato |
| --- | --- |
| Logic | Il ciclo della logica ha valutato la condizione: una salita dopo il ritardo all'attivazione, o una discesa dopo il ritardo alla disattivazione. |
| *Il nome di un utente* | Una tacitazione fatta su questa scheda, sulla pagina Logic o su un [Avviso allarmi](component-alarm-banner) dall'utente che lì ha effettuato l'accesso. |
| Stazione | La stessa tacitazione quando lì nessuno ha effettuato l'accesso, e il **Tacita** del messaggio a comparsa dell'allarme, che registra sempre la stazione. |
| Agente | Una tacitazione fatta da un agente attraverso MCP, che il diario registra come MCP. |
| Configurazione | L'allarme è stato riportato a Normale perché la sua definizione è stata salvata con condizione, ritardi, obbligo di tacitazione o stato di abilitazione cambiati, oppure perché è stato eliminato. |

La riga e il pannello di dettaglio dicono la sorgente nella lingua della stazione, e la ricerca la
trova sia con questa parola sia con quella che il diario ha registrato. La riga copiata e i file
esportati la scrivono come il diario l'ha registrata: Logic, Station, MCP, Configuration o il nome
dell'utente.

### Il pannello di dettaglio {#the-detail-panel}

Selezionare una riga apre il pannello con il distintivo della priorità e il nome, l'istante
completo, il riepilogo della transizione, il messaggio che l'allarme annunciava in quel momento (o
"Nessun messaggio registrato.") e due riquadri:

| Riquadro | Campo | Contenuto |
| --- | --- | --- |
| EVENTO | Livello | La priorità. |
| EVENTO | ID dell'evento | L'identità di questa transizione nel diario. |
| ISTANTANEA DELL'ALLARME | Transizione | "Da → A" nelle parole di stato. |
| ISTANTANEA DELL'ALLARME | Sorgente | Logic, il nome di un utente, Stazione, Agente o Configurazione. |
| ISTANTANEA DELL'ALLARME | ID dell'allarme | L'id stabile della definizione dell'allarme, lo stesso dopo una rinomina. |

**Copia l'evento** copia "istante | Allarme | priorità | nome | Da → A · Sorgente | messaggio" come una
sola riga e risponde "Evento copiato negli appunti."

### Colonne dell'esportazione {#export-columns}

| Colonna | CSV | JSON |
| --- | --- | --- |
| Istante | Prima colonna, intestata "Timestamp (UTC-03:00)" (lo scarto proprio della stazione) | `Timestamp` |
| Priorità | `Priority` | `Priority` |
| Nome | `Name` | `Name` |
| Transizione | `Transition`, scritta "Da → A" | `From` e `To`, due campi |
| Sorgente | `Source` | `Source` |
| Messaggio | `Message` | `Message` |
| Id evento | `EventId` | `EventId` |
| Id allarme | `AlarmId` | `AlarmId` |

Il file JSON è una busta, `{ "TimeZone": "...", "Events": [ ... ] }`. I nomi dei file sono
`alarm-history-<yyyyMMdd-HHmmss>.csv` e `.json`. Il CSV segue la preferenza di separatore decimale
della stazione come ogni altra esportazione: con i decimali a punto il separatore di elenco è `,`,
con i decimali a virgola è `;`. Una cella che comincia con `=`, `+`, `-` o `@` è preceduta da un
apostrofo perché un foglio di calcolo la legga come testo.

### Stati vuoti e riga di stato {#empty-states-and-the-status-line}

- "Nessun evento di allarme finora" con "Le transizioni degli allarmi compariranno qui man mano che il
  runtime le osserva."
- "Questi filtri non trovano eventi di allarme" con "Modificare il filtro priorità o i termini di
  ricerca per allargare questo storico."
- La riga di stato dice "N mostrati · pagina 1", poi " · filtrati" quando una ricerca, una priorità
  o un periodo è in vigore; a destra, "1 selezionata" e "Aggiornato hh:mm:ss".

## Che cosa la scheda Allarmi non fa {#what-the-alarms-tab-does-not-do}

- Non crea, non modifica, non abilita, non disabilita e non elimina un allarme; quello è
  [Logic > Alarms](logic-alarms).
- Non mette da parte né silenzia un allarme, e non emette alcun suono.
- Non ripristina lo stato tacitato dopo un riavvio: il registro ricava di nuovo ogni stato dal primo
  ciclo, e una tacitazione che era in sospeso va ridata. Lo storico conserva le transizioni di prima
  e di dopo.
- Non dice chi ha risposto con il **Tacita** del messaggio a comparsa: quella tacitazione è registrata
  come Stazione, chiunque abbia effettuato l'accesso.
- Non filtra lo storico per allarme né per stato; cerca per nome, restringi il periodo con **Da** e
  **A**, oppure esporta il risultato.
- Lo storico non ha alcun verbo proprio: niente qui elimina una transizione.
