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 misurazione e di energia dai siti Climkit autorizzati.

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

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

Le credenziali di accesso all'API sono diverse dalle credenziali di accesso all'account personale del portale Climkit.

Le credenziali 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 i JSON Web Tokens (https://jwt.io/introduction/) per proteggere il transito delle informazioni.

Una volta che l'utente si è connesso con le proprie credenziali (nome utente e password), 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: il-tuo-token-di-accesso>,
'valid_until': {'$date': <int: tempo-epoca-in-millisecondi>},
}

2. Siti

Tutti i siti

L'elenco di tutti i siti.

URL: /all_installations

Metodo: GET

Auth richiesta: SÌ con un Token valido

Limite richieste: 1/secondo

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

Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {il-tuo-token-di-accesso}'

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Ì con un Token valido

Limite richieste: 1/secondo

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

Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {il-tuo-token-di-accesso}'

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 str in formato iso>,
'latitude': <float>,
'longitude': <float>,
'timezone': <str>,
}

3. Contatori

Tutti i contatori di un sito

L'elenco di tutti i contatori di un sito.

URL: /meter_info/<site_id>

Metodo: GET

Auth richiesta: SÌ con un Token valido

Limite richieste: 1/secondo

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

Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {il-tuo-token-di-accesso}'

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 misurazione

I dati serie temporali convalidati del sito per un tipo di misurazione 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Ì 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 iniziale della serie temporale, senza fuso orario in UTC
t_e: str, optional
La data e ora in formato ISO, che rappresenta l'istante finale della serie temporale, senza fuso orario in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco dati restituito

Headers
----------
Content-Type: 'application/json'<;
Authorization: 'Bearer {il-tuo-token-di-accesso}'<;

Risultati
-------
I dati serie temporali convalidati del sito per un tipo di misurazione specifico, presentati come un elenco di oggetti:<:

[
{
'conso_total': <Consumo totale del sito>,<,
'prod_total': <Produzione elettrica totale del sito (FV) 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': <Energia totale esportata dal sito verso la rete se il tipo è elettricità>,<,
'timestamp': <Timestamp alla fine del periodo misurato se la frequenza di campionamento è 15T, altrimenti inizio del periodo><;
},
...
]
<>

Dati convalidati di un contatore specifico

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

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

Metodo: POST

Auth richiesta: SÌ 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 iniziale della serie temporale, senza fuso orario in UTC
t_e: str, optional
La data e ora in formato ISO, che rappresenta l'istante finale della serie temporale, senza fuso orario in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco dati restituito

Headers
----------
Content-Type: 'application/json'<;
Authorization: 'Bearer {il-tuo-token-di-accesso}'<;

Risultati
-------
I dati di misurazione serie temporali convalidati per il periodo selezionato, presentati come un elenco di oggetti:<:

[
{
'total': <Consumo totale. Se il tipo è elettricità, totale = 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 la frequenza di campionamento è 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. Disponibile solo per contatori fisici e non per contatori virtuali.

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

Metodo: POST

Auth richiesta: SÌ 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 iniziale della serie temporale, senza fuso orario in UTC
t_e: str, optional
La data e ora in formato ISO, che rappresenta l'istante finale della serie temporale, senza fuso orario in UTC

Headers
----------
Content-Type: 'application/json'<;
Authorization: 'Bearer {il-tuo-token-di-accesso}'<;

Risultati
-------
I dati di misurazione serie temporali grezzi per il periodo selezionato, presentati come un elenco di oggetti:<:

[
{
'en_im': <Indice del contatore importazione elettricità se il tipo è elettricità>,<,
'en_ex': <Indice del contatore esportazione elettricità se il tipo è elettricità>,<,
'heat_energy_kwh': <Indice energia termica se il tipo è riscaldamento o raffreddamento>,<,
'vol_m3': <Indice volume 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Ì con un Token valido

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

Headers
----------
Content-Type: 'application/json'<;
Authorization: 'Bearer {il-tuo-token-di-accesso}'<;

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 quantità misurata>,<,
'unit': <str che descrive l'unità della quantità misurata>,<,
'model': <str che descrive il modello del sensore><;
},
...
]
<>

Ottieni dati serie temporali per un sensore specifico

Recupera le serie temporali di un sensore, per un periodo specificato. Se non viene fornito alcun periodo, vengono restituiti i dati più recenti. t_s è limitato in funzione dell'utente/sito.

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

Metodo: GET

Auth richiesta: SÌ 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 iniziale della serie temporale richiesta, senza fuso orario in UTC
t_e: str, optional
La data e ora in formato ISO, che rappresenta l'istante finale della serie temporale richiesta, senza fuso orario in UTC

Headers
----------
Content-Type: 'application/json'<;
Authorization: 'Bearer {il-tuo-token-di-accesso}'<;

Risultati
-------
array_like

I dati dei sensori serie temporali per il periodo selezionato come elenco di oggetti:<:

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

<>

<>

How did we do?

API locale del Gateway

Contatto