Read archived charge sessions from the Zaptec API#46
Merged
Conversation
Contributor
Author
|
@claude review please |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
De gem kan nu voltooide (archived) laadsessies ophalen via
GET /api/sessions/archived. Handig voor historische rapportages of het eenmalig inlezen van bestaande data die anders alleen via live polling in beeld komt.Wat er verandert
Nieuwe publieke method op de client:
De endpoint is cursor-gepagineerd. Bewust géén auto-pagination in de gem: callers die grote hoeveelheden sessies importeren willen kunnen checkpointen op cursor-niveau (bv. na elke batch commiten aan een datastore) zonder dat de gem eerst alles in-memory verzamelt. Voorbeeld:
Response-parsing
Zaptec::ArchivedSessionexposeert:start_date_time,end_date_time,recognized_date_timeid,external_id,charger_id,device_id,device_name,token_name,charger_firmware_versionoffline?,reliable_clock?,stopped_by_rfid?,signed?,voided?,aborted?,ocpp_native?,externally_abandoned?replaced_by_session_idvoor voided-en-vervangen sessiesauthorized_user(id,email,full_name) als de sessie door een gebruiker was geauthenticeerdsession_signature(OCMF) ensession_signature_eichrecht(raw OCMF-payloads)Energie — twee representaties
De API biedt energie op twee manieren en de gem exposeert beide expliciet:
energy_kwh(Float) — totale energie geleverd in de sessieenergy_details(Array<ArchivedSessionEnergyPoint>) — per-interval delta in kWh per uurbucket, met eindtijd van het interval. De Zaptec swagger noemt dit "cumulative" maar in de praktijk zijn het intervalwaardes (som van deze deltas =energy_kwh)meter_readings(Array<Zaptec::MeterReading>) — cumulatieve meterstand (kWh) uit de OCMF-signedsession_signature. Monotoon oplopend, geverifieerd door de meter. Gebruik deze wanneer je de echte meterstand op een tijdstip nodig hebt (bv. voor sub-billing of transparantie-eisen).Zaptec::MeterReadingheeft nu eenparse_allclass-method die alle OCMF-readings uit een payload teruggeeft (voorheen alleenparse= de eerste).Validatie
Precies één van
installation_idofcharger_idis verplicht (per Zaptec-spec). AndersZaptec::Errors::ParameterMissing.fromentozijn keyword-required.Ontbrekende optionele velden worden veilig
nil/[]/false(getest).