Quota SIM/eSIM (1NCE)
Il gateway utilizza schede eSIM 1NCE con quota dati inclusa. Per ogni dispositivo è possibile consultare in tempo reale lo stato della SIM e il consumo dati direttamente dall’elenco dispositivi.
Come accedere
Nella colonna Quota della tabella dispositivi, clicca l’icona per aprire il pannello SIM del dispositivo.
Sui dispositivi con firmware precedente alla versione 4.1.9 l’icona appare grigia: i dati SIM potrebbero essere incompleti o non disponibili.
Contenuto del pannello
- Stato — badge Attiva oppure Disattiva ricevuto dalla piattaforma 1NCE
- ICCID — identificativo univoco della SIM, mostrato nell’intestazione del pannello
- IMSI — International Mobile Subscriber Identity
- MSISDN — numero di telefono assegnato alla SIM
- IP address — indirizzo IP assegnato all’ultima connessione dati
- Attivazione — data di attivazione della SIM
Utilizzo dati
La barra di avanzamento mostra graficamente quanto della quota totale è già stato consumato:
- Verde — consumo < 70 %
- Giallo — consumo tra 70 % e 90 %
- Rosso — consumo > 90 % (quota quasi esaurita)
Vengono mostrati: MB usati, MB residui, MB totali e la percentuale di utilizzo. Se disponibile viene indicato anche il throughput massimo (Kbps) e la quota SMS residua.
Solar — Pannelli fotovoltaici
La pagina Solar raccoglie i pacchetti di statistiche solari (formato SSv2) inviati dai dispositivi e ne fornisce una vista device-first: pacchetti grezzi, riepilogo per dispositivo, calendario di attività, energia giornaliera ed export CSV.
Due schede principali: Pacchetti (lista grezza) e Device (vista per dispositivo).
Tab Pacchetti
Lista paginata dei pacchetti ricevuti, decodificati e archiviati nel database.
Filtri
- IMEI — supporta più valori separati da virgola, spazio o punto-e-virgola. Ogni IMEI inserito appare come chip sotto al campo, con pulsante × per rimuoverlo singolarmente. La lista dei suggerimenti (datalist) viene popolata automaticamente con tutti gli IMEI noti.
- Da / A — intervallo di date di ricezione
- Preset rapidi — pulsanti
1g, 7g, 30g, M (mese corrente) impostano automaticamente Da/A
- Formato — SSv2 / SSv1 / Sconosciuto
- Stato — Decodificati / Errore
- Pulsante azzera tutti i filtri
Colonne
- Ricevuto — data/ora di arrivo del pacchetto al gateway
- Giorno — giorno coperto dalle statistiche (formato lungo, locale italiano)
- IMEI — identificativo del dispositivo
- Formato / Status / Samples / Size
- Azioni — apre il dettaglio decodificato e i 4 grafici (temperatura, tensione, corrente, RSSI); scarica il blob LZ4 originale
Toolbar
- Export CSV — esporta in CSV tutta la lista filtrata (no paginazione). UTF-8 con BOM per Excel
- Re-indicizza — ri-scansiona la cartella di lavoro e gli archivi
.pkts.gz
Tab Device — Card con KPI
Per ciascun dispositivo viene mostrata una card riepilogativa con:
- IMEI e tempo dall'ultimo upload — verde se < 24h, rosso se > 7g
- Pacchetti totali · Giorni con dati · Samples totali
- Sparkline (linea+area) dei pacchetti/giorno negli ultimi 30 giorni
- Azioni: Calendario, Energia, Pacchetti (apre la lista grezza filtrata per quel device)
In alto a destra, il toggle / consente di passare dalla vista a card alla tabella compatta.
Calendario — Heatmap stile GitHub
Cliccando Calendario su una card, si apre un pannello con:
- Selettore range: 30 / 60 / 90 (default) / 180 / 365 giorni
- Griglia: colonne = settimane (Lun → Dom), righe = giorni della settimana, etichette dei mesi sopra
- Colore della cella proporzionale al numero di samples del giorno (5 livelli + vuoto). Tooltip con data, pacchetti e samples
- La cella di oggi è evidenziata da un bordo blu
- Click su una cella → apre la tab Pacchetti filtrata per quell'IMEI e quel giorno
- Riquadro KPI sopra la griglia: Giorni con dati / range, Pacchetti totali, Media pacchetti/giorno, Picco con data
- Pulsante per chiudere il pannello
Tab Settimana
Grafico panoramico settimanale per un singolo IMEI, con navigazione per settimana e dettaglio giornaliero.
- Seleziona un IMEI dal menu a tendina in alto
- Naviga tra le settimane con i pulsanti /
- Il grafico mostra le curve di energia (Wh) per ciascun giorno della settimana, sovrapposto su una stessa scala oraria
- Clicca su una curva o sul giorno nella legenda per isolarla
- Sotto al grafico, una tabella KPI riepiloga i dati giorno per giorno (samples, picco, energia)
- Clicca su una riga della tabella KPI per espandere i 4 grafici di dettaglio (Temperatura, Tensione, Corrente, RSSI) per quel giorno
Energia giornaliera (SSv2)
Cliccando Energia su una card, si apre un grafico a barre dell'energia prodotta giorno per giorno (Wh), estratta dall'header SSv2 (energy_mWh). Quando ci sono più pacchetti per lo stesso giorno viene tenuto il valore massimo (totale running di fine giornata).
- Range:
7g / 30g (default) / 90g / 1a
- Tooltip multilinea: Energia (Wh), Picco (W), Ora picco (HH:MM)
- Riepilogo: totale, media/giorno, picco con data
- Export CSV del range corrente (
sample_date, energy_wh, peak_w, peak_time_min, peak_time_hhmm, packets)
Dettaglio pacchetto
L'icona nella tabella Pacchetti apre una finestra modale con:
- Header decodificato (data, energia, picco, n. samples)
- Tabella samples (ora, V bus, mA, V pannello, T °C, RSSI, batteria)
- 4 grafici 2×2: Temperatura, Tensione, Corrente, RSSI
- Hex dump del payload decompresso e bottoni di download
On-demand — Comandi remoti
La pagina On-demand consente di inviare comandi remoti ai dispositivi che supportano il polling HTTP (firmware ≥ 4.1.15). La lista viene filtrata automaticamente per mostrare solo i dispositivi idonei.
Ricerca e filtri
- Barra di ricerca — filtra i dispositivi per IMEI in tempo reale
- Solo i dispositivi con firmware ≥
4.1.15 compaiono nella lista
- Paginazione automatica: 10 dispositivi per pagina
- Aggiornamento automatico ogni 20 secondi
Colonne della tabella
- IMEI — identificativo del dispositivo
- Ambiente — Produzione / Sviluppo
- Firmware — versione installata sul dispositivo
- Cap. — capacità batteria (se disponibile)
- Live — verde se l’ultima poll HTTP è avvenuta entro gap + 1 minuto (es. con gap 5 min → soglia 6 min); grigio se il device è fuori finestra o inattivo. La soglia si adatta automaticamente al gap configurato per ogni device.
- Cmd — comando attualmente in coda per il dispositivo (
none = nessun comando pendente)
- Request — numero di poll HTTP ricevute dal dispositivo oggi
- Last Poll — data e ora dell’ultima poll HTTP ricevuta
Selezione del dispositivo
Clicca sulla riga del dispositivo per aprire il pannello comandi. Il pannello mostra lo stato del dispositivo e le sezioni di configurazione descritte di seguito.
Finestra Poll HTTP
Definisce l’intervallo orario in cui il device esegue il polling HTTP verso il server.
- Start / Stop — ora di inizio e fine della finestra (es. 07:00 – 20:00). Fuori da questo intervallo il device non effettua poll, risparmiando batteria e quota eSIM.
- Gap — minuti tra una poll e la successiva all’interno della finestra (min 5 min, max 1440 min).
Comando inviato al firmware: set_poll_window|HH|HH|GAP. Richiede ruolo Operatore o Amministratore.
Heartbeat MQTT — Intervallo invio
Imposta ogni quanti minuti il device invia il pacchetto heartbeat MQTT al server.
- Step disponibili: 30 min → 45 → 1 h, poi ogni 30 min fino a 24 h, poi ogni giorno fino a 7 giorni.
- Default: 30 min. Massimo: 10080 min (7 giorni).
Comando inviato al firmware: poll_set_hb_min|N. Richiede ruolo Operatore o Amministratore.
Invio MQTT immediato
Ordina al device di eseguire subito un invio MQTT senza attendere il prossimo heartbeat. Opzionalmente include uno scatto fotografico.
- Nessun grab — invio heartbeat senza fotografia.
- CAM0 / CAM1 — scatta e allega la foto dalla camera selezionata prima dell’invio.
- DUAL CAM — scatta da entrambe le camere (CAM0 + CAM1) e le include nell’invio.
Comando inviato al firmware: send_now|none, send_now|cam0, send_now|cam1 o send_now|dual. Richiede ruolo Operatore o Amministratore.
Modalità di lavoro CAM
Imposta la modalità di acquisizione delle camere.
- Dual Cam — il device acquisisce da entrambe le camere (CAM0 + CAM1) ad ogni scatto. Firmware:
set_dual_cam|1. Default attivo.
- Singola Cam — il device acquisisce da CAM0 solamente. Firmware:
set_dual_cam|0.
Richiede ruolo Operatore o Amministratore.
Comandi generali
Comandi operativi inviati al device al prossimo ciclo di poll HTTP. Disponibili solo se il device ha effettuato almeno un poll e l’ora corrente è all’interno della finestra poll configurata.
- Apri Serratura — invia il comando di apertura serratura. Firmware:
poll_open_lock.
- Chiudi Serratura — invia il comando di chiusura serratura. Firmware:
poll_close_lock.
- Calibra Angolo — avvia la procedura di calibrazione del sensore angolo. Firmware:
poll_calibrate_angle.
- Riavvia device — forza il riavvio del dispositivo remoto. Firmware:
poll_reboot. Usare con cautela.
Richiede ruolo Operatore o Amministratore. I comandi hanno un TTL di 15 minuti: se il device non esegue il poll entro tale limite il comando viene scartato automaticamente.
Barra di stato comando pendente
- Appare sotto il pannello non appena un comando viene accodato.
- Mostra il countdown al prossimo poll HTTP stimato e il testo del comando in attesa.
- Annulla — invia
none per cancellare il comando prima che il device lo riceva.
- Dopo 8 minuti senza risposta la barra torna automaticamente in stato Idle (il TTL di 15 min lato server rimane attivo).
MQTT Routing — Cambio broker
La pagina MQTT Routing consente di reindirizzare un dispositivo verso un diverso broker MQTT (Sviluppo ↔ Produzione). Il cambio viene applicato al prossimo ciclo di polling HTTP del dispositivo.
Visibile nel menu laterale per ruolo Operatore e Amministratore.
Elenco dispositivi
- IMEI — identificativo del dispositivo.
- Ambiente — badge colorato con l’ambiente MQTT attuale del dispositivo: Sviluppo o Produzione.
- Firmware — versione installata.
- Ultimo HB — data e ora dell’ultimo heartbeat MQTT ricevuto.
La lista si aggiorna automaticamente ogni 30 secondi e mostra solo i dispositivi che hanno inviato almeno un heartbeat.
Pannello di routing
Cliccando su un dispositivo si apre il pannello laterale con le informazioni e le opzioni di cambio broker.
- Badge ambiente corrente — mostra l’ambiente MQTT su cui il dispositivo è attualmente connesso (dalla lettura dell’ultimo heartbeat).
- Radio “Sviluppo” / “Produzione” — seleziona l’ambiente di destinazione. Il radio viene pre-selezionato automaticamente sull’ambiente opposto a quello corrente, in modo da facilitare il cambio.
Invio del comando di routing
Premendo Invia comando si apre un pannello di stato che esegue in sequenza:
- Contatto Endpoint — verifica la raggiungibilità del broker MQTT di destinazione.
- Verifica porta — controlla che la porta TCP sia aperta.
- Controllo credenziali — testa l’autenticazione MQTT (CONNECT → CONNACK).
- Se il test fallisce: viene mostrato il messaggio di errore e il comando non viene inviato.
- Se il test ha successo: il comando di routing viene accodato per il dispositivo e la pagina reindirizza automaticamente a On-demand per monitorare la consegna al prossimo poll HTTP.
Richiede ruolo Operatore o Amministratore. Il comando viene consegnato al dispositivo al prossimo ciclo di polling HTTP (TTL 15 minuti).
Note operative
- Il test del broker viene eseguito lato server (non dal browser): anche se il gateway è in una rete privata, il test è sempre affidabile.
- Il badge ambiente nella lista riflette l’ultimo heartbeat ricevuto, non il comando accodato: potrebbe non aggiornarsi immediatamente dopo l’invio.
- Se il dispositivo è fuori dalla finestra di polling, il comando resterà in coda fino al prossimo poll o fino allo scadere del TTL (15 minuti).
Fisheye Calibration — Guida alla de-wrappazione
Cos’è la de-wrappazione fisheye?
Le lenti fisheye catturano un campo visivo molto ampio (fino a 220°) ma deformano l’immagine in modo radiale: le linee rette diventano curve, gli oggetti ai bordi appaiono “gonfiati”. La de-wrappazione (dewarp) esegue il processo inverso: converte l’immagine distorta in una vista rettilineare normale, come la percepirebbe un occhio umano.
Il sistema utilizza FFmpeg con il filtro v360=input=fisheye:output=flat. Questa pagina consente di regolare visivamente tutti i parametri e salvarli sul server affinché vengano applicati automaticamente a ogni elaborazione successiva.
Quando calibrare
- Al primo montaggio della camera
- Dopo aver spostato o ruotato fisicamente la camera
- Se nell’immagine de-wrappata le linee dritte appaiono storte o curve
- Se l’immagine mostra bordi neri o una zona centrale “bucata”
Procedura passo-passo
- Aprire la pagina Fisheye Calibration dal menu laterale
- Selezionare l’immagine Scacchiera come sorgente di test (le linee ortogonali permettono di valutare immediatamente la distorsione residua)
- Cliccare Applica dewarp per visualizzare il risultato con i parametri attuali
- Regolare i parametri nell’ordine consigliato: prima Crop, poi FOV ingresso, poi Orientamento, infine FOV uscita
- Dopo ogni modifica cliccare Applica dewarp (oppure attivare Auto-refresh per aggiornamento automatico)
- Quando il risultato è soddisfacente — linee dritte, niente bordi neri, orizzonte orizzontale — cliccare Salva
- Tornare alla scena reale selezionando Fisheye (default) e verificare il risultato finale
Attiva Auto-refresh per vedere il risultato aggiornarsi in tempo reale mentre sposti gli slider.
Gruppo 1 — Crop cerchio fisheye
Questi tre parametri dicono al sistema dove si trova il cerchio fisheye all’interno del fotogramma grezzo e quanto è grande. È il punto di partenza: se il crop è sbagliato, tutto il resto sarà storto indipendentemente dagli altri parametri.
-
crop_cx — coordinata X (orizzontale) del centro del cerchio, in pixel.
Default: 320. Range: 50–2000. Se il cerchio è spostato a destra nel fotogramma grezzo, aumentare questo valore. Spostato a sinistra → ridurre.
-
crop_cy — coordinata Y (verticale) del centro del cerchio, in pixel.
Default: 240. Range: 50–2000. Se il cerchio è più in basso rispetto al centro, aumentare. Più in alto → ridurre.
-
crop_r — raggio del cerchio fisheye, in pixel.
Default: 234. Range: 50–1000. Deve corrispondere esattamente al bordo visibile dell’immagine circolare. Troppo piccolo → immagine “bucata”. Troppo grande → bordi neri.
Come trovare i valori esatti: aprire il fotogramma grezzo in un editor di immagini (GIMP, Paint.NET, ecc.), portare il cursore al centro visivo del cerchio e leggere le coordinate X/Y. Poi misurare la distanza dal centro al bordo del cerchio per ottenere il raggio.
Gruppo 2 — FOV obiettivo fisheye (ingresso)
Descrivono le caratteristiche ottiche fisiche della lente montata sulla camera. Il FOV (Field of View = campo visivo) è l’angolo totale che la lente può “vedere”. Modificare questi valori solo se si conosce con certezza le specifiche della lente usata.
-
input_h_fov — campo visivo orizzontale della lente, in gradi.
Default: 185°. Range: 100–280°. Per lenti fisheye circolari simmetriche tipicamente 185–220°.
-
input_v_fov — campo visivo verticale della lente, in gradi.
Default: 185°. Di norma uguale all’orizzontale per lenti fisheye circolari simmetriche.
Se si impostano valori errati l’immagine uscente risulterà “schiacciata” o “allungata” lungo un asse. In caso di dubbio lasciare i valori di default (185°/185°).
Gruppo 3 — FOV vista rettilineare (uscita)
Definiscono quanta porzione della scena de-wrappata viene inclusa nell’immagine finale. Più alto è il valore, più ampia è la vista (effetto “grandangolo”); più basso, più l’immagine è simile a un obiettivo normale con meno distorsione residua.
-
output_h_fov — ampiezza orizzontale della vista finale, in gradi.
Default: 115°. Range: 30–180°. Preset comuni: 90° (normale), 105°, 115° (default), 120° (grandangolo). Aumentare per “allargare” la scena, ridurre per “zoomare”.
-
output_v_fov — ampiezza verticale della vista finale, in gradi.
Default: 86°. Range: 20–180°. Preset comuni: 78°, 86° (default), 90°. Di norma si mantiene proporzionale all’output_h_fov (circa rapporto 4:3).
Gruppo 4 — Orientamento camera
Correggono l’inclinazione fisica della camera. Se la camera è montata perfettamente dritta e non ruotata, tutti questi valori rimangono a 0. Modificarli solo per compensare un montaggio non ideale.
-
pitch — inclinazione su/giù (testa in su / in giù), in gradi.
Default: 0°. Range: −180° → +180°. Positivo = camera inclina verso l’alto. Negativo = verso il basso. Usare se l’orizzonte nell’immagine de-wrappata appare troppo in alto o troppo in basso.
-
yaw — rotazione sinistra/destra (come scuotere la testa di lato), in gradi.
Default: 0°. Range: −180° → +180°. Positivo = ruota a destra. Negativo = a sinistra. Usare se la scena risulta ruotata orizzontalmente.
-
roll — rotazione sul proprio asse (come inclinare la testa sulla spalla), in gradi.
Default: 0°. Range: −180° → +180°. Usare se l’orizzonte appare storto nell’immagine de-wrappata (non piatto). È il parametro più frequentemente necessario quando la camera non è montata perfettamente in piano.
-
h_flip — specchio orizzontale (inverte sinistra/destra).
Attivare se la camera è montata con uno specchio o se l’immagine appare ribaltata orizzontalmente.
-
v_flip — specchio verticale (inverte sopra/sotto).
Attivare se la camera è montata capovolta o se l’immagine appare ribaltata verticalmente.
Gruppo 5 — Dimensioni output
Definiscono la risoluzione dell’immagine de-wrappata finale generata da FFmpeg.
-
output_w — larghezza dell’immagine finale, in pixel.
Default: 640 px. Range: 320–1920 px (multipli di 16). Aumentare per avere più dettaglio nell’immagine risultante, a scapito del tempo di elaborazione.
-
output_h — altezza dell’immagine finale, in pixel.
Default: 480 px. Range: 240–1440 px (multipli di 16). Tipici rapporti: 640×480 (4:3), 640×360 (16:9).
Pulsanti della pagina
- Fisheye (default) — carica l’immagine fisheye reale della camera come sorgente per la calibrazione.
- Scacchiera — carica un’immagine a scacchiera sintetica. Le righe e colonne della griglia devono risultare perfettamente dritte dopo il dewarp: è lo strumento più efficace per valutare la qualità della calibrazione geometrica.
- Applica dewarp — esegue la conversione fisheye → rettilineare con i parametri correnti e mostra il risultato a fianco dell’originale.
- Auto-refresh — quando attivo, il dewarp viene ricalcolato automaticamente ogni volta che si modifica uno slider, senza dover cliccare “Applica”. Utile per regolazioni fini; disattivare su connessioni lente.
- Salva — invia i parametri correnti al server. Da questo momento vengono usati per elaborare tutte le immagini fisheye ricevute dai dispositivi.
- Reset defaults — ripristina tutti gli slider ai valori di fabbrica (chiede conferma prima di procedere).
Consigli pratici & risoluzione problemi
- Inizia sempre dalla scacchiera: le linee ortogonali rendono immediatamente visibile qualsiasi distorsione residua.
- Ordine di calibrazione consigliato:
crop_cx/crop_cy/crop_r → input_h/v_fov → pitch/yaw/roll → output_h/v_fov.
- Immagine “bucata” al centro:
crop_r è troppo piccolo → aumentarlo.
- Bordi neri nell’immagine uscente:
crop_r è troppo grande, oppure output_h/v_fov è troppo ampio → ridurre uno dei due.
- Orizzonte storto: correggere
roll. Se anche inclinato, correggere anche pitch.
- Immagine schiacciata/allungata: verificare
input_h_fov e input_v_fov; devono corrispondere alle specifiche della lente.
- Linee dritte ma scena troppo stretta/larga: regolare
output_h_fov e output_v_fov.
- Tutto appare specchiato: attivare
h_flip o v_flip secondo necessità.
Maintenance — Analisi dispositivo
La pagina Maintenance permette un'analisi diagnostica approfondita di un singolo
dispositivo. Si seleziona l'IMEI, un intervallo di date e si clicca
Analizza: il sistema carica fino a 500 record di log firmware e
tutti i comandi registrati per quell'IMEI.
La pagina è organizzata in 6 tab:
Widget “Ultimi dispositivi attivi”
In cima alla pagina, sopra il selettore IMEI, è presente la card
Ultimi 10 dispositivi attivi fw ≥ 4.1.15: mostra i 10 dispositivi
che hanno inviato più di recente un pacchetto heartbeat con firmware idoneo.
- IMEI — cliccabile: popola automaticamente il campo IMEI nel selettore sottostante
- FW — versione firmware rilevata nell’ultimo heartbeat (badge blu)
- Ultimo HB — data e ora del pacchetto più recente
La lista viene aggiornata ad ogni caricamento della pagina. Vengono mostrati solo i dispositivi con firmware ≥ 4.1.15 che supportano il polling HTTP.
KPI — metriche istantanee
Subito sotto il selettore IMEI sono visibili 5 card di sintesi:
- Tot. eventi — numero di record firmware nel periodo selezionato
- Reboot/Reset — eventi di riavvio (soglie: ≥2 giallo, ≥5 rosso)
- Errori — eventi di errore/fault (soglie: ≥3 giallo, ≥10 rosso)
- Silenzio max — intervallo massimo senza eventi in ore (soglie: ≥3h giallo, ≥6h rosso)
- Comandi — totale comandi inviati al dispositivo (visibile solo a Operator/Admin)
- Health Score — punteggio 0–100 calcolato da reboot, errori, batteria critica, MQTT fail rate e silenzio; verde ≥70, giallo ≥40, rosso <40
Tab 1 — Firmware Events
Analisi degli eventi firmware registrati nel periodo:
- Bar chart — top 15 codici evento per frequenza
- Donut chart — distribuzione per categoria (Boot, Modem, MQTT, Camera…)
- Daily chart — eventi totali per giorno nel range selezionato
- Badge anomalie — rilevamento automatico di condizioni critiche (reboot multipli, batteria critica, flash repair, MQTT fail rate, SIM error, silenzi, camera fail, modem fail)
- Tabella — lista paginata (50 per pagina) con filtro per categoria, codice evento e testo; ogni riga mostra seq, timestamp device, codice, badge evento, descrizione, timestamp ricezione
- Export CSV — esporta i record filtrati con BOM UTF-8 per Excel
Tab 2 — Timeline
Vista cronologica unificata che mescola eventi firmware e
comandi inviati ordinati per timestamp decrescente.
I comandi vengono filtrati in base all'intervallo date selezionato.
- Contatori in testa: N eventi firmware, N comandi nel periodo, visibili / totali
- Ogni riga mostra: punto colorato (blu=boot/FW, rosso=errore, giallo=comando), timestamp, badge tipo, testo breve, extra info (codice+seq per FW; utente+ruolo per comandi)
- Badge Sost. se il comando è stato sostituito prima dell'invio; Canc. se cancellato
- Pulsante Carica altri per paginazione progressiva (100 elementi per volta)
I comandi sono visibili solo agli utenti con ruolo Operator o Administrator.
Tab 3 — Comandi
Storico di tutti i comandi inviati all'IMEI selezionato (max 100 record, senza filtro data):
- KPI Totale comandi — numero totale nel database per quell'IMEI
- Bar chart orizzontale — frequenza per tipo di comando (top 12); il tipo viene estratto dalla stringa MQTT (es.
Motor:Open, Config:Set)
- Tabella — timestamp, IMEI, comando completo (in monospace), username, ruolo, stato (OK / Sostituito / Cancellato)
Visibile solo agli utenti con ruolo Operator o Administrator.
Tab 4 — Anomalie
Analisi focalizzata sugli eventi di errore e fault nel periodo selezionato:
-
Health Score giornaliero — line chart con un punto per ogni giorno;
il colore del punto riflette il livello di salute di quel giorno
(verde ≥70,
giallo ≥40,
rosso <40).
Formula: base 100 −5/reboot −3/errore per giorno.
-
Heatmap calendario — griglia di celle (una per giorno) colorate in 4 livelli:
0
basso
medio
alto .
Hover sulla cella per data e conteggio anomalie.
-
Tabella per tipo — raggruppa gli eventi di errore per codice evento;
ordinata per numero di occorrenze decrescente; mostra prima e ultima occorrenza;
colonna Severità: Critica (codici gravi o ≥5 occ.),
Attenzione (≥2 occ.), Bassa.
Tab 5 — Fleet Health
Vista aggregata su tutti i dispositivi della flotta, indipendente
dall'IMEI selezionato. I dati vengono caricati manualmente cliccando
Carica dati fleet.
- Window temporale — pulsanti
7g / 14g / 30g per il periodo di analisi
- KPI — dispositivi attivi nel periodo, Health Score medio, contatori Critici (score <40) e Warning (score 40–69)
- Bar chart — top 12 dispositivi per numero di errori (barre colorate verde/giallo/rosso in base allo score); tooltip mostra errori e score
-
Tabella — tutti i dispositivi ordinati per score crescente (peggiori in cima);
colonne: IMEI, Env, Health Score badge, Events, Errori, Reboot, Batt.crit, MQTT fail, Ultimo evento
Analisi AI — Diagnostica dispositivo
Nel selettore in cima alla pagina, accanto al pulsante Analizza, è presente
il pulsante
(bordo giallo). Si abilita automaticamente appena si digita un IMEI; è disabilitato se il campo è vuoto.
Cliccandolo si apre un pannello modale con diagnostica automatica calcolata in tempo reale sui log già caricati. Il pannello è suddiviso in sezioni:
- Barra periodo — date from/to selezionate e contatore record.
- Stato log — tre scenari: nessun log (alert rosso), log datati >2 h (alert giallo), log aggiornati (badge verde). In caso di log assenti o vecchi compare il pulsante Richiedi log adesso & vai a On-demand che invia il comando
poll_get_logs al dispositivo e reindirizza automaticamente alla pagina On-demand.
- Riepilogo periodo — griglia con record totali, giorni nel range, eventi/giorno (media), tipi evento distinti; più una riga sintetica con primo/ultimo log, evento più frequente, contatori reboot ed errori colorati per livello di severità.
-
Catene pre-reboot — per ogni evento di reboot/reset rilevato mostra i 5 eventi immediatamente precedenti in ordine cronologico inverso (numerazione sequenza inclusa). Permette di ricostruire la causa di ogni riavvio
(es. MQTT Fail → Conn Fail → Modem Fail → Reboot).
La sezione si apre automaticamente se esistono reboot nel periodo.
-
Lacune di sequenza — analizza il campo
seq di ogni record e segnala i salti numerici che indicano log non trasmessi (persi nella memoria flash del dispositivo).
Per ogni lacuna: numeri seq di inizio/fine, record mancanti stimati, timestamp dell'ultimo record prima del gap.
-
Picchi di attività oraria — raggruppa gli eventi per ora e individua le finestre temporali con densità > media + 2σ.
Ogni picco riporta il numero di eventi e il rapporto rispetto alla media oraria (es. “45 eventi in 14:xx — 8× la norma”).
-
Aggiornamenti firmware (FOTA/DFU) — lista cronologica di tutti gli eventi FOTA/DFU nel periodo (Start, DL OK, Install, Fail, Cancel) con timestamp e descrizione.
Gli eventi di fallimento sono evidenziati in rosso.
-
Distribuzione per categoria — barre proporzionali per categoria di evento (Boot/Reset, MQTT, Modem/Rete, Batteria, Camera…) con conteggio e percentuale.
Tutta la diagnostica locale è calcolata client-side sui dati già caricati con Analizza — nessuna chiamata API aggiuntiva. Disponibile per tutti i ruoli.
Chiedi all’AI — Analisi assistita
All’interno del pannello diagnostica (in fondo, dopo la distribuzione per categoria) è presente
il pulsante Chiedi all’AI.
Invia un riepilogo strutturato dei log già caricati al servizio AI interno,
che restituisce una valutazione diagnostica in linguaggio naturale italiano.
- Dati inviati all’AI — totale record, reboot, lacune di sequenza, esito FOTA, categorie eventi, ultimi errori e picchi di attività. Nessun dato personale è incluso.
- Risposta — testo libero in italiano con valutazione dello stato di salute del dispositivo, possibili cause anomalie e suggerimenti operativi.
- Servizio AI non disponibile — se il servizio AI non è raggiungibile viene mostrato un messaggio di errore generico; riprovare più tardi.
- Tempo di risposta — tipicamente 10–30 secondi in base al carico del servizio. Durante l’attesa compare uno spinner; il pulsante è disabilitato per evitare richieste duplicate.
La funzione richiede autenticazione attiva (sessione valida). L’elaborazione avviene interamente in locale — nessun dato viene inviato a servizi cloud esterni.
Domande Frequenti
Un dispositivo risulta "Offline" ma dovrebbe essere attivo?
Lo stato "Online" si basa sulla ricezione di messaggi negli ultimi 15 minuti. Se il dispositivo ha problemi di rete o è in modalità risparmio energetico, potrebbe risultare offline anche se funzionante.
Non vedo un dispositivo sulla mappa
Solo i dispositivi con coordinate GPS valide vengono mostrati sulla mappa. Se il dispositivo non ha ancora inviato dati di posizione, non apparirà. Verifica dal dettaglio dispositivo se la geolocalizzazione è presente.
Come faccio a sapere se c'è un allarme?
Gli allarmi vengono indicati nella mappa (marker rosso) e nel popup del dispositivo. Attiva lo switch "Allarmi" nella pagina Mappe per evidenziarli.
Cosa significa "Inattivo 7g"?
Un dispositivo è considerato inattivo se non ha inviato alcun messaggio negli ultimi 7 giorni. Questo può indicare un problema hardware, batteria scarica o disconnessione dalla rete.
Vengo reindirizzato al login senza aver fatto nulla
La sessione scade automaticamente dopo 30 minuti di inattività. Ogni azione sul sito (cambio pagina, ricerca, aggiornamento dati) azzera il timer. Se la sessione è scaduta, effettua nuovamente il login: i tuoi dati e configurazioni sono al sicuro sul server.