UNPKG

typed-ocpp

Version:

A library for type-aware parsing, serialization and validation of OCPP 1.6, OCPP 2.0 and OCPP 2.1 messages

1,361 lines 70.6 kB
export interface CustomDataType { vendorId: string; [k: string]: unknown; } export type GenericStatusEnumType = "Accepted" | "Rejected"; export interface StatusInfoType { reasonCode: string; additionalInfo?: string; customData?: CustomDataType; } export interface PeriodicEventStreamParamsType { interval?: number; values?: number; customData?: CustomDataType; } export type HashAlgorithmEnumType = "SHA256" | "SHA384" | "SHA512"; export interface AdditionalInfoType { additionalIdToken: string; type: string; customData?: CustomDataType; } export interface IdTokenType { additionalInfo?: AdditionalInfoType[]; idToken: string; type: string; customData?: CustomDataType; } export interface OCSPRequestDataType { hashAlgorithm: HashAlgorithmEnumType; issuerNameHash: string; issuerKeyHash: string; serialNumber: string; responderURL: string; customData?: CustomDataType; } export type AuthorizationStatusEnumType = "Accepted" | "Blocked" | "ConcurrentTx" | "Expired" | "Invalid" | "NoCredit" | "NotAllowedTypeEVSE" | "NotAtThisLocation" | "NotAtThisTime" | "Unknown"; export type AuthorizeCertificateStatusEnumType = "Accepted" | "SignatureError" | "CertificateExpired" | "CertificateRevoked" | "NoCertificateAvailable" | "CertChainError" | "ContractCancelled"; export type DayOfWeekEnumType = "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday"; export type EnergyTransferModeEnumType = "AC_single_phase" | "AC_two_phase" | "AC_three_phase" | "DC" | "AC_BPT" | "AC_BPT_DER" | "AC_DER" | "DC_BPT" | "DC_ACDP" | "DC_ACDP_BPT" | "WPT"; export type EvseKindEnumType = "AC" | "DC"; export type MessageFormatEnumType = "ASCII" | "HTML" | "URI" | "UTF8" | "QRCODE"; export interface IdTokenInfoType { status: AuthorizationStatusEnumType; cacheExpiryDateTime?: string; chargingPriority?: number; groupIdToken?: IdTokenType; language1?: string; language2?: string; evseId?: number[]; personalMessage?: MessageContentType; customData?: CustomDataType; } export interface MessageContentType { format: MessageFormatEnumType; language?: string; content: string; customData?: CustomDataType; } export interface PriceType { exclTax?: number; inclTax?: number; taxRates?: TaxRateType[]; customData?: CustomDataType; } export interface TariffConditionsFixedType { startTimeOfDay?: string; endTimeOfDay?: string; dayOfWeek?: DayOfWeekEnumType[]; validFromDate?: string; validToDate?: string; evseKind?: EvseKindEnumType; paymentBrand?: string; paymentRecognition?: string; customData?: CustomDataType; } export interface TariffConditionsType { startTimeOfDay?: string; endTimeOfDay?: string; dayOfWeek?: DayOfWeekEnumType[]; validFromDate?: string; validToDate?: string; evseKind?: EvseKindEnumType; minEnergy?: number; maxEnergy?: number; minCurrent?: number; maxCurrent?: number; minPower?: number; maxPower?: number; minTime?: number; maxTime?: number; minChargingTime?: number; maxChargingTime?: number; minIdleTime?: number; maxIdleTime?: number; customData?: CustomDataType; } export interface TariffEnergyPriceType { priceKwh: number; conditions?: TariffConditionsType; customData?: CustomDataType; } export interface TariffEnergyType { prices: TariffEnergyPriceType[]; taxRates?: TaxRateType[]; customData?: CustomDataType; } export interface TariffFixedPriceType { conditions?: TariffConditionsFixedType; priceFixed: number; customData?: CustomDataType; } export interface TariffFixedType { prices: TariffFixedPriceType[]; taxRates?: TaxRateType[]; customData?: CustomDataType; } export interface TariffTimePriceType { priceMinute: number; conditions?: TariffConditionsType; customData?: CustomDataType; } export interface TariffTimeType { prices: TariffTimePriceType[]; taxRates?: TaxRateType[]; customData?: CustomDataType; } export interface TariffType { tariffId: string; description?: MessageContentType[]; currency: string; energy?: TariffEnergyType; validFrom?: string; chargingTime?: TariffTimeType; idleTime?: TariffTimeType; fixedFee?: TariffFixedType; reservationTime?: TariffTimeType; reservationFixed?: TariffFixedType; minCost?: PriceType; maxCost?: PriceType; customData?: CustomDataType; } export interface TaxRateType { type: string; tax: number; stack?: number; customData?: CustomDataType; } export type BatterySwapEventEnumType = "BatteryIn" | "BatteryOut" | "BatteryOutTimeout"; export interface BatteryDataType { evseId: number; serialNumber: string; soC: number; soH: number; productionDate?: string; vendorInfo?: string; customData?: CustomDataType; } export type BootReasonEnumType = "ApplicationReset" | "FirmwareUpdate" | "LocalReset" | "PowerUp" | "RemoteReset" | "ScheduledReset" | "Triggered" | "Unknown" | "Watchdog"; export interface ChargingStationType { serialNumber?: string; model: string; modem?: ModemType; vendorName: string; firmwareVersion?: string; customData?: CustomDataType; } export interface ModemType { iccid?: string; imsi?: string; customData?: CustomDataType; } export type RegistrationStatusEnumType = "Accepted" | "Pending" | "Rejected"; export type CancelReservationStatusEnumType = "Accepted" | "Rejected"; export type CertificateSigningUseEnumType = "ChargingStationCertificate" | "V2GCertificate" | "V2G20Certificate"; export type CertificateSignedStatusEnumType = "Accepted" | "Rejected"; export type OperationalStatusEnumType = "Inoperative" | "Operative"; export interface EVSEType { id: number; connectorId?: number; customData?: CustomDataType; } export type ChangeAvailabilityStatusEnumType = "Accepted" | "Rejected" | "Scheduled"; export type TariffChangeStatusEnumType = "Accepted" | "Rejected" | "TooManyElements" | "ConditionNotSupported" | "TxNotFound" | "NoCurrencyChange"; export type ClearCacheStatusEnumType = "Accepted" | "Rejected"; export type ChargingProfilePurposeEnumType = "ChargingStationExternalConstraints" | "ChargingStationMaxProfile" | "TxDefaultProfile" | "TxProfile" | "PriorityCharging" | "LocalGeneration"; export interface ClearChargingProfileType { evseId?: number; chargingProfilePurpose?: ChargingProfilePurposeEnumType; stackLevel?: number; customData?: CustomDataType; } export type ClearChargingProfileStatusEnumType = "Accepted" | "Unknown"; export type DERControlEnumType = "EnterService" | "FreqDroop" | "FreqWatt" | "FixedPFAbsorb" | "FixedPFInject" | "FixedVar" | "Gradients" | "HFMustTrip" | "HFMayTrip" | "HVMustTrip" | "HVMomCess" | "HVMayTrip" | "LimitMaxDischarge" | "LFMustTrip" | "LVMustTrip" | "LVMomCess" | "LVMayTrip" | "PowerMonitoringMustTrip" | "VoltVar" | "VoltWatt" | "WattPF" | "WattVar"; export type DERControlStatusEnumType = "Accepted" | "Rejected" | "NotSupported" | "NotFound"; export type ClearMessageStatusEnumType = "Accepted" | "Unknown" | "Rejected"; export type TariffClearStatusEnumType = "Accepted" | "Rejected" | "NoTariff"; export interface ClearTariffsResultType { statusInfo?: StatusInfoType; tariffId?: string; status: TariffClearStatusEnumType; customData?: CustomDataType; } export type ClearMonitoringStatusEnumType = "Accepted" | "Rejected" | "NotFound"; export interface ClearMonitoringResultType { status: ClearMonitoringStatusEnumType; id: number; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface CertificateHashDataType { hashAlgorithm: HashAlgorithmEnumType; issuerNameHash: string; issuerKeyHash: string; serialNumber: string; customData?: CustomDataType; } export type CustomerInformationStatusEnumType = "Accepted" | "Rejected" | "Invalid"; export type DataTransferStatusEnumType = "Accepted" | "Rejected" | "UnknownMessageId" | "UnknownVendorId"; export type DeleteCertificateStatusEnumType = "Accepted" | "Failed" | "NotFound"; export type FirmwareStatusEnumType = "Downloaded" | "DownloadFailed" | "Downloading" | "DownloadScheduled" | "DownloadPaused" | "Idle" | "InstallationFailed" | "Installing" | "Installed" | "InstallRebooting" | "InstallScheduled" | "InstallVerificationFailed" | "InvalidSignature" | "SignatureVerified"; export type CertificateActionEnumType = "Install" | "Update"; export type Iso15118EVCertificateStatusEnumType = "Accepted" | "Failed"; export type ReportBaseEnumType = "ConfigurationInventory" | "FullInventory" | "SummaryInventory"; export type GenericDeviceModelStatusEnumType = "Accepted" | "Rejected" | "NotSupported" | "EmptyResultSet"; export type CertificateStatusSourceEnumType = "CRL" | "OCSP"; export interface CertificateStatusRequestInfoType { certificateHashData: CertificateHashDataType; source: CertificateStatusSourceEnumType; urls: string[]; customData?: CustomDataType; } export type CertificateStatusEnumType = "Good" | "Revoked" | "Unknown" | "Failed"; export interface CertificateStatusType { certificateHashData: CertificateHashDataType; source: CertificateStatusSourceEnumType; status: CertificateStatusEnumType; nextUpdate: string; customData?: CustomDataType; } export type GetCertificateStatusEnumType = "Accepted" | "Failed"; export interface ChargingProfileCriterionType { chargingProfilePurpose?: ChargingProfilePurposeEnumType; stackLevel?: number; chargingProfileId?: number[]; chargingLimitSource?: string[]; customData?: CustomDataType; } export type GetChargingProfileStatusEnumType = "Accepted" | "NoProfiles"; export type ChargingRateUnitEnumType = "W" | "A"; export type OperationModeEnumType = "Idle" | "ChargingOnly" | "CentralSetpoint" | "ExternalSetpoint" | "ExternalLimits" | "CentralFrequency" | "LocalFrequency" | "LocalLoadBalancing"; export interface ChargingSchedulePeriodType { startPeriod: number; limit?: number; limit_L2?: number; limit_L3?: number; numberPhases?: number; phaseToUse?: number; dischargeLimit?: number; dischargeLimit_L2?: number; dischargeLimit_L3?: number; setpoint?: number; setpoint_L2?: number; setpoint_L3?: number; setpointReactive?: number; setpointReactive_L2?: number; setpointReactive_L3?: number; preconditioningRequest?: boolean; evseSleep?: boolean; v2xBaseline?: number; operationMode?: OperationModeEnumType; v2xFreqWattCurve?: V2XFreqWattPointType[]; v2xSignalWattCurve?: V2XSignalWattPointType[]; customData?: CustomDataType; } export interface CompositeScheduleType { evseId: number; duration: number; scheduleStart: string; chargingRateUnit: ChargingRateUnitEnumType; chargingSchedulePeriod: ChargingSchedulePeriodType[]; customData?: CustomDataType; } export interface V2XFreqWattPointType { frequency: number; power: number; customData?: CustomDataType; } export interface V2XSignalWattPointType { signal: number; power: number; customData?: CustomDataType; } export type MessagePriorityEnumType = "AlwaysFront" | "InFront" | "NormalCycle"; export type MessageStateEnumType = "Charging" | "Faulted" | "Idle" | "Unavailable" | "Suspended" | "Discharging"; export type GetDisplayMessagesStatusEnumType = "Accepted" | "Unknown"; export type GetCertificateIdUseEnumType = "V2GRootCertificate" | "MORootCertificate" | "CSMSRootCertificate" | "V2GCertificateChain" | "ManufacturerRootCertificate" | "OEMRootCertificate"; export type GetInstalledCertificateStatusEnumType = "Accepted" | "NotFound"; export interface CertificateHashDataChainType { certificateHashData: CertificateHashDataType; certificateType: GetCertificateIdUseEnumType; childCertificateHashData?: CertificateHashDataType[]; customData?: CustomDataType; } export type LogEnumType = "DiagnosticsLog" | "SecurityLog" | "DataCollectorLog"; export interface LogParametersType { remoteLocation: string; oldestTimestamp?: string; latestTimestamp?: string; customData?: CustomDataType; } export type LogStatusEnumType = "Accepted" | "Rejected" | "AcceptedCanceled"; export type MonitoringCriterionEnumType = "ThresholdMonitoring" | "DeltaMonitoring" | "PeriodicMonitoring"; export interface ComponentType { evse?: EVSEType; name: string; instance?: string; customData?: CustomDataType; } export interface ComponentVariableType { component: ComponentType; variable?: VariableType; customData?: CustomDataType; } export interface VariableType { name: string; instance?: string; customData?: CustomDataType; } export interface ConstantStreamDataType { id: number; params: PeriodicEventStreamParamsType; variableMonitoringId: number; customData?: CustomDataType; } export type ComponentCriterionEnumType = "Active" | "Available" | "Enabled" | "Problem"; export type TariffGetStatusEnumType = "Accepted" | "Rejected" | "NoTariff"; export type TariffKindEnumType = "DefaultTariff" | "DriverTariff"; export interface TariffAssignmentType { tariffId: string; tariffKind: TariffKindEnumType; validFrom?: string; evseIds?: number[]; idTokens?: string[]; customData?: CustomDataType; } export type AttributeEnumType = "Actual" | "Target" | "MinSet" | "MaxSet"; export interface GetVariableDataType { attributeType?: AttributeEnumType; component: ComponentType; variable: VariableType; customData?: CustomDataType; } export type GetVariableStatusEnumType = "Accepted" | "Rejected" | "UnknownComponent" | "UnknownVariable" | "NotSupportedAttributeType"; export interface GetVariableResultType { attributeStatus: GetVariableStatusEnumType; attributeStatusInfo?: StatusInfoType; attributeType?: AttributeEnumType; attributeValue?: string; component: ComponentType; variable: VariableType; customData?: CustomDataType; } export type InstallCertificateUseEnumType = "V2GRootCertificate" | "MORootCertificate" | "ManufacturerRootCertificate" | "CSMSRootCertificate" | "OEMRootCertificate"; export type InstallCertificateStatusEnumType = "Accepted" | "Rejected" | "Failed"; export type UploadLogStatusEnumType = "BadMessage" | "Idle" | "NotSupportedOperation" | "PermissionDenied" | "Uploaded" | "UploadFailure" | "Uploading" | "AcceptedCanceled"; export type LocationEnumType = "Body" | "Cable" | "EV" | "Inlet" | "Outlet" | "Upstream"; export type MeasurandEnumType = "Current.Export" | "Current.Export.Offered" | "Current.Export.Minimum" | "Current.Import" | "Current.Import.Offered" | "Current.Import.Minimum" | "Current.Offered" | "Display.PresentSOC" | "Display.MinimumSOC" | "Display.TargetSOC" | "Display.MaximumSOC" | "Display.RemainingTimeToMinimumSOC" | "Display.RemainingTimeToTargetSOC" | "Display.RemainingTimeToMaximumSOC" | "Display.ChargingComplete" | "Display.BatteryEnergyCapacity" | "Display.InletHot" | "Energy.Active.Export.Interval" | "Energy.Active.Export.Register" | "Energy.Active.Import.Interval" | "Energy.Active.Import.Register" | "Energy.Active.Import.CableLoss" | "Energy.Active.Import.LocalGeneration.Register" | "Energy.Active.Net" | "Energy.Active.Setpoint.Interval" | "Energy.Apparent.Export" | "Energy.Apparent.Import" | "Energy.Apparent.Net" | "Energy.Reactive.Export.Interval" | "Energy.Reactive.Export.Register" | "Energy.Reactive.Import.Interval" | "Energy.Reactive.Import.Register" | "Energy.Reactive.Net" | "EnergyRequest.Target" | "EnergyRequest.Minimum" | "EnergyRequest.Maximum" | "EnergyRequest.Minimum.V2X" | "EnergyRequest.Maximum.V2X" | "EnergyRequest.Bulk" | "Frequency" | "Power.Active.Export" | "Power.Active.Import" | "Power.Active.Setpoint" | "Power.Active.Residual" | "Power.Export.Minimum" | "Power.Export.Offered" | "Power.Factor" | "Power.Import.Offered" | "Power.Import.Minimum" | "Power.Offered" | "Power.Reactive.Export" | "Power.Reactive.Import" | "SoC" | "Voltage" | "Voltage.Minimum" | "Voltage.Maximum"; export type PhaseEnumType = "L1" | "L2" | "L3" | "N" | "L1-N" | "L2-N" | "L3-N" | "L1-L2" | "L2-L3" | "L3-L1"; export type ReadingContextEnumType = "Interruption.Begin" | "Interruption.End" | "Other" | "Sample.Clock" | "Sample.Periodic" | "Transaction.Begin" | "Transaction.End" | "Trigger"; export interface MeterValueType { sampledValue: SampledValueType[]; timestamp: string; customData?: CustomDataType; } export interface SampledValueType { value: number; measurand?: MeasurandEnumType; context?: ReadingContextEnumType; phase?: PhaseEnumType; location?: LocationEnumType; signedMeterValue?: SignedMeterValueType; unitOfMeasure?: UnitOfMeasureType; customData?: CustomDataType; } export interface SignedMeterValueType { signedMeterData: string; signingMethod?: string; encodingMethod: string; publicKey?: string; customData?: CustomDataType; } export interface UnitOfMeasureType { unit?: string; multiplier?: number; customData?: CustomDataType; } export type NotifyAllowedEnergyTransferStatusEnumType = "Accepted" | "Rejected"; export type CostKindEnumType = "CarbonDioxideEmission" | "RelativePricePercentage" | "RenewableGenerationPercentage"; export interface AbsolutePriceScheduleType { timeAnchor: string; priceScheduleID: number; priceScheduleDescription?: string; currency: string; language: string; priceAlgorithm: string; minimumCost?: RationalNumberType; maximumCost?: RationalNumberType; priceRuleStacks: PriceRuleStackType[]; taxRules?: TaxRuleType[]; overstayRuleList?: OverstayRuleListType; additionalSelectedServices?: AdditionalSelectedServicesType[]; customData?: CustomDataType; } export interface AdditionalSelectedServicesType { serviceFee: RationalNumberType; serviceName: string; customData?: CustomDataType; } export interface ChargingLimitType { chargingLimitSource: string; isLocalGeneration?: boolean; isGridCritical?: boolean; customData?: CustomDataType; } export interface ChargingScheduleType { id: number; limitAtSoC?: LimitAtSoCType; startSchedule?: string; duration?: number; chargingRateUnit: ChargingRateUnitEnumType; minChargingRate?: number; powerTolerance?: number; signatureId?: number; digestValue?: string; useLocalTime?: boolean; chargingSchedulePeriod: ChargingSchedulePeriodType[]; randomizedDelay?: number; salesTariff?: SalesTariffType; absolutePriceSchedule?: AbsolutePriceScheduleType; priceLevelSchedule?: PriceLevelScheduleType; customData?: CustomDataType; } export interface ConsumptionCostType { startValue: number; cost: CostType[]; customData?: CustomDataType; } export interface CostType { costKind: CostKindEnumType; amount: number; amountMultiplier?: number; customData?: CustomDataType; } export interface LimitAtSoCType { soc: number; limit: number; customData?: CustomDataType; } export interface OverstayRuleListType { overstayPowerThreshold?: RationalNumberType; overstayRule: OverstayRuleType[]; overstayTimeThreshold?: number; customData?: CustomDataType; } export interface OverstayRuleType { overstayFee: RationalNumberType; overstayRuleDescription?: string; startTime: number; overstayFeePeriod: number; customData?: CustomDataType; } export interface PriceLevelScheduleEntryType { duration: number; priceLevel: number; customData?: CustomDataType; } export interface PriceLevelScheduleType { priceLevelScheduleEntries: PriceLevelScheduleEntryType[]; timeAnchor: string; priceScheduleId: number; priceScheduleDescription?: string; numberOfPriceLevels: number; customData?: CustomDataType; } export interface PriceRuleStackType { duration: number; priceRule: PriceRuleType[]; customData?: CustomDataType; } export interface PriceRuleType { parkingFeePeriod?: number; carbonDioxideEmission?: number; renewableGenerationPercentage?: number; energyFee: RationalNumberType; parkingFee?: RationalNumberType; powerRangeStart: RationalNumberType; customData?: CustomDataType; } export interface RationalNumberType { exponent: number; value: number; customData?: CustomDataType; } export interface RelativeTimeIntervalType { start: number; duration?: number; customData?: CustomDataType; } export interface SalesTariffEntryType { relativeTimeInterval: RelativeTimeIntervalType; ePriceLevel?: number; consumptionCost?: ConsumptionCostType[]; customData?: CustomDataType; } export interface SalesTariffType { id: number; salesTariffDescription?: string; numEPriceLevels?: number; salesTariffEntry: SalesTariffEntryType[]; customData?: CustomDataType; } export interface TaxRuleType { taxRuleID: number; taxRuleName?: string; taxIncludedInPrice?: boolean; appliesToEnergyFee: boolean; appliesToParkingFee: boolean; appliesToOverstayFee: boolean; appliesToMinimumMaximumCost: boolean; taxRate: RationalNumberType; customData?: CustomDataType; } export type GridEventFaultEnumType = "CurrentImbalance" | "LocalEmergency" | "LowInputPower" | "OverCurrent" | "OverFrequency" | "OverVoltage" | "PhaseRotation" | "RemoteEmergency" | "UnderFrequency" | "UnderVoltage" | "VoltageImbalance"; export interface MessageInfoType { display?: ComponentType; id: number; priority: MessagePriorityEnumType; state?: MessageStateEnumType; startDateTime?: string; endDateTime?: string; transactionId?: string; message: MessageContentType; messageExtra?: MessageContentType[]; customData?: CustomDataType; } export type ControlModeEnumType = "ScheduledControl" | "DynamicControl"; export type IslandingDetectionEnumType = "NoAntiIslandingSupport" | "RoCoF" | "UVP_OVP" | "UFP_OFP" | "VoltageVectorShift" | "ZeroCrossingDetection" | "OtherPassive" | "ImpedanceMeasurement" | "ImpedanceAtFrequency" | "SlipModeFrequencyShift" | "SandiaFrequencyShift" | "SandiaVoltageShift" | "FrequencyJump" | "RCLQFactor" | "OtherActive"; export type MobilityNeedsModeEnumType = "EVCC" | "EVCC_SECC"; export interface ACChargingParametersType { energyAmount: number; evMinCurrent: number; evMaxCurrent: number; evMaxVoltage: number; customData?: CustomDataType; } export interface ChargingNeedsType { acChargingParameters?: ACChargingParametersType; derChargingParameters?: DERChargingParametersType; evEnergyOffer?: EVEnergyOfferType; requestedEnergyTransfer: EnergyTransferModeEnumType; dcChargingParameters?: DCChargingParametersType; v2xChargingParameters?: V2XChargingParametersType; availableEnergyTransfer?: EnergyTransferModeEnumType[]; controlMode?: ControlModeEnumType; mobilityNeedsMode?: MobilityNeedsModeEnumType; departureTime?: string; customData?: CustomDataType; } export interface DCChargingParametersType { evMaxCurrent: number; evMaxVoltage: number; evMaxPower?: number; evEnergyCapacity?: number; energyAmount?: number; stateOfCharge?: number; fullSoC?: number; bulkSoC?: number; customData?: CustomDataType; } export interface DERChargingParametersType { evSupportedDERControl?: DERControlEnumType[]; evOverExcitedMaxDischargePower?: number; evOverExcitedPowerFactor?: number; evUnderExcitedMaxDischargePower?: number; evUnderExcitedPowerFactor?: number; maxApparentPower?: number; maxChargeApparentPower?: number; maxChargeApparentPower_L2?: number; maxChargeApparentPower_L3?: number; maxDischargeApparentPower?: number; maxDischargeApparentPower_L2?: number; maxDischargeApparentPower_L3?: number; maxChargeReactivePower?: number; maxChargeReactivePower_L2?: number; maxChargeReactivePower_L3?: number; minChargeReactivePower?: number; minChargeReactivePower_L2?: number; minChargeReactivePower_L3?: number; maxDischargeReactivePower?: number; maxDischargeReactivePower_L2?: number; maxDischargeReactivePower_L3?: number; minDischargeReactivePower?: number; minDischargeReactivePower_L2?: number; minDischargeReactivePower_L3?: number; nominalVoltage?: number; nominalVoltageOffset?: number; maxNominalVoltage?: number; minNominalVoltage?: number; evInverterManufacturer?: string; evInverterModel?: string; evInverterSerialNumber?: string; evInverterSwVersion?: string; evInverterHwVersion?: string; evIslandingDetectionMethod?: IslandingDetectionEnumType[]; evIslandingTripTime?: number; evMaximumLevel1DCInjection?: number; evDurationLevel1DCInjection?: number; evMaximumLevel2DCInjection?: number; evDurationLevel2DCInjection?: number; evReactiveSusceptance?: number; evSessionTotalDischargeEnergyAvailable?: number; customData?: CustomDataType; } export interface EVAbsolutePriceScheduleEntryType { duration: number; evPriceRule: EVPriceRuleType[]; customData?: CustomDataType; } export interface EVAbsolutePriceScheduleType { timeAnchor: string; currency: string; evAbsolutePriceScheduleEntries: EVAbsolutePriceScheduleEntryType[]; priceAlgorithm: string; customData?: CustomDataType; } export interface EVEnergyOfferType { evAbsolutePriceSchedule?: EVAbsolutePriceScheduleType; evPowerSchedule: EVPowerScheduleType; customData?: CustomDataType; } export interface EVPowerScheduleEntryType { duration: number; power: number; customData?: CustomDataType; } export interface EVPowerScheduleType { evPowerScheduleEntries: EVPowerScheduleEntryType[]; timeAnchor: string; customData?: CustomDataType; } export interface EVPriceRuleType { energyFee: number; powerRangeStart: number; customData?: CustomDataType; } export interface V2XChargingParametersType { minChargePower?: number; minChargePower_L2?: number; minChargePower_L3?: number; maxChargePower?: number; maxChargePower_L2?: number; maxChargePower_L3?: number; minDischargePower?: number; minDischargePower_L2?: number; minDischargePower_L3?: number; maxDischargePower?: number; maxDischargePower_L2?: number; maxDischargePower_L3?: number; minChargeCurrent?: number; maxChargeCurrent?: number; minDischargeCurrent?: number; maxDischargeCurrent?: number; minVoltage?: number; maxVoltage?: number; evTargetEnergyRequest?: number; evMinEnergyRequest?: number; evMaxEnergyRequest?: number; evMinV2XEnergyRequest?: number; evMaxV2XEnergyRequest?: number; targetSoC?: number; customData?: CustomDataType; } export type NotifyEVChargingNeedsStatusEnumType = "Accepted" | "Rejected" | "Processing" | "NoChargingProfile"; export type EventNotificationEnumType = "HardWiredNotification" | "HardWiredMonitor" | "PreconfiguredMonitor" | "CustomMonitor"; export type EventTriggerEnumType = "Alerting" | "Delta" | "Periodic"; export interface EventDataType { eventId: number; timestamp: string; trigger: EventTriggerEnumType; cause?: number; actualValue: string; techCode?: string; techInfo?: string; cleared?: boolean; transactionId?: string; component: ComponentType; variableMonitoringId?: number; eventNotificationType: EventNotificationEnumType; variable: VariableType; severity?: number; customData?: CustomDataType; } export type MonitorEnumType = "UpperThreshold" | "LowerThreshold" | "Delta" | "Periodic" | "PeriodicClockAligned" | "TargetDelta" | "TargetDeltaRelative"; export interface MonitoringDataType { component: ComponentType; variable: VariableType; variableMonitoring: VariableMonitoringType[]; customData?: CustomDataType; } export interface VariableMonitoringType { id: number; transaction: boolean; value: number; type: MonitorEnumType; severity: number; eventNotificationType: EventNotificationEnumType; customData?: CustomDataType; } export interface StreamDataElementType { t: number; v: string; customData?: CustomDataType; } export type DataEnumType = "string" | "decimal" | "integer" | "dateTime" | "boolean" | "OptionList" | "SequenceList" | "MemberList"; export type MutabilityEnumType = "ReadOnly" | "WriteOnly" | "ReadWrite"; export interface ReportDataType { component: ComponentType; variable: VariableType; variableAttribute: VariableAttributeType[]; variableCharacteristics?: VariableCharacteristicsType; customData?: CustomDataType; } export interface VariableAttributeType { type?: AttributeEnumType; value?: string; mutability?: MutabilityEnumType; persistent?: boolean; constant?: boolean; customData?: CustomDataType; } export interface VariableCharacteristicsType { unit?: string; dataType: DataEnumType; minLimit?: number; maxLimit?: number; maxElements?: number; valuesList?: string; supportsMonitoring: boolean; customData?: CustomDataType; } export type PaymentStatusEnumType = "Settled" | "Canceled" | "Rejected" | "Failed"; export interface AddressType { name: string; address1: string; address2?: string; city: string; postalCode?: string; country: string; customData?: CustomDataType; } export type PublishFirmwareStatusEnumType = "Idle" | "DownloadScheduled" | "Downloading" | "Downloaded" | "Published" | "DownloadFailed" | "DownloadPaused" | "InvalidChecksum" | "ChecksumVerified" | "PublishFailed"; export type ChargingProfileStatusEnumType = "Accepted" | "Rejected"; export interface ChargingScheduleUpdateType { limit?: number; limit_L2?: number; limit_L3?: number; dischargeLimit?: number; dischargeLimit_L2?: number; dischargeLimit_L3?: number; setpoint?: number; setpoint_L2?: number; setpoint_L3?: number; setpointReactive?: number; setpointReactive_L2?: number; setpointReactive_L3?: number; customData?: CustomDataType; } export type ChargingProfileKindEnumType = "Absolute" | "Recurring" | "Relative" | "Dynamic"; export type RecurrencyKindEnumType = "Daily" | "Weekly"; export interface ChargingProfileType { id: number; stackLevel: number; chargingProfilePurpose: ChargingProfilePurposeEnumType; chargingProfileKind: ChargingProfileKindEnumType; recurrencyKind?: RecurrencyKindEnumType; validFrom?: string; validTo?: string; transactionId?: string; maxOfflineDuration?: number; chargingSchedule: ChargingScheduleType[]; invalidAfterOfflineDuration?: boolean; dynUpdateInterval?: number; dynUpdateTime?: string; priceScheduleSignature?: string; customData?: CustomDataType; } export type DERUnitEnumType = "Not_Applicable" | "PctMaxW" | "PctMaxVar" | "PctWAvail" | "PctVarAvail" | "PctEffectiveV"; export type PowerDuringCessationEnumType = "Active" | "Reactive"; export interface DERCurveGetType { curve: DERCurveType; id: string; curveType: DERControlEnumType; isDefault: boolean; isSuperseded: boolean; customData?: CustomDataType; } export interface DERCurvePointsType { x: number; y: number; customData?: CustomDataType; } export interface DERCurveType { curveData: DERCurvePointsType[]; hysteresis?: HysteresisType; priority: number; reactivePowerParams?: ReactivePowerParamsType; voltageParams?: VoltageParamsType; yUnit: DERUnitEnumType; responseTime?: number; startTime?: string; duration?: number; customData?: CustomDataType; } export interface EnterServiceGetType { enterService: EnterServiceType; id: string; customData?: CustomDataType; } export interface EnterServiceType { priority: number; highVoltage: number; lowVoltage: number; highFreq: number; lowFreq: number; delay?: number; randomDelay?: number; rampRate?: number; customData?: CustomDataType; } export interface FixedPFGetType { fixedPF: FixedPFType; id: string; isDefault: boolean; isSuperseded: boolean; customData?: CustomDataType; } export interface FixedPFType { priority: number; displacement: number; excitation: boolean; startTime?: string; duration?: number; customData?: CustomDataType; } export interface FixedVarGetType { fixedVar: FixedVarType; id: string; isDefault: boolean; isSuperseded: boolean; customData?: CustomDataType; } export interface FixedVarType { priority: number; setpoint: number; unit: DERUnitEnumType; startTime?: string; duration?: number; customData?: CustomDataType; } export interface FreqDroopGetType { freqDroop: FreqDroopType; id: string; isDefault: boolean; isSuperseded: boolean; customData?: CustomDataType; } export interface FreqDroopType { priority: number; overFreq: number; underFreq: number; overDroop: number; underDroop: number; responseTime: number; startTime?: string; duration?: number; customData?: CustomDataType; } export interface GradientGetType { gradient: GradientType; id: string; customData?: CustomDataType; } export interface GradientType { priority: number; gradient: number; softGradient: number; customData?: CustomDataType; } export interface HysteresisType { hysteresisHigh?: number; hysteresisLow?: number; hysteresisDelay?: number; hysteresisGradient?: number; customData?: CustomDataType; } export interface LimitMaxDischargeGetType { id: string; isDefault: boolean; isSuperseded: boolean; limitMaxDischarge: LimitMaxDischargeType; customData?: CustomDataType; } export interface LimitMaxDischargeType { priority: number; pctMaxDischargePower?: number; powerMonitoringMustTrip?: DERCurveType; startTime?: string; duration?: number; customData?: CustomDataType; } export interface ReactivePowerParamsType { vRef?: number; autonomousVRefEnable?: boolean; autonomousVRefTimeConstant?: number; customData?: CustomDataType; } export interface VoltageParamsType { hv10MinMeanValue?: number; hv10MinMeanTripDelay?: number; powerDuringCessation?: PowerDuringCessationEnumType; customData?: CustomDataType; } export type RequestStartStopStatusEnumType = "Accepted" | "Rejected"; export type ReservationUpdateStatusEnumType = "Expired" | "Removed" | "NoTransaction"; export type ReserveNowStatusEnumType = "Accepted" | "Faulted" | "Occupied" | "Rejected" | "Unavailable"; export type ResetEnumType = "Immediate" | "OnIdle" | "ImmediateAndResume"; export type ResetStatusEnumType = "Accepted" | "Rejected" | "Scheduled"; export type UpdateEnumType = "Differential" | "Full"; export interface AuthorizationData { idToken: IdTokenType; idTokenInfo?: IdTokenInfoType; customData?: CustomDataType; } export type SendLocalListStatusEnumType = "Accepted" | "Failed" | "VersionMismatch"; export type TariffSetStatusEnumType = "Accepted" | "Rejected" | "TooManyElements" | "ConditionNotSupported" | "DuplicateTariffId"; export type DisplayMessageStatusEnumType = "Accepted" | "NotSupportedMessageFormat" | "Rejected" | "NotSupportedPriority" | "NotSupportedState" | "UnknownTransaction" | "LanguageNotSupported"; export type MonitoringBaseEnumType = "All" | "FactoryDefault" | "HardWiredOnly"; export type APNAuthenticationEnumType = "PAP" | "CHAP" | "NONE" | "AUTO"; export type OCPPInterfaceEnumType = "Wired0" | "Wired1" | "Wired2" | "Wired3" | "Wireless0" | "Wireless1" | "Wireless2" | "Wireless3" | "Any"; export type OCPPTransportEnumType = "SOAP" | "JSON"; export type OCPPVersionEnumType = "OCPP12" | "OCPP15" | "OCPP16" | "OCPP20" | "OCPP201" | "OCPP21"; export type VPNEnumType = "IKEv2" | "IPSec" | "L2TP" | "PPTP"; export interface APNType { apn: string; apnUserName?: string; apnPassword?: string; simPin?: number; preferredNetwork?: string; useOnlyPreferredNetwork?: boolean; apnAuthentication: APNAuthenticationEnumType; customData?: CustomDataType; } export interface NetworkConnectionProfileType { apn?: APNType; ocppVersion?: OCPPVersionEnumType; ocppInterface: OCPPInterfaceEnumType; ocppTransport: OCPPTransportEnumType; messageTimeout: number; ocppCsmsUrl: string; securityProfile: number; identity?: string; basicAuthPassword?: string; vpn?: VPNType; customData?: CustomDataType; } export interface VPNType { server: string; user: string; group?: string; password: string; key: string; type: VPNEnumType; customData?: CustomDataType; } export type SetNetworkProfileStatusEnumType = "Accepted" | "Rejected" | "Failed"; export interface SetMonitoringDataType { id?: number; periodicEventStream?: PeriodicEventStreamParamsType; transaction?: boolean; value: number; type: MonitorEnumType; severity: number; component: ComponentType; variable: VariableType; customData?: CustomDataType; } export type SetMonitoringStatusEnumType = "Accepted" | "UnknownComponent" | "UnknownVariable" | "UnsupportedMonitorType" | "Rejected" | "Duplicate"; export interface SetMonitoringResultType { id?: number; statusInfo?: StatusInfoType; status: SetMonitoringStatusEnumType; type: MonitorEnumType; component: ComponentType; variable: VariableType; severity: number; customData?: CustomDataType; } export interface SetVariableDataType { attributeType?: AttributeEnumType; attributeValue: string; component: ComponentType; variable: VariableType; customData?: CustomDataType; } export type SetVariableStatusEnumType = "Accepted" | "Rejected" | "UnknownComponent" | "UnknownVariable" | "NotSupportedAttributeType" | "RebootRequired"; export interface SetVariableResultType { attributeType?: AttributeEnumType; attributeStatus: SetVariableStatusEnumType; attributeStatusInfo?: StatusInfoType; component: ComponentType; variable: VariableType; customData?: CustomDataType; } export type ConnectorStatusEnumType = "Available" | "Occupied" | "Reserved" | "Unavailable" | "Faulted"; export type ChargingStateEnumType = "EVConnected" | "Charging" | "SuspendedEV" | "SuspendedEVSE" | "Idle"; export type CostDimensionEnumType = "Energy" | "MaxCurrent" | "MinCurrent" | "MaxPower" | "MinPower" | "IdleTIme" | "ChargingTime"; export type PreconditioningStatusEnumType = "Unknown" | "Ready" | "NotReady" | "Preconditioning"; export type ReasonEnumType = "DeAuthorized" | "EmergencyStop" | "EnergyLimitReached" | "EVDisconnected" | "GroundFault" | "ImmediateReset" | "MasterPass" | "Local" | "LocalOutOfCredit" | "Other" | "OvercurrentFault" | "PowerLoss" | "PowerQuality" | "Reboot" | "Remote" | "SOCLimitReached" | "StoppedByEV" | "TimeLimitReached" | "Timeout" | "ReqEnergyTransferRejected"; export type TariffCostEnumType = "NormalCost" | "MinCost" | "MaxCost"; export type TransactionEventEnumType = "Ended" | "Started" | "Updated"; export type TriggerReasonEnumType = "AbnormalCondition" | "Authorized" | "CablePluggedIn" | "ChargingRateChanged" | "ChargingStateChanged" | "CostLimitReached" | "Deauthorized" | "EnergyLimitReached" | "EVCommunicationLost" | "EVConnectTimeout" | "EVDeparted" | "EVDetected" | "LimitSet" | "MeterValueClock" | "MeterValuePeriodic" | "OperationModeChanged" | "RemoteStart" | "RemoteStop" | "ResetCommand" | "RunningCost" | "SignedDataReceived" | "SoCLimitReached" | "StopAuthorized" | "TariffChanged" | "TariffNotAccepted" | "TimeLimitReached" | "Trigger" | "TxResumed" | "UnlockCommand"; export interface ChargingPeriodType { dimensions?: CostDimensionType[]; tariffId?: string; startPeriod: string; customData?: CustomDataType; } export interface CostDetailsType { chargingPeriods?: ChargingPeriodType[]; totalCost: TotalCostType; totalUsage: TotalUsageType; failureToCalculate?: boolean; failureReason?: string; customData?: CustomDataType; } export interface CostDimensionType { type: CostDimensionEnumType; volume: number; customData?: CustomDataType; } export interface TotalCostType { currency: string; typeOfCost: TariffCostEnumType; fixed?: PriceType; energy?: PriceType; chargingTime?: PriceType; idleTime?: PriceType; reservationTime?: PriceType; reservationFixed?: PriceType; total: TotalPriceType; customData?: CustomDataType; } export interface TotalPriceType { exclTax?: number; inclTax?: number; customData?: CustomDataType; } export interface TotalUsageType { energy: number; chargingTime: number; idleTime: number; reservationTime?: number; customData?: CustomDataType; } export interface TransactionLimitType { maxCost?: number; maxEnergy?: number; maxTime?: number; maxSoC?: number; customData?: CustomDataType; } export interface TransactionType { transactionId: string; chargingState?: ChargingStateEnumType; timeSpentCharging?: number; stoppedReason?: ReasonEnumType; remoteStartId?: number; operationMode?: OperationModeEnumType; tariffId?: string; transactionLimit?: TransactionLimitType; customData?: CustomDataType; } export type MessageTriggerEnumType = "BootNotification" | "LogStatusNotification" | "FirmwareStatusNotification" | "Heartbeat" | "MeterValues" | "SignChargingStationCertificate" | "SignV2GCertificate" | "SignV2G20Certificate" | "StatusNotification" | "TransactionEvent" | "SignCombinedCertificate" | "PublishFirmwareStatusNotification" | "CustomTrigger"; export type TriggerMessageStatusEnumType = "Accepted" | "Rejected" | "NotImplemented"; export type UnlockStatusEnumType = "Unlocked" | "UnlockFailed" | "OngoingAuthorizedTransaction" | "UnknownConnector"; export type UnpublishFirmwareStatusEnumType = "DownloadOngoing" | "NoFirmware" | "Unpublished"; export interface FirmwareType { location: string; retrieveDateTime: string; installDateTime?: string; signingCertificate?: string; signature?: string; customData?: CustomDataType; } export type UpdateFirmwareStatusEnumType = "Accepted" | "Rejected" | "AcceptedCanceled" | "InvalidCertificate" | "RevokedCertificate"; export type PriorityChargingStatusEnumType = "Accepted" | "Rejected" | "NoProfile"; export interface AFRRSignalRequest { timestamp: string; signal: number; customData?: CustomDataType; } export interface AFRRSignalResponse { status: GenericStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface AdjustPeriodicEventStreamRequest { id: number; params: PeriodicEventStreamParamsType; customData?: CustomDataType; } export interface AdjustPeriodicEventStreamResponse { status: GenericStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface AuthorizeRequest { idToken: IdTokenType; certificate?: string; iso15118CertificateHashData?: OCSPRequestDataType[]; customData?: CustomDataType; } export interface AuthorizeResponse { idTokenInfo: IdTokenInfoType; certificateStatus?: AuthorizeCertificateStatusEnumType; allowedEnergyTransfer?: EnergyTransferModeEnumType[]; tariff?: TariffType; customData?: CustomDataType; } export interface BatterySwapRequest { batteryData: BatteryDataType[]; eventType: BatterySwapEventEnumType; idToken: IdTokenType; requestId: number; customData?: CustomDataType; } export interface BatterySwapResponse { customData?: CustomDataType; } export interface BootNotificationRequest { chargingStation: ChargingStationType; reason: BootReasonEnumType; customData?: CustomDataType; } export interface BootNotificationResponse { currentTime: string; interval: number; status: RegistrationStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface CancelReservationRequest { reservationId: number; customData?: CustomDataType; } export interface CancelReservationResponse { status: CancelReservationStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface CertificateSignedRequest { certificateChain: string; certificateType?: CertificateSigningUseEnumType; requestId?: number; customData?: CustomDataType; } export interface CertificateSignedResponse { status: CertificateSignedStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ChangeAvailabilityRequest { evse?: EVSEType; operationalStatus: OperationalStatusEnumType; customData?: CustomDataType; } export interface ChangeAvailabilityResponse { status: ChangeAvailabilityStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ChangeTransactionTariffRequest { tariff: TariffType; transactionId: string; customData?: CustomDataType; } export interface ChangeTransactionTariffResponse { status: TariffChangeStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ClearCacheRequest { customData?: CustomDataType; } export interface ClearCacheResponse { status: ClearCacheStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ClearChargingProfileRequest { chargingProfileId?: number; chargingProfileCriteria?: ClearChargingProfileType; customData?: CustomDataType; } export interface ClearChargingProfileResponse { status: ClearChargingProfileStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ClearDERControlRequest { isDefault: boolean; controlType?: DERControlEnumType; controlId?: string; customData?: CustomDataType; } export interface ClearDERControlResponse { status: DERControlStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ClearDisplayMessageRequest { id: number; customData?: CustomDataType; } export interface ClearDisplayMessageResponse { status: ClearMessageStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface ClearTariffsRequest { tariffIds?: string[]; evseId?: number; customData?: CustomDataType; } export interface ClearTariffsResponse { clearTariffsResult: ClearTariffsResultType[]; customData?: CustomDataType; } export interface ClearVariableMonitoringRequest { id: number[]; customData?: CustomDataType; } export interface ClearVariableMonitoringResponse { clearMonitoringResult: ClearMonitoringResultType[]; customData?: CustomDataType; } export interface ClearedChargingLimitRequest { chargingLimitSource: string; evseId?: number; customData?: CustomDataType; } export interface ClearedChargingLimitResponse { customData?: CustomDataType; } export interface ClosePeriodicEventStreamRequest { id: number; customData?: CustomDataType; } export interface ClosePeriodicEventStreamResponse { customData?: CustomDataType; } export interface CostUpdatedRequest { totalCost: number; transactionId: string; customData?: CustomDataType; } export interface CostUpdatedResponse { customData?: CustomDataType; } export interface CustomerInformationRequest { customerCertificate?: CertificateHashDataType; idToken?: IdTokenType; requestId: number; report: boolean; clear: boolean; customerIdentifier?: string; customData?: CustomDataType; } export interface CustomerInformationResponse { status: CustomerInformationStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface DataTransferRequest { messageId?: string; data?: { [k: string]: unknown; }; vendorId: string; customData?: CustomDataType; } export interface DataTransferResponse { status: DataTransferStatusEnumType; statusInfo?: StatusInfoType; data?: { [k: string]: unknown; }; customData?: CustomDataType; } export interface DeleteCertificateRequest { certificateHashData: CertificateHashDataType; customData?: CustomDataType; } export interface DeleteCertificateResponse { status: DeleteCertificateStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface FirmwareStatusNotificationRequest { status: FirmwareStatusEnumType; requestId?: number; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface FirmwareStatusNotificationResponse { customData?: CustomDataType; } export interface Get15118EVCertificateRequest { iso15118SchemaVersion: string; action: CertificateActionEnumType; exiRequest: string; maximumContractCertificateChains?: number; prioritizedEMAIDs?: string[]; customData?: CustomDataType; } export interface Get15118EVCertificateResponse { status: Iso15118EVCertificateStatusEnumType; statusInfo?: StatusInfoType; exiResponse: string; remainingContracts?: number; customData?: CustomDataType; } export interface GetBaseReportRequest { requestId: number; reportBase: ReportBaseEnumType; customData?: CustomDataType; } export interface GetBaseReportResponse { status: GenericDeviceModelStatusEnumType; statusInfo?: StatusInfoType; customData?: CustomDataType; } export interface GetCertificateChainStatusRequest { certificateStatusRequests: CertificateStatusRequestInfoType[]; customData?: CustomDataType; } export interface GetCertificateChainStatusResponse { certificateStatus: CertificateStatusType[]; customData?: CustomDataType; } export int