-export enum OCPP20ComponentName {
+import type { JsonObject } from '../../JsonType.js'
+import type { EVSEType, StatusInfoType } from './Common.js'
+
+enum OCPP20ComponentName {
AlignedDataCtrlr = 'AlignedDataCtrlr',
AuthCacheCtrlr = 'AuthCacheCtrlr',
AuthCtrlr = 'AuthCtrlr',
SecurityCtrlr = 'SecurityCtrlr',
SmartChargingCtrlr = 'SmartChargingCtrlr',
TariffCostCtrlr = 'TariffCostCtrlr',
- TxCtrlr = 'TxCtrlr',
+ TxCtrlr = 'TxCtrlr'
}
export enum OCPP20RequiredVariableName {
TxEndedMeasurands = 'TxEndedMeasurands',
TxStartedMeasurands = 'TxStartedMeasurands',
TxUpdatedMeasurands = 'TxUpdatedMeasurands',
- TxUpdatedInterval = 'TxUpdatedInterval',
+ TxUpdatedInterval = 'TxUpdatedInterval'
}
export enum OCPP20OptionalVariableName {
HeartbeatInterval = 'HeartbeatInterval',
- WebSocketPingInterval = 'WebSocketPingInterval',
+ WebSocketPingInterval = 'WebSocketPingInterval'
}
export enum OCPP20VendorVariableName {
- ConnectionUrl = 'ConnectionUrl',
+ ConnectionUrl = 'ConnectionUrl'
+}
+
+enum AttributeEnumType {
+ Actual = 'Actual',
+ Target = 'Target',
+ MinSet = 'MinSet',
+ MaxSet = 'MaxSet'
+}
+
+interface ComponentType extends JsonObject {
+ name: string | OCPP20ComponentName
+ instance?: string
+ evse?: EVSEType
+}
+
+type VariableName =
+ | string
+ | OCPP20RequiredVariableName
+ | OCPP20OptionalVariableName
+ | OCPP20VendorVariableName
+
+interface VariableType extends JsonObject {
+ name: VariableName
+ instance?: string
+}
+
+export interface OCPP20SetVariableDataType extends JsonObject {
+ attributeType?: AttributeEnumType
+ attributeValue: string
+ component: ComponentType
+ variable: VariableType
+}
+
+enum SetVariableStatusEnumType {
+ Accepted = 'Accepted',
+ Rejected = 'Rejected',
+ UnknownComponent = 'UnknownComponent',
+ UnknownVariable = 'UnknownVariable',
+ NotSupportedAttributeType = 'NotSupportedAttributeType',
+ RebootRequired = 'RebootRequired'
+}
+
+export interface OCPP20SetVariableResultType extends JsonObject {
+ attributeType?: AttributeEnumType
+ attributeStatus: SetVariableStatusEnumType
+ component: ComponentType
+ variable: VariableType
+ attributeStatusInfo?: StatusInfoType
+}
+
+export interface OCPP20ComponentVariableType extends JsonObject {
+ component: ComponentType
+ variable?: VariableType
}