Un Gateway perde il collegamento verso l'esterno alle 09:00 e lo recupera alle 12:00. Invia quindi le letture conservate durante le tre ore. Se la piattaforma ricevente mantiene la marca temporale originale di ogni lettura, il grafico riempie la lacuna. Se invece assegna a ogni lettura l'ora di arrivo, tre ore di energia finiscono in un solo intervallo di 15 minuti. Con un carico medio di 40 kW si tratta di 120 kWh in 15 minuti, e il rapporto sulla domanda mostra un picco di 480 kW mai avvenuto.
Ogni valore dell'esempio era reale. Era sbagliata soltanto l'ora, e un dashboard in tempo reale non lo mostrava.
Ogni osservazione deve rispondere a quattro domande. Quale grandezza è stata osservata e dove? Quando si è verificata la condizione? Il valore è valido e abbastanza recente per questo uso? Quale catena di misura e di elaborazione lo ha prodotto? Fatturazione, protezione, funzioni di sicurezza e rendicontazione normativa aggiungono i propri requisiti di apparecchiature, approvazione, incertezza e verifica a quanto segue.
Modelli delle osservazioni in SSN e SensorThings
L'ontologia Semantic Sensor Network del W3C (SOSA/SSN) definisce un'osservazione come un atto di osservare, di norma per stimare o determinare il valore di una proprietà di un'entità d'interesse. Tiene separati proprietà, risultato, sensore, procedura, tempo del fenomeno e tempo del risultato. Specifica inoltre che il tempo del fenomeno non coincide necessariamente con quello del risultato.
L'API OGC SensorThings usa un modello simile per i servizi web dei sensori. Un'Observation appartiene a un Datastream e contiene risultato, tempo del fenomeno, tempo del risultato, qualità, periodo di validità e parametri.
Non occorre adottare uno dei due modelli. Qualunque sia lo schema, conserva significato, tempo dell'osservazione, qualità e provenienza in campi distinti.
Il record minimo di un'osservazione
| Campo o relazione | Domanda a cui risponde | Problema se manca |
|---|---|---|
| Identità di sito, risorsa e punto | Quale oggetto fisico e quale canale l'hanno prodotto? | Valori di sorgenti diverse vengono uniti o confrontati erroneamente |
| Grandezza osservata | Si tratta di potenza attiva, energia cumulativa, temperatura o stato? | Un numero non ha significato ingegneristico stabile |
| Valore e unità | Quali grandezza e unità sono state riportate? | W, kW e MW, oppure °C e °F, vengono confusi senza avviso |
| Tempo del fenomeno o della sorgente | Quando si è verificata la condizione misurata? | Dati vecchi e conservati sembrano attuali |
| Tempo del risultato o di acquisizione | Quando è stato prodotto o ricevuto qui il risultato? | Ritardo di trasporto e riproduzione non sono diagnosticabili |
| Qualità o stato | Il valore è valido, incerto, non valido, obsoleto, sostituito o indisponibile? | Dati non validi sembrano attendibili |
| Identità di procedura e configurazione | Quali intervallo, scala, firmware, taratura e calcolo erano applicati? | Una modifica di configurazione sembra un cambiamento fisico |
| Sequenza o identità stabile dell'evento | Questa osservazione è già stata elaborata? | I nuovi tentativi creano duplicati o energia conteggiata due volte |
Questo è un record del registro di energia di un quadro trifase che invia dati ai confini di intervalli di 15 minuti. È la lettura delle 09:45 durante l'interruzione descritta sopra, consegnata dopo il ripristino del collegamento:
{
"site": "plant-02",
"asset": "db-3-compressor-house",
"point": "db-3/energy-active-total",
"property": "active energy, cumulative register",
"value": 184213.4,
"unit": "kWh",
"observed_at": "2026-09-14T09:45:00Z",
"received_at": "2026-09-14T12:02:41Z",
"quality": "good",
"config_revision": "point-list r7",
"sequence": 88412
}Le due ore differiscono di 2 ore e 17 minuti. La differenza indica al destinatario che la lettura è stata trattenuta durante un'interruzione e non rappresenta il carico attuale. Il numero di sequenza consente di scartare una seconda copia della stessa lettura.
Non tutte le sorgenti possono compilare ogni campo. Registra i campi che una sorgente non può fornire e non inventare precisione. Per esempio, un sensore Zigbee di terze parti riporta un valore senza marca temporale: il Gateway gli assegna l'ora di arrivo. È un'ora di arrivo e come tale va indicata nell'elenco dei punti.
Definire il punto di misura
Definire prima la misura
Parti dal misurando, cioè la grandezza che intendi misurare. «Temperatura» non basta se la decisione dipende dalla temperatura dell'aria in un luogo definito, della superficie di un tubo, di un liquido in immersione o da una media fra stanze.
Annota intervallo, incertezza richiesta in tutto l'intervallo, tempo di risposta e condizioni d'installazione. Annota decisione, allarme o calcolo che usa il valore. Poi descrivi cosa accade se il valore è sbagliato, assente o in ritardo. Questa voce determina il limite di obsolescenza e, in seguito, il comportamento dell'allarme.
La classe di accuratezza di un componente non dà le prestazioni della catena installata. Secondo la politica NIST sulla riferibilità metrologica, la riferibilità è una proprietà del risultato di misura. Una catena documentata di tarature la sostiene e ogni taratura contribuisce all'incertezza. Un solo strumento tarato non rende riferibili tutti i risultati successivi. Per l'elettricità, la guida alla misura elettrica di alta accuratezza distingue classe del contatore, incertezza dell'intera catena e approvazione legale. Per una termoresistenza, il calcolatore Pt100 e Pt1000 fornisce curva standard e limite della classe di tolleranza. Aggiungi gli effetti di trasmettitore, cablaggio e installazione.
Rendere tracciabili scalatura e conversioni
Un registro grezzo o ingresso analogico può richiedere decodifica con segno, ordine delle parole, rapporto TA o TV, scalatura lineare o una curva non lineare prima di diventare un valore ingegneristico. Conserva i parametri o la revisione della configurazione applicata. Un ordine delle parole errato può produrre un numero plausibile: decodifica manualmente un valore grezzo. La guida alla messa in servizio Modbus contiene un esempio.
Per un punto calcolato, conserva anche identità dei punti di ingresso, formula e revisione, e unità prima e dopo la conversione. Registra la regola di allineamento temporale e il comportamento della formula con un ingresso non valido, mancante o obsoleto. Indica ogni sostituzione, limitazione o correzione manuale nel risultato.
Non sostituire un valore non valido con zero. Zero è una lettura valida per un motore fermo o un serbatoio vuoto e porta a una decisione operativa diversa da «sconosciuto».
Distinguere tempo dell'osservazione e tempo di arrivo
Una lettura porta l'ora in cui valeva la condizione e l'ora in cui ogni sistema l'ha ricevuta. Le due si separano quando i dati sono accumulati e inviati in seguito. Marche temporali della telemetria, ora della sorgente e ora di arrivo spiega quale ora conservare, UTC e ora legale, e come verificare l'invio differito sul sito.
Le garanzie di trasporto terminano a ogni passaggio
MQTT 5.0 definisce tre livelli di qualità del servizio fra un mittente e un destinatario: al massimo una volta, almeno una volta ed esattamente una volta. Prevede anche scadenza dei messaggi e stato della sessione. La guida a MQTT su TLS tratta identità del broker, autenticazione del client e accesso ai topic.
Niente di questo dimostra che la misura fisica fosse corretta o che ogni campione sia diventato un messaggio. Non prova che il payload abbia punto, unità e marca temporale corretti, che il passaggio d'integrazione successivo mantenga la stessa garanzia o che il destinatario abbia memorizzato una sola copia. Un messaggio retained è l'ultimo pubblicato sul suo topic e può essere vecchio di ore o giorni.
Dai a ogni osservazione un'identità stabile. Per un punto misurato, identità del punto e ora dell'osservazione di solito bastano. Rendi idempotenti le scritture, affinché un lotto ritrasmesso non venga contato due volte. Prova disconnessione e reinvio sul sito. Non dedurre il comportamento dal nome del protocollo.
Rendere visibili qualità e attualità
Un destinatario deve distinguere un valore attuale da uno tardivo, obsoleto, sostituito o mancante. Mappa deliberatamente gli stati di qualità di ogni sorgente nel tuo modello. Telemetria obsoleta, mancante e non valida descrive questi stati, come scegliere un limite di obsolescenza e come mostrarlo accanto al valore.
Aggregare partendo dai dati grezzi
Ogni grandezza richiede una funzione di aggregazione propria. Potenza media di un intervallo, domanda massima, ultimo stato noto, conteggio allarmi e differenza di un registro cumulativo sono cose diverse. Registra i confini degli intervalli e il fuso orario. Registra se ogni intervallo è etichettato dall'inizio o dalla fine, la regola di completezza minima e come i dati tardivi correggono un intervallo chiuso. Indica se ogni risultato è misurato, aggregato, stimato o sostituito.
Non fare mai la media di un registro energetico cumulativo. Calcola la differenza fra le letture ai confini dell'intervallo. Non sommare letture di potenza istantanea senza moltiplicare ciascuna per il tempo che rappresenta.
Ritorno a zero per superamento del limite e azzeramento del contatore producono entrambi una differenza negativa, ma richiedono trattamenti diversi. Un registro Wh a 32 bit ritorna da 4.294.967.295 a 0. Con una media di 40 kW impiega circa 12 anni, quindi pochi sistemi provano questo caso prima che avvenga.
Alle 23:45 il registro indica 4.294.960.296 Wh. Alle 00:00 indica 3.000 Wh. Se c'è stato un ritorno a zero per superamento del limite, l'energia dell'intervallo è (4.294.967.296 − 4.294.960.296) + 3.000 = 10.000 Wh. Sono 10 kWh in 15 minuti, equivalenti a una domanda media di 40 kW:
Ora il contatore viene sostituito. L'ultima lettura del vecchio è 1.250.400 Wh e la prima del nuovo è 3 Wh. La stessa formula per il ritorno a zero darebbe 4.293.716.899 Wh, circa 4,3 GWh in 15 minuti.
Accetta un ritorno a zero solo se l'energia implicata è possibile nell'intervallo. Un'alimentazione da 100 kW può fornire al massimo 25 kWh in 15 minuti. Un risultato maggiore indica un azzeramento. Chiudi quell'intervallo come incompleto, avvia un nuovo valore iniziale e registra l'evento. Su un monitor elettrico ZEM-6x come lo ZEM-65, Edge mostra il punto di ritorno a zero del registro, in kWh, come impostazione di sola lettura. I registri kWh di ogni fase sono scrivibili e un tecnico può preimpostarli. Registra ogni preimpostazione come azzeramento.
Conserva il registro cumulativo accanto ai valori d'intervallo. Dopo una lacuna nella telemetria, la differenza del registro recupera l'energia totale della lacuna, ma non il profilo di potenza al suo interno.
Campionamento, invio e aggiornamento del dashboard
«Dati ogni minuto» può indicare cinque cose: il sensore campiona una volta al minuto; il contatore campiona più spesso e calcola una media di un minuto; un dispositivo pubblica il valore più recente una volta al minuto; una piattaforma memorizza un'aggregazione di un minuto; oppure il dashboard si aggiorna ogni minuto, pur mostrando un punto che cambia a un altro ritmo. Indica ogni frequenza che conta nell'elenco dei punti.
I sensori Zigbee EpiSensor mostrano la differenza. Possono inviare dati ai confini dei minuti dell'orologio, a intervalli fissi in secondi oppure al cambiamento del valore.
La frequenza ha un costo. Un punto che invia ogni 10 s produce 8.640 messaggi al giorno; ogni 60 s ne produce 1.440. Mille punti con un invio al minuto producono 1,44 milioni di punti al giorno prima dei filtri. In un sensore a batteria, ogni invio consuma anche tempo radio ed energia. Verifica quale intervallo di invio assume la stima di autonomia nel datasheet.
| Uso | Intervallo tipico | Evidenza da conservare |
|---|---|---|
| Ripartizione energetica e fatturazione | Periodo di regolazione o tariffario, di solito 15 o 30 min, più registro cumulativo | Confini, completezza, azzeramenti del registro ed eventuali stime |
| Andamento operativo | 1 min per la potenza, da 5 a 15 min per la temperatura di una stanza | Frequenza della sorgente, aggregazione e aggiornamento del display |
| Allarme | Ritardo di rilevamento più limite di obsolescenza entro il tempo di risposta consentito | Soglia, permanenza, banda morta, limite di obsolescenza e ritardo di notifica |
| Gestione della domanda | Ben all'interno della finestra di domanda, per esempio 1 min in una finestra di 15 o 30 min, per lasciare tempo d'intervento | Definizione della finestra, frequenza di aggiornamento, logica della soglia ed evidenza dei comandi |
| Monitoraggio delle condizioni | Andamenti di corrente o temperatura ogni minuto per un degrado lento. Gli spettri di vibrazione richiedono campionamento a kHz su uno strumento dedicato | Banda del sensore, metodo di campionamento, calcolo degli indicatori e riferimento |
| Qualità dell'energia, protezione o sicurezza | Strumenti e metodi qualificati per la funzione, per esempio IEC 61000-4-30 per la qualità dell'energia | Norma applicabile, configurazione dello strumento, temporizzazione degli eventi ed evidenza di accettazione |
Per capire cosa rivelano corrente e potenza sulle condizioni delle apparecchiature, leggi la guida al monitoraggio delle condizioni dai dati elettrici.
Prove di messa in servizio che rivelano dati errati
Esegui ogni prova sul percorso completo, dal sensore alla piattaforma ricevente. Scrivi il risultato atteso prima della prova.
- Collega ogni punto visualizzato a dispositivo fisico, canale ed etichetta della risorsa.
- Applica almeno due valori noti, uno dei quali diverso da zero, e verifica ogni conversione. Per un canale TA, confronta la corrente in Edge e nella piattaforma con la lettura di una pinza amperometrica tarata sullo stesso conduttore.
- Controlla polarità, convenzione dei segni per importazione ed esportazione e associazione delle fasi. Un TA invertito dà potenza importata negativa su quella fase. Correggilo sul TA o nell'impostazione della direzione del TA della singola fase nel contatore, e registra quale modifica hai fatto.
- Confronta gli orologi della sorgente e del destinatario. Trattieni poi i dati per un tempo noto e verifica che le due marche temporali restino distinte.
- Scollega o invalida la sorgente. L'applicazione deve indicare dato non valido o indisponibile, non zero.
- Interrompi gli aggiornamenti senza cancellare l'ultimo valore. Il punto deve diventare obsoleto al limite concordato.
- Interrompi il collegamento in uscita per un tempo definito, per esempio 30 minuti. Osserva crescere la coda. Ricollega e verifica ordine, marche temporali e completezza dei dati reinviati nel destinatario.
- Reinvia un record o ripeti una consegna. Un destinatario idempotente non deve contarlo due volte.
- Riavvia a turno sensore, Gateway, broker e piattaforma. Verifica il recupero di identità, configurazione, orologio e consegna.
- Confronta un intervallo chiuso con le letture della sorgente, includendo un confine d'intervallo, un valore mancante e un azzeramento del contatore.
- Modifica un intervallo o una revisione di formula approvati. La modifica deve comparire nella provenienza senza cambiare il significato dei dati precedenti.
- Confronta le misure importanti con un riferimento indipendente in condizioni di carico rappresentative.
Il verbale di accettazione indica apparecchiatura, configurazione, riferimento, ora della prova, risultato atteso, risultato osservato e persona che l'ha approvato.
Problemi di dati osservati sul campo
| Sintomo | Possibile causa | Come individuarlo |
|---|---|---|
| Potenza importata negativa su una fase | TA invertito o installato sulla fase errata | Segno della potenza di ciascuna fase rispetto al carico noto e fattore di potenza molto diverso dall'atteso |
| Valori 1.000 volte troppo grandi o troppo piccoli | W indicati come kW oppure fattore di scala mancante | Confronto con il display del contatore o con una pinza amperometrica durante la messa in servizio |
| Valori enormi o quasi nulli dopo una modifica della mappa dei registri | Ordine delle parole o tipo di dato errato | Decodifica manuale di un registro grezzo |
| Un'ora mancante a marzo e ripetuta a ottobre | Intervalli indicizzati sull'ora locale | Conteggio degli intervalli per giorno locale: 92, 96 o 100 |
| Una lacuna seguita da molte letture con la stessa ora | Dati reinviati marcati con l'ora di arrivo | Ora di ricezione meno ora di osservazione, per ogni lettura |
| Letture datate anni nel passato o nel futuro | Orologio del dispositivo o Gateway non impostato dopo un'interruzione dell'alimentazione | Ora di osservazione fuori da un intervallo plausibile intorno all'ora di ricezione |
| Linea piatta all'ultimo valore | Sorgente ferma mentre il display conserva l'ultimo valore | Stato di obsolescenza ed età dell'osservazione più recente |
| Salto energetico di vari GWh in un intervallo | Azzeramento interpretato come ritorno a zero per superamento del limite | Limite sull'energia massima possibile nell'intervallo |
Controllare la qualità dei dati durante l'esercizio
La messa in servizio prova uno stato in un giorno. L'esercizio deve rilevare quando quello stato cambia. Per ogni punto, confronta osservazioni attese e ricevute e controlla l'età dell'osservazione valida più recente. Conta letture tardive, fuori ordine, duplicate, non valide, incerte, sostituite e fuori intervallo. Controlla scostamento degli orologi, profondità della coda ed età del dato più vecchio in attesa. Registra le modifiche rifiutate a schema, unità o identità e riconcilia i totali d'intervallo con il registro cumulativo.
Imposta allarmi su soglie pertinenti all'uso, per esempio osservazione più recente oltre il limite di obsolescenza, dato più vecchio in coda oltre un'ora oppure scostamento dell'orologio oltre 5 s per dati ogni minuto.
Definisci il denominatore prima di dichiarare la disponibilità. «Disponibilità dei dati del 99,9%» non significa nulla senza punti attesi, programma di invio, esclusioni, regola di qualità e trattamento dei dati tardivi. Per un punto con invio ogni minuto, il 99,9% su 30 giorni consente comunque 43 letture mancanti.
ISO/IEC 25012 offre un modello generale della qualità dei dati strutturati. Comprende 15 caratteristiche, divise fra una prospettiva intrinseca e una dipendente dal sistema; ISO l'ha riesaminato e confermato nel 2025. Fornisce il vocabolario. Il progetto deve comunque trasformare le caratteristiche pertinenti in requisiti misurabili.
Dati dei sensori con EpiSensor
I dispositivi EpiSensor, per esempio i monitor elettrici ZEM e i sensori di temperatura e umidità ZHT, inviano dati via Zigbee a un Gateway ZGW-20. Il Gateway esegue EpiSensor Edge, che conserva lo storico locale (30 giorni per impostazione predefinita), esegue calcoli e regole e inoltra i dati ad altre piattaforme.
Le letture dei dispositivi Zigbee EpiSensor arrivano a Edge con una marca temporale su ogni punto dati, che Edge conserva. Edge assegna invece a un valore di un dispositivo Zigbee di terze parti l'ora del Gateway al momento dell'arrivo. Edge scarta un punto dati con marca temporale non valida e registra un avviso.
Edge calcola la qualità per ogni sensore su una finestra di 15 minuti. Per un sensore con frequenza fissa, la qualità è la percentuale dei punti attesi. Un sensore con invio ogni minuto ha 15 punti attesi nella finestra: se ne arrivano 13, la qualità è 87%. Per un sensore che invia ai cambiamenti o meno spesso di ogni 15 minuti, Edge indica invece il numero dei punti ricevuti. Leggi il tipo di indicatore prima di confrontare due sensori.
Quando una destinazione supportata non è disponibile, Edge trasferisce i dati non consegnati in una coda su disco. Alcune integrazioni gestiscono invece autonomamente i nuovi tentativi, quindi verifica la guida dell'integrazione. Edge controlla la destinazione ogni minuto e reinvia la coda quando torna disponibile. Le letture reinviate mantengono le marche temporali originali. Non attivano nuovamente calcoli o automazione locali. Per MQTT, Edge considera completa una consegna quando il broker conferma la pubblicazione. Un lotto può arrivare due volte se la destinazione lo ha ricevuto prima che Edge registrasse il completamento, quindi il destinatario deve eliminare i duplicati. I dati in attesa di reinvio non hanno limite di età: una lunga interruzione fa crescere la coda. Dimensiona lo spazio libero del Gateway per l'interruzione più lunga prevista.
In Edge, ogni lettura porta un ID del sensore, un ID di esportazione composto dal numero di serie del dispositivo e dall'ID del sensore, una marca temporale e un valore. Unità, scalatura e qualità provengono dalla configurazione del dispositivo. Concorda nell'elenco dei punti come la piattaforma ricevente li ottenga. Concorda anche quale livello applica la scalatura, come la qualità di Edge corrisponde al modello della piattaforma e cosa fanno allarmi e controllo quando un ingresso diventa obsoleto.
Una volta definito l'elenco dei punti, passa all'architettura di memorizzazione dei dati IoT per scegliere dove collocare ogni archivio.
Domande frequenti
Quali dati deve contenere un record di un sensore IoT?
Identità di sito, risorsa e punto, grandezza osservata, valore e unità, ora a cui si applica la misura, ora di ricezione e stato di qualità. Fatturazione, ripartizione dei consumi e liquidazione dei servizi di demand response richiedono anche scala, taratura e revisione del calcolo che hanno prodotto il valore.
Qual è la differenza fra marca temporale della sorgente e di acquisizione?
La marca della sorgente indica quando valeva la condizione misurata; quella di acquisizione quando un altro sistema ha ricevuto o memorizzato il record. Differiscono per accumulo, nuovi tentativi ed errori dell’orologio. Sostituire la prima con la seconda fa apparire attuali dati vecchi.
Il livello di servizio MQTT garantisce dati dei sensori completi?
No. Il livello di servizio MQTT riguarda la consegna fra un mittente e un destinatario. Non dimostra che il sensore abbia misurato correttamente o che ogni campione sia diventato un messaggio, né che l’applicazione successiva l’abbia memorizzato una volta sola o che payload, unità e ora siano corretti.
Come si sceglie l’intervallo di invio dei dati IoT?
Parti dalla variazione più rapida che l’applicazione deve rilevare e dal periodo di regolazione o calcolo. Verifica poi ritardo di rilevamento consentito, capacità di dispositivo e rete e spazio di memorizzazione. Campionamento, calcolo, pubblicazione e aggiornamento del dashboard hanno frequenze separate: scegli ciascuna deliberatamente.
Il valore zero è uguale a un dato mancante o obsoleto?
No. Zero può essere una misura valida. Mancante significa che non è arrivato alcun valore nell’intervallo atteso. Obsoleto significa che l’ultimo valore supera il limite di attualità per l’uso previsto. Conserva e mostra separatamente i tre stati.