energie@egonline.ch T +41 58 680 20 05 Bürozeiten: Montag - Freitag Vormittags Besuchen Sie uns auf LinkedIn

Messdaten an egonline übertragen

Dieser Artikel zeigt, wie Messpunkte an egonline per API übertragen und abgerufen werden können

Zweck & Authentifizierung

Diese Dokumentation beschreibt die Schnittstellen add_meter_readings (Messdaten erfassen) und get_meter_readings (Messdaten abrufen). Die API verarbeitet JSON-Daten, prüft Basic Auth und speichert Messwerte in der Datenbank.

Authentifizierung: Die API verwendet HTTP Basic Auth. Die benötigten Zugangsdaten werden von der Egon AG bereitgestellt.

1) Messdaten anlegen: add_meter_readings

Endpoint: POST https://web.egonline.ch/Api/add_meter_readings

Header: Content-Type: application/json

Request-Body Parameter

Der Body ist ein JSON-Array mit Messdaten-Objekten.

Feld Typ Pflicht Beschreibung
serialnumber string ja Seriennummer des Controllers
device_id string ja Geräte-ID (Messpunkt)
meter_reading string / number ja Messwert (z. B. kWh)
date_time string ja Zeitstempel, Format: YYYY-MM-DD HH:MM:SS
type string ja import oder export
customer string ja Kundenname / Bezeichner

Beispiel (JSON Request Body)

[
  {
    "serialnumber": "504F94A0B2BD",
    "device_id": "Wohnung_1",
    "meter_reading": "63.750",
    "date_time": "2026-02-14 23:45:00",
    "type": "import",
    "customer": "Firma XY"
  },
  {
    "serialnumber": "504F94A0B2BD",
    "device_id": "Wohnung_2",
    "meter_reading": "127.245",
    "date_time": "2026-02-15 00:00:00",
    "type": "import",
    "customer": "Firma XY"
  },
  {
    "serialnumber": "504F94A0B2BD",
    "device_id": "Wohnung_1",
    "meter_reading": "352.564",
    "date_time": "2026-02-14 00:45:00",
    "type": "export",
    "customer": "Firma XY"
  }
]

Verarbeitung (Kurzfassung)

  • Nur POST ist erlaubt (sonst Statuscode 405).
  • Fehlt ein Pflichtfeld, wird der entsprechende Datensatz übersprungen.
  • Pro Gerät wird der Zeitraum der gelieferten Daten ermittelt. Bestehende Einträge in diesem Zeitraum werden in der Datenbank gelöscht und anschliessend durch die neuen Daten ersetzt.

Mögliche Server-Antworten (HTTP Statuscodes)

  • 201: Import erfolgreich
  • 400: Ungültiges JSON oder ungültige Authorization
  • 401: Missing Basic Auth header
  • 403: Invalid username or password
  • 405: Only POST allowed
  • 500: Database error

cURL Beispiel

curl -u <username>:<password> -H "Content-Type: application/json" \
-d @data.json https://web.egonline.ch/Api/add_meter_readings

2) Messdaten abrufen: get_meter_readings

Endpoint: GET https://web.egonline.ch/Api/get_meter_readings/{serial}/{start}/{end}

URL-Parameter

Parameter Pflicht Beschreibung
serial ja Seriennummer (serial_number)
start ja Startdatum, Format: YYYY-MM-DD (nur Datum)
end ja Enddatum, Format: YYYY-MM-DD (nur Datum)

Beispiel-Request

GET https://web.egonline.ch/Api/get_meter_readings/504F94A0B2BD/2026-02-01/2026-03-14

Antwort & Hinweise

Die Antwort ist ein JSON-Array mit folgenden Feldern pro Datensatz: serial_number, device_id, date_time, type, meter_reading. Die Daten sind nach device_id und Zeit aufsteigend sortiert.

  • Nur GET ist erlaubt (sonst 405).
  • Bei fehlenden Parametern: 400.
  • Wenn keine Daten vorhanden sind: 204 (No data found).
  • Limit: max. 10’000 Datensätze pro Abruf.

cURL Beispiel

curl -u <username>:<password> \
"https://web.egonline.ch/Api/get_meter_readings/504F94A0B2BD/2026-02-01/2026-03-14"
Was this article helpful?

Related Articles

📚 Support-Center