positive?: boolean
postProcess?: (value: string, ctx: { chargingStation: ChargingStation }) => string
rebootRequired?: boolean
+ /**
+ * Whether this variable is required per OCPP 2.0.1 spec (dm_components_vars.csv Required? column).
+ * When true, a missing configuration key with no default triggers an error;
+ * when false or omitted (default), it triggers a warning.
+ */
+ required?: boolean
supportedAttributes: AttributeEnumType[]
supportsTarget?: boolean
unit?: OCPP20UnitEnumType
min: 1,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: 'Interval',
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Measurands',
},
min: 1,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: 'TxEndedInterval',
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxEndedMeasurands,
},
description: 'Whether remote start requires authorization.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.AuthorizeRemoteStart as string,
},
description: 'Start transaction offline for locally authorized identifiers.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.LocalAuthorizeOffline as string,
},
description: 'Start transaction locally without waiting for CSMS authorization.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.LocalPreAuthorize as string,
},
description: 'Component exists (ChargingStation level).',
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Available',
},
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'SupplyPhases',
},
enumeration: ['Operative', 'Inoperative'],
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20DeviceInfoVariableName.AvailabilityState as string,
},
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20OptionalVariableName.WebSocketPingInterval as string,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.ChargingStation as string,
dynamicValueResolver: () => new Date().toISOString(),
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.DateTime as string,
},
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TimeSource as string,
},
positive: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage as string,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.DeviceDataCtrlr as string,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage as string,
},
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage as string,
},
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage as string,
},
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ItemsPerMessage as string,
},
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ItemsPerMessage as string,
},
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ItemsPerMessage as string,
},
enumeration: ['Operative', 'Inoperative'],
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20DeviceInfoVariableName.AvailabilityState,
},
description: 'Component exists',
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Available',
},
description: 'The maximum power that this EVSE can provide and instantaneous power',
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual, AttributeEnumType.MaxSet],
supportsTarget: false,
unit: OCPP20UnitEnumType.WATT,
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'SupplyPhases',
},
'If this variable is true, then Charging Station will try to validate a contract certificate when it is offline',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'ContractValidationOffline',
},
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage,
},
min: 0,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Entries',
},
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ItemsPerMessage,
},
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.BytesPerMessage,
},
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ItemsPerMessage,
},
enumeration: ['HTTP', 'HTTPS', 'FTP', 'FTPS', 'SFTP'],
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.FileTransferProtocols as string,
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20RequiredVariableName.MessageAttemptInterval as string,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.MessageAttempts as string,
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20RequiredVariableName.MessageTimeout as string,
enumeration: ['1', '2', '3'],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.NetworkConfigurationPriority as string,
},
min: 1,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.NetworkProfileConnectionAttempts as string,
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20RequiredVariableName.OfflineThreshold as string,
min: 0,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.ResetRetries as string,
},
description: 'Unlock cable when unplugged at EV side.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.UnlockOnEVSideDisconnect as string,
},
min: 1,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: 'TxEndedInterval',
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.AMP,
variable: OCPP20MeasurandEnumType.CURRENT_IMPORT,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.SampledDataCtrlr as string,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.WATT_HOUR,
variable: OCPP20MeasurandEnumType.ENERGY_ACTIVE_IMPORT_REGISTER,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.SampledDataCtrlr as string,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.WATT,
variable: OCPP20MeasurandEnumType.POWER_ACTIVE_IMPORT,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.SampledDataCtrlr as string,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.VOLT,
variable: OCPP20MeasurandEnumType.VOLTAGE,
+ vendorSpecific: true,
},
[buildRegistryKey(
OCPP20ComponentName.SampledDataCtrlr as string,
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxEndedMeasurands as string,
},
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxStartedMeasurands as string,
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Volatile,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20RequiredVariableName.TxUpdatedInterval as string,
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxUpdatedMeasurands as string,
},
min: 0,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.CertificateEntries as string,
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
rebootRequired: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.OrganizationName as string,
},
persistence: PersistenceEnumType.Persistent,
positive: true,
rebootRequired: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.SecurityProfile as string,
},
min: 0,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Volatile,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Entries',
},
min: 0.0,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.PERCENT,
variable: 'LimitChangeSignificance',
min: 1,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'PeriodsPerSchedule',
},
min: 0,
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'ProfileStackLevel',
},
enumeration: ['A', 'W'],
mutability: MutabilityEnumType.ReadOnly,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'RateUnit',
},
maxLength: 3,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'Currency',
},
maxLength: 512,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'TariffFallbackMessage',
},
maxLength: 512,
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: 'TotalCostFallbackMessage',
},
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
positive: true,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
unit: OCPP20UnitEnumType.SECONDS,
variable: OCPP20RequiredVariableName.EVConnectionTimeOut as string,
description: 'Deauthorize transaction when cable unplugged at EV.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.StopTxOnEVSideDisconnect as string,
},
description: 'Deauthorize transaction on invalid id token status.',
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.StopTxOnInvalidId as string,
},
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxStartPoint as string,
},
],
mutability: MutabilityEnumType.ReadWrite,
persistence: PersistenceEnumType.Persistent,
+ required: true,
supportedAttributes: [AttributeEnumType.Actual],
variable: OCPP20RequiredVariableName.TxStopPoint as string,
},