Documentation ¶
Overview ¶
The Smart charging functional block contains OCPP 2.0 features that enable the CSO (or a third party) to influence the charging current/power transferred during a transaction, or set limits to the amount of current/power a Charging Station can draw from the grid.
Index ¶
- Constants
- Variables
- type ACChargingParameters
- type CSMSHandler
- type ChargingLimit
- type ChargingNeeds
- type ChargingProfileCriterion
- type ChargingProfileStatus
- type ChargingStationHandler
- type ClearChargingProfileFeature
- type ClearChargingProfileRequest
- type ClearChargingProfileResponse
- type ClearChargingProfileStatus
- type ClearChargingProfileType
- type ClearedChargingLimitFeature
- type ClearedChargingLimitRequest
- type ClearedChargingLimitResponse
- type CompositeSchedule
- type DCChargingParameters
- type EVChargingNeedsStatus
- type EnergyTransferMode
- type GetChargingProfileStatus
- type GetChargingProfilesFeature
- type GetChargingProfilesRequest
- type GetChargingProfilesResponse
- type GetCompositeScheduleFeature
- type GetCompositeScheduleRequest
- type GetCompositeScheduleResponse
- type GetCompositeScheduleStatus
- type NotifyChargingLimitFeature
- type NotifyChargingLimitRequest
- type NotifyChargingLimitResponse
- type NotifyEVChargingNeedsFeature
- type NotifyEVChargingNeedsRequest
- type NotifyEVChargingNeedsResponse
- type NotifyEVChargingScheduleFeature
- type NotifyEVChargingScheduleRequest
- type NotifyEVChargingScheduleResponse
- type ReportChargingProfilesFeature
- type ReportChargingProfilesRequest
- type ReportChargingProfilesResponse
- type SetChargingProfileFeature
- type SetChargingProfileRequest
- type SetChargingProfileResponse
Constants ¶
const ClearChargingProfileFeatureName = "ClearChargingProfile"
const ClearedChargingLimitFeatureName = "ClearedChargingLimit"
const GetChargingProfilesFeatureName = "GetChargingProfiles"
const GetCompositeScheduleFeatureName = "GetCompositeSchedule"
const NotifyChargingLimitFeatureName = "NotifyChargingLimit"
const NotifyEVChargingNeedsFeatureName = "NotifyEVChargingNeeds"
const NotifyEVChargingScheduleFeatureName = "NotifyEVChargingSchedule"
const ProfileName = "smartCharging"
const ReportChargingProfilesFeatureName = "ReportChargingProfiles"
const SetChargingProfileFeatureName = "SetChargingProfile"
Variables ¶
var Profile = ocpp.NewProfile( ProfileName, ClearChargingProfileFeature{}, ClearedChargingLimitFeature{}, GetChargingProfilesFeature{}, GetCompositeScheduleFeature{}, NotifyChargingLimitFeature{}, NotifyEVChargingNeedsFeature{}, NotifyEVChargingScheduleFeature{}, ReportChargingProfilesFeature{}, SetChargingProfileFeature{}, )
Functions ¶
This section is empty.
Types ¶
type ACChargingParameters ¶
type ACChargingParameters struct { EnergyAmount int `json:"energyAmount" validate:"gte=0"` // Amount of energy requested (in Wh). This includes energy required for preconditioning. EVMinCurrent int `json:"evMinCurrent" validate:"gte=0"` // Minimum current (amps) supported by the electric vehicle (per phase). EVMaxCurrent int `json:"evMaxCurrent" validate:"gte=0"` // Maximum current (amps) supported by the electric vehicle (per phase). Includes cable capacity. EVMaxVoltage int `json:"evMaxVoltage" validate:"gte=0"` // Maximum voltage supported by the electric vehicle. }
ACChargingParameters contains EV AC charging parameters. Used by ChargingNeeds.
type CSMSHandler ¶
type CSMSHandler interface { // OnClearedChargingLimit is called on the CSMS whenever a ClearedChargingLimitRequest is received from a charging station. OnClearedChargingLimit(chargingStationID string, request *ClearedChargingLimitRequest) (response *ClearedChargingLimitResponse, err error) // OnNotifyChargingLimit is called on the CSMS whenever a NotifyChargingLimitRequest is received from a charging station. OnNotifyChargingLimit(chargingStationID string, request *NotifyChargingLimitRequest) (response *NotifyChargingLimitResponse, err error) // OnNotifyEVChargingNeeds is called on the CSMS whenever a NotifyEVChargingNeedsRequest is received from a charging station. OnNotifyEVChargingNeeds(chargingStationID string, request *NotifyEVChargingNeedsRequest) (response *NotifyEVChargingNeedsResponse, err error) // OnNotifyEVChargingSchedule is called on the CSMS whenever a NotifyEVChargingScheduleRequest is received from a charging station. OnNotifyEVChargingSchedule(chargingStationID string, request *NotifyEVChargingScheduleRequest) (response *NotifyEVChargingScheduleResponse, err error) // OnReportChargingProfiles is called on the CSMS whenever a ReportChargingProfilesRequest is received from a charging station. OnReportChargingProfiles(chargingStationID string, request *ReportChargingProfilesRequest) (reponse *ReportChargingProfilesResponse, err error) }
Needs to be implemented by a CSMS for handling messages part of the OCPP 2.0 Smart charging profile.
type ChargingLimit ¶
type ChargingLimit struct { ChargingLimitSource types.ChargingLimitSourceType `json:"chargingLimitSource" validate:"required,chargingLimitSource"` // Represents the source of the charging limit. IsGridCritical *bool `json:"isGridCritical,omitempty" validate:"omitempty"` // Indicates whether the charging limit is critical for the grid. }
ChargingLimit contains the source of the charging limit and whether it is grid critical.
type ChargingNeeds ¶
type ChargingNeeds struct { RequestedEnergyTransfer EnergyTransferMode `json:"requestedEnergyTransfer" validate:"required,energyTransferMode"` // Mode of energy transfer requested by the EV. DepartureTime *types.DateTime `json:"departureTime,omitempty" validate:"omitempty"` // Estimated departure time of the EV. ACChargingParameters *ACChargingParameters `json:"acChargingParameters,omitempty" validate:"omitempty,dive"` // AC charging parameters. DCChargingParameters *DCChargingParameters `json:"dcChargingParameters,omitempty" validate:"omitempty,dive"` // AC charging parameters. }
ChargingNeeds contains the characteristics of the energy delivery required. Used by NotifyEVChargingNeedsRequest.
type ChargingProfileCriterion ¶
type ChargingProfileCriterion struct { ChargingProfilePurpose types.ChargingProfilePurposeType `json:"chargingProfilePurpose,omitempty" validate:"omitempty,chargingProfilePurpose201"` StackLevel *int `json:"stackLevel,omitempty" validate:"omitempty,gte=0"` ChargingProfileID []int `json:"chargingProfileId,omitempty" validate:"omitempty"` // This field SHALL NOT contain more ids than set in ChargingProfileEntries.maxLimit ChargingLimitSource []types.ChargingLimitSourceType `json:"chargingLimitSource,omitempty" validate:"omitempty,max=4,dive,chargingLimitSource"` }
ChargingProfileCriterion specifies the charging profile within a GetChargingProfilesRequest. A ChargingProfile consists of ChargingSchedule, describing the amount of power or current that can be delivered per time interval.
type ChargingProfileStatus ¶
type ChargingProfileStatus string
Status reported in SetChargingProfileResponse, indicating whether the Charging Station processed the message successfully. This does not guarantee the schedule will be followed to the letter.
const ( ChargingProfileStatusAccepted ChargingProfileStatus = "Accepted" ChargingProfileStatusRejected ChargingProfileStatus = "Rejected" )
type ChargingStationHandler ¶
type ChargingStationHandler interface { // OnClearChargingProfile is called on a charging station whenever a ClearChargingProfileRequest is received from the CSMS. OnClearChargingProfile(request *ClearChargingProfileRequest) (response *ClearChargingProfileResponse, err error) // OnGetChargingProfiles is called on a charging station whenever a GetChargingProfilesRequest is received from the CSMS. OnGetChargingProfiles(request *GetChargingProfilesRequest) (response *GetChargingProfilesResponse, err error) // OnGetCompositeSchedule is called on a charging station whenever a GetCompositeScheduleRequest is received from the CSMS. OnGetCompositeSchedule(request *GetCompositeScheduleRequest) (response *GetCompositeScheduleResponse, err error) // OnSetChargingProfile is called on a charging station whenever a SetChargingProfileRequest is received from the CSMS. OnSetChargingProfile(request *SetChargingProfileRequest) (response *SetChargingProfileResponse, err error) }
Needs to be implemented by Charging stations for handling messages part of the OCPP 2.0 Smart charging profile.
type ClearChargingProfileFeature ¶
type ClearChargingProfileFeature struct{}
If the CSMS wishes to clear some or all of the charging profiles that were previously sent the Charging Station, it SHALL send a ClearChargingProfileRequest. The CSMS can use this message to clear (remove) either a specific charging profile (denoted by id) or a selection of charging profiles that match with the values of the optional connectorId, stackLevel and chargingProfilePurpose fields. The Charging Station SHALL respond with a ClearChargingProfileResponse payload specifying whether it was able to process the request.
func (ClearChargingProfileFeature) GetFeatureName ¶
func (f ClearChargingProfileFeature) GetFeatureName() string
func (ClearChargingProfileFeature) GetRequestType ¶
func (f ClearChargingProfileFeature) GetRequestType() reflect.Type
func (ClearChargingProfileFeature) GetResponseType ¶
func (f ClearChargingProfileFeature) GetResponseType() reflect.Type
type ClearChargingProfileRequest ¶
type ClearChargingProfileRequest struct { ChargingProfileID *int `json:"chargingProfileId,omitempty" validate:"omitempty"` ChargingProfileCriteria *ClearChargingProfileType `json:"chargingProfileCriteria,omitempty" validate:"omitempty"` }
The field definition of the ClearChargingProfile request payload sent by the CSMS to the Charging Station.
func NewClearChargingProfileRequest ¶
func NewClearChargingProfileRequest() *ClearChargingProfileRequest
Creates a new ClearChargingProfileRequest. All fields are optional and may be set afterwards.
func (ClearChargingProfileRequest) GetFeatureName ¶
func (r ClearChargingProfileRequest) GetFeatureName() string
type ClearChargingProfileResponse ¶
type ClearChargingProfileResponse struct { Status ClearChargingProfileStatus `json:"status" validate:"required,clearChargingProfileStatus201"` StatusInfo *types.StatusInfo `json:"statusInfo,omitempty" validate:"omitempty"` }
This field definition of the ClearChargingProfile response payload, sent by the Charging Station to the CSMS in response to a ClearChargingProfileRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewClearChargingProfileResponse ¶
func NewClearChargingProfileResponse(status ClearChargingProfileStatus) *ClearChargingProfileResponse
Creates a new ClearChargingProfileResponse, containing all required fields. There are no optional fields for this message.
func (ClearChargingProfileResponse) GetFeatureName ¶
func (c ClearChargingProfileResponse) GetFeatureName() string
type ClearChargingProfileStatus ¶
type ClearChargingProfileStatus string
Status reported in ClearChargingProfileResponse.
const ( ClearChargingProfileStatusAccepted ClearChargingProfileStatus = "Accepted" ClearChargingProfileStatusUnknown ClearChargingProfileStatus = "Unknown" )
type ClearChargingProfileType ¶
type ClearChargingProfileType struct { EvseID *int `json:"evseId,omitempty" validate:"omitempty,gte=0"` ChargingProfilePurpose types.ChargingProfilePurposeType `json:"chargingProfilePurpose,omitempty" validate:"omitempty,chargingProfilePurpose201"` StackLevel *int `json:"stackLevel,omitempty" validate:"omitempty,gt=0"` }
type ClearedChargingLimitFeature ¶
type ClearedChargingLimitFeature struct{}
When an external control system sends a signal to release a previously imposed charging limit to a Charging Station, the Charging Station sends a ClearedChargingLimitRequest to notify the CSMS about this. The CSMS acknowledges with a ClearedChargingLimitResponse to the Charging Station. When the change has impact on an ongoing charging transaction and is more than: LimitChangeSignificance, the Charging Station needs to send a TransactionEventRequest to notify the CSMS.
func (ClearedChargingLimitFeature) GetFeatureName ¶
func (f ClearedChargingLimitFeature) GetFeatureName() string
func (ClearedChargingLimitFeature) GetRequestType ¶
func (f ClearedChargingLimitFeature) GetRequestType() reflect.Type
func (ClearedChargingLimitFeature) GetResponseType ¶
func (f ClearedChargingLimitFeature) GetResponseType() reflect.Type
type ClearedChargingLimitRequest ¶
type ClearedChargingLimitRequest struct { ChargingLimitSource types.ChargingLimitSourceType `json:"chargingLimitSource" validate:"required,chargingLimitSource"` EvseID *int `json:"evseId,omitempty" validate:"omitempty,gte=0"` }
The field definition of the ClearedChargingLimit request payload sent by the Charging Station to the CSMS.
func NewClearedChargingLimitRequest ¶
func NewClearedChargingLimitRequest(chargingLimitSource types.ChargingLimitSourceType) *ClearedChargingLimitRequest
Creates a new ClearedChargingLimitRequest, containing all required fields. Optional fields may be set afterwards.
func (ClearedChargingLimitRequest) GetFeatureName ¶
func (r ClearedChargingLimitRequest) GetFeatureName() string
type ClearedChargingLimitResponse ¶
type ClearedChargingLimitResponse struct { }
This field definition of the ClearedChargingLimit response payload, sent by the CSMS to the Charging Station in response to a ClearedChargingLimitRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewClearedChargingLimitResponse ¶
func NewClearedChargingLimitResponse() *ClearedChargingLimitResponse
Creates a new ClearedChargingLimitResponse, which doesn't contain any required or optional fields.
func (ClearedChargingLimitResponse) GetFeatureName ¶
func (c ClearedChargingLimitResponse) GetFeatureName() string
type CompositeSchedule ¶
type CompositeSchedule struct { StartDateTime *types.DateTime `json:"startDateTime,omitempty" validate:"omitempty"` ChargingSchedule *types.ChargingSchedule `json:"chargingSchedule,omitempty" validate:"omitempty"` }
type DCChargingParameters ¶
type DCChargingParameters struct { EVMaxCurrent int `json:"evMaxCurrent" validate:"gte=0"` // Maximum current (amps) supported by the electric vehicle (per phase). Includes cable capacity. EVMaxVoltage int `json:"evMaxVoltage" validate:"gte=0"` // Maximum voltage supported by the electric vehicle. EnergyAmount *int `json:"energyAmount,omitempty" validate:"omitempty,gte=0"` // Amount of energy requested (in Wh). This includes energy required for preconditioning. EVMaxPower *int `json:"evMaxPower,omitempty" validate:"omitempty,gte=0"` // Maximum power (in W) supported by the electric vehicle. Required for DC charging. StateOfCharge *int `json:"stateOfCharge,omitempty" validate:"omitempty,gte=0,lte=100"` // Energy available in the battery (in percent of the battery capacity). EVEnergyCapacity *int `json:"evEnergyCapacity,omitempty" validate:"omitempty,gte=0"` // Capacity of the electric vehicle battery (in Wh) FullSoC *int `json:"fullSoC,omitempty" validate:"omitempty,gte=0,lte=100"` // Percentage of SoC at which the EV considers the battery fully charged. (possible values: 0 - 100) BulkSoC *int `json:"bulkSoC,omitempty" validate:"omitempty,gte=0,lte=100"` // Percentage of SoC at which the EV considers a fast charging process to end. (possible values: 0 - 100) }
DCChargingParameters contains EV DC charging parameters. Used by ChargingNeeds.
type EVChargingNeedsStatus ¶
type EVChargingNeedsStatus string
EVChargingNeedsStatus contains the status returned by the CSMS.
const ( EVChargingNeedsStatusAccepted EVChargingNeedsStatus = "Accepted" EVChargingNeedsStatusRejected EVChargingNeedsStatus = "Rejected" EVChargingNeedsStatusProcessing EVChargingNeedsStatus = "Processing" )
type EnergyTransferMode ¶
type EnergyTransferMode string
const ( EnergyTransferModeDC EnergyTransferMode = "DC" // DC charging. EnergyTransferModeAC1Phase EnergyTransferMode = "AC_single_phase" // AC single phase charging according to IEC 62196. EnergyTransferModeAC2Phase EnergyTransferMode = "AC_two_phase" // AC two phase charging according to IEC 62196. EnergyTransferModeAC3Phase EnergyTransferMode = "AC_three_phase" // AC three phase charging according to IEC 62196. )
type GetChargingProfileStatus ¶
type GetChargingProfileStatus string
Status reported in GetChargingProfilesResponse.
const ( GetChargingProfileStatusAccepted GetChargingProfileStatus = "Accepted" GetChargingProfileStatusNoProfiles GetChargingProfileStatus = "NoProfiles" )
type GetChargingProfilesFeature ¶
type GetChargingProfilesFeature struct{}
The CSMS MAY ask a Charging Station to report all, or a subset of all the install Charging Profiles from the different possible sources, by sending a GetChargingProfilesRequest. This can be used for some automatic smart charging control system, or for debug purposes by a CSO. The Charging Station SHALL respond, indicating if it can report Charging Schedules by sending a GetChargingProfilesResponse message.
func (GetChargingProfilesFeature) GetFeatureName ¶
func (f GetChargingProfilesFeature) GetFeatureName() string
func (GetChargingProfilesFeature) GetRequestType ¶
func (f GetChargingProfilesFeature) GetRequestType() reflect.Type
func (GetChargingProfilesFeature) GetResponseType ¶
func (f GetChargingProfilesFeature) GetResponseType() reflect.Type
type GetChargingProfilesRequest ¶
type GetChargingProfilesRequest struct { RequestID int `json:"requestId"` EvseID *int `json:"evseId,omitempty" validate:"omitempty,gte=0"` ChargingProfile ChargingProfileCriterion `json:"chargingProfile" validate:"required"` }
The field definition of the GetChargingProfiles request payload sent by the CSMS to the Charging Station.
func NewGetChargingProfilesRequest ¶
func NewGetChargingProfilesRequest(chargingProfile ChargingProfileCriterion) *GetChargingProfilesRequest
Creates a new GetChargingProfilesRequest, containing all required fields. Optional fields may be set afterwards.
func (GetChargingProfilesRequest) GetFeatureName ¶
func (r GetChargingProfilesRequest) GetFeatureName() string
type GetChargingProfilesResponse ¶
type GetChargingProfilesResponse struct { Status GetChargingProfileStatus `json:"status" validate:"required,getChargingProfileStatus"` StatusInfo *types.StatusInfo `json:"statusInfo,omitempty" validate:"omitempty"` }
This field definition of the GetChargingProfiles response payload, sent by the Charging Station to the CSMS in response to a GetChargingProfilesRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewGetChargingProfilesResponse ¶
func NewGetChargingProfilesResponse(status GetChargingProfileStatus) *GetChargingProfilesResponse
Creates a new GetChargingProfilesResponse, containing all required fields. Optional fields may be set afterwards.
func (GetChargingProfilesResponse) GetFeatureName ¶
func (c GetChargingProfilesResponse) GetFeatureName() string
type GetCompositeScheduleFeature ¶
type GetCompositeScheduleFeature struct{}
The CSMS MAY request the Charging System to report the Composite Charging Schedule by sending a GetCompositeScheduleRequest. The Charging System SHALL calculate the Composite Charging Schedule intervals, from the moment the request payload is received: Time X, up to X + Duration, and send them in the GetCompositeScheduleResponse to the CSMS. The reported schedule, in the GetCompositeScheduleResponse payload, is the result of the calculation of all active schedules and possible local limits present in the Charging System. If the ConnectorId in the request is set to '0', the Charging System SHALL report the total expected power or current the Charging System expects to consume from the grid during the requested time period. If the Charging System is not able to report the requested schedule, for instance if the connectorId is unknown, it SHALL respond with a status Rejected.
func (GetCompositeScheduleFeature) GetFeatureName ¶
func (f GetCompositeScheduleFeature) GetFeatureName() string
func (GetCompositeScheduleFeature) GetRequestType ¶
func (f GetCompositeScheduleFeature) GetRequestType() reflect.Type
func (GetCompositeScheduleFeature) GetResponseType ¶
func (f GetCompositeScheduleFeature) GetResponseType() reflect.Type
type GetCompositeScheduleRequest ¶
type GetCompositeScheduleRequest struct { Duration int `json:"duration" validate:"gte=0"` ChargingRateUnit types.ChargingRateUnitType `json:"chargingRateUnit,omitempty" validate:"omitempty,chargingRateUnit201"` EvseID int `json:"evseId" validate:"gte=0"` }
The field definition of the GetCompositeSchedule request payload sent by the CSMS to the Charging System.
func NewGetCompositeScheduleRequest ¶
func NewGetCompositeScheduleRequest(duration int, evseId int) *GetCompositeScheduleRequest
Creates a new GetCompositeScheduleRequest, containing all required fields. Optional fields may be set afterwards.
func (GetCompositeScheduleRequest) GetFeatureName ¶
func (r GetCompositeScheduleRequest) GetFeatureName() string
type GetCompositeScheduleResponse ¶
type GetCompositeScheduleResponse struct { Status GetCompositeScheduleStatus `json:"status" validate:"required,getCompositeScheduleStatus"` EvseID int `json:"evseId" validate:"gte=0"` Schedule *CompositeSchedule `json:"schedule,omitempty" validate:"omitempty"` }
This field definition of the GetCompositeSchedule response payload, sent by the Charging System to the CSMS in response to a GetCompositeScheduleRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewGetCompositeScheduleResponse ¶
func NewGetCompositeScheduleResponse(status GetCompositeScheduleStatus, evseId int) *GetCompositeScheduleResponse
Creates a new GetCompositeScheduleResponse, containing all required fields. Optional fields may be set afterwards.
func (GetCompositeScheduleResponse) GetFeatureName ¶
func (c GetCompositeScheduleResponse) GetFeatureName() string
type GetCompositeScheduleStatus ¶
type GetCompositeScheduleStatus string
Status reported in GetCompositeScheduleResponse.
const ( GetCompositeScheduleStatusAccepted GetCompositeScheduleStatus = "Accepted" GetCompositeScheduleStatusRejected GetCompositeScheduleStatus = "Rejected" )
type NotifyChargingLimitFeature ¶
type NotifyChargingLimitFeature struct{}
When an external control system sends a signal to release a previously imposed charging limit to a Charging Station, the Charging Station adjusts the charging speed of the ongoing transaction(s). If the charging limit changed by more than: LimitChangeSignificance, the Charging Station sends a NotifyChargingLimitRequest message to CSMS with optionally the set charging limit/schedule.
The CSMS responds with NotifyChargingLimitResponse to the Charging Station.
If the charging rate changes by more than: LimitChangeSignificance, the Charging Station sends a TransactionEventRequest message to inform the CSMS.
func (NotifyChargingLimitFeature) GetFeatureName ¶
func (f NotifyChargingLimitFeature) GetFeatureName() string
func (NotifyChargingLimitFeature) GetRequestType ¶
func (f NotifyChargingLimitFeature) GetRequestType() reflect.Type
func (NotifyChargingLimitFeature) GetResponseType ¶
func (f NotifyChargingLimitFeature) GetResponseType() reflect.Type
type NotifyChargingLimitRequest ¶
type NotifyChargingLimitRequest struct { EvseID *int `json:"evseId,omitempty" validate:"omitempty,gte=0"` ChargingLimit ChargingLimit `json:"chargingLimit" validate:"required"` ChargingSchedule []types.ChargingSchedule `json:"chargingSchedule,omitempty" validate:"omitempty,dive"` }
The field definition of the NotifyChargingLimit request payload sent by the Charging Station to the CSMS.
func NewNotifyChargingLimitRequest ¶
func NewNotifyChargingLimitRequest(chargingLimit ChargingLimit) *NotifyChargingLimitRequest
Creates a new NotifyChargingLimitRequest, containing all required fields. Optional fields may be set afterwards.
func (NotifyChargingLimitRequest) GetFeatureName ¶
func (r NotifyChargingLimitRequest) GetFeatureName() string
type NotifyChargingLimitResponse ¶
type NotifyChargingLimitResponse struct { }
This field definition of the NotifyChargingLimit response payload, sent by the CSMS to the Charging Station in response to a NotifyChargingLimitRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewNotifyChargingLimitResponse ¶
func NewNotifyChargingLimitResponse() *NotifyChargingLimitResponse
Creates a new NotifyChargingLimitResponse, which doesn't contain any required or optional fields.
func (NotifyChargingLimitResponse) GetFeatureName ¶
func (c NotifyChargingLimitResponse) GetFeatureName() string
type NotifyEVChargingNeedsFeature ¶
type NotifyEVChargingNeedsFeature struct{}
When an EV sends a ChargeParameterDiscoveryReq with with charging needs parameters, the Charging Station sends this information in a NotifyEVChargingNeedsRequest to the CSMS. The CSMS replies to the Charging Station with a NotifyEVChargingNeedsResponse message.
The CSMS will re-calculate a new charging schedule, trying to accomodate the EV needs, then asynchronously send a SetChargingProfileRequest with the new schedule to the Charging Station.
func (NotifyEVChargingNeedsFeature) GetFeatureName ¶
func (f NotifyEVChargingNeedsFeature) GetFeatureName() string
func (NotifyEVChargingNeedsFeature) GetRequestType ¶
func (f NotifyEVChargingNeedsFeature) GetRequestType() reflect.Type
func (NotifyEVChargingNeedsFeature) GetResponseType ¶
func (f NotifyEVChargingNeedsFeature) GetResponseType() reflect.Type
type NotifyEVChargingNeedsRequest ¶
type NotifyEVChargingNeedsRequest struct { MaxScheduleTuples *int `json:"maxScheduleTuples,omitempty" validate:"omitempty,gte=0"` EvseID int `json:"evseId" validate:"gt=0"` ChargingNeeds ChargingNeeds `json:"chargingNeeds" validate:"required"` }
The field definition of the NotifyEVChargingNeeds request payload sent by the Charging Station to the CSMS.
func NewNotifyEVChargingNeedsRequest ¶
func NewNotifyEVChargingNeedsRequest(evseID int, chargingNeeds ChargingNeeds) *NotifyEVChargingNeedsRequest
Creates a new NotifyEVChargingNeedsRequest, containing all required fields. Optional fields may be set afterwards.
func (NotifyEVChargingNeedsRequest) GetFeatureName ¶
func (r NotifyEVChargingNeedsRequest) GetFeatureName() string
type NotifyEVChargingNeedsResponse ¶
type NotifyEVChargingNeedsResponse struct { // Returns whether the CSMS has been able to process the message successfully. // It does not imply that the evChargingNeeds can be met with the current charging profile. Status EVChargingNeedsStatus `json:"status" validate:"required,evChargingNeedsStatus"` StatusInfo *types.StatusInfo `json:"statusInfo,omitempty" validate:"omitempty,dive"` // Detailed status information. }
This field definition of the NotifyEVChargingNeeds response payload, sent by the CSMS to the Charging Station in response to a NotifyEVChargingNeedsRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewNotifyEVChargingNeedsResponse ¶
func NewNotifyEVChargingNeedsResponse(status EVChargingNeedsStatus) *NotifyEVChargingNeedsResponse
Creates a new NotifyEVChargingNeedsResponse, containing all required fields. Optional fields may be set afterwards.
func (NotifyEVChargingNeedsResponse) GetFeatureName ¶
func (c NotifyEVChargingNeedsResponse) GetFeatureName() string
type NotifyEVChargingScheduleFeature ¶
type NotifyEVChargingScheduleFeature struct{}
A power renegotiation, either initiated by the EV or by the CSMS, may involve the EV providing a power profile. If a charging profile was provided, after receiving a PowerDeliveryResponse from the CSMS, the Charging Station will send a NotifyEVChargingScheduleRequest to the CSMS.
The CSMS replies to the Charging Station with a NotifyEVChargingScheduleResponse.
func (NotifyEVChargingScheduleFeature) GetFeatureName ¶
func (f NotifyEVChargingScheduleFeature) GetFeatureName() string
func (NotifyEVChargingScheduleFeature) GetRequestType ¶
func (f NotifyEVChargingScheduleFeature) GetRequestType() reflect.Type
func (NotifyEVChargingScheduleFeature) GetResponseType ¶
func (f NotifyEVChargingScheduleFeature) GetResponseType() reflect.Type
type NotifyEVChargingScheduleRequest ¶
type NotifyEVChargingScheduleRequest struct { TimeBase *types.DateTime `json:"timeBase" validate:"required"` EvseID int `json:"evseId" validate:"gt=0"` ChargingSchedule types.ChargingSchedule `json:"chargingSchedule" validate:"required,dive"` }
The field definition of the NotifyEVChargingSchedule request payload sent by the Charging Station to the CSMS.
func NewNotifyEVChargingScheduleRequest ¶
func NewNotifyEVChargingScheduleRequest(timeBase *types.DateTime, evseID int, chargingSchedule types.ChargingSchedule) *NotifyEVChargingScheduleRequest
Creates a new NotifyEVChargingScheduleRequest, containing all required fields. Optional fields may be set afterwards.
func (NotifyEVChargingScheduleRequest) GetFeatureName ¶
func (r NotifyEVChargingScheduleRequest) GetFeatureName() string
type NotifyEVChargingScheduleResponse ¶
type NotifyEVChargingScheduleResponse struct { Status types.GenericStatus `json:"status" validate:"required,genericStatus"` StatusInfo *types.StatusInfo `json:"statusInfo,omitempty" validate:"omitempty,dive"` // Detailed status information. }
This field definition of the NotifyEVChargingSchedule response payload, sent by the CSMS to the Charging Station in response to a NotifyEVChargingScheduleRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewNotifyEVChargingScheduleResponse ¶
func NewNotifyEVChargingScheduleResponse(status types.GenericStatus) *NotifyEVChargingScheduleResponse
Creates a new NotifyEVChargingScheduleResponse, containing all required fields. Optional fields may be set afterwards.
func (NotifyEVChargingScheduleResponse) GetFeatureName ¶
func (c NotifyEVChargingScheduleResponse) GetFeatureName() string
type ReportChargingProfilesFeature ¶
type ReportChargingProfilesFeature struct{}
The CSMS can ask a Charging Station to report all, or a subset of all the install Charging Profiles from the different possible sources. This can be used for some automatic smart charging control system, or for debug purposes by a CSO. This is done via the GetChargingProfiles feature.
A Charging Station sends a number of ReportChargingProfilesRequest messages asynchronously to the CSMS, after having previously received a GetChargingProfilesRequest. The CSMS acknowledges reception of the reports by sending a ReportChargingProfilesResponse to the Charging Station for every received request.
func (ReportChargingProfilesFeature) GetFeatureName ¶
func (f ReportChargingProfilesFeature) GetFeatureName() string
func (ReportChargingProfilesFeature) GetRequestType ¶
func (f ReportChargingProfilesFeature) GetRequestType() reflect.Type
func (ReportChargingProfilesFeature) GetResponseType ¶
func (f ReportChargingProfilesFeature) GetResponseType() reflect.Type
type ReportChargingProfilesRequest ¶
type ReportChargingProfilesRequest struct { RequestID int `json:"requestId" validate:"gte=0"` ChargingLimitSource types.ChargingLimitSourceType `json:"chargingLimitSource" validate:"required,chargingLimitSource"` Tbc bool `json:"tbc,omitempty" validate:"omitempty"` EvseID int `json:"evseId" validate:"gte=0"` ChargingProfile []types.ChargingProfile `json:"chargingProfile" validate:"required,min=1,dive"` }
The field definition of the ReportChargingProfiles request payload sent by the Charging Station to the CSMS.
func NewReportChargingProfilesRequest ¶
func NewReportChargingProfilesRequest(requestID int, chargingLimitSource types.ChargingLimitSourceType, evseID int, chargingProfile []types.ChargingProfile) *ReportChargingProfilesRequest
Creates a new ReportChargingProfilesRequest, containing all required fields. Optional fields may be set afterwards.
func (ReportChargingProfilesRequest) GetFeatureName ¶
func (r ReportChargingProfilesRequest) GetFeatureName() string
type ReportChargingProfilesResponse ¶
type ReportChargingProfilesResponse struct { }
This field definition of the ReportChargingProfiles response payload, sent by the CSMS to the Charging Station in response to a ReportChargingProfilesRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewReportChargingProfilesResponse ¶
func NewReportChargingProfilesResponse() *ReportChargingProfilesResponse
Creates a new ReportChargingProfilesResponse, which doesn't contain any required or optional fields.
func (ReportChargingProfilesResponse) GetFeatureName ¶
func (c ReportChargingProfilesResponse) GetFeatureName() string
type SetChargingProfileFeature ¶
type SetChargingProfileFeature struct{}
The CSMS may influence the charging power or current drawn from a specific EVSE or the entire Charging Station, over a period of time. For this purpose, the CSMS calculates a ChargingSchedule to stay within certain limits, then sends a SetChargingProfileRequest to the Charging Station. The charging schedule limits may be imposed by any external system. The Charging Station responds to this request with a SetChargingProfileResponse.
While charging, the EVSE will continuously adapt the maximum current/power according to the installed charging profiles.
func (SetChargingProfileFeature) GetFeatureName ¶
func (f SetChargingProfileFeature) GetFeatureName() string
func (SetChargingProfileFeature) GetRequestType ¶
func (f SetChargingProfileFeature) GetRequestType() reflect.Type
func (SetChargingProfileFeature) GetResponseType ¶
func (f SetChargingProfileFeature) GetResponseType() reflect.Type
type SetChargingProfileRequest ¶
type SetChargingProfileRequest struct { EvseID int `json:"evseId" validate:"gte=0"` ChargingProfile *types.ChargingProfile `json:"chargingProfile" validate:"required"` }
The field definition of the SetChargingProfile request payload sent by the CSMS to the Charging Station.
func NewSetChargingProfileRequest ¶
func NewSetChargingProfileRequest(evseID int, chargingProfile *types.ChargingProfile) *SetChargingProfileRequest
Creates a new SetChargingProfileRequest, containing all required fields. There are no optional fields for this message.
func (SetChargingProfileRequest) GetFeatureName ¶
func (r SetChargingProfileRequest) GetFeatureName() string
type SetChargingProfileResponse ¶
type SetChargingProfileResponse struct { Status ChargingProfileStatus `json:"status" validate:"required,chargingProfileStatus201"` StatusInfo *types.StatusInfo `json:"statusInfo,omitempty" validate:"omitempty"` }
This field definition of the SetChargingProfile response payload, sent by the Charging Station to the CSMS in response to a SetChargingProfileRequest. In case the request was invalid, or couldn't be processed, an error will be sent instead.
func NewSetChargingProfileResponse ¶
func NewSetChargingProfileResponse(status ChargingProfileStatus) *SetChargingProfileResponse
Creates a new SetChargingProfileResponse, containing all required fields. Optional fields may be set afterwards.
func (SetChargingProfileResponse) GetFeatureName ¶
func (c SetChargingProfileResponse) GetFeatureName() string