Inhaltsübersicht

Climkit API

Nicolas Vodoz Aktualisiert von Nicolas Vodoz

Die Developer API von Climkit ermöglicht es registrierten und autorisierten Entwicklern, Zähl- und Energiedaten von autorisierten Climkit-Standorten abzurufen.

Um sich zu registrieren, müssen die Entwickler die Zugriffrechte für die Daten vom Eigentümer der Anlage und von Climkit SA erhalten.

Zugriffsrequests für die API sind zu richten an service@climkit.io.

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

Die Zugangsdaten dürfen nur vom 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 Informationsverkehr zu sichern.

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

URL: /auth

Methode: POST

Auth erforderlich: NEIN

Authentifizierung über Benutzername-Passwort, um ein Zugriffstoken zu erhalten

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

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

2. Standorte

Alle Standorte

Die Liste aller Standorte.

URL: /all_installations

Methode: GET

Auth erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 1/Sekunde

Parameter (GET)
----------
Keine Parameter

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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 erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 1/Sekunde

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

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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 erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 1/Sekunde

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

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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

[
{
'id': <str, der die ID des Zählers repräsentiert>
'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 zeitlichen Daten des Standorts für einen spezifischen Zählertyp, z. B. den gesamten Stromverbrauch oder die Photovoltaikproduktion des Standorts.

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

Methode: POST

Auth erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 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
Die isoformatierte Datum-Uhrzeit, die den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Die isoformatierte Datum-Uhrzeit, die den Stoppzeitpunkt 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-Zugriffstoken}'

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

[
{
'conso_total': <gesamtverbrauch des standorts>,
'prod_total': <gesamtstromproduktion (PV) des standorts, wenn der Typ Strom ist>,
'from_ext': <gesamtverbrauch vom Netz, wenn der Typ Strom ist>,
'self': <gesamtverbrauch vom Solar-PV, wenn der Typ Strom ist>,
'to_ext': <gesamtstromexport an das Netz, wenn der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums, wenn die Abtastfrequenz 15T beträgt, ansonsten Beginn des Zeitraums>
},
...
]

Die validierten Daten eines spezifischen Zählers

Die validierten zeitlichen Daten 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

Anfragen-Limit: 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
Die isoformatierte Datum-Uhrzeit, die den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Die isoformatierte Datum-Uhrzeit, die den Stoppzeitpunkt 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-Zugriffstoken}'

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 = self + ext>,
'self': <gesamtverbrauch von Solar-PV, wenn der Typ Strom ist>,
'ext': <gesamtverbrauch vom Netz, wenn der Typ Strom ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums, wenn die Abtastfrequenz 15T beträgt, ansonsten Beginn des Zeitraums>
},
...
]

Die Rohdaten eines spezifischen Zählers

Die Rohdaten, inkrementell (Index des Zählers) oder differenziell (Intervall einer Verbrauchskurve), zeitlich für einen Zähler für den ausgewählten Zeitraum, direkt vom Zähler ohne Validierung. Nur verfügbar für physische Zähler und nicht für Regelzähler.

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

Methode: POST

Auth erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 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
Die isoformatierte Datum-Uhrzeit, die den Startzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC
t_e: str, optional
Die isoformatierte Datum-Uhrzeit, die den Stoppzeitpunkt der Zeitreihe darstellt, tz-naiv in UTC

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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

[
{
'en_im': <elektrizität importierter Zählerindex, wenn der Typ Elektrizität ist>,
'en_ex': <elektrizität exportierter Zählerindex, wenn der Typ Elektrizität ist>,
'heat_energy_kwh': <thermischer Energieindex, wenn der Typ Heizung oder Kühlung>,
'vol_m3': <Wasservolumenindex, wenn der Typ kaltes Wasser oder heißes Wasser ist>,
'timestamp': <Zeitstempel am Ende des gemessenen Zeitraums>
},
...
]

4. Sensoren

Alle Sensoren eines Standorts abrufen

URL: /<site_id>/sensors_list

Methode: GET

Auth erforderlich: JA mit einem gültigen Token

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

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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

Die Liste der Sensordaten, formatiert wie folgt:

[
{
'id': <str, der eine Objekt-ID repräsentiert>
'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>
},
...
]

Daten der Zeitreihe 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 abhängig vom Benutzer/Standort begrenzt.

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

Methode: GET

Auth erforderlich: JA mit einem gültigen Token

Anfragen-Limit: 1/Sekunde

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

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

Header
----------
Content-Type: 'application/json'
Authorization: 'Bearer {ihr-Zugriffstoken}'

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

Die Zeitreihen-Sensordaten des ausgewählten Zeitraums als Liste von Objekten:

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

Wie haben wir abgeschnitten?

Lokale API des Gateways

Kontakt