Table des matières

Climkit API

Nicolas À jour par Nicolas

L'API développeur de Climkit permet aux développeurs enregistrés et autorisés d'obtenir des données de comptage et d'énergie à partir des sites Climkit autorisés.

Pour s'enregistrer, les développeurs doivent obtenir les droits d'accès aux données auprès du propriétaire de l'installation et de Climkit SA.

Les demandes d'accès à l'API doivent être adressées à service@climkit.io.

Les informations d'accès à l'API sont différentes des informations de connexion au compte personnel du portail Climkit.

Les informations d'accès ne peuvent être utilisées que par le développeur enregistré. Les collègues et collaborateurs doivent faire une demande individuelle pour obtenir leurs propres droits d'accès.

Endpoint de l'API : https://api.climkit.io/api/v1

1. Authentification

L'API de Climkit utilise des jetons Web JSON (https://jwt.io/introduction/) pour sécuriser le transit des informations.

Une fois l'utilisateur connecté avec ses informations d'identification (nom d'utilisateur et mot de passe), il reçoit un jeton valable 15 minutes qui lui permet d'accéder aux ressources autorisées.

URL : /auth

Method : POST

Auth required : NO

Authentication through username-password to get an access token

Parameters (POST)
----------
username: str
The API username
password: str
The API password

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

2. Sites

Tous les sites

La liste de tous les sites.

URL : /all_installations

Method : GET

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
No parameter

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

Returns
-------
The list of all the sites, presented as a list of objects.

Informations sur un site

Les paramètres d'un site spécifique.

URL : /installation_infos/<site_id>

Method : GET

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
site_id: str
The object ID of the installation site

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

Returns
-------
The parameters of the site:

{
'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. Compteurs

Tous les compteurs d'un site

La liste de tous les compteur d'un site.

URL : /meter_info/<site_id>

Method : GET

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
site_id: str
The object ID of the site

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

Returns
----------
The list of meters presented as a list of objects:

[
{
'id': <str representing the meter's id>
'type': {'electricity', 'heating', 'cold_water', 'hot_water'},
'name': <str>,
'mode': {'consumption', 'production', 'introduction', 'battery'},
'prim_ad': <int>,
'is_rule_meter': <boolean>
},
...
]

Les données validée du site pour un type de comptage

Les données validées en série chronologique du site pour un type de comptage spécifique, par exemple la consommation électrique totale ou la production photovoltaïque du site.

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

Method : POST

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
site_id: str
The object ID of the site
meter_type: str
The type of meter data:
'electricity', 'heating', 'cooling', 'cold_water', 'hot_water' or 'charge_point'

Parameters (POST)
----------
t_s: str, optional
The isoformatted datetime, representing the start instant of timeseries, tz-naive in UTC
t_e: str, optional
The isoformatted datetime, representing the stop instant of timeseries, tz-naive in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
The sampling frequency of the returned data list

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

Returns
-------
The validated time series data from the site for a specific type of metering, presented as a list of objects:

[
{
'conso_total': <total site consumption>,
'prod_total': <total site electricity (PV) production if type is electricity>,
'from_ext': <total site consumption from the grid if type is electricity>,
'self': <total site consumption from solar PV if type is electricity>,
'to_ext': <total site electricity exported to the grid if type is electricity>,
'timestamp': <timestamp at the end of the measured period if sampling_frequency is 15T, otherwise start of the period>
},
...
]

Les données validées d'un compteur spécifique

Les données validées en série chronologique d'un compteur pour la période sélectionnée.

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

Method : POST

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
site_id: str
The ID of the site
meter_id: str
The ID of the meter

Parameters (POST)
----------
t_s: str, optional
The isoformatted datetime, representing the start instant of timeseries, tz-naive in UTC
t_e: str, optional
The isoformatted datetime, representing the stop instant of timeseries, tz-naive in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
The sampling frequency of the returned data list

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

Returns
-------
The validated time series meter data for the selected period, presented as a list of objects:

[
{
'total': <total consumption. If type is electricity, total = self + ext>,
'self': <total consumption from solar PV if type is electricity>,
'ext': <total consumption from grid if type is electricity>,
'timestamp': <timestamp at the end of the measured period if sampling_frequency is 15T, otherwise start of the period>
},
...
]

Les données brutes d'un compteur spécifique

Les données brutes, incrémentales (index du compteur) ou différentielles (intervalle d'une courbe de chage), en série chronologique d'un compteur pour la période sélectionnée, directement issues du compteur sans validation. Disponible uniquement pour des compteurs physiques et non des compteurs de règle.

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

Method : POST

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (GET)
----------
site_id: str
The ID of the site
meter_id: str
The ID of the meter

Parameters (POST)
----------
t_s: str, optional
The isoformatted datetime, representing the start instant of timeseries, tz-naive in UTC
t_e: str, optional
The isoformatted datetime, representing the stop instant of timeseries, tz-naive in UTC

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

Returns
-------
The raw time series meter data for the selected period, presented as a list of objects:

[
{
'en_im': <electricity imported meter index if type is electricity>,
'en_ex': <electricity exported meter index if type is electricity>,
'heat_energy_kwh': <thermal energy index if type is heating or cooling>,
'vol_m3': <water volume index if type is cold_water or hot_water>,
'timestamp': <timestamp at the end of the measured period>
},
...
]

4. Capteurs

Obtenir tous les capteurs d'un site

URL : /<site_id>/sensors_list

Method : GET

Auth required : YES avec un Token valide

Parameters (URL)
----------
site_id: str
The ID of the installation site

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

Returns
-------
array_like

The list of sensors info formatted as follow:

[
{
'id': <str representing an ObjectID>
'name': <str>,
'type': <str describing the type of measured quantity>,
'unit': <str describing the unit of the measured quantity>,
'model': <str describing the model of the sensor>
},
...
]

Obtenir des données de séries temporelles pour un capteur spécifique

Récupère les séries temporelles d'un capteur, pour une période donnée. Si aucune période n'est fournie, les dernières données sont retournées. t_s est limité en fonction de l'utilisateur/site.

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

Method : GET

Auth required : YES avec un Token valide

Requests limit : 1/second

Parameters (URL)
----------
site_id: str
The ID of the installation site
sensor_id: str
The ID of the sensor object

Parameters (GET)
----------
t_s: str, optional
The isoformatted datetime, representing the start instant of the requested timeseries, tz-naive in UTC
t_e: str, optional
The isoformatted datetime, representing the end instant of the requested timeseries, tz-naive in UTC

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

Returns
-------
array_like

The timeseries sensor data of the selected period as a list of objects:

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

Comment avons-nous fait ?

API locale du Gateway

Contact