OcppBridge Changelog

πŸ“… 2025-06-04

πŸ”§ Improvement – Standards-Compliant Preparing Status on RFID Scan

  • Improved OCPP compliance for session initiation:A StatusNotification with the status Preparing is now sent immediately after RFID is scanned, even before the cable is inserted. This change ensures that the charger behavior aligns with the OCPP specification.
  • πŸ›  Firmware Required: Yes
  • βš™οΈ Behavior on Older Firmware:
    • The Preparing status is sent only after the cable is inserted, even if RFID was scanned earlier.

πŸ“… 2025-06-03

✨ New Feature – Finishing StatusNotification Support (Pro Only)

  • Improved state reporting after charging ends:Pro chargers now send a StatusNotification with the status Finishing once charging has completed but the connector is still plugged in. This provides clearer session state information and ensures better alignment with the OCPP specification.
  • πŸ›  Firmware Required: Yes
  • ➑️ Available on: Pro chargers only
  • βš™οΈ Behavior on Older Firmware:
    • The Finishing status is not sent at all.

✨ New Feature – Signed Session in StopTransaction (Eichrecht Only)

  • Enhanced transaction integrity for Eichrecht-compliant chargers:For Eichrecht-compliant chargers, the StopTransaction message now includes a signed session, adding cryptographic verification to session data.
  • πŸ›  Firmware Required: Yes
  • ➑️ Minimum Pro Firmware: >=6.0.0.0
  • βš™οΈ Behavior on Older Firmware:
    • The StopTransaction message will not include a signed session.

πŸ”§ Improvement – Use FirstAuthenticatedDateTime as Transaction Start

  • Improved transaction start accuracy:The start time of an OCPP transaction will now be determined by the earliest of two events: the time of the first successful authentication or the time the car is connected. This ensures a more precise and representative transaction start time.
  • πŸ›  Firmware Required: Yes
  • ➑️ Minimum Go Firmware: >=2.4.1.0
  • ➑️ Minimum Pro Firmware: >=5.6.0.0 (excluding 6.0.x.x)
  • βš™οΈ Behavior on Older Firmware:
    • The transaction start time is based solely on the time the car is connected.

πŸ“… 2025-06-02

πŸ”§ Improvement – Group Sampled Values by Timestamp in MeterValues

  • More efficient and structured metering data:MeterValues messages will now group sampled values that share the same timestamp, improving clarity in data representation. This change enhances how data is structured without altering its content.

πŸ›  Firmware Required: No

Expand this section to see the new MeterValues structure.
{
    "type": 2,
    "id": "9f8bd3b9-2517-4944-a5cb-8f8948a44dd3",
    "action": "MeterValues",
    "payload": {
        "connectorId": 1,
        "transactionId": 3004,
        "meterValue": [
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0",
                        "context": "Trigger",
                        "measurand": "Power.Active.Import",
                        "unit": "W"
                    },
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Energy.Active.Import.Register",
                        "unit": "kWh"
                    },
                    {
                        "value": "1380",
                        "context": "Trigger",
                        "measurand": "Power.Offered",
                        "unit": "W"
                    },
                    {
                        "value": "0.1033",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L1-N",
                        "unit": "A"
                    },
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L2-N",
                        "unit": "A"
                    },
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L3-N",
                        "unit": "A"
                    }
                ]
            }
        ]
    }
}
Expand this section to see the old MeterValues structure.
{
    "type": 2,
    "id": "9f8bd3b9-2517-4944-a5cb-8f8948a44dd3",
    "action": "MeterValues",
    "payload": {
        "connectorId": 1,
        "transactionId": 3004,
        "meterValue": [
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0",
                        "context": "Trigger",
                        "measurand": "Power.Active.Import",
                        "unit": "W"
                    }
                ]
            },
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Energy.Active.Import.Register",
                        "unit": "kWh"
                    }
                ]
            },
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "1380",
                        "context": "Trigger",
                        "measurand": "Power.Offered",
                        "unit": "W"
                    }
                ]
            },
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0.1033",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L1-N",
                        "unit": "A"
                    }
                ]
            },
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L2-N",
                        "unit": "A"
                    }
                ]
            },
            {
                "timestamp": "2025-01-14T11:43:08.5818115Z",
                "sampledValue": [
                    {
                        "value": "0.0",
                        "context": "Trigger",
                        "measurand": "Current.Import",
                        "phase": "L3-N",
                        "unit": "A"
                    }
                ]
            }
        ]
    }
}

πŸ“… 2025-03-19

✨ New Feature

  • TriggerBootNotification via TriggerMessage
    • Dynamic Heartbeat control enabled:
      The TriggerMessage command has been extended to support triggering a BootNotification message from the charger. This can be used to apply configuration changes such as updates to the Heartbeat interval.
    • πŸ›  Firmware Required: No
    • βš™οΈ Behavior on Older Firmware:
      • Fully supported – no update required.

πŸ“… 2025-02-26

✨ New Feature

  • Trigger Heartbeat via TriggerMessage
    • ExtendedTriggerMessage functionality:
      The TriggerMessage command now supports triggering a Heartbeat message from the charger, enabling remote status checks.
    • πŸ›  Firmware Required: No
    • βš™οΈ Behavior on Older Firmware:
      • Fully supported – no update required.

πŸ“… 2024-12-02

✨ New Feature

  • MeterValuesSampledData in GetConfiguration
    • Read-only visibility into sampled data configuration:
      The GetConfiguration command now includes the MeterValuesSampledData key. This key is marked as read-only and provides insight into the sampling configuration.
    • πŸ›  Firmware Required: No
    • βš™οΈ Behavior on Older Firmware:
      • Fully supported – no update required.

✨ New Feature

  • Configurable ConnectionTimeOut
    • Editable timeout configuration with firmware update:
      The ConnectionTimeOut key has been added to both GetConfiguration and ChangeConfiguration commands.

      • With updated firmware, the key is read/write, allowing full configuration.
      • Without firmware update, only GetConfiguration is available and returns a fixed value of 10 seconds.
    • πŸ›  Firmware Required: Yes

    • ➑️ Minimum Pro Firmware: >=5.3.0.15

    • βš™οΈ Behavior on Older Firmware:

      • The ConnectionTimeOut key is read-only and fixed at 10 seconds.

πŸ“… 2024-10-22

✨ New Feature

  • Public Key via GetConfiguration (Eichrecht Only)
    • Expose charger public key for Eichrecht-compliant chargers:
      The GetConfiguration command now returns the charger's public key using the configurationKey MeterPublicKey1. This feature is only available on chargers that are Eichrecht compliant.
    • πŸ›  Firmware Required: Yes
    • ➑️ Minimum Pro Firmware: >=6.0.0.0
    • βš™οΈ Behavior on Older Firmware:
      • The public key will not be returned.

πŸ“… 2024-10-10

✨ New Feature

  • Eichrecht Configuration Keys in GetConfiguration
    • Support for advanced signature configuration:
      The GetConfiguration command now returns six new keys for Eichrecht-compliant chargers: StopTransactionSignatureFormat, SampledDataSignReadings, AlignedDataSignReadings, SampledDataSignStartReadings, AlignedDataSignUpdatedReadings, and SampledDataSignUpdatedReadings.
    • πŸ›  Firmware Required: Yes
    • ➑️ Minimum Pro Firmware: >=6.0.0.0
    • βš™οΈ Behavior on Older Firmware:
      • Not applicable – these keys are only available on supported Eichrecht-compliant chargers.

πŸ“… 2024-08-20

πŸ”§ Improvement

  • Improved Soft Reset Behavior
    • Standards-compliant message handling:
      The Soft Reset process has been improved for Pro chargers. OcppBridge now ensures the correct sequence of statuses and messages, fully aligned with the OCPP 1.6 standard.
    • πŸ›  Firmware Required: Yes
    • ➑️ Minimum Pro Firmware: >=5.3.0.15
    • βš™οΈ Behavior on Older Firmware:
      • Statuses and messages may arrive in the wrong order.

πŸ”§ Improvement

  • Improved Unlock Functionality
    • OCPP-compliant unlock behavior:
      Unlock operations now follow the OCPP 1.6 standard, ensuring more reliable and predictable behavior for Pro chargers.
    • πŸ›  Firmware Required: Yes
    • ➑️ Minimum Pro Firmware: >=5.2.4.3
    • βš™οΈ Behavior on Older Firmware:
      • Statuses and messages may arrive in the wrong order.

πŸ“… 2024-08-05

✨ New Feature

  • OCPP TriggerMessage Support
    • TriggerMessage Command (OCPP):
      You can now remotely trigger specific messages from the charging station to the central system using the OCPP TriggerMessage command. πŸ‘‰ Read more with examples

πŸ“… 2024-07-18

✨ New Feature

  • Trigger MeterValues via TriggerMessage
    • ExtendedTriggerMessage support:The TriggerMessage command now allows triggering a MeterValues message from the charger, enabling more flexible data collection.
    • πŸ›  Firmware Required: No
    • βš™οΈ Behavior on Older Firmware:
      • Fully supported – no update required.

πŸ”§ Improvement

  • Aligned Meter Values Timestamps
    • Improved timestamp accuracy inMeterValues:OcppBridge now aligns meter values timestamps using the last reading timestamp, ensuring accurate reporting.
      Previously, the timestamp used was the last changed timestamp, which could lead to inconsistencies.
    • πŸ›  Firmware Required: No
    • βš™οΈ Behavior on Older Firmware:
      • Fully supported – no update required.

πŸ“… 2023-09-25

✨ New Feature

  • Charger Identity Support

πŸ“… 2023-06-06

πŸ› Bug Fix

  • ChangeAvailability Handling
    • ChangeAvailability Handling:
      Fixed a bug related to how Zaptec OCPP handled the ChangeAvailability command.

πŸ“… 2023-03-01

✨ New Feature

  • Reservation Profile Support
    • OCPP Reservation Feature Profile:
      Zaptec now supports the Reservation profile in OCPP. πŸ‘‰ More details