Indice dei contenuti

Climkit API

Nicolas Vodoz Aggiornato da Nicolas Vodoz

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

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

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

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

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

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

1. Autenticazione

L'API di Climkit utilizza token Web JSON (https://jwt.io/introduction/) per garantire la sicurezza del transito delle informazioni.

Una volta che l'utente è collegato 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

Method: POST

Auth required: 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: il-tuo-token-di-accesso>,
'valid_until': {'$date': <int: tempo-epoca-in-millisecondi>},
}

2. Siti

Tutti i siti

La lista di tutti i siti.

URL: /all_installations

Method: GET

Auth required: YES con un Token valido

Limite richieste: 1/secondo

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

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

Restituisce
-------
La lista di tutti i siti, presentata come una lista di oggetti.

Informazioni su un sito

I parametri di un sito specifico.

URL: /installation_infos/<site_id>

Method: GET

Auth required: YES con un Token valido

Limite richieste: 1/secondo

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

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

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

La lista di tutti i contatori di un sito.

URL: /meter_info/<site_id>

Method: GET

Auth required: YES con un Token valido

Limite richieste: 1/secondo

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

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

Restituisce
----------
La lista di contatori presentata come una lista di oggetti:

[
{
'id': <str che rappresenta l'ID del contatore>
'type': {'elettricità', 'riscaldamento', 'acqua_fredda', 'acqua_calda'},
'name': <str>,
'mode': {'consumo', 'produzione', 'introduzione', 'batteria'},
'prim_ad': <int>,
'is_rule_meter': <boolean>
},
...
]

I dati validati del sito per un tipo di contatore

I dati validati 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>

Method: POST

Auth required: YES con un Token valido

Limite richieste: 1/secondo

Parametri (GET)
----------
site_id: str
L'ID dell'oggetto del sito
meter_type: str
Il tipo di dati del contatore:
'elettricità', 'riscaldamento', 'raffreddamento', 'acqua_fredda', 'acqua_calda' o 'punto_di_carica'

Parametri (POST)
----------
t_s: str, opzionale
La data e ora isoformattata, che rappresenta l'istantanea iniziale della serie temporale, senza fuso orario in UTC
t_e: str, opzionale
La data e ora isoformattata, che rappresenta l'istantanea finale della serie temporale, senza fuso orario in UTC
*frequenza_di_sampling: {'15T', 'H', 'D', 'M', 'Y'}, opzionale
La frequenza di campionamento della lista di dati restituita

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

Restituisce
-------
I dati temporali validati dal sito per un tipo specifico di misurazione, presentati come una lista di oggetti:

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

I dati validati di un contatore specifico

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

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

Method: POST

Auth required: YES 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, opzionale
La data e ora isoformattata, che rappresenta l'istantanea iniziale della serie temporale, senza fuso orario in UTC
t_e: str, opzionale
La data e ora isoformattata, che rappresenta l'istantanea finale della serie temporale, senza fuso orario in UTC
frequenza_di_sampling: {'15T', 'H', 'D', 'M', 'Y'}, opzionale
La frequenza di campionamento della lista di dati restituita

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

Restituisce
-------
I dati temporali validati del contatore per il periodo selezionato, presentati come una lista di oggetti:

[
{
'total': <consumo totale. Se il tipo è elettricità, totale = self + ext>,
'self': <consumo totale da solare PV se il tipo è elettricità>,
'ext': <consumo totale dalla rete se il tipo è elettricità>,
'timestamp': <timestamp alla fine del periodo misurato se la frequenza_di_sampling è 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, direttamente dal contatore senza validazione. Disponibile solo per contatori fisici e non per contatori di regola.

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

Method: POST

Auth required: YES 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, opzionale
La data e ora isoformattata, che rappresenta l'istantanea iniziale della serie temporale, senza fuso orario in UTC
t_e: str, opzionale
La data e ora isoformattata, che rappresenta l'istantanea finale della serie temporale, senza fuso orario in UTC

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

Restituisce
-------
I dati temporali grezzi del contatore per il periodo selezionato, presentati come una lista di oggetti:

[
{
'en_im': <indice del contatore elettrico importato se il tipo è elettricità>,
'en_ex': <indice del contatore elettrico esportato se il tipo è elettricità>,
'heat_energy_kwh': <indice di energia termica se il tipo è riscaldamento o raffreddamento>,
'vol_m3': <indice di volume d'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

Method: GET

Auth required: YES con un Token valido

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

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

Restituisce
-------
array_like

La lista delle informazioni sui sensori formattata 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 periodo specifico. Se non viene fornito alcun periodo, i dati più recenti vengono restituiti. t_s è limitato in base all'utente/sito.

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

Method: GET

Auth required: YES 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, opzionale
La data e ora isoformattata, che rappresenta l'istantanea iniziale della serie temporale richiesta, senza fuso orario in UTC
t_e: str, opzionale
La data e ora isoformattata, che rappresenta l'istantanea finale della serie temporale richiesta, senza fuso orario in UTC

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

Restituisce
-------
array_like

I dati temporali del sensore del periodo selezionato come lista di oggetti:

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

How did we do?

API locale del Gateway

Contatto