Lebenszyklus-Ereignisse erfassen
Melden Sie Inspektionen, Reparaturen und andere Ereignisse im Leben einer Einheit mit createLifecycleEvent und lesen Sie den Lebenszyklus mit listLifecycleEvents.
Ein Lebenszyklus-Ereignis hält fest, dass mit einer Batterie etwas geschehen ist: Sie wurde in Betrieb genommen,
geprüft, repariert, ein Bauteil wurde getauscht. Ereignisse sind Aufzeichnungen und ändern keine Daten der
Einheit. Messwerte melden Sie mit updateCondition. Hintergrund:
Zustand und Lebenszyklus.
| Operation | Scope | Was sie tut |
|---|---|---|
createLifecycleEvent | condition | Erfasst ein Ereignis für eine Einheit |
listLifecycleEvents | read | Der Lebenszyklus der Einheit, neueste zuerst |
Ereignisarten
type | Wofür |
|---|---|
placed_on_market | Die Batterie wurde in Verkehr gebracht. |
put_into_service | Die Batterie wurde eingebaut und in Betrieb genommen. |
inspection | Eine Prüfung oder ein Wartungstermin. |
repair | Eine Reparatur. |
component_replaced | Ein Modul, eine Zelle oder ein anderes Bauteil wurde getauscht. |
waste | Die Batterie ist zu Abfall geworden. |
recycled | Die Batterie wurde dem Recycling übergeben. |
custom | Alles andere; beschreiben Sie es in description. |
ReportedEventType im Vertrag nennt zusätzlich condition_update, doch createLifecycleEvent lehnt diesen Typ
mit 400 validation_error auf type ab: Solche Ereignisse schreibt updateCondition. Die Arten des zweiten
Lebens (repurposed, reused, remanufactured) erscheinen im Lebenszyklus, wenn ein Mitglied im Portal eine
Einheit für das zweite Leben anlegt; über die API lassen sie sich nicht erfassen.
Ein Ereignis erfassen
Dokumente finden (optional)
evidence_ids nennt Dokumente aus der Nachweisbibliothek Ihrer Organisation, etwa einen Diagnosebericht oder ein
Reparaturprotokoll, höchstens 20 und jedes nur einmal. Mitglieder laden Dokumente im Portal hoch; die IDs finden
Sie mit listEvidence (Schlüssel mit Scope read), zum
Beispiel mit ?kind=diagnostic_report.
Ereignis senden
POST /api/v1/batteries/{batteryId}/lifecycle-events
typestringbodyerforderlichoccurred_ondatebodyerforderlichYYYY-MM-DD), zwischen dem Herstellungsdatum der Einheit und heute.descriptionstringbodyevidence_idsuuid[]bodycurl -sS -X POST "$BATTERYPASS_URL/api/v1/batteries/0192a3f0-5b7c-7d21-8e4f-6a2b9c1d3e5f/lifecycle-events" \
-H "Authorization: Bearer $BATTERYPASS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "inspection",
"occurred_on": "2026-10-22",
"description": "Jahresinspektion: Gehäuse, Steckverbinder und BMS-Protokoll geprüft, ohne Befund.",
"evidence_ids": ["0192f7aa-1c2d-7e3f-8a4b-5c6d7e8f9a0b"]
}'{
"id": "0192f8c2-4d5e-7f60-8a71-b2c3d4e5f6a7",
"battery_id": "0192a3f0-5b7c-7d21-8e4f-6a2b9c1d3e5f",
"type": "inspection",
"occurred_on": "2026-10-22",
"description": "Jahresinspektion: Gehäuse, Steckverbinder und BMS-Protokoll geprüft, ohne Befund.",
"source": "api",
"api_key": { "id": "0192e4c7-8b9a-7c6d-8e5f-4a3b2c1d0e9f", "name": "Servicesystem Nord" },
"field_keys": [],
"evidence": [
{
"id": "0192f7aa-1c2d-7e3f-8a4b-5c6d7e8f9a0b",
"kind": "diagnostic_report",
"title": "Prüfprotokoll 2026",
"filename": "pruefprotokoll-2026-10-22.pdf",
"access_tier": "internal",
"revision": 1,
"superseded": false
}
],
"created_at": "2026-10-24T08:15:02Z"
}Ein Ereignis, das mit einem Schlüssel gesendet wurde, hat source: api und nennt den Schlüssel in api_key;
Ereignisse von Mitgliedern tragen reported_by, solche von Servicepartnern partner.
Keine automatische Duplikaterkennung
BatteryPass erkennt nicht, wenn dasselbe Ereignis zweimal ankommt: Jede erfolgreiche Anfrage legt ein Ereignis an,
und createLifecycleEvent kennt keinen Idempotenzschlüssel. Das ist wichtig, wenn eine Anfrage in ein Timeout
läuft und Sie nicht wissen, ob sie angekommen ist:
- Wiederholen Sie einen
POSTnach einem Netzwerkfehler, einem Timeout oder einem5xxnicht automatisch. - Bevor Sie es erneut senden, suchen Sie Ihr Ereignis (gleicher
type, gleichesoccurred_onund gleichedescription,source: api) inlistLifecycleEvents. Die Liste ist nachoccurred_onsortiert, das neueste zuerst; ein rückdatiertes Ereignis steht also nicht unbedingt auf der ersten Seite. Lesen Sie mitnext_cursorweiter, bis die Seite Ereignisse enthält, die vor Ihrem lagen (das Beispiel für Wiederholungen macht genau das). - Speichern Sie die zurückgegebene
idin Ihrem System, damit Sie wissen, welche Ereignisse bereits erfasst sind.
Ein 429 rate_limited dürfen Sie nach Retry-After gefahrlos wiederholen: Die Anfrage wurde abgelehnt, bevor
etwas gespeichert wurde. Mehr dazu unter Wiederholungen und Idempotenz.
Den Lebenszyklus lesen
curl -sS "$BATTERYPASS_URL/api/v1/batteries/0192a3f0-5b7c-7d21-8e4f-6a2b9c1d3e5f/lifecycle-events?limit=50" \
-H "Authorization: Bearer $BATTERYPASS_API_KEY"Die Antwort ist eine Seite {items, next_cursor}, das jüngste occurred_on zuerst; ältere Ereignisse folgen über
next_cursor (Paginierung). Die Liste enthält jedes Ereignis der Einheit, gleich wer es
gemeldet hat: Mitglieder, Servicepartner über ihre Links, Zustandsupdates (type: condition_update mit den
aktualisierten field_keys), Schlüssel und das System. Beim zweiten Leben nennen related_battery_id und
related_serial_number die jeweils andere Einheit.
Fehler
Status und code | Typische Ursache |
|---|---|
400 validation_error | type nicht erlaubt (auch condition_update); occurred_on fehlt, liegt in der Zukunft oder vor dem Herstellungsdatum; description zu lang; ein Eintrag in evidence_ids ist kein Dokument Ihrer Organisation oder kommt doppelt vor |
401 unauthenticated | Schlüssel fehlt, ist unbekannt oder widerrufen |
403 forbidden | Dem Schlüssel fehlt der Scope condition (für listLifecycleEvents: read) |
404 not_found | Die Einheit gibt es in der Organisation des Schlüssels nicht |
409 conflict | Das Batteriemodell der Einheit ist archiviert |
429 rate_limited | Zu viele Anfragen; Retry-After abwarten |
Zustandsdaten senden
Melden Sie Messwerte wie Ladezustand oder Vollzyklen mit updateCondition und lesen Sie, was übernommen, übersprungen und neu veröffentlicht wurde.
Pässe exportieren
Laden Sie BatteryPass-JSON, PDF und QR-Code einer Passversion sowie die Einheiten Ihrer Organisation als Tabelle herunter.