En aquest article parlarem de com s’expressa el temps quan s’insereixen lectures a la plataforma a través de l'API. Parlarem dels següents temes:
Introducció
Quan s’insereixen dades a la Plataforma de Gestió Energètica, és important entendre la relació entre el temps de lectura i el temps d’inserció, així com les diferents maneres d’expressar el temps en què això passa. Una configuració incorrecta pot provocar desalineacions de lectura o buits de dades.
Nomenclatura
Primer definim alguns conceptes relacionats amb aquest tema:
- Marca de temps (timestamp): registre del moment exacte en una zona horària i format específic.
- Zona horària (time zone): hora local de la font de dades.
- Temps d’inserció (insertion time): moment en què la lectura és rebuda a la plataforma.
- Temps de lectura (reading time): moment en què s’ha fet la lectura.
-
Lectura històrica (historical reading): valor llegit abans de l’últim valor inserit. El seu temps d’inserció és posterior al temps de lectura.
-
Lectura futura (future reading): valor inserit abans del seu temps de lectura. Aquesta dada s'entén com a predicció.
Com funcionen les marques de temps?
Hi ha diferents maneres d’expressar l’hora local d’un lloc concret. És important saber que l’hora local pot veure’s afectada per la zona horària del territori i per l’horari d’estiu (DST).
L’hora Zulu o UTC (Temps Universal Coordinat) és la referència mundial estàndard. S’utilitza per sincronitzar rellotges arreu del món i és constant durant tot l’any (no es veu afectada pel DST), de manera que és una referència neutra per a totes les hores locals.
Per expressar el temps en aquest format, podem utilitzar el sufix Z, o afegir +00:00 (indica que no hi ha diferència respecte la referència UTC) al final de la marca de temps. Les expressions genèriques serien:
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss+00:00
YYYY-MM-DDThh:mm:ss+0000
L’hora local d’un lloc està afectada pel DST i pel desfasament respecte l’UTC. Per exemple, a Espanya, durant l’horari d’estiu el desfasament és UTC+02:00, mentre que a l’hivern és UTC+01:00.
Com es poden inserir les lectures?
Com hem comentat abans, les lectures poden inserir-se com a lectures futures, lectures històriques o lectures instantànies (les més habituals), que són aquelles que s’insereixen a la plataforma just després de la mesura.
És important utilitzar correctament les marques de temps. Si no es fan servir de manera adequada, el temps de lectura entès per la plataforma podria generar una lectura futura i activar una alerta de sense dades.
Els formats correctes de marques de temps que la plataforma pot entendre són:
YYYY-MM-DDThh:mm:ssZ: quan s’utilitza hora Zulu; si hi ha una correcció per DST, cal ajustar el segell de temps.
YYYY-MM-DDThh:mm:ss+00:00: quan s’utilitza el format UTC; en cas de correcció per DST, també s’ha d’ajustar. La plataforma entén també el format YYYY-MM-DDThh:mm:ss+0000.
YYYY-MM-DDThh:mm:ss: quan s’utilitza aquest format, la plataforma insereix la lectura tenint en compte la zona horària configurada a la font de dades i aplica automàticament la correcció per DST.
Exemple: hora d’estiu a Londres
Imaginem que volem inserir una lectura en una font de dades de Londres el 23 de setembre de 2025 a les 12:00. Analitzem l’hora UTC i l’hora local amb la correcció per hora d’estiu:
Com que la data d’inserció correspon a període amb hora d’estiu, hem d’utilitzar UTC+01:00. Considerant que la font de dades està configurada amb la zona horària de Londres, els segells de temps correctes serien:
2025-09-23T12:00
2025-09-23T11:00Z
2025-09-23T11:00+01:00
2025-09-23T11:00+0100
Si, en canvi, la lectura s’inserís l'11 de desembre, s’utilitzaria UTC+00:00, i els segells de temps correctes serien:
2025-12-11T12:00
2025-12-11T12:00Z
2025-12-11T12:00+00:00
2025-12-11T12:00+0000
Si s’utilitzés el format Zulu sense tenir en compte la correcció per DST, el resultat seria una lectura al futur.