Meter Values¶
MeterValuesRequest¶
Topic: josev/cs. Used by Josev to request meter values from the CS. |
|||
type |
object |
||
properties |
|||
|
type |
string |
|
format |
uuid |
||
|
const |
meter_values |
|
|
const |
request |
|
|
type |
object |
|
properties |
|||
|
type |
string |
|
|
type |
string |
|
pattern |
^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d{1,3})?([Zz]|([+-])\d{2}:\d{2})?$ |
||
format |
date-time |
Used by Josev to request a meter value from the CS. The evse_id field is optional. This will be omitted only when the meter value associated with the entire charging station is expected. The time when the meter value should be read is indicated by the timestamp field.
Example:
{
"id": "005e4e77-3cd9-4f98-a433-a11c98c13e50",
"name": "meter_values",
"type": "request",
"data": {
"timestamp": "2021-11-10T14:29:37Z", # UTC time in ISO 8061 format,
"evse_id": "GB*SEV*E123456789", # [Optional] - when omitted, meter value for entire CS is expected (evse_id=0 use case in OCPP)
}
}
MeterValuesResponse¶
Topic: cs/josev. Used by CS to respond to the meter values request from Josev. |
|||||
type |
object |
||||
properties |
|||||
|
type |
string |
|||
format |
uuid |
||||
|
const |
meter_values |
|||
|
const |
response |
|||
|
type |
object |
|||
properties |
|||||
|
type |
string |
|||
|
type |
string |
|||
pattern |
^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d{1,3})?([Zz]|([+-])\d{2}:\d{2})?$ |
||||
format |
date-time |
||||
|
type |
object |
|||
properties |
|||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
object |
|||
properties |
|||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
maximum |
1 |
||||
minimum |
0 |
||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
array |
|||
items |
type |
object |
|||
properties |
|||||
|
enum |
Current.Export, Current.Import, Current.Offered, Energy.Active.Export.Register, Energy.Active.Import.Register, Energy.Reactive.Export.Register, Energy.Reactive.Import.Register, Energy.Active.Export.Interval, Energy.Active.Import.Interval, Energy.Active.Net, Energy.Reactive.Export.Interval, Energy.Reactive.Import.Interval, Energy.Reactive.Net, Energy.Apparent.Net, Energy.Apparent.Import, Energy.Apparent.Export, Frequency, Power.Active.Export, Power.Active.Import, Power.Factor, Power.Offered, Power.Reactive.Export, Power.Reactive.Import, SoC, Voltage |
|||
|
type |
string |
|||
maxLength |
2500 |
||||
|
type |
string |
|||
maxLength |
50 |
||||
|
type |
string |
|||
maxLength |
50 |
||||
|
type |
string |
|||
maxLength |
2500 |
Response used by the CS for returning the meter readings collected at the time specified in the request.
Example:
{
"id": "005e4e77-3cd9-4f98-a433-a11c98c13e50",
"name": "meter_values",
"type": "response",
"data": {
"evse_id": "GB*SEV*E123456789", # [Optional] - Required when the request is for a specific EVSE. This may be omitted only when the meter value for the entire CS is returned.
"timestamp": "2021-11-10T14:29:37Z", # UTC time in ISO 8061 format
"voltage": {"l1": 230, "l2": 230, "l3": 230}, # in V and required
"current": {"l1": 100, "l2": 100, "l3": 100}, # in A and required
"power_factor": 0.98, # value between 0 and 1
"dc_current": 100, # A [Optional]
"dc_voltage": 500, # V [Optional]
"frequency": 50, # Hz
"total_active_energy_imported": 4000, # Wh
"total_active_energy_exported": 3000, # Wh [Optional]
"total_reactive_energy_imported": 3000, # varh
"total_reactive_energy_exported": 2000, # varh [Optional]
"soc": 75, # [Optional]
"signed_meter_values":[
{
"measurand": "Energy.Active.Import.Register",
"signed_meter_data": "YW55ZGF0YQ==", # Base64 encoded
"signing_method": "any_signing_method", # Method used to create the digital signature
"encoding_method": "any_encoding_method", # Method used to encode the meter values before applying the digital signature algorithm.
"public_key": "bXlwdWJsaWNrZXkK" # Base64 encoded. Depends on config variable 'PublicKeyWithSignedMeterValue'.
},
{
"measurand": "SoC",
"signed_meter_data": "BAC5ZGF0TH==",
"signing_method": "any_signing_method",
"encoding_method": "any_encoding_method",
"public_key": "bhjYRBjjgfkjllk"
}
]
}
}
MeterValuesUpdate¶
Topic: cs/josev. Used by CS to forward meter values to Josev. |
|||||
type |
object |
||||
properties |
|||||
|
type |
string |
|||
format |
uuid |
||||
|
const |
meter_values |
|||
|
const |
update |
|||
|
type |
object |
|||
properties |
|||||
|
type |
string |
|||
|
type |
string |
|||
pattern |
^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d{1,3})?([Zz]|([+-])\d{2}:\d{2})?$ |
||||
format |
date-time |
||||
|
type |
object |
|||
properties |
|||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
object |
|||
properties |
|||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
maximum |
1 |
||||
minimum |
0 |
||||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
number |
|||
|
type |
array |
|||
items |
type |
object |
|||
properties |
|||||
|
enum |
Current.Export, Current.Import, Current.Offered, Energy.Active.Export.Register, Energy.Active.Import.Register, Energy.Reactive.Export.Register, Energy.Reactive.Import.Register, Energy.Active.Export.Interval, Energy.Active.Import.Interval, Energy.Active.Net, Energy.Reactive.Export.Interval, Energy.Reactive.Import.Interval, Energy.Reactive.Net, Energy.Apparent.Net, Energy.Apparent.Import, Energy.Apparent.Export, Frequency, Power.Active.Export, Power.Active.Import, Power.Factor, Power.Offered, Power.Reactive.Export, Power.Reactive.Import, SoC, Voltage |
|||
|
type |
string |
|||
maxLength |
2500 |
||||
|
type |
string |
|||
maxLength |
50 |
||||
|
type |
string |
|||
maxLength |
50 |
||||
|
type |
string |
|||
maxLength |
2500 |
When evse_id is omitted, the meter value for the entire station is expected.
Example:
{
"id": "005e4e77-3cd9-4f98-a433-a11c98c13e50",
"name": "meter_values",
"type": "update",
"data": {
"evse_id": "GB*SEV*E123456789", # [Optional]
"timestamp": "2021-11-10T14:29:37Z", # UTC time in ISO 8061 format
"voltage": {"l1": 230, "l2": 230, "l3": 230}, # in V and required
"current": {"l1": 100, "l2": 100, "l3": 100}, # in A and required
"power_factor": 0.98, # value between 0 and 1
"dc_current": 100, # A [Optional]
"dc_voltage": 500, # V [Optional]
"frequency": 50, # Hz
"total_active_energy_imported": 4000, # Wh
"total_active_energy_exported": 3000, # Wh [Optional]
"total_reactive_energy_imported": 3000, # varh
"total_reactive_energy_exported": 2000, # varh [Optional]
"soc": 75, # [Optional]
"signed_meter_values":[
{
"measurand": "Energy.Active.Import.Register",
"signed_meter_data": "YW55ZGF0YQ==", # Base64 encoded
"signing_method": "any_signing_method", # Method used to create the digital signature
"encoding_method": "any_encoding_method", # Method used to encode the meter values before applying the digital signature algorithm.
"public_key": "bXlwdWJsaWNrZXkK" # Base64 encoded. Depends on config variable 'PublicKeyWithSignedMeterValue'.
},
{
"measurand": "SoC",
"signed_meter_data": "BAC5ZGF0TH==",
"signing_method": "any_signing_method",
"encoding_method": "any_encoding_method",
"public_key": "bhjYRBjjgfkjllk"
}
]
}
}
Important note about total_active_energy measurand.
OCPP has two types of measurands: - Energy.Active.Import.Register - is the total energy imported since the commission of a station (same as the meter at our homes). This value should always be an increasing one and it is not supposed to decrease.
Energy.Active.Import.Interval - reports only the accumulated energy imported during the ongoing charging session.
When sending active energy import related readings, JOSEV expects Energy.Active.Import.Register to be sent.