Indice dei contenuti
API di Climkit
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 inviate 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 effettuare 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 che l'utente si è autenticato con le sue 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 richiesto: 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
Restituisce
-------
{
'access_token': <str: your-access-token>,
'valid_until': {'$date': <int: epoch-time-in-milliseconds>},
}
2. Siti
Tutti i siti
L'elenco di tutti i siti.
URL: /all_installations
Metodo: GET
Auth richiesto: SÌ con un Token valido
Limite richieste: 1/secondo
Parametri (GET)
----------
Nessun parametro
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
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 richiesto: SÌ con un Token valido
Limite richieste: 1/secondo
Parametri (GET)
----------
site_id: str
L'ID oggetto dell'impianto
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
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
L'elenco di tutti i contatori di un sito.
URL: /meter_info/<site_id>
Metodo: GET
Auth richiesto: 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 {your-access-token}'
Restituisce
----------
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>
},
...
]
I dati convalidati del sito per un tipo di misurazione
I dati convalidati in serie temporale 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 richiesto: 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 datetime in formato iso, che rappresenta l'istante di inizio della serie temporale, naive rispetto al fuso orario in UTC
t_e: str, optional
La datetime in formato iso, che rappresenta l'istante di fine della serie temporale, naive rispetto al fuso orario in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco di dati restituito
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
I dati della serie temporale convalidati dal 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 FV se il tipo è elettricità>,
'to_ext': <elettricità totale esportata dal sito verso la rete se il tipo è elettricità>,
'timestamp': <timestamp alla fine del periodo misurato se sampling_frequency è 15T, altrimenti inizio del periodo>
},
...
]
I 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 richiesto: 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 datetime in formato iso, che rappresenta l'istante di inizio della serie temporale, naive rispetto al fuso orario in UTC
t_e: str, optional
La datetime in formato iso, che rappresenta l'istante di fine della serie temporale, naive rispetto al fuso orario in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
La frequenza di campionamento dell'elenco di dati restituito
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
I dati del contatore convalidati della serie temporale per il periodo selezionato, presentati come un elenco di oggetti:
[
{
'total': <consumo totale. Se il tipo è elettricità, totale = self + ext>,
'self': <consumo totale da FV 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>
},
...
]
I 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, estratti direttamente dal contatore senza convalida. Disponibile solo per i contatori fisici e non per i contatori virtuali.
URL: /meter_data_raw/<site_id>/<meter_id>
Metodo: POST
Auth richiesto: 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 datetime in formato iso, che rappresenta l'istante di inizio della serie temporale, naive rispetto al fuso orario in UTC
t_e: str, optional
La datetime in formato iso, che rappresenta l'istante di fine della serie temporale, naive rispetto al fuso orario in UTC
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
I dati grezzi della serie temporale del contatore per il periodo selezionato, presentati come un elenco di oggetti:
[
{
'en_im': <indice contatore importazione elettricità se il tipo è elettricità>,
'en_ex': <indice 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
Ottenere tutti i sensori di un sito
URL: /<site_id>/sensors_list
Metodo: GET
Auth richiesto: SÌ con un Token valido
Parametri (URL)
----------
site_id: str
L'ID dell'impianto
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
array_like
L'elenco delle informazioni sui sensori formattate 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>
},
...
]
Ottenere dati di serie temporali per un sensore specifico
Recupera le serie temporali di un sensore, per un dato periodo. Se non viene fornito alcun periodo, vengono restituiti i dati più recenti. t_s è limitato in base all'utente/sito.
URL: /<site_id>/sensor_data/<sensor_id>
Metodo: GET
Auth richiesto: SÌ con un Token valido
Limite richieste: 1/secondo
Parametri (URL)
----------
site_id: str
L'ID dell'impianto
sensor_id: str
L'ID dell'oggetto sensore
Parametri (GET)
----------
t_s: str, optional
La datetime in formato iso, che rappresenta l'istante di inizio della serie temporale richiesta, naive rispetto al fuso orario in UTC
t_e: str, optional
La datetime in formato iso, che rappresenta l'istante di fine della serie temporale richiesta, naive rispetto al fuso orario in UTC
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Restituisce
-------
array_like
I dati del sensore della serie temporale del periodo selezionato come elenco di oggetti:
[
{
'timestamp': <int timestamp>,
'value': <float, int>
},
...
]