Indice dei contenuti

API di Climkit

Nicolas Vodoz Aggiornato da Nicolas Vodoz

L'API per sviluppatori di Climkit consente agli sviluppatori registrati e autorizzati di ottenere dati di contabilizzazione e di energia dai siti Climkit autorizzati.

Per registrarsi, gli sviluppatori devono ottenere i diritti di accesso ai dati dal proprietario dell'impianto e da Climkit SA.

Le richieste di accesso all'API devono essere inviate a service@climkit.io.

Le informazioni di accesso all'API sono diverse dalle informazioni di accesso al conto personale del portale Climkit.

Le informazioni di accesso possono essere utilizzate solo dallo sviluppatore registrato. Colleghi e collaboratori devono presentare una richiesta individuale per ottenere i propri diritti di accesso.

Endpoint API: https://api.climkit.io/api/v1

1. Autenticazione

L'API di Climkit utilizza JSON Web Tokens (https://jwt.io/introduction/) per proteggere il transito delle informazioni.

Una volta effettuato l'accesso con le proprie credenziali (nome utente e password), l'utente riceve un token valido per 15 minuti che gli consente di accedere alle risorse autorizzate.

URL: /auth

Metodo: POST

Auth richiesta: NO

Autenticazione tramite nome utente-password per ottenere un token di accesso

Parametri (POST)
----------
username: str
Il nome utente API
password: str
La password API

Risultati
-------
{
'access_token': <str: your-access-token>,
'valid_until': {'$date': <int: epoch-time-in-milliseconds>},
}

2. Siti

Tutti i siti

Elenco di tutti i siti.

URL: /all_installations

Metodo: GET

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
Nessun parametro

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
L'elenco di tutti i siti, presentati come un elenco di oggetti.

Informazioni su un sito

I parametri di un sito specifico.

URL: /installation_infos/<site_id>

Metodo: GET

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID oggetto del sito di installazione

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
I parametri del sito:

{
'site_ref': <str>,
'name': <str>,
'address': {
'street_name': <str>,
'street_number': <str>,
'city': <str>,
'postal_code': <int>
},
'creation_date': <datetime isoformat str>,
'latitude': <float>,
'longitude': <float>,
'timezone': <str>,
}

3. Contatori

Tutti i contatori di un sito

Elenco di tutti i contatori di un sito.

URL: /meter_info/<site_id>

Metodo: GET

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID oggetto del sito

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
----------
L'elenco dei contatori presentati come un elenco di oggetti:

[
{
'id': <str che rappresenta l'id del contatore>
'type': {'electricity', 'heating', 'cold_water', 'hot_water'},
'name': <str>,
'mode': {'consumption', 'production', 'introduction', 'battery'},
'prim_ad': <int>,
'is_rule_meter': <boolean>
},
...
]

Dati convalidati del sito per un tipo di contabilizzazione

I dati convalidati in serie temporale del sito per un tipo di contabilizzazione specifico, ad esempio il consumo elettrico totale o la produzione fotovoltaica del sito.

URL: /site_data/<site_id>/<meter_type>

Metodo: POST

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID oggetto del sito
meter_type: str
Il tipo di dati del contatore:
'electricity', 'heating', 'cooling', 'cold_water', 'hot_water' o 'charge_point'

Parametri (POST)
----------
t_s: str, optional
La data e ora in formato iso, che rappresenta l'istante di inizio della serie temporale, senza fuso orario (tz-naive) in UTC
t_e: str, optional
La data e ora in formato iso, che rappresenta l'istante di fine della serie temporale, senza fuso orario (tz-naive) in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco dei dati restituiti

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
I dati in serie temporale convalidati dal sito per uno specifico tipo di contabilizzazione, presentati come un elenco di oggetti:

[
{
'conso_total': <consumo totale del sito>,
'prod_total': <produzione elettrica totale del sito (fotovoltaico) se il tipo è elettricità>,
'from_ext': <consumo totale del sito dalla rete se il tipo è elettricità>,
'self': <consumo totale del sito da fotovoltaico se il tipo è elettricità>,
'to_ext': <elettricità totale del sito esportata nella rete se il tipo è elettricità>,
'timestamp': <timestamp alla fine del periodo misurato se sampling_frequency è 15T, altrimenti inizio del periodo>
},
...
]

Dati convalidati di un contatore specifico

I dati convalidati in serie temporale di un contatore per il periodo selezionato.

URL: /meter_data/<site_id>/<meter_id>

Metodo: POST

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID del sito
meter_id: str
L'ID del contatore

Parametri (POST)
----------
t_s: str, optional
La data e ora in formato iso, che rappresenta l'istante di inizio della serie temporale, senza fuso orario (tz-naive) in UTC
t_e: str, optional
La data e ora in formato iso, che rappresenta l'istante di fine della serie temporale, senza fuso orario (tz-naive) in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco dei dati restituiti

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
I dati di misurazione del contatore convalidati in serie temporale per il periodo selezionato, presentati come un elenco di oggetti:

[
{
'total': <consumo totale. Se il tipo è elettricità, total = self + ext>,
'self': <consumo totale da fotovoltaico se il tipo è elettricità>,
'ext': <consumo totale dalla rete se il tipo è elettricità>,
'timestamp': <timestamp alla fine del periodo misurato se sampling_frequency è 15T, altrimenti inizio del periodo>
},
...
]

Dati grezzi di un contatore specifico

I dati grezzi, incrementali (indice del contatore) o differenziali (intervallo di una curva di carico), in serie temporale di un contatore per il periodo selezionato, direttamente dal contatore senza convalida. Disponibili solo per contatori fisici e non per contatori virtuali.

URL: /meter_data_raw/<site_id>/<meter_id>

Metodo: POST

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID del sito
meter_id: str
L'ID del contatore

Parametri (POST)
----------
t_s: str, optional
La data e ora in formato iso, che rappresenta l'istante di inizio della serie temporale, senza fuso orario (tz-naive) in UTC
t_e: str, optional
La data e ora in formato iso, che rappresenta l'istante di fine della serie temporale, senza fuso orario (tz-naive) in UTC

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
I dati grezzi del contatore in serie temporale per il periodo selezionato, presentati come un elenco di oggetti:

[
{
'en_im': <indice del contatore di importazione di elettricità se il tipo è elettricità>,
'en_ex': <indice del contatore di esportazione di elettricità se il tipo è elettricità>,
'heat_energy_kwh': <indice dell'energia termica se il tipo è riscaldamento o raffreddamento>,
'vol_m3': <indice del volume d'acqua se il tipo è acqua fredda o acqua calda>,
'timestamp': <timestamp alla fine del periodo misurato>
},
...
]

4. Sensori

Ottieni tutti i sensori di un sito

URL: /<site_id>/sensors_list

Metodo: GET

Auth richiesta: S&I con un Token valido

Parametri (URL)
----------
site_id: str
L'ID del sito di installazione

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
array_like

L'elenco delle informazioni sui sensori formattato come segue:

[
{
'id': <str che rappresenta un ObjectID>
'name': <str>,
'type': <str che descrive il tipo di grandezza misurata>,
'unit': <str che descrive l'unità della grandezza misurata>,
'model': <str che descrive il modello del sensore>
},
...
]

Ottieni dati in serie temporale per un sensore specifico

Recupera le serie temporali di un sensore, per un dato periodo. Se non viene fornito alcun periodo, vengono restituiti gli ultimi dati. t_s è limitato in base all'utente/sito.

URL: /<site_id>/sensor_data/<sensor_id>

Metodo: GET

Auth richiesta: S&I con un Token valido

Limite richieste: 1/secondo

Parametri (URL)
----------
site_id: str
L'ID del sito di installazione
sensor_id: str
L'ID dell'oggetto sensore

Parametri (GET)
----------
t_s: str, optional
La data e ora in formato iso, che rappresenta l'istante di inizio della serie temporale richiesta, senza fuso orario (tz-naive) in UTC
t_e: str, optional
La data e ora in formato iso, che rappresenta l'istante di fine della serie temporale richiesta, senza fuso orario (tz-naive) in UTC

Intestazioni
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'

Risultati
-------
array_like

I dati del sensore in serie temporale del periodo selezionato come elenco di oggetti:

[
{
'timestamp': <int timestamp>,
'value': <float, int>
},
...
]

How did we do?

API locale del Gateway

Contatto