Skip to main content

EV Expert firmware bugs

Bavíme se o nabíječce s firmwarem:

[2,"08ebecb3-491b-4d2e-9aac-1bb60aed33da","BootNotification",{"chargePointVendor":"EV Expert","chargePointModel":"EVECUBE 2C Wallbox |","chargePointSerialNumber":"202100400028","firmwareVersion":"1.0.4;2.4.0","iccid":"iccid","imsi":"imsi","meterType":"MID SDM72DR","meterSerialNumber":""}]

Konfigurace

Konfigurace nabíječky vrací (jen sémanticky, ne syntakticky):

{
    "readonly": {
        "NumberOfConnectors": "2",
        "SupportedFeatureProfiles": "Core,RemoteTrigger"
    },
    "readwrite": {
        "HeartbeatInterval": "100",
        "ChargingProfileRefreshInterval": "60",
        "LocalPreAuthorize": "false",
        "MeterValueSampleInterval": "60",
        "WebSocketPingInterval": "0",
        "LocalAuthListEnabled": "true",
        "ForcePhaseCharging": "0",
        "DefaultTransactionIdTag": "server_auth",
        "MaxCurrent": "32",
        "MaxCurrent_1": "32",
        "MaxCurrent_2": "32",
        "MaxCurrent_3": "32",
        "MaxCurrent_4": "32",
        "MaxCurrentNet": "0",
        "NetTotalMaxPerPhase": "0",
        "MaxDefaultCurrent": "32",
        "MessageDeliveryCheckInterval": "60",
        "OcppUrl": "ws://ocpp.unichargepay.eu:9000/4781726474586",
        "OcppTimeFormat": "yyyy-MM-dd'T'HH:mm:ssXXX",
        "OcppBasicAuthEnabled": "false",
        "OcppUsername": null,
        "OcppPassword": null,
        "LocalConfigAuthAdminOnly": "true",
        "ServerAuthorizeEnabled": "true",
        "HdoEnableOnly": "false",
        "RfidWiegandFormat": "WIEGAND34",
        "RfidWiegandEndianess": "LITTLE",
        "RfidNumberFormat": "HEX",
        "SelectedPlanType": "CONNECTOR_AVAILABILITY_SWITCH"
    }
}

Chybí zde vlastnost MeterValuesSampledData přes kterou bychom si mohli říct, které hodnoty, chceme reportovat. Ostatní nabíječky mají. My si chceme říct o výkon (hodnota Power.Active.Import), ale nemáme jak.

MeterValues -- Current.Export

Posílané MeterValues vypadají takhle:

{
  "connectorId": 1,
  "transactionId": 1,
  "meterValue": [
    {
      "timestamp": "2025-07-15T14:07:10Z",
      "sampledValue": [
        {
          "value": "232.099999999999994315658113919198513031005859375",
          "context": "Sample.Periodic",
          "format": "Raw",
          "measurand": "Voltage",
          "location": "Outlet",
          "unit": "V"
        },
        {
          "value": "49.30000000000000426325641456060111522674560546875",
          "context": "Sample.Periodic",
          "format": "Raw",
          "measurand": "Current.Export",
          "location": "Outlet",
          "unit": "A"
        },
        {
          "value": "21879",
          "context": "Sample.Periodic",
          "format": "Raw",
          "measurand": "Energy.Active.Import.Register",
          "location": "Outlet",
          "unit": "Wh"
        }
      ]
    }
  ]
}

Vypadá to, že výkon bychom měli být schopni dopočítat z napětí (Volty) a proudu (Ampéry) prostým součinem. Jenomže nabíječka (nejspíš) hlásí proud jdoucí do auta jako Current.Export - to podle specifikace je ale proud, který auto posílá do sítě. Hodnota proudu, která jde do auta by měla být pod klíčem Current.Import. Takový hack, kdy budeme násobit proud jdoucí z auta do sítě napětím nabíječky, jenom proto, abychom získali výkon, kterým se auto nabíjí, nechceme do našeho softwaru dělat. Je to principielně špatně.