{"id":6888,"date":"2022-02-21T08:12:59","date_gmt":"2022-02-21T07:12:59","guid":{"rendered":"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/user-guide\/telemetries-data\/"},"modified":"2022-05-29T09:24:24","modified_gmt":"2022-05-29T08:24:24","slug":"telemetries-data","status":"publish","type":"page","link":"http:\/\/documentation-wp.hub.av.priv\/it\/aurora-vision-apis\/user-guide\/telemetries-data\/","title":{"rendered":"Dati di Telemetria"},"content":{"rendered":"\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le suites <code>Telemetry <\/code>e <code>KPIs <\/code>consentono di sfruttare pi\u00f9 chiamate per recuperare i dati di telemetria di interesse, sia a livello di impianto che\/o di singolo dispositivo.<\/p>\n\n\n\n<p>Le APIs all&#8217;interno di queste suite sono suddivise, in base alla modellazione e presentazione dei dati, in due tipi principali:<\/p>\n\n\n\n<ul><li><code>AGGREGATED<\/code>: permette di richiamare il tipo di dati desiderato (<code>dataType<\/code>) con un criterio di aggregazione (<code>valueType<\/code>) all&#8217;interno di una finestra temporale (<code>startDate <\/code>&amp; <code>endDate<\/code>). Chiamate di questo tipo restituiscono sempre un unico valore, aggregato secondo i <code>queryParameters<\/code> definiti;<br><\/li><li><code>TIMESERIES<\/code>: permette di richiamare il tipo di dati desiderato (<code>dataType<\/code>) con un criterio di aggregazione (<code>valueType<\/code>) within a all&#8217;interno di una finestra temporale (<code>startDate<\/code> &amp; <code>endDate<\/code>) e secondo una frequenza di campionamento definita (<code>sampleTime<\/code>). chiamate di questo tipo restituiscono sempre un array di valori, la cui lunghezza varia in base ai <code>queryParameters<\/code> definiti.<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Per lo sviluppo di una business logic di terze parti trasparente e completamente integrata, \u00e8 importante tenere conto di alcuni principi chiave sulla manipolazione e presentazione dei dati di Aurora Vision:<\/p>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" width=\"276\" height=\"277\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/02\/puzzle_missing.png\" alt=\"\" class=\"wp-image-1132 size-full\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/02\/puzzle_missing.png 276w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/02\/puzzle_missing-150x150.png 150w\" sizes=\"(max-width: 276px) 100vw, 276px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<h2 class=\"has-medium-font-size\">Sampling<br>Time<\/h2>\n<\/div><\/div>\n\n\n\n<p>Aurora Vision esegue un <strong>salvataggio dei dati inviati al minimo ogni 5 minuti<\/strong><em>,<\/em> non \u00e8 quindi possibile richiedere dati al di sotto di una frequenza di campionamento di 5 minuti.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" width=\"217\" height=\"217\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export.png\" alt=\"\" class=\"wp-image-5885 size-full\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export.png 217w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export-150x150.png 150w\" sizes=\"(max-width: 217px) 100vw, 217px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<h2 class=\"has-medium-font-size\">Power<br>Data<\/h2>\n<\/div><\/div>\n\n\n\n<p>Tutte le <strong>telemetrie di potenza <\/strong>(<em>per qualsiasi dispositivo compatibile<\/em>) sono <strong>fornite come valore on-time<\/strong>, che cambia da un istante di campionamento ad un altro.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\" style=\"grid-template-columns:38% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" width=\"312\" height=\"245\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export-Copy.png\" alt=\"\" class=\"wp-image-5896 size-full\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export-Copy.png 312w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/export-Copy-300x236.png 300w\" sizes=\"(max-width: 312px) 100vw, 312px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<h2 class=\"has-medium-font-size\">Energy<br>Data<\/h2>\n<\/div><\/div>\n\n\n\n<p>Tutte le <strong>telemetrie di energia <\/strong>(<em><em>per qualsiasi dispositivo compatibile<\/em><\/em>) sono <strong>fornite come cumulative nel tempo<\/strong>, dal primo momento in cui il dispositivo compatibile ha iniziato effettivamente a funzionare.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Con questi concetti in mente, \u00e8 possibile analizzare in dettaglio le due principali tipologie di chiamate di telemetria:<\/p>\n\n\n\n<ul><li>A <strong>Pagina 2<\/strong> si pu\u00f2 trovare un&#8217;analisi dettagliata delle <code>Aggregated<\/code> APIs;<\/li><li>A <strong>Pagina 3<\/strong> si pu\u00f2 trovare un&#8217;analisi dettagliata delle <code>Timeseries<\/code> APIs.<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Considerando che le suites <code>Telemetry <\/code>ed <code>KPIs <\/code>forniscono molti <code>dataTypes <\/code>da poter chiamare, una tabella completa con la descrizione di ciascuno di essi \u00e8 disponibile a <strong>Pagina 4<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Aggregated APIs<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Aggregated APIs vengono utilizzate principalmente quando si desidera ottenere, per un determinato tipo di dati, un unico valore in risposta, che consenta di sintetizzare un determinato trend e\/o risultato, per una finestra temporale personalizzata.<\/p>\n\n\n\n<p>Questa tipologia di APIs \u00e8 sempre strutturata come segue:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"62\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-1024x62.png\" alt=\"\" class=\"wp-image-6345\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-1024x62.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-300x18.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-768x47.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-1536x93.png 1536w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/agregated_api_block-2048x124.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Il <code>path<\/code>, che permette di puntare alle risorse desiderate, richiede sempre i seguenti parametri:<\/p>\n\n\n\n<ul><li><code>{power,frequency,wind,temperature,voltage,current,energy,kpis}<\/code>: il tipo di risorsa a cui puntare. Questo parametro non specifica i dati effettivi che si vuole ottenere, ma la categoria generale a cui appartengono i dati desiderati (<em>per favore si noti che una chiamata API accetta solo una categoria alla volta, al momento non \u00e8 possibile effettuare chiamate BULK<\/em>);<\/li><li><code>{entityID}<\/code>: pu\u00f2 essere un EID di impianto o dispositivo. Nel primo caso, il valore ottenuto tiene conto dell&#8217;aggregazione di tutti i dispositivi, per i quali tale valore esiste, a livello di impianto; nel secondo caso, il valore ottenuto riferito al singolo dispositivo di interesse;<\/li><li><code>{dataType}<\/code>: rappresenta i dati effettivi da ottenere. I <code>dataTypes <\/code>disponibili variano in base alle risorse indicate, una descrizione dettagliata \u00e8 disponibile direttamente su <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/a>;<\/li><li><code>{valuetype}<\/code>: rappresenta il tipo di criterio di aggregazione con cui vengono richiesti i dati da ottenere.<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le queries, che consentono di filtrare i dati di interesse, richiedono sempre i seguenti parametri:<\/p>\n\n\n\n<ul><li><code>{startDate}<\/code>: il limite inferiore che permette di definire l&#8217;inizio della finestra temporale di interesse. Il suo formato \u00e8 sempre  <code>YYYYMMGG <\/code>(<em>eg: 20220321<\/em>);<\/li><li><code>{endDate}<\/code>: il limite superiore che permette di definire l&#8217;inizio della finestra temporale di interesse. Il suo formato \u00e8 sempre <code>YYYYMMGG <\/code>(<em>eg: 20220322<\/em>) e deve essere temporalmente successivo alla <code>{startDate}<\/code>;<\/li><li><code>{timezone}<\/code>: permette di guidare la chiamata API ad un corretto recupero dei dati in base al fuso orario richiesto.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Una chiamata aggregata fornisce sempre un unico valore come risposta, che viene manipolato in base alla finestra temporale ed al fuso orario indicati. In questo contesto il parametro <code>{valuetype}<\/code> \u00e8 di grande importanza perch\u00e9 varia a seconda della categoria di risorse, quindi di <code>{dataType}<\/code>, che si vuole ottenere.<\/p>\n\n\n\n<p>Per un <code>{dataType}<\/code> appartenente alla categoria <code>{power,frequency,wind,temperature,voltage,current,kpis}<\/code>, il <code>{valueType}<\/code> pu\u00f2 assumere 3 differenti valori:<\/p>\n\n\n\n<ul><li><code>Maximum<\/code>: restituisce il valore massimo trovato tra tutti i campioni presenti nella finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Minimum<\/code>: restituisce il valore minimo trovato tra tutti i campioni presenti nella finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Average<\/code>: restituisce il valore medio di tutti i campioni presenti nella finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>NOTA:<\/strong>\u00a0<em>per la categoria<\/em><code> kpis<\/code><em> , le considerazioni di cui sopra sono valide solo se vengono chiamati <strong>Power-Based KPIs<\/strong>. Per maggiori informazioni, fare riferimento ad<\/em> <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/em><\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p>Diamo uno sguardo ad alcuni casi d&#8217;uso, in cui consideriamo un impianto ( <code>entityID<\/code>: <em>12345678 <\/em>) con un unico dispositivo inverter registrato ( <code>entityID<\/code> : <em>87654321 <\/em>):<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-1 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 1<\/h2>\n\n\n\n<p>Voglio ottenere il valore massimo, riscontrato nel giorno dell&#8217;equinozio di primavera, della potenza generata dall&#8217;impianto.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>Analisi del Problema<\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio la potenza prodotta, quindi punter\u00f2 le risorse della categoria <code>power <\/code>e richieder\u00f2 <code>GenerationPower<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/power\/aggregated\/12345678\/GenerationPower\/maximum?startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"164\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase1-1024x164.png\" alt=\"\" class=\"wp-image-6364\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase1-1024x164.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase1-300x48.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase1-768x123.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase1.png 1147w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-elements-2 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 2<\/h2>\n\n\n\n<p>Voglio ottenere il valore medio, nel giorno dell&#8217;equinozio di primavera, di tutta la tensione misurata dall&#8217;inverter.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>Analisi del Problema<\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio la tensione, quindi punter\u00f2 le risorse della categoria  <code>voltage <\/code>e richieder\u00f2 <code>Voltage<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/voltage\/aggregated\/87654321\/Voltage\/average?startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"160\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase2-1024x160.png\" alt=\"\" class=\"wp-image-6372\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase2-1024x160.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase2-300x47.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase2-768x120.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase2.png 1150w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:21px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Per un <code>{dataType}<\/code> appartenente alla categorie <code>{energy,kpis}<\/code>, il <code>{valueType}<\/code> pu\u00f2 assumere due differenti valori:<\/p>\n\n\n\n<ul><li><code>Cumulative<\/code>: restituisce l&#8217;ultimo valore cumulativo disponibile nella finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Delta<\/code>: restituisce la differenza tra l&#8217;ultimo e il primo valore cumulativo disponibile nella finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>NOTA:<\/strong>\u00a0<em>per la categoria<\/em><code> kpis<\/code><em> , le considerazioni di cui sopra sono valide solo se vengono chiamati <strong>Energy-Based KPIs<\/strong>. Per maggiori informazioni, fare riferimento ad<\/em> <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/em><\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p>Diamo uno sguardo ad alcuni casi d&#8217;uso, in cui consideriamo un impianto ( <code>entityID<\/code>: <em>12345678 <\/em>) con un unico dispositivo inverter registrato ( <code>entityID<\/code> : <em>87654321 <\/em>):<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-3 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 1<\/h2>\n\n\n\n<p>Voglio ottenere l&#8217;energia generata dall&#8217;impianto da quando ha iniziato a produrre fino al giorno dell&#8217;equinozio di primavera.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong><strong>Analisi del Problema<\/strong><\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio l&#8217;energia prodotta finora dall&#8217;impianto, quindi punter\u00f2 le risorse della categoria <code>energy <\/code>e richieder\u00f2 il <code>cumulative <\/code>di <code>GenerationEnergy<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/energy\/aggregated\/12345678\/GenerationEnergy\/cumulative?startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"161\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase3-1024x161.png\" alt=\"\" class=\"wp-image-6381\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase3-1024x161.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase3-300x47.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase3-768x121.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase3.png 1146w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-elements-4 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 2<\/h2>\n\n\n\n<p>Voglio ottenere l&#8217;energia generata il giorno dell&#8217;equinozio di primavera dall&#8217;inverter.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong><strong>Analisi del Problema<\/strong><\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio l&#8217;energia generata solo nel giorno dell&#8217;equinozio di primavera, quindi punter\u00f2 le risorse della categoria <code>energy <\/code>e richieder\u00f2 il <code>delta <\/code>di <code>GenerationEnergy<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/energy\/aggregated\/87654321\/GenerationEnergy\/delta?startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"156\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase4-1024x156.png\" alt=\"\" class=\"wp-image-6389\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase4-1024x156.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase4-300x46.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase4-768x117.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/aggregated_usecase4.png 1150w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<h2>Timeseries APIs<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Timeseries APIs vengono utilizzate principalmente quando si desidera ottenere, per un determinato tipo di dati, un andamento dettagliato, che consenta di eseguire analisi e rappresentazioni in tempo reale, per una finestra temporale personalizzata.<\/p>\n\n\n\n<p>Questa tipologia di APIs \u00e8 sempre strutturata come segue:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"61\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-1024x61.png\" alt=\"\" class=\"wp-image-6353\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-1024x61.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-300x18.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-768x46.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-1536x92.png 1536w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/timeseries_api_block-2048x123.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Il <code>path<\/code>, che permette di puntare alle risorse desiderate, richiede sempre i seguenti parametri:<\/p>\n\n\n\n<ul><li><code>{power,frequency,wind,temperature,voltage,current,energy,kpis}<\/code>: <code>}<\/code>: il tipo di risorsa a cui puntare. Questo parametro non specifica i dati effettivi che si vuole ottenere, ma la categoria generale a cui appartengono i dati desiderati (<em>per favore si noti che una chiamata API accetta solo una categoria alla volta, al momento non \u00e8 possibile effettuare chiamate BULK<\/em>);<\/li><li><code>{entityID}<\/code>: pu\u00f2 essere un EID di impianto o dispositivo. Nel primo caso, il valore ottenuto tiene conto dell&#8217;aggregazione di tutti i dispositivi, per i quali tale valore esiste, a livello di impianto; nel secondo caso, il valore ottenuto riferito al singolo dispositivo di interesse;<\/li><li><code>{dataType}<\/code>: rappresenta i dati effettivi da ottenere. I <code>dataTypes <\/code>disponibili variano in base alle risorse indicate, una descrizione dettagliata \u00e8 disponibile direttamente su <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/a>;<\/li><li><code>{valuetype}<\/code>: rappresenta il tipo di criterio di aggregazione con cui vengono richiesti i dati da ottenere.<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le queries, che consentono di filtrare i dati di interesse, richiedono sempre i seguenti parametri:<\/p>\n\n\n\n<ul><li><code>{sampleSize}<\/code>: definisce la frequenza di campionamento con cui ottenere i dati. Pi\u00f9 lunga \u00e8 la frequenza di campionamento, minore \u00e8 la lunghezza dell&#8217;array di dati ottenuto in risposta (<em>un <\/em><code> sampleTime<\/code><em> uguale a<\/em><code> Min5<\/code><em> avr\u00e0 pi\u00f9 campioni nell&#8217;array di risposta rispetto ad un<\/em><code>  sampleTime<\/code> <em>uguale a<\/em><code> Min15<\/code>);<\/li><li><code>{startDate}<\/code>: il limite inferiore che permette di definire l&#8217;inizio della finestra temporale di interesse. Il suo formato \u00e8 sempre  <code>YYYYMMGG <\/code>(<em>eg: 20220321<\/em>);<\/li><li><code>{endDate}<\/code>: il limite superiore che permette di definire l&#8217;inizio della finestra temporale di interesse. Il suo formato \u00e8 sempre <code>YYYYMMGG <\/code>(<em>eg: 20220322<\/em>) e deve essere temporalmente successivo alla <code>{startDate}<\/code>;<\/li><li><code>{timezone}<\/code>: permette di guidare la chiamata API ad un corretto recupero dei dati in base al fuso orario richiesto. Le scelta del fuso orario ha effetto sugli epochs forniti nell&#8217;array di risposta.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Una chiamata a serie temporali di solito fornisce un array di valori come risposta.<br>La lunghezza dell&#8217;array dipende direttamente dal valore di <code>{sampleSize}<\/code> e dalla finestra temporale definita dai parametri <code>{startDate}<\/code> ed <code>{endDate}<\/code>. Una volta definita una finestra temporale di riferimento, il valore <code>{sampleSize}<\/code> suddivider\u00e0 quella finestra pi\u00f9 o meno frequentemente modificando di conseguenza la lunghezza dell&#8217;array in risposta: maggiore \u00e8 il valore di <code>{sampleSize}<\/code>, pi\u00f9 la finestra temporale avr\u00e0 minor numero sezioni, risultando quindi in meno elementi nell&#8217;array di risposta.<br>Vale la pena guardare un esempio diretto per spiegare meglio questi concetti.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-5 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 class=\"has-medium-font-size\">Esempio<\/h2>\n\n\n\n<p>Supponiamo di voler rappresentare l&#8217;andamento in tempo reale della potenza prodotta da un inverter, durante la giornata odierna (<em>supponiamo di essere nell&#8217;equinozio di primavera<\/em>). La soluzione migliore \u00e8 utilizzare una Timeseries API, che avr\u00e0 la seguente struttura generale:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/{power,frequency,wind,temperature,voltage,current,energy,kpis}\/timeseries\/12345678\/{dataType}\/{valueType}?{sampleSize}&amp;{startDate}&amp;{endDate}&amp;{timeZone}<\/code><\/p>\n\n\n\n<p>All&#8217;interno della struttura generica sopra, sappiamo che:<\/p>\n\n\n\n<ol><li>La categoria di risorse a cui puntare \u00e8 <code>{power}<\/code> e, all&#8217;interno di questa categoria, il <code>{dataType}<\/code> da chiamare \u00e8 <code>GenerationPower<\/code>;<\/li><li>Il <code><code>{valueType} <\/code><\/code>da chiamare \u00e8 uno tra<code>  Maximum<\/code>, <code>Minimum<\/code> ed <code>Average<\/code> <em>(fare riferimento all&#8217;analisi dettagliata pi\u00f9 in basso<\/em>);<\/li><li>La finestra temporale \u00e8 il giorno dell&#8217;equinozio di primavera, quindi la <code>{startDate}<\/code> sar\u00e0 20220321 e la <code>{endDate}<\/code> sar\u00e0 20220322;<\/li><\/ol>\n\n\n\n<p>Questo porta la nostra chiamata ad assumere la seguente forma:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/power\/timeseries\/12345678\/GenerationPower\/average?{sampleSize}&amp;startDate=20220321&amp;endDate=20220322&amp;{timeZone}<\/code><\/p>\n\n\n\n<p>Il parametro <code>{sampleSize}<\/code> pu\u00f2 assumere i seguenti valori:<\/p>\n\n\n\n<ul><li><code>Min5<\/code>: la finestra temporale viene affettata ogni 5 minuti, prelevando ogni singolo campione salvato su Aurora Vision (<em>vedi Pagina 1<\/em>);<\/li><li><code>Min15<\/code>: la finestra temporale viene affettata ogni 15 minuti, includendo 3 campioni Aurora Vision per ogni fetta;<\/li><li><code>Min30<\/code>: la finestra temporale viene affettata ogni 30 minuti, includendo 6 campioni Aurora Vision per ogni fetta;<\/li><li><code>Hour<\/code>: la finestra temporale viene affettata ogni 60 minuti, includendo 12 campioni Aurora Vision per ogni fetta;<\/li><li><code>Day<\/code>: la finestra temporale viene affettata giornalmente, includendo 288 campioni Aurora Vision per ogni fetta;<\/li><li><code>Month<\/code>: la finestra temporale viene affettata mensilmente;<\/li><li><code>Year<\/code>: la finestra temporale viene affettata annualmente.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/sampling_chart-1-1024x576.jpg\" alt=\"\" class=\"wp-image-6465\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/sampling_chart-1-1024x576.jpg 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/sampling_chart-1-300x169.jpg 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/sampling_chart-1-768x432.jpg 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/sampling_chart-1.jpg 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dato che siamo interessati a rappresentare l&#8217;andamento della potenza in tempo reale, il pi\u00f9 frequentemente possibile, scegliamo di impostare il <code>{sampleSize}<\/code> a <code>Min5<\/code> (<em>non avrebbe senso inserire un valore maggiore di quello della finestra temporale scelta<\/em>) ed impostare il parametro <code>{timeZone}<\/code> ad <code>Europe\/Rome<\/code>:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/<code>power<\/code>\/timeseries\/12345678\/GenerationPower\/average?<code>sampleSize=Min5<\/code>&amp;startDate=20220321&amp;<code>endDate=20220322<\/code>&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<p>La risposta sar\u00e0 un array di una certa lunghezza in cui ogni elemento sar\u00e0 sempre composto dalla seguente struttura:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"93\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element-1024x93.png\" alt=\"\" class=\"wp-image-6288\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element-1024x93.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element-300x27.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element-768x70.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element-1536x140.png 1536w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_element.png 2024w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Come possiamo vedere, la risposta \u00e8 composta da:<\/p>\n\n\n\n<ul><li><code>Start<\/code>: rappresenta l&#8217;epoch, che \u00e8 il valore del tempo in UTC; cambia in base alla <code>timeZone <\/code>(<em>fusi orari diversi avranno epochs diversi per lo stesso valore di potenza<\/em>) e segue le fette temporali definite da <code>sampleSize<\/code>;<\/li><li><code>Units<\/code>: rappresenta l&#8217;unit\u00e0 di misura;<\/li><li><code>Value<\/code>: rappresenta il valore.<\/li><\/ul>\n\n\n\n<p>Estrapoliamo un estratto pi\u00f9 ampio dalla risposta:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"218\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-1024x218.png\" alt=\"\" class=\"wp-image-6303\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-1024x218.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-300x64.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-768x164.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-1536x328.png 1536w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/array_elements_-2048x437.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Il parametro <code>start <\/code>aumenta di elemento in elemento, passando da un valore di <code>1647875700<\/code> ad un valore di <code>1647876000<\/code>; se facciamo la differenza tra i due epochs, otteniamo esattamente 5 minuti o, in altre parole, il valore che abbiamo impostato per il parametro <code>sampleSize<\/code>.<br>Dall&#8217;epoch <code>1647876000<\/code> i parametri <code>start <\/code>e <code>value <\/code>non esistono pi\u00f9; questo perch\u00e9, supponendo che la chiamata sia stata effettuata prima delle 16:20 (<em>Europe\/Rome<\/em>), il campione a cui si fa riferimento con quell&#8217;epoch \u00e8 futuro e, quindi, non ancora esistente. In quanto tale, Aurora Vision non fornisce il parametro all&#8217;interno dell&#8217;elemento; tuttavia, su una nuova chiamata effettuata dopo le 16:20, lo fornir\u00e0 perch\u00e9 \u00e8 stato popolato.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Il principio sulla presenza\/assenza di determinati campi negli elementi di risposta di una timeseries API (<em>espresso nelle ultime righe dell&#8217;esempio sopra<\/em>) \u00e8 di fondamentale importanza: non si applica solo nel caso di campioni futuri, ma anche e soprattutto nel caso di completa assenza di dati su Aurora Vision. Questo permette di dare coerenza alle risposte ottenute dalle APIs di telemetria, perch\u00e9 quando \u00e8 presente il parametro <code>value<\/code>, significa che quel valore esiste effettivamente su Aurora Vision altrimenti non sarebbe presente.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Come avveniva per le chiamate aggregate, anche per le chiamate timeseries il parametro <code>{valuetype}<\/code> \u00e8 di grande importanza perch\u00e9 varia in base alla categoria di risorse, quindi di <code>{dataType}<\/code>, da ottenere ed \u00e8 anche influenzato dal <code>{sampleSize}<\/code>.<\/p>\n\n\n\n<p>Per un <code>{dataType}<\/code> appartenente alla categoria <code>{power,frequency,wind,temperature,voltage,current,kpis}<\/code>, il <code>{valueType}<\/code> pu\u00f2 assumere 3 differenti valori:<\/p>\n\n\n\n<ul><li><code>Maximum<\/code>: restituisce il valore massimo trovato tra tutti i campioni presenti in ogni intervallo di tempo, determinato dal valore di <code>{sampleSize}<\/code>, per la finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Minimum<\/code>: restituisce il valore minimo trovato tra tutti i campioni presenti in ogni intervallo di tempo, determinato dal valore di <code>{sampleSize}<\/code>, per la finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Average<\/code>: restituisce il valore medio tra tutti i campioni presenti in ogni intervallo di tempo, determinato dal valore di <code>{sampleSize}<\/code>, per la finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>NOTA:<\/strong>\u00a0<em>per la categoria<\/em><code> kpis<\/code><em> , le considerazioni di cui sopra sono valide solo se vengono chiamati <strong>Power-Based KPIs<\/strong>. Per maggiori informazioni, fare riferimento ad<\/em> <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/em><\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p>Diamo uno sguardo ad alcuni casi d&#8217;uso, in cui consideriamo un impianto ( <code>entityID<\/code>: <em>12345678 <\/em>) con un unico dispositivo inverter registrato ( <code>entityID<\/code> : <em>87654321 <\/em>):<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-6 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 1<\/h2>\n\n\n\n<p>Voglio ottenere la potenza generata dall&#8217;inverter in tempo reale, ogni 5 minuti, nel giorno dell&#8217;equinozio di primavera. In questo modo posso tracciare il trend ed eseguire analisi specifiche su di esso.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>Analisi del Problema<\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio la potenza prodotta, quindi punter\u00f2 le risorse della categoria <code>power <\/code>e richieder\u00f2 <code>GenerationPower<\/code>. Il parametro <code>sampleSize <\/code>sar\u00e0 uguale a <code>Min5 <\/code>, perch\u00e9 voglio ottenere ogni singolo campione. Il parametro <code>valueType <\/code>pu\u00f2 essere, solo in questo caso, impostato indifferentemente come <code>Maximum<\/code>, <code>Minimum <\/code>oppure <code>Average <\/code>perch\u00e9 la finestra temporale \u00e8 affettata in modo tale da avere un unico campione per ogni fetta e, quindi, nessuna operazione sar\u00e0 differente se c&#8217;\u00e8 un solo campione come riferimento.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/power\/timeseries\/12345678\/GenerationPower\/average?sampleSize=Min5&amp;startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Charted Response<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase1-1024x576.png\" alt=\"\" class=\"wp-image-6413\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase1-1024x576.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase1-300x169.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase1-768x432.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase1.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-elements-7 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 2<\/h2>\n\n\n\n<p>Voglio ottenere la potenza media generata dall&#8217;inverter ogni 15 minuti, nel giorno dell&#8217;equinozio di primavera. In questo modo posso tracciare il trend ed eseguire analisi specifiche su di esso.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong><strong>Analisi del Problema<\/strong><\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio la potenza prodotta, quindi punter\u00f2 le risorse della categoria <code>power <\/code>e richieder\u00f2 la <code>GenerationPower<\/code>. In questo caso il parametro <code>sampleSize <\/code>sar\u00e0 uguale a <code>Min15<\/code>. Il parametro <code>valueType <\/code>deve essere <code>Average <\/code>perch\u00e9 la finestra temporale \u00e8 affettata in modo tale da avere 3 campioni per ogni fetta e, quindi, la media viene eseguita sui 3 campioni appartenenti a ciascuna fetta.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/power\/timeseries\/12345678\/GenerationPower\/average?sampleSize=Min15&amp;startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Charted Response<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase2-1024x576.png\" alt=\"\" class=\"wp-image-6433\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase2-1024x576.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase2-300x169.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase2-768x432.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/chart_usecase2.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:21px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Per un <code>{dataType}<\/code> appartenente alla categorie <code>{energy,kpis}<\/code>, il <code>{valueType}<\/code> pu\u00f2 assumere due differenti valori:<\/p>\n\n\n\n<ul><li><code>Cumulative<\/code>: restituisce l&#8217;ultimo valore cumulativo disponibile all&#8217;interno di ogni intervallo di tempo, determinato dal valore di <code>{sampleSize}<\/code>, per la finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code> richiesto;<\/li><li><code>Delta<\/code>: restituisce il differenza tra l&#8217;ultimo ed il primo valore cumulativo disponibile all&#8217;interno di ogni intervallo di tempo, determinato dal valore di <code>{sampleSize}<\/code>, per la finestra temporale definita da <code>{startDate} <\/code>ed <code>{endDate}<\/code>, per il <code>{dataType}<\/code>richiesto;<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong>NOTA:<\/strong>\u00a0<em>per la categoria<\/em><code> kpis<\/code><em> , le considerazioni di cui sopra sono valide solo se vengono chiamati <strong>Energy-Based KPIs<\/strong>. Per maggiori informazioni, fare riferimento ad<\/em> <a rel=\"noreferrer noopener\" href=\"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/openapi-preview\/\" data-type=\"page\" data-id=\"74\" target=\"_blank\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OpenAPIs Swagger<\/mark><\/em><\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p>Diamo uno sguardo ad alcuni casi d&#8217;uso, in cui consideriamo un impianto ( <code>entityID<\/code>: <em>12345678 <\/em>) con un unico dispositivo inverter registrato ( <code>entityID<\/code> : <em>87654321 <\/em>):<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-8 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 1<\/h2>\n\n\n\n<p>Voglio ottenere l&#8217;energia generata dall&#8217;inverter in tempo reale, ogni 5 minuti, nel giorno dell&#8217;equinozio di primavera; per tracciare l&#8217;andamento energetico.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong><strong>Analisi del Problema<\/strong><\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio l&#8217;energia prodotta, quindi punter\u00f2 le risorse della categoria <code>energy <\/code>e richieder\u00f2 <code>GenerationEnergy<\/code>. Il parametro <code>sampleSize <\/code>sar\u00e0 uguale a  <code>Min5 <\/code>, perch\u00e9 voglio ottenere ogni singolo campione. Il parametro <code>valueType <\/code>sar\u00e0 uguale a <code>delta<\/code> perch\u00e9 la finestra temporale \u00e8 affettata in modo tale da avere un unico campione per ogni fetta e, quindi, la differenza tra i campioni fornir\u00e0 l&#8217;energia effettivamente prodotta nei 5 minuti.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/energy\/timeseries\/12345678\/GenerationEnergy\/delta?sampleSize=Min5&amp;startDate=20220321&amp;endDate=20220322&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase1-1-1024x576.png\" alt=\"\" class=\"wp-image-6499\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase1-1-1024x576.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase1-1-300x169.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase1-1-768x432.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase1-1.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-elements-9 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 style=\"font-size:40px\">Caso d&#8217;Uso 2<\/h2>\n\n\n\n<p>Voglio ottenere l&#8217;energia generata dall&#8217;inverter per ogni giorno della settimana dell&#8217;equinozio di primavera, in modo da tracciare l&#8217;andamento energetico settimanale.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p><strong><strong>Analisi del Problema<\/strong><\/strong><\/p>\n\n\n\n<p>Considerando che il rapporto tra impianto e dispositivi registrati \u00e8 1:1, posso inserire indifferentemente l&#8217; <code>entityID<\/code> di uno dei due. Voglio l&#8217;energia generata ogni singolo giorno della settimana dell&#8217;equinozio di primavera, quindi punter\u00f2 le risorse della categoria <code>energy <\/code>category e richieder\u00f2 <code>GenerationEnergy<\/code>. Il parametro <code>sampleSize <\/code>sar\u00e0 uguale a <code>Day<\/code>, perch\u00e9 voglio dividere la finestra temporale ogni singolo giorno della settimana. Il parametro <code>valueType <\/code>sar\u00e0 uguale a <code>delta<\/code> perch\u00e9 la finestra temporale \u00e8 suddivisa in modo da avere la differenza tra il primo e l&#8217;ultimo campione di ogni giorno della settimana (<em>finestra temporale<\/em>).<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Request<\/h2>\n\n\n\n<p><code>GET&nbsp;&nbsp;&nbsp;https:\/\/api.auroravision.net\/api\/rest\/v1\/stats\/energy\/timeseries\/87654321\/GenerationEnergy\/delta?sampleSize=Day?startDate=20220321&amp;endDate=20220327&amp;timeZone=Europe\/Rome<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-text-align-center has-medium-font-size\">Response<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase2-1024x576.png\" alt=\"\" class=\"wp-image-6508\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase2-1024x576.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase2-300x169.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase2-768x432.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/03\/energy_usecase2.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Tabella Descrittiva dei Data Types<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Per comprendere meglio il tipo di misura associato al <code>dataType <\/code>messo a disposizione, \u00e8 possibile fare riferimento alla figura (<em>che offre uno schema ad alto livello di un impianto completo<\/em>) e tabella sottostanti (<em>disponibile solo in Inglese<\/em>).<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized is-style-default\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/telemetries_diagram.jpg\" alt=\"\" class=\"wp-image-6796\" width=\"1176\" height=\"632\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/telemetries_diagram.jpg 1176w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/telemetries_diagram-300x161.jpg 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/telemetries_diagram-1024x550.jpg 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/telemetries_diagram-768x413.jpg 768w\" sizes=\"(max-width: 1176px) 100vw, 1176px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>Category<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>dataType Name<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>dataType Description<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Power (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>GenerationPower<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Power generated by the inverter on the AC side. Includes battery discharge power contribution.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Power (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>DCGenerationPower<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Power generated by the inverter on the DC side. Does not include battery discharge power contribution.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>GridPowerExport<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Exported\/Imported power, to\/from the grid, detected by a meter. Negative value for import, positive value for export.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power (W\/m<sup>2<\/sup> )<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>Irradiance<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Irradiance detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>StoredPower<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Discharged\/Charged power detected by a battery. Negative value for charge, positive value for discharge.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Frequency (Hz)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>LineFrequency<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Frequency measured by the inverter on the AC side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Wind (\u00b0N)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>WindDirection<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Wind direction detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Wind (km\/h)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>WindSpeed<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Wind speed detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Temperature (\u00b0C)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>CellTemp<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Cell temperature detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Temperature (\u00b0C)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>AmbientTemp<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Ambient temperature detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Voltage (V)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>Voltage<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Voltage measured by the inverter on the AC side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Voltage (V)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>DCVoltage<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Frequency measured by the inverter on the DC side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Current (A)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>Current<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Current measured by the inverter on the AC side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Current (A)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>DCCurrent<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Current measured by the inverter on the AC side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>GenerationEnergy<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy generated by the inverter on the AC side. Includes battery discharge energy contribution.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>DCGenerationEnergy<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy generated by the inverter on the DC side. Does not include battery discharge energy contribution.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh\/m<sup>2<\/sup>)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>Insolation<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Insolation detected by a sensor, standalone or integrated in a weather station, correctly installed.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>StorageInEnergy<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Charged energy detected by a battery.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>StorageOutEnergy<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Discharged energy detected by a battery.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>GridEnergyExport<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Exported energy, to the grid, detected by a meter.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>GridEnergyImport<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Imported energy, to the grid, detected by a meter.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>SelfConsumedEnergy<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Self-Consumption of home loads, coming from renewable sources only.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power-Based KPI (%)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>StateofCharge<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">State of charge detected for a battery.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power-Based KPI (%)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>StateofHealth<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">State of health detected for a battery.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power-Based KPI (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>LoadsPowerConsumed<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Consumption of home loads, coming from renewable sources and the grid.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy-Based KPI (%)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>SelfConsumption<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Percentage of Self-Comsumption<em> (how much energy<\/em>, co<em>ming only from renewable sources, has been exported to the grid compared to the self-consumed one<\/em>) detected.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy-Based KPI (%)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>SelfSufficiency<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Percentage of Self-Sufficiency <em>(how much energy<\/em> <em>has been imported from the grid compared to the self-consumed one<\/em>) detected.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy-Based KPI (%)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>PerformanceRatio<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Percentage of performance detected based on the algorithm set.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy-Based KPI (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>LoadsEnergyConsumed<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Consumption of home loads, coming from renewable sources and the grid.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power (W)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>ActivePowerEV<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Power generated by the AC wallbox. Different from zero only during a charging session.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>SessionEnergyEV<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Total energy flowed from the AC wallbox during a charging session.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Energy (Wh)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><code>ActiveEnergyEV<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\">Total energy flowed from the AC wallbox over the lifetime.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Le suites Telemetry e KPIs consentono di sfruttare pi\u00f9 chiamate per recuperare i dati di telemetria di interesse, sia a livello di impianto che\/o di singolo dispositivo. Le APIs all&#8217;interno di queste suite sono suddivise, in base alla modellazione e presentazione dei dati, in due tipi principali: AGGREGATED: permette di richiamare il tipo di dati [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":1794,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/pages\/6888"}],"collection":[{"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/comments?post=6888"}],"version-history":[{"count":158,"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/pages\/6888\/revisions"}],"predecessor-version":[{"id":8961,"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/pages\/6888\/revisions\/8961"}],"up":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/pages\/1794"}],"wp:attachment":[{"href":"http:\/\/documentation-wp.hub.av.priv\/it\/wp-json\/wp\/v2\/media?parent=6888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}