Allarmi e notifiche
Allarmi
Gestore allarmi ▸ Allarmi elenca gli allarmi generati dalle tue regole: ciò che è attivo in questo momento, quelli risolti o entrambi. Apri in Mirox
Ogni allarme mostra il suo livello, la regola, l'impianto, il componente (per le regole giudicate per componente), il valore e da quando — o da quando a quando — era attivo. Un allarme arrivato durante un silenziamento è contrassegnato come Silenziato.
Un allarme si risolve da solo quando la condizione non vale più, quando la regola viene disattivata, modificata in modo che non corrisponda più o eliminata. Gli allarmi risolti restano nell'elenco come storico.
Conferma dice ai tuoi colleghi che qualcuno se ne sta occupando. Non chiude l'allarme: lo fanno soltanto i valori dell'impianto.
Le modifiche a regole e silenziamenti compaiono anche nell'attività della tua organizzazione.
Chi viene notificato
Quando un allarme si apre, tutte le persone della tua organizzazione che hanno accesso all'impianto vengono notificate — nell'app, con notifica push sull'app mobile e via e-mail, esattamente come ciascuno ha scelto nelle proprie impostazioni di notifica nel gruppo Gestore allarmi. Lì ognuno sceglie i canali e il livello minimo da cui vuole essere informato su questi allarmi; per impostazione predefinita è Normale.
Quando l'allarme si risolve, le persone notificate ricevono un avviso di risoluzione. La notifica rimanda direttamente all'allarme.
Silenziamenti
Un silenziamento tiene lontane le notifiche per un po' — per manutenzione, un problema noto o uno spegnimento programmato. Gli allarmi corrispondenti continuano ad aprirsi e chiudersi e compaiono nell'elenco, contrassegnati come Silenziato; solo le notifiche e i destinatari restano silenziosi.
Apri Gestore allarmi ▸ Silenziamenti e fai clic su Nuovo silenziamento. Apri in Mirox Scegli:
- Regola — una regola o ogni regola.
- Impianto — un impianto o ogni impianto.
- Inizio — adesso o in un momento pianificato.
- Per — da 1 ora fino a 1 anno, oppure Fino a una data… per una data di fine libera (al massimo un anno dopo l'inizio).
- Commento — il motivo, così i tuoi colleghi lo sanno.
Un silenziamento termina da solo. Rimuovilo prima con il suo pulsante di eliminazione. I silenziamenti vengono creati e rimossi da Admin e Moderatori.
Destinatari
Un destinatario riceve automaticamente ogni allarme delle regole a cui è associato — un sistema di ticket, un canale del team o una casella condivisa. Le persone non hanno bisogno di un destinatario; vengono comunque notificate tramite le proprie impostazioni.
Apri Gestore allarmi ▸ Destinatari e fai clic su Nuovo destinatario Apri in Mirox, poi associalo alle regole in Destinatari nell'editor delle regole. Invia prova consegna un allarme di esempio per verificare la connessione.
Un elenco di indirizzi e-mail. Ogni allarme e la sua risoluzione arrivano come un'unica e-mail.
Webhook
Un indirizzo HTTPS che riceve un POST per ogni allarme e la sua risoluzione, in uno di questi formati:
- JSON (firmato) — l'allarme completo come JSON, vedi sotto.
- Microsoft Teams, Slack, Discord — un messaggio già pronto per un webhook in entrata di quel servizio. Vedi Collegare Microsoft Teams per sapere come crearne uno.
Quando crei un destinatario webhook, il suo segreto di firma viene mostrato una sola volta. Ogni richiesta porta l'intestazione X-Mirox-Signature: sha256=<hex> — l'HMAC-SHA256 del corpo grezzo della richiesta con quel segreto — più X-Mirox-Timestamp e un X-Mirox-Delivery-Id univoco. Verifica la firma prima di fidarti di una richiesta e usa l'id di consegna per ignorare una consegna ripetuta.
Il corpo di JSON (firmato):
{
"version": "1",
"status": "firing",
"event_id": "1216448682925686786",
"rule_uid": "A1B2C3D4E5F6",
"rule_name": "Inverter without power",
"rule_version": 3,
"priority": "high",
"park_uid": "0A1B2C3D4E5F",
"park_name": "Plant North",
"instance_key": "inverter_id=7",
"labels": { "inverter_id": "7" },
"component": "Inverter 7",
"metric": "AC power per inverter",
"value": 0.0,
"unit": "W",
"op": "lt",
"threshold": 10.0,
"condition_since": 1791200400,
"title": "[FIRING] Inverter without power — Plant North (Inverter 7)",
"body": "Inverter 7 delivers only 0 W (limit 10 W)",
"link": "https://service.mirox.io/#/alertmanager?tab=alerts&alert=1216448682925686786",
"sent_at": "2026-10-06T09:05:12+00:00"
}
status è firing o resolved; una risoluzione ripete l'allarme con l'ultimo valore giudicato. condition_since è un timestamp Unix. In versioni successive possono essere aggiunti campi — ignora ciò che non conosci. event_id è una stringa: l'identificativo è più lungo di quanto un numero JavaScript possa rappresentare con esattezza.
Dopo ripetute consegne fallite un destinatario viene disattivato e contrassegnato come Disattivato; controlla l'indirizzo e ricrealo.
Interfaccia di indisponibilità BWE
Segnala le indisponibilità dei vostri aerogeneratori al vostro trader diretto tramite l'interfaccia di indisponibilità BWE. Ogni allarme di un aerogeneratore diventa un'indisponibilità: quando l'allarme scatta inizia, quando si risolve finisce. Il trader diretto gestisce l'interfaccia e vi fornisce tre dati: l'indirizzo del servizio web, l'indirizzo del token e nome utente e password: inseriteli nel destinatario. La password viene salvata cifrata e non viene più mostrata. Prova l'accesso effettua l'accesso e mostra quanti impianti il trader ha assegnato al vostro account; non segnala mai un'indisponibilità.
- Motivo dell'indisponibilità: un destinatario per motivo: MAINTENANCE (guasti, manutenzione, funzionamento manuale), ADMINISTRATIVE (provvedimenti amministrativi come rumore o tutela di pipistrelli e uccelli), GRID (limitazione da parte del gestore di rete) o MARKET (limitazione da parte del trader). Usate GRID e MARKET solo se l'origine della limitazione è certa.
- Capacità residua segnalata: 0 kW (indisponibilità totale) oppure il valore dell'allarme quando la regola sorveglia una metrica di potenza; mai oltre la capacità installata registrata dal trader.
- Segnalato in anticipo: l'interfaccia richiede un'ora di fine, quindi un allarme aperto viene segnalato fino a tanti giorni in anticipo (30 per impostazione predefinita); la sua chiusura riduce l'indisponibilità alla fine reale.
Ogni aerogeneratore viene trovato nell'elenco impianti del trader tramite il numero di serie dei suoi dati anagrafici; a parità di numero decide il produttore. Collegate il destinatario a regole che sorvegliano gli aerogeneratori singolarmente: gli esempi Aerogeneratore fermo per guasto e Aerogeneratore limitato per vincoli ambientali sono pensati per questo. Un aerogeneratore sconosciuto al trader appare come invio non riuscito del destinatario.
Modelli
Un modello stabilisce esattamente cosa invia un destinatario, così ogni sistema riceve il formato che si aspetta: per un webhook il metodo (POST, PUT o PATCH), le tue intestazioni e il corpo in JSON, XML, CSV, HTML, testo semplice o dati di modulo; per un'email l'oggetto e il testo (testo semplice o il tuo HTML). Scrivi testo fisso e inserisci variabili dell'allarme, della regola, dell'impianto e del componente. Un modello è riutilizzabile: più destinatari possono usarlo e una modifica vale subito per tutti.
Apri Gestore allarmi ▸ Destinatari Apri in Mirox: sotto i destinatari trovi i tuoi modelli e gli esempi da cui partire. Usa esempio ne copia uno nella tua organizzazione; Nuovo modello parte vuoto. Il modello si apre nell'editor: a sinistra le impostazioni, le intestazioni e il corpo, al centro l'elenco delle variabili — un clic inserisce la variabile al cursore — e a destra l'anteprima dal vivo: la richiesta o l'email esattamente come verrebbe inviata, con l'allarme di esempio o uno dei tuoi allarmi recenti, con tutti gli errori e gli avvisi. Poi scegli il modello per un destinatario, alla creazione o con il pulsante modello nella sua riga. Senza modello, un destinatario mantiene il formato integrato.
I modelli sono creati e modificati da amministratori e moderatori; ogni membro può vederli. Un modello usato da un destinatario non si può eliminare: scegline prima un altro per quel destinatario.
Il linguaggio dei modelli
| Scrivi | Significato |
|---|---|
Variabile: {{plant.name}} | il valore, ad es. il nome dell'impianto |
Filtro: {{alert.since|date:"DD.MM.YYYY HH:mm"}} | il valore, formattato |
Sezione: {{#alert.firing}}…{{/alert.firing}} | la parte in mezzo solo se il valore esiste — per una lista una volta per elemento |
Sezione inversa: {{^component.name}}…{{/component.name}} | la parte in mezzo solo se il valore è vuoto |
Commento: {{! … }} | niente — una nota per te |
Parentesi letterali: \{{ | {{ come testo |
In una sezione di lista sono disponibili {{@index}} (da 0), {{@number}} (da 1), {{@first}} e {{@last}} — ad esempio {{^@last}},{{/@last}} mette una virgola tra gli elementi. Una variabile inesistente resta vuota e l'anteprima la segnala come avviso. In un modello non viene eseguito nulla; produce solo testo.
Variabili
| Variabile | Significato |
|---|---|
{{alert.id}} | ID dell'allarme (testo) |
{{alert.status}} | firing (attivo) o resolved (risolto) |
{{alert.firing}} | Vero finché l'allarme è attivo (usabile come sezione) |
{{alert.resolved}} | Vero per l'avviso di risoluzione |
{{alert.level}} | Livello: very_low, low, normal, high, very_high, critical |
{{alert.title}} | Il titolo pronto su una riga |
{{alert.text}} | Il messaggio pronto su una riga |
{{alert.summary}} | Il riepilogo della regola, se presente |
{{alert.value}} | Il valore valutato (l'ultimo alla risoluzione) |
{{alert.value_label}} | Il valore con unità, come in Mirox |
{{alert.value_kw}} | Il valore in kW — solo per una metrica di potenza (W, kW, MW) |
{{alert.unit}} | L'unità della metrica |
{{alert.threshold}} | La soglia della regola |
{{alert.threshold_label}} | La soglia con unità |
{{alert.threshold_kw}} | La soglia in kW — solo per una metrica di potenza |
{{alert.op}} | Confronto: gt, ge, lt, le, eq, ne |
{{alert.op_symbol}} | Il confronto come simbolo |
{{alert.since}} | Da quando vale la condizione |
{{alert.until}} | Quando l'allarme è stato risolto (vuoto finché è attivo) |
{{alert.duration_s}} | Secondi dall'inizio alla fine (o ad ora) |
{{alert.close_reason}} | Motivo della risoluzione: condition, rule_disabled, … |
{{alert.silenced}} | Vero se un silenziamento corrispondeva |
{{alert.link}} | Link assoluto all'allarme in Mirox |
{{alert.instance_key}} | L'istanza dell'allarme (etichette) |
{{rule.uid}} | ID della regola |
{{rule.name}} | Nome della regola |
{{rule.description}} | Descrizione della regola |
{{rule.version}} | Versione della regola |
{{rule.window_s}} | Finestra della regola in secondi |
{{rule.for_s}} | Per quanto deve valere la condizione, in secondi |
{{rule.metric.name}} | Nome della metrica |
{{rule.metric.unit}} | Unità della metrica |
{{plant.uid}} | ID dell'impianto |
{{plant.name}} | Nome dell'impianto |
{{plant.type}} | Tipo: solar, wind, battery |
{{plant.timezone}} | Fuso orario dell'impianto (predefinito per le date) |
{{plant.peak_power_kw}} | Potenza di picco installata in kWp |
{{plant.grid_limit_kw}} | Limite di connessione alla rete in kW, se impostato |
{{plant.inverter_limit_kw}} | Limite di potenza degli inverter in kW, se impostato |
{{plant.latitude}} | Latitudine |
{{plant.longitude}} | Longitudine |
{{plant.portfolio.uid}} | ID del portafoglio |
{{plant.portfolio.name}} | Nome del portafoglio |
{{plant.address.street}} | Via (riga 1) |
{{plant.address.street2}} | Riga 2 dell'indirizzo |
{{plant.address.zip}} | CAP |
{{plant.address.city}} | Città |
{{plant.address.state}} | Regione |
{{plant.address.country}} | Paese |
{{plant.grid_operator}} | Gestore di rete, se inserito |
{{plant.project_company}} | Società di progetto, se inserita |
{{plant.market_zone}} | Zona di mercato, se inserita |
{{plant.commissioning_date}} | Data di messa in servizio, se inserita |
{{component.name}} | Nome del componente (vuoto per regole sull'impianto) |
{{component.id}} | ID del componente in Mirox, se noto |
{{component.kind}} | Tipo di componente (inverter, string, …) |
{{component.labels}} | Le etichette del componente come oggetto |
{{component.labels_list}} | Le etichette come lista di {name, value} per una sezione |
{{organization.uid}} | ID dell'organizzazione |
{{organization.name}} | Nome dell'organizzazione |
{{delivery.id}} | ID univoco di questa consegna |
{{delivery.receiver}} | Nome del destinatario |
{{delivery.test}} | Vero per un invio di prova |
{{now}} | Il momento dell'invio |
Le date sono mostrate nel fuso orario dell'impianto, salvo che il filtro date ne indichi un altro. L'impianto non ha un campo per un numero MaStR o un punto di prelievo di mercato: scrivi tali identificativi come testo fisso nel modello.
I filtri seguono la variabile dopo | e si possono concatenare, ad esempio {{alert.value|kw|number:1:de}}:
| Filtro | Significato |
|---|---|
date:"DD.MM.YYYY HH:mm":"Europe/Berlin" | Data e ora: iso (predefinito), unix, unix_ms, rfc2822 o uno schema di YYYY YY MM DD HH mm ss Z ZZ. Il fuso orario è facoltativo; senza vale quello dell'impianto. |
number:1:de | Un numero come testo con i decimali indicati (predefinito 2) e i separatori di en, de, fr, es, it, pt o plain. |
round:1 | Arrotonda e resta un numero (in JSON senza virgolette). |
kw | Divide per 1.000 o 1.000.000 (W in kW o MW). |
upper | Maiuscolo, minuscolo, senza spazi attorno. |
truncate:120 | Al massimo n caratteri. |
default:"—" | Questo testo se il valore è vuoto. |
yesno:"yes":"no" | Un testo se c'è un valore, un altro se è vuoto. |
json | Il valore come testo JSON, inclusi oggetti e liste. |
Formati e codifica
Il formato del modello decide come viene inserito un valore, così un nome d'impianto con virgolette o una «&» non rompe mai il risultato:
- JSON — dentro una stringa (
"plant": "{{plant.name}}") il valore è codificato come testo; fuori ("value": {{alert.value}}) diventa un valore JSON: un numero resta un numero, il testo ha le virgolette, un valore vuoto diventanull, oggetti e liste sono scritti come JSON. - XML e HTML —
<,>,&e le virgolette sono codificati. - CSV — un campo va tra virgolette se contiene il separatore, una virgoletta o un a capo; in un campo che il modello mette già tra virgolette, le virgolette vengono raddoppiate. Il separatore è quello usato dal modello (virgola, punto e virgola, tabulazione).
- Dati di modulo — i valori sono codificati come URL.
- Testo semplice — così com'è.
I valori delle intestazioni e l'oggetto dell'email non contengono mai un a capo. Il modello viene controllato al salvataggio: deve essere completo (ogni sezione chiusa, ogni filtro noto), al massimo 64 KiB, e per JSON e XML il risultato con l'allarme di esempio deve essere valido. Intestazioni: al massimo 30, solo nomi standard. Content-Type segue il formato; Content-Length, Host e le intestazioni X-Mirox-* le imposta Mirox e non si possono sostituire. Ogni richiesta webhook resta firmata: X-Mirox-Signature è l'HMAC-SHA256 esattamente del corpo prodotto dal modello.
Esempi
Ogni esempio è un punto di partenza da copiare e adattare:
- JSON generico (busta firmata) — La busta di allarme Mirox documentata — base per sistemi di ticket.
- Scheda Microsoft Teams — Una Adaptive Card per un webhook di Teams Workflows.
- Messaggio Slack — Messaggio Block Kit per un webhook in entrata di Slack.
- Embed Discord — Un embed colorato per un webhook di canale Discord.
- Documento XML — L'allarme come documento XML.
- Riga CSV — Un'intestazione e una riga per allarme, separate da virgole.
- Email di testo — Un'email di testo compatta con i dati principali.
- Email HTML — La vostra email HTML con tabella dei dati.
- Trader diretto: disponibilità ridotta (CSV) — Avviso tedesco di disponibilità ridotta in CSV — punto di partenza da adattare.
- Trader diretto: disponibilità ridotta (email) — Avviso tedesco via email con impianto, inizio, fine e potenza disponibile.
Gli esempi per il trader diretto (in tedesco) segnalano una disponibilità ridotta di un impianto: nome e ID, inizio e fine, potenza installata e — per una regola su una metrica di potenza — la potenza disponibile, una volta come riga CSV con punto e virgola e una volta come email. Non esiste un formato vincolante per questo avviso: adatta colonne e testo a quanto richiede il tuo trader e inserisci numero MaStR e punto di mercato come testo fisso.
Un modello per un sistema di ticket che si aspetta XML:
<ticket priority="{{alert.level}}">
<title>{{alert.title}}</title>
<site id="{{plant.uid}}">{{plant.name}}</site>
{{#component.name}}<asset>{{component.name}}</asset>{{/component.name}}
<opened>{{alert.since|date:"iso"}}</opened>
<link>{{alert.link}}</link>
</ticket>
Testare gli allarmi
Un test mostra l'intero percorso di un allarme su uno dei tuoi impianti, senza aspettare un problema reale e senza toccare i dati dell'impianto. Apri Gestore allarmi ▸ Panoramica e fai clic su Testa gli allarmi Apri in Mirox, poi scegli l'impianto, il livello dell'allarme di test (fino a Critico) e, se vuoi, i destinatari.
La piattaforma scrive quindi un segnale di test fisso per quell'impianto: tranquillo per 5 minuti, sopra la soglia per 15 minuti, poi di nuovo tranquillo. L'agente dell'impianto lo valuta come qualsiasi tua regola, quindi:
- circa 5–10 minuti dopo l'avvio si apre l'allarme di test, al livello scelto;
- vengono avvisati tutti coloro che riceverebbero un allarme reale di quel livello su quell'impianto — nell'app, via push e via e-mail, secondo le proprie impostazioni — e lo ricevono anche i destinatari scelti;
- circa 15 minuti dopo si risolve da solo, con il suo avviso di risoluzione.
La pagina segue il test passo dopo passo. Un test termina da solo dopo circa 30 minuti, o prima con Interrompi; il suo allarme resta nello storico. I test non compaiono mai tra le tue regole e i dati di test vengono scritti solo mentre un test è attivo. I test vengono avviati da Admin e Moderatori; ne possono girare fino a tre contemporaneamente.