Developers · Guides

Streaming BMS telemetry

Keep state of health, cycle count, throughput and temperature exposure current from a battery management system or fleet gateway.

Version
v1.0.0
Base URL
https://dppapi-production.up.railway.app/v1
Format
JSON · OpenAPI 3.1
FeedbackLast updated

Cet article n'est pas encore disponible en français ; il est affiché ci-dessous en anglais.

On this pageWhat to send

Annex XIII Point 4 makes part of the passport dynamic: state of health, usage and exposure change over a battery’s life. A BMS or fleet gateway keeps them current by appending events.

What to send

Each dynamic data point belongs to an event type. Put the readings of one type, taken at one moment, in one event:

FieldUnitEvent typeEVLMTIndustrial
stateOfCertifiedEnergy%SOH_READINGRequired——
remainingCapacityAhSOH_READING—RequiredIf applicable
capacityFade%SOH_READINGRequiredRequiredIf applicable
remainingPowerCapabilityWSOH_READING—RequiredIf applicable
remainingRoundTripEfficiency%SOH_READING—RequiredIf applicable
selfDischargeEvolution%/monthSOH_READING—RequiredIf applicable
ohmicResistancemΩSOH_READING—RequiredIf applicable
cycleCountcyclesCYCLE_COUNTIf applicableIf applicableIf applicable
energyThroughputkWhLIFETIME_METRICIf applicableIf applicable—
capacityThroughputAhLIFETIME_METRICIf applicableIf applicable—
stateOfCharge%OPERATING_CONDITIONIf applicableIf applicableIf applicable
operatingTemperature°COPERATING_CONDITIONIf applicableIf applicableIf applicable
timeExtremeHighTempminOPERATING_CONDITIONIf applicableIf applicableIf applicable
timeExtremeLowTempminOPERATING_CONDITIONIf applicableIf applicableIf applicable
timeChargingExtremeHighTempminOPERATING_CONDITIONIf applicableIf applicableIf applicable
timeChargingExtremeLowTempminOPERATING_CONDITIONIf applicableIf applicableIf applicable
negativeEventtextNEGATIVE_EVENTIf applicableIf applicableIf applicable

Recording a reading

Temperature exposure since the last report
curl -X POST "https://dppapi-production.up.railway.app/v1/passports/cm1q8y0bq0006l70fx9y8z7w6/events" \-H "Authorization: Bearer $DPP_API_KEY" \-H "Content-Type: application/json" \-H "Idempotency-Key: bms-C-7KQ2M9XHT4R-2027-06-02T07:30Z-oc" \-d '{"eventType": "OPERATING_CONDITION","payload": {"operatingTemperature": 31.5,"timeExtremeHighTemp": 42,"timeExtremeLowTemp": 0,"timeChargingExtremeHighTemp": 5,"timeChargingExtremeLowTemp": 0}}'
Lifetime counters
curl -X POST "https://dppapi-production.up.railway.app/v1/passports/cm1q8y0bq0006l70fx9y8z7w6/events" \-H "Authorization: Bearer $DPP_API_KEY" \-H "Content-Type: application/json" \-d '{"eventType": "LIFETIME_METRIC","payload": {"energyThroughput": 2140.5,"capacityThroughput": 44600}}'

Cadence and volume

  • The passport is a record, not a time-series database. Report on a meaningful cadence — daily, per charging session, or on change — not every BMS sample.
  • With 600 requests a minute per key, one gateway can update 864,000 passports a day with one event each. For larger fleets, batch readings with `POST /passports/import-updates`: up to 1,000 batteries per request, matched by identifier or serial, each reading recorded under its own event type.
  • Derive the idempotency key from the battery, the reading time and the type, so a gateway that resends after a dropped connection does not record the reading twice.
A fleet-wide daily upload
curl -X POST "https://dppapi-production.up.railway.app/v1/passports/import-updates" \-H "Authorization: Bearer $DPP_API_KEY" \-H "Content-Type: application/json" \-H "Idempotency-Key: fleet-north-2027-06-02" \-d '{"modelId": "cm1q8x2k40003l70f9a8s7d6e","rows": [{"uniqueIdentifier": "C-7KQ2M9XHT4R","readings": {"cycleCount": 812,"remainingCapacity": 14.1,"timeExtremeHighTemp": 42}},{"uniqueIdentifier": "C-4HZN8Q3RVX2","readings": {"cycleCount": 640,"remainingCapacity": 14.5}}]}'

BMS resets

If a BMS software reset invalidates the history behind earlier state-of-health values, record it: send the next event with bmsHistoryInvalidatedByReset: true, or a BMS_SOFTWARE_RESET event. Readers of the passport then know earlier values cannot be compared with later ones (Art. 14).

Reading history back

curl "https://dppapi-production.up.railway.app/v1/passports/cm1q8y0bq0006l70fx9y8z7w6/events?event_type=SOH_READING&since=2027-01-01T00%3A00%3A00Z" \-H "Authorization: Bearer $DPP_API_KEY"

Préférences en matière de cookies

Vous choisissez les cookies utilisés. Vous pouvez modifier votre choix à tout moment via « Paramètres des cookies » en bas de page. Politique de confidentialité

Nécessaires

Toujours actifs

Indispensables au fonctionnement du site : votre thème clair/sombre et ce choix de cookies sont enregistrés dans votre navigateur. Ils ne servent pas à vous suivre.

Analyse

Google Analytics 4 mesure l’utilisation des pages au moyen de statistiques, ce qui nous aide à améliorer le site. Si vous acceptez, il dépose des cookies et mesure votre visite en détail. Si vous refusez, il ne dépose aucun cookie, mais Google peut tout de même recevoir des données techniques, comme la page consultée, le type de navigateur et l’adresse IP.

_ga, _ga_* · jusqu’à 2 ans · Google