Inhaltsübersicht

Climkit API

Nicolas Vodoz Aktualisiert von Nicolas Vodoz

Die Entwickler-API von Climkit ermöglicht registrierten und autorisierten Entwicklern den Zugriff auf Zähl- und Energiedaten von autorisierten Climkit-Standorten.

Um sich zu registrieren, müssen die Entwickler die Zugriffsrechte auf die Daten beim Eigentümer der Installation und bei Climkit SA einholen.

Zugriffsanforderungen an die API sind an service@climkit.io zu richten.

Die Zugangsinformationen zur API unterscheiden sich von den Anmeldedaten für das persönliche Konto im Climkit-Portal.

Die Zugangsinformationen dürfen nur von dem registrierten Entwickler verwendet werden. Kollegen und Mitarbeiter müssen eine individuelle Anfrage stellen, um ihre eigenen Zugriffsrechte zu erhalten.

API-Endpunkt: https://api.climkit.io/api/v1

1. Authentifizierung

Die API von Climkit verwendet JSON Web Tokens (https://jwt.io/introduction/), um den Transit der Informationen zu sichern.

Sobald der Benutzer sich mit seinen Anmeldedaten (Benutzername und Passwort) angemeldet hat, erhält er ein 15 Minuten gültiges Token, das ihm den Zugriff auf die autorisierten Ressourcen ermöglicht.

URL: /auth

Methode: POST

Auth benötigt: NEIN

Authentifizierung durch Benutzername-Passwort zum Erhalt eines Zugangstokens

Parameter (POST)
----------
username: str
Der API-Benutzername
password: str
Das API-Passwort

Gibt zurück
-------
{
'access_token': <str: Ihr-Zugangstoken>,
'valid_until': {'$date': <int: epoch-zeit-in-millisekunden>},
}

2. Standorte

Alle Standorte

Die Liste aller Standorte.

URL: /all_installations

Methode: GET

Auth benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (GET)
----------
Kein Parameter

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
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 benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (GET)
----------
site_id: str
Die Objekt-ID des Installationsstandorts

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
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 benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (GET)
----------
site_id: str
Die Objekt-ID des Standorts

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
----------
Die Liste der Zähler, dargestellt als Liste von Objekten:

[
{
'id': <str, der 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>
},
...
]

Die validierten Daten des Standorts für einen Zählertyp

Die validierten Zeitreihendaten des Standorts für einen spezifischen Zählertyp, zum Beispiel den gesamten Stromverbrauch oder die Photovoltaikproduktion des Standorts.

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

Methode: POST

Auth benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (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'

Parameter (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
*sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
Die Abtastfrequenz der zurückgegebenen Datenliste

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
Die validierten Zeitreihendaten vom Standort für einen bestimmten Zählertyp, dargestellt als Liste von Objekten:

[
{
'conso_total': <insgesamtverbrauch des Standorts>,
'prod_total': <insgesamt Stromproduktion des Standorts (PV), wenn der Typ Strom ist>,
'from_ext': <insgesamt Stromverbrauch aus dem Netz, wenn der Typ Strom ist>,
'self': <insgesamt Stromverbrauch von Solar-PV, wenn der Typ Strom ist>,
'to_ext': <insgesamt Stromexport des Standorts ins Netz, wenn der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums, wenn die Abtastfrequenz 15T ist, sonst Beginn des Zeitraums>
},
...
]

Die validierten Daten eines spezifischen Zählers

Die validierten Zeitreihendaten eines Zählers für den gewählten Zeitraum.

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

Methode: POST

Auth benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (GET)
----------
site_id: str
Die ID des Standorts
meter_id: str
Die ID des Zählers

Parameter (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
sampling_frequency: {'15T', 'H', 'D', 'M', 'Y'}, optional
Die Abtastfrequenz der zurückgegebenen Datenliste

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
Die validierten Zeitreihendaten des Zählers für den ausgewählten Zeitraum, dargestellt als Liste von Objekten:

[
{
'total': <gesamtverbrauch. Wenn der Typ Strom ist, total = selbst + extern>,
'self': <gesamtverbrauch von Solar-PV, wenn der Typ Strom ist>,
'ext': <gesamtverbrauch aus dem Netz, wenn der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums, wenn die Abtastfrequenz 15T ist, sonst Beginn des Zeitraums>
},
...
]

Die Rohdaten eines spezifischen Zählers

Die Rohdaten, inkrementell (Zählerindex) oder differenziell (Intervall einer Lastkurve), in zeitlicher Reihenfolge von einem Zähler für den ausgewählten Zeitraum, direkt aus dem Zähler ohne Validierung. Verfügbar nur für physische Zähler und nicht für Regelzähler.

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

Methode: POST

Auth benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (GET)
----------
site_id: str
Die ID des Standorts
meter_id: str
Die ID des Zählers

Parameter (POST)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
Die Rohdaten der Zeitreihe des Zählers für den ausgewählten Zeitraum, dargestellt als Liste von Objekten:

[
{
'en_im': <Index des importierten Stromzählers, wenn der Typ Strom ist>,
'en_ex': <Index des exportierten Stromzählers, wenn der Typ Strom ist>,
'heat_energy_kwh': <thermischer Energieindex, wenn der Typ Heizung oder Kühlung ist>,
'vol_m3': <Wasservolumenindex, wenn der Typ Kalt- oder Warmwasser ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums>
},
...
]

4. Sensoren

Alle Sensoren eines Standorts abrufen

URL: /<site_id>/sensors_list

Methode: GET

Auth benötigt: JA mit einem gültigen Token

Parameter (URL)
----------
site_id: str
Die ID des Installationsstandorts

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
array_like

Die Liste der Sensorinformationen formatiert wie folgt:

[
{
'id': <str, das eine ObjectID darstellt>
'name': <str>,
'type': <str, das den Typ der gemessenen Menge beschreibt>,
'unit': <str, das die Einheit der gemessenen Menge beschreibt>,
'model': <str, das das Modell des Sensors beschreibt>
},
...
]

Zeitsensordaten für einen spezifischen Sensor abrufen

Ruft die Zeitreihen eines Sensors für einen bestimmten Zeitraum ab. Wenn kein Zeitraum angegeben ist, werden die letzten Daten zurückgegeben. t_s ist basierend auf dem Benutzer/Standort begrenzt.

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

Methode: GET

Auth benötigt: JA mit einem gültigen Token

Anfragenlimit: 1/Sekunde

Parameter (URL)
----------
site_id: str
Die ID des Installationsstandorts
sensor_id: str
Die ID des Sensorobjekts

Parameter (GET)
----------
t_s: str, optional
Das isoformatierte Datum, das den Startzeitpunkt der angeforderten Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Das isoformatierte Datum, das den Endzeitpunkt der angeforderten Zeitreihe darstellt, tz-naiv in UTC

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {Ihr-Zugangstoken}'

Gibt zurück
-------
array_like

Die Zeitreihensensordaten des ausgewählten Zeitraums als Liste von Objekten:

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

Wie haben wir abgeschnitten?

Lokale API des Gateways

Kontakt