Inhaltsübersicht
Climkit API
Aktualisiert
von Nicolas Vodoz
Die Climkit Developer API ermöglicht registrierten und autorisierten Entwicklern den Abruf von Zähler- und Energiedaten von autorisierten Climkit-Standorten.
Um sich zu registrieren, müssen Entwickler die Datenzugriffsrechte vom Anlagenbesitzer und von Climkit SA einholen.
Zugriffsanfragen für die API sind an service@climkit.io zu richten.
Die API-Zugangsdaten unterscheiden sich von den Anmeldeinformationen für das persönliche Konto im Climkit-Portal.
Die Zugangsdaten dürfen nur vom registrierten Entwickler verwendet werden. Kollegen und Mitarbeiter müssen einen individuellen Antrag stellen, um ihre eigenen Zugriffsrechte zu erhalten.
API-Endpoint: https://api.climkit.io/api/v1
1. Authentifizierung
Die Climkit API verwendet JSON Web Tokens (https://jwt.io/introduction/) zur Sicherung des Datentransports.
Nach der Anmeldung des Benutzers mit seinen Anmeldeinformationen (Benutzername und Passwort) erhält dieser ein 15 Minuten gültiges Token, das ihm den Zugriff auf autorisierte Ressourcen ermöglicht.
URL: /auth
Methode: POST
Auth erforderlich: NEIN
Authentifizierung über Benutzername-Passwort zur Erlangung eines Zugriffstokens
Parameters (POST)
----------
username: str
Der API-Benutzername
password: str
Das API-Passwort
Rückgabe
-------
{
'access_token': <str: Ihr-Zugriffstoken>,
'valid_until': {$date: <int: Epochenzeit in Millisekunden>},
}2. Standorte
Alle Standorte
Die Liste aller Standorte.
URL: /all_installations
Methode: GET
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
Kein Parameter
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
Die Liste aller Standorte, dargestellt als Liste von Objekten.Informationen zu einem Standort
Die Parameter eines spezifischen Standorts.
URL: /installation_infos/<site_id>
Methode: GET
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
site_id: str
Die Objekt-ID des Standort
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
Die Parameter des Standorts:
{
'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. Zähler
Alle Zähler eines Standorts
Die Liste aller Zähler eines Standorts.
URL: /meter_info/<site_id>
Methode: GET
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
site_id: str
Die Objekt-ID des Standorts
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
----------
Die Liste der Zähler, dargestellt als Liste von Objekten:
[
{
'id': <str, das die ID des Zählers darstellt>
'type': {'electricity', 'heating', 'cold_water', 'hot_water'},
'name': <str>,
'mode': {'consumption', 'production', 'introduction', 'battery'},
'prim_ad': <int>,
'is_rule_meter': <boolean>
},
...
]Validierte Standortdaten für einen Zählertyp
Die validierten Zeitreihendaten des Standorts für einen bestimmten Zählertyp, z. B. den gesamten Stromverbrauch oder die PV-Produktion des Standorts.
URL: /site_data/<site_id>/<meter_type>
Methode: POST
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
site_id: str
Die Objekt-ID des Standorts
meter_type: str
Der Typ der Zählerdaten:
'electricity', 'heating', 'cooling', 'cold_water', 'hot_water' oder 'charge_point'
Parameters (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
Die Abtastfrequenz der zurückgegebenen Datenliste
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
Die validierten Zeitreihendaten des Standorts für einen bestimmten Zählertyp, dargestellt als Liste von Objekten:
[
{
'conso_total': <Gesamtverbrauch des Standorts>,
'prod_total': <Gesamt-Stromerzeugung des Standorts (PV), falls der Typ Strom ist>,
'from_ext': <Gesamtverbrauch des Standorts aus dem Netz, falls der Typ Strom ist>,
'self': <Gesamtverbrauch des Standorts aus PV, falls der Typ Strom ist>,
'to_ext': <Gesamtstromexport des Standorts ins Netz, falls der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende der gemessenen Periode, wenn sampling_frequency 15T ist, sonst Beginn der Periode>
},
...
]Validierte Daten eines spezifischen Zählers
Die validierten Zeitreihendaten eines Zählers für den ausgewählten Zeitraum.
URL: /meter_data/<site_id>/<meter_id>
Methode: POST
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
site_id: str
Die ID des Standorts
meter_id: str
Die ID des Zählers
Parameters (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
Die Abtastfrequenz der zurückgegebenen Datenliste
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
Die validierten Zeitreihen-Zählerdaten für den ausgewählten Zeitraum, dargestellt als Liste von Objekten:
[
{
'total': <Gesamtverbrauch. Wenn der Typ Strom ist, gilt total = self + ext>,
'self': <Gesamtverbrauch aus PV, wenn der Typ Strom ist>,
'ext': <Gesamtverbrauch aus dem Netz, wenn der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende der gemessenen Periode, wenn sampling_frequency 15T ist, sonst Beginn der Periode>
},
...
]Rohdaten eines spezifischen Zählers
Die Rohdaten, inkrementell (Zählerstand) oder differentiell (Intervall einer Lastkurve), in Zeitreihenform eines Zählers für den ausgewählten Zeitraum, direkt vom Zähler ohne Validierung. Nur für physische Zähler verfügbar, nicht für Regelzähler.
URL: /meter_data_raw/<site_id>/<meter_id>
Methode: POST
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (GET)
----------
site_id: str
Die ID des Standorts
meter_id: str
Die ID des Zählers
Parameters (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, zeitzonenunabhängig in UTC
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
Die rohen Zeitreihen-Zählerdaten für den ausgewählten Zeitraum, dargestellt als Liste von Objekten:
[
{
'en_im': <Stromimport-Zählerindex, wenn der Typ Strom ist>,
'en_ex': <Stromexport-Zählerindex, wenn der Typ Strom ist>,
'heat_energy_kwh': <thermischer Energieindex, wenn der Typ Heizung oder Kühlung ist>,
'vol_m3': <Wasservolumenindex, wenn der Typ kaltes Wasser oder warmes Wasser ist>,
'timestamp': <Zeitstempel am Ende der gemessenen Periode>
},
...
]4. Sensoren
Alle Sensoren eines Standorts abrufen
URL: /<site_id>/sensors_list
Methode: GET
Auth erforderlich: JA mit einem gültigen Token
Parameters (URL)
----------
site_id: str
Die ID des Standort
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
array_like
Die Liste der Sensorinformationen, formatiert wie folgt:
[
{
'id': <str, das ein ObjectID darstellt>
'name': <str>,
'type': <str, der den Typ der gemessenen Größe beschreibt>,
'unit': <str, der die Einheit der gemessenen Größe beschreibt>,
'model': <str, der das Modell des Sensors beschreibt>
},
...
]Zeitreihendaten für einen spezifischen Sensor abrufen
Ruft die Zeitreihen eines Sensors für einen bestimmten Zeitraum ab. Wenn kein Zeitraum angegeben ist, werden die neuesten Daten zurückgegeben. t_s ist in Abhängigkeit vom Benutzer/Standort begrenzt.
URL: /<site_id>/sensor_data/<sensor_id>
Methode: GET
Auth erforderlich: JA mit einem gültigen Token
Anfragelimite: 1/Sekunde
Parameters (URL)
----------
site_id: str
Die ID des Standort
sensor_id: str
Die ID des Sensorobjekts
Parameters (GET)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der angeforderten Zeitreihe darstellt, zeitzonenunabhängig in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der angeforderten Zeitreihe darstellt, zeitzonenunabhängig in UTC
Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugriffstoken}'
Rückgabe
-------
array_like
Die Zeitreihendaten des Sensors für den ausgewählten Zeitraum, dargestellt als Liste von Objekten:
[
{
'timestamp': <int timestamp>,
'value': <float, int>
},
...
]