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 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>
},
...
]