Table des matières
Climkit API
À 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 d'installations Climkit autorisées.
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 à info@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.
Point d'arrivée de l'API : https://api.climkit.io/api/v1
1. Authentification
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>},
}
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.
2. Sites
Obtenir tous les sites
Obtenir les identifiants de tous les sites d'installation.
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
-------
array_like
Obtenir des informations sur le site
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
-------
obj
An object formatted as follow:
{
'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
Obtenir tous les compteurs 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
----------
array_like
{
'id': <str representing an ObjectID>
'type': {'electricity', 'heating', 'cold_water', 'hot_water'},
'name': <str>,
'prim_ad': <int>,
'virtual': <boolean>
}
Obtenir des données en série chronologique pour un type spécifique de compteurs
Obtenez les données traitées en série chronologique de type <meter_type>, pour l'ensemble du site <site_id>.
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
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Returns
-------
array_like
Obtenir les données traitées en série chronologique d'un compteur spécifique
Obtenez les données de la série chronologique "validated" ou "processed" du compteur <meter_id>.
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', 'D', 'M', 'Y'}, optional
The sampling frequency of the returned data list
Headers
----------
Content-Type: 'application/json'
Authorization: 'Bearer {your-access-token}'
Returns
-------
array_like
Obtenir des séries de données brutes d'un compteur spécifique
Obtenir les données brutes de la série temporelle du compteur <meter_id>
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
-------
array_like
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>
},
...
]