본문으로 건너뛰기

Custom Messages

본 문서는 DataTransfer:com.skelectlink로 교환하는 SK일렉링크 커스텀 메시지를 정의합니다.

버전 적용 범위
  • OCPP v1.6 충전기는 이 문서의 메시지를 DataTransfer로 사용합니다.
  • OCPP v2.1 충전기는 OCPP v2.1 표준에 존재하는 기능(Authorize, GetVariables, SetVariables, TriggerMessage 등)은 네이티브 메시지를 우선 사용합니다.
  • OCPP v2.1 표준에 없는 SK일렉링크 확장 기능(GetUnitPrice, PaymentInfo, GetAdProfile 등)은 v2.1 세션에서도 DataTransfer:com.skelectlink로 사용합니다.

RemoteStartTransaction

OCPP v1.6 전용

이 섹션은 OCPP v1.6 RemoteStartTransaction 확장 필드를 설명합니다. OCPP v2.1 충전기는 동일한 목적의 원격 시작에 RequestStartTransactionRequest를 사용합니다.

규칙

CSMS가 EVSE로 요청하는 해당 메시지는, 아래 비표준 파라미터를 추가로 포함합니다.

Field NameTypeRequiredDescription
connectorIdNumberOptional충전을 시작할 커넥터 번호
idTagStringRequiredtransactionId 수신전 임시로 사용하는 임의의 키값
chargingProfileNumberOptional스마트 충전 관련 규격
additionalInfoRemoteStartTransactionAdditionalInfoTypeOptional(추가)

DataTransfer

중요

반드시 vendorId"com.skelectlink"로 하여야합니다.

이 메시지의 하위 카테고리는 messageId 별로 data 값을 정의하는 내용을 담습니다.

단가 조회(Legacy)

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: getPrice.req

단가 조회 요청

data가 없습니다.

예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "getPrice.req"
}
]

단가 조회 응답

Field NameTypeRequiredDescription
connectorIdNumberRequiredfixed 0
currencyStringRequiredfixed ""
unitPriceNumberRequiredkWh/원 단가
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"connectorId": 0,
"currency": "",
"unitPrice": 420
},
"status": "Accepted"
}
]

단가 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetUnitPrice

단가 조회 요청

Field NameTypeRequiredDescription
unitPriceEnumTypeUnitPriceEnumTypeRequired요청할 단가 타입 구분
connectorIdNumberOptional커넥터 식별자 (unitPriceEnumType이 "Proportional"인 경우 필수)
예시 — Member 타입
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetUnitPrice",
"data": {
"unitPriceEnumType": "Member"
}
}
]
예시 — Proportional 타입
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetUnitPrice",
"data": {
"unitPriceEnumType": "Proportional",
"connectorId": 1
}
}
]

단가 조회 응답

Field NameTypeRequiredDescription
currencyStringRequiredfixed "KRW"
unitPriceStringRequiredkWh/원 단가
memberInfoMemberInfoTypeOptional회원 유형 정보 (unitPriceEnumType이 "Proportional"인 경우에만 포함)
예시 — 기본 응답
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "324.4"
},
"status": "Accepted"
}
]
예시 — 회원 단가 (ST)
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "292.9",
"memberInfo": {
"memberType": "MEMBER"
}
},
"status": "Accepted"
}
]
예시 — 로밍 단가 (ROAMING)
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "350.0",
"memberInfo": {
"memberType": "ROAMING",
"roamingCompanyCode": "ME",
"roamingCompanyName": "한국전력"
}
},
"status": "Accepted"
}
]

메시지 트리거

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다. OCPP v1.6 세션에서 OCPP v2.1 TriggerMessageRequest와 유사한 동작을 제공하기 위한 DataTransfer 호환 메시지입니다. OCPP v2.1 세션에서는 표준 TriggerMessageRequest를 우선 사용합니다.

customTrigger값이 DataTransfer로 시작하는 경우, 콜론(:)으로 vendorId, messageId를 구분하여 요청합니다.

messageId: TriggerMessage

메시지 트리거 요청

Field NameTypeRequiredDescription
requestMessageMessageTriggerEnumTypeRequiredTrigger할 메시지의 타입을 의미합니다.
customTriggerStringOptionalrequestMessage가 CustomTrigger인 경우 해당 필드가 포함됩니다.
evseEVSETypeOptional사용하지 않습니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "TriggerMessage",
"data": {
"requestMessage": "CustomTrigger",
"customTrigger": "DataTransfer:com.skelectlink:GetPrice"
}
}
]

예상되는 동작: EVSE는 CSMS로 DataTransfer 메시지를 보냅니다.

메시지 트리거 응답

Field NameTypeRequiredDescription
statusTriggerMessageStatusEnumTypeRequired트리거 명령 수행 상태를 응답합니다.
statusInfoStatusInfoTypeOptional자세한 충전기의 상태의 포함합니다.

충전기는 반드시 해당 요청을 받고, 해당 명령을 수행할 수 있는 상태를 즉시 응답한 이후 언급된 트리거 메시지를 동작시켜야한다. statusInfostatusAccepted가 아닌 경우 가급적 포함하십시오.

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted",
"data": {
"status": "Rejected",
"statusInfo": {
"reasonCode": "{제조사별 임의 코드}",
"additionalInfo": "충전기가 작동 준비중입니다."
}
}
}
]

변수 조회

이 메시지는 양방향으로 교환할 수 있습니다.

OCPP v2.1 네이티브 대응

OCPP v1.6에서는 아래 형식을 DataTransfer:com.skelectlink:GetVariables로 전송합니다. OCPP v2.1에서는 같은 getVariableData payload를 표준 GetVariables 메시지 본문으로 직접 전송합니다.

messageId: GetVariables

변수 조회 요청

Field NameTypeRequiredDescription
getVariableDataArray<GetVariableDataType>Required요청할 변수들의 리스트입니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetVariables",
"data": {
"getVariableData": [
{
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxStartedMeasurands"
}
},
{
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxUpdatedMeasurands"
}
}
]
}
}
]

변수 조회 응답

Field NameTypeRequiredDescription
getVariableResultArray<GetVariableResultType>Required변수 조회 결과 리스트입니다.
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"getVariableResult": [
{
"attributeStatus": "Accepted",
"attributeType": "Actual",
"attributeValue": "Energy.Active.Import.Register,SoC",
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxStartedMeasurands"
}
},
{
"attributeStatus": "Accepted",
"attributeType": "Actual",
"attributeValue": "300",
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxUpdatedMeasurands"
}
}
]
},
"status": "Accepted"
}
]

변수 설정

이 메시지는 양방향으로 교환할 수 있습니다.

OCPP v2.1 네이티브 대응

OCPP v1.6에서는 아래 형식을 DataTransfer:com.skelectlink:SetVariables로 전송합니다. OCPP v2.1에서는 같은 setVariableData payload를 표준 SetVariables 메시지 본문으로 직접 전송합니다.

messageId: SetVariables

변수 설정 요청

Field NameTypeRequiredDescription
setVariableDataArray<SetVariableDataType>Required설정할 컴포넌트-변수 쌍과 속성 값들입니다.

변수 설정 응답

Field NameTypeRequiredDescription
setVariableResultArray<SetVariableResultType>Required변수 설정 결과 리스트입니다.

사용자 인증

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

OCPP v2.1 네이티브 대응

OCPP v1.6 또는 하위 호환이 필요한 경우 DataTransfer:com.skelectlink:Authorize를 사용합니다. OCPP v2.1 세션에서는 표준 Authorize 메시지를 직접 사용할 수 있으며, idToken 구조는 동일하게 적용됩니다.

messageId: Authorize

사용자 인증 요청

Field NameTypeRequiredDescription
certificateStringOptionalEV가 제시한 X.509 인증서 체인으로 PEM 형식으로 인코딩됩니다. 검증이 필요한 경우에만 사용됩니다.
idTokenIdTokenTypeRequired인증이 필요한 식별자를 포함합니다.
iso15118CertificateHashDataOCSPRequestDataTypeOptionalOCSP를 통해 EV 계약 인증서를 검증하는 데 필요한 정보를 포함합니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "Authorize",
"data": {
"idToken": {
"idToken": "04D2A91234567890",
"type": "ISO14443"
}
}
}
]

사용자 인증 응답

Field NameTypeRequiredDescription
idTokenInfoIdTokenInfoTypeRequired인증 결과 및 추가 정보를 포함합니다.
certificateStatusEnumTypeAuthorizeCertificateStatusEnumTypeEnumTypeOptional인증서 상태 정보입니다.
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"idTokenInfo": {
"status": "Accepted"
}
},
"status": "Accepted"
}
]

결제 정보 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: PaymentInfo

결제 정보 전송 요청

Field NameTypeRequiredDescription
typePaymentInfoEnumTypeRequired결제 처리 유형
paymentMethodPaymentMethodEnumTypeRequired결제 방식
transactionIdStringRequired거래 번호
demandValueNumberRequired요구 값 (kWh: Wh 단위, Money: KRW 단위)
tradeApprovalIdStringRequired결제 승인번호
tradeUniqueIdStringRequired결제 고유번호
deviceResponseCodeStringRequired결제단말기 응답 코드
deviceResponseMessageStringRequired결제단말기 응답 메시지
deviceCardResponseCodeStringRequired카드사 응답 코드
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "PaymentInfo",
"data": {
"type": "Prepaid",
"paymentMethod": "kWh",
"transactionId": "6864827f-2b65-498d-8420-d5a0cf33dc80",
"demandValue": 50000.0,
"tradeApprovalId": "APPROVAL123456789",
"tradeUniqueId": "TXN987654321",
"deviceResponseCode": "00",
"deviceResponseMessage": "승인완료",
"deviceCardResponseCode": "00"
}
}
]

결제 정보 전송 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

MAC 주소 등록

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: MacRegister

MAC 주소 등록 요청

Field NameTypeRequiredDescription
macAddressStringRequiredMAC 주소
cardNumberStringRequired연결할 카드 번호
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "MacRegister",
"data": {
"macAddress": "00-1A-2B-3C-4D-5E",
"cardNumber": "04D2A91234567890"
}
}
]

MAC 주소 등록 응답

Field NameTypeRequiredDescription
successBooleanRequired등록 성공 여부
messageStringOptional등록 결과 메시지(success == false 시 노출됩니다)
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"success": true
},
"status": "Accepted"
}
]

네트워크 프로파일 설정

이 메시지는 CSMS가 EVSE의 네트워크 연결 정보를 설정할 때 사용합니다.

messageId: SetNetworkProfile

네트워크 프로파일 설정 요청

Field NameTypeRequiredDescription
configurationSlotIntegerRequired설정을 저장할 슬롯 번호
connectionDataNetworkConnectionProfileTypeRequired연결 상세 정보
예시
[
2,
"e1a2b3c4-d567-8901-2345-6789abcdef01",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetNetworkProfile",
"data": {
"configurationSlot": 1,
"connectionData": {
"ocppVersion": "1.6",
"ocppInterface": "Any",
"ocppTransport": "JSON",
"messageTimeout": 30,
"ocppCsmsUrl": "wss://csms.example.com/ocpp/",
"securityProfile": 2,
"identity": "6013ME53-01",
"basicAuthPassword": "?GJ1Hx1U0A]_~$)N)k3OTq5mLh8Pjb"
}
}
}
]

네트워크 프로파일 설정 응답

Field NameTypeRequiredDescription
statusSetNetworkProfileStatusEnumTypeRequired작업 결과 상태
statusInfoStatusInfoTypeOptional상세 상태 정보
예시
[
3,
"e1a2b3c4-d567-8901-2345-6789abcdef01",
{
"data": {
"status": "Accepted",
"statusInfo": {
"reasonCode": "Configured",
"additionalInfo": "네트워크 프로파일이 정상적으로 설정되었습니다."
}
},
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 발급 요청

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetSmartChargeCertificate

인증서 발급 요청 요청

Field NameTypeRequiredDescription
timeStampStringRequired인증서 요청 시간
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeCertificate",
"data": {
"timeStamp": "2024-01-15T10:30:00.000Z",
"connectorId": 1
}
}
]

인증서 발급 요청 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 설치 요청

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: InstallSmartChargeCertificate

인증서 설치 요청 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
certificatesSmartChargeCertificateInfoTypeRequired인증서 정보
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "InstallSmartChargeCertificate",
"data": {
"connectorId": 1,
"certificates": {
"chargerCertificate": "LS0tLS1CRUdJTi...",
"chargerPrivateKey": "LS0tLS1CRUdJTi...",
"kecoServerCertificate": "LS0tLS1CRUdJTi..."
}
}
}
]

인증서 설치 요청 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 정보 조회

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: GetSmartChargeCertificateInfoType

인증서 정보 조회 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeCertificateInfoType",
"data": {
"connectorId": 1
}
}
]

인증서 정보 조회 응답

Field NameTypeRequiredDescription
certificatesSmartChargeCertificateInfoTypeOptional설치된 인증서 정보 목록
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"certificates": {
"chargerCertificate": "LS0tLS1CRUdJTi...",
"chargerPrivateKey": "LS0tLS1CRUdJTi...",
"kecoServerCertificate": "LS0tLS1CRUdJTi..."
}
},
"status": "Accepted"
}
]

스마트충전(VAS) 세션키 발급 요청

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetSmartChargeSessionKey

세션키 발급 요청 요청

Field NameTypeRequiredDescription
timeStampDateTimeRequired세션키 요청 시간
keyTypeStringOptional요청하는 키 타입
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeSessionKey",
"data": {
"timeStamp": "2024-01-15T10:30:00.000Z",
"connectorId": 1
}
}
]

세션키 발급 요청 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 세션키 설치 요청

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: InstallSmartChargeSessionKey

세션키 설치 요청 요청

Field NameTypeRequiredDescription
signDataStringRequired서명 데이터
publicKeyStringRequired공개키
keyIdStringRequired키 ID
keyTypeStringOptional키 타입
validFromStringRequired유효 시작 시간
validToStringRequired유효 만료 시간
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "InstallSmartChargeSessionKey",
"data": {
"signData": "LS0tLS1CRUdJTi...",
"publicKey": "LS0tLS1CRUdJTi...",
"keyId": "195024035...",
"validFrom": "2024-01-15T00:00:00Z",
"validTo": "2024-02-15T23:59:59Z",
"connectorId": 1
}
}
]

세션키 설치 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

사용자 Target SoC 설정

이 메시지는 양방향에서 요청할 수 있습니다.

messageId: SetUserTargetSoC

사용자 Target SoC 설정 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
userTargetSoCStringRequired사용자 설정 SoC (0~100)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetUserTargetSoC",
"data": {
"connectorId": 1,
"userTargetSoC": "80"
}
}
]

사용자 Target SoC 설정 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 배터리 정보 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: BatteryInfo

배터리 정보 전송 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
infoCountNumberRequiredBattery 데이터 수
SmartChargeBatteryDataSetTypeArray<SmartChargeBatteryDataSetType>RequiredBatteryData 배열
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "BatteryInfo",
"data": {
"connectorId": 1,
"infoCount": 1,
"SmartChargeBatteryDataSetType": [
{
"timeStamp": "2024-01-15T10:30:00.000Z",
"sessionDuration": "1800",
"counter": "1",
"batteryData": "LS0tLS1CRUdJTi..."
}
]
}
}
]

배터리 정보 전송 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 개인정보 동의 설정

이 메시지는 양방향에서 요청할 수 있습니다.

messageId: SetPrivacyPolicyCheck

개인정보 동의 설정 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
timeStampDateTimeRequired개인정보 수집 및 동의 확인 시간
consentedBooleanRequired개인정보 수집 및 동의여부
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetPrivacyPolicyCheck",
"data": {
"connectorId": 1,
"timeStamp": "2024-01-15T10:30:00.000Z",
"consented": true
}
}
]

개인정보 동의 설정 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

표시 메시지 설정

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: SetDisplayMessage

표시 메시지 설정 요청

Field NameTypeRequiredDescription
messageMessageInfoTypeRequired표시할 메시지의 설정 정보를 포함합니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetDisplayMessage",
"data": {
"message": {
"id": 2,
"priority": "InFront",
"message": {
"format": "UTF8",
"content": "고장 조치 중입니다. 불편을 드려 죄송합니다. (고객센터: 1566-1704)"
}
}
}
}
]

표시 메시지 설정 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"status": "Accepted"
},
"status": "Accepted"
}
]

충전 고유키 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetEssentialsKey

충전 고유키 조회 요청

Field NameTypeRequiredDescription
connectorIdNumberRequired
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetEssentialsKey",
"data": {
"connectorId": 1
}
}
]

충전 고유키 조회 응답

Field NameTypeRequiredDescription
essentialsKeyStringRequired
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"essentialsKey": "4326342645265234MJUWXVCASUSDRGDDERDXGF"
},
"status": "Accepted"
}
]

운영 스케줄 설정

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: SetOperatingSchedule

운영 스케줄 설정 요청

Field NameTypeRequiredDescription
profileIdNumberRequired운영 스케줄 프로파일 ID
utcOffsetStringRequiredUTC 오프셋 (예: "+09:00", "+00:00")
schedulesArray<OperatingScheduleEntryType>Required스케줄 항목 목록
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetOperatingSchedule",
"data": {
"profileId": 1,
"utcOffset": "+09:00",
"schedules": [
{
"connectorId": null,
"dayOfWeek": "MON",
"startTime": "09:00",
"endTime": "18:00"
},
{
"connectorId": null,
"dayOfWeek": "TUE",
"startTime": "09:00",
"endTime": "18:00"
},
{
"connectorId": null,
"dayOfWeek": "SAT",
"startTime": "10:00",
"endTime": "14:00"
}
]
}
}
]

위 예시에서 수금, 일요일은 스케줄이 없으므로 24시간 운영됩니다. 토요일은 전체 커넥터가 10:0014:00만 운영됩니다.

운영 스케줄 설정 응답

Field NameTypeRequiredDescription
statusStringRequired처리 결과 (Accepted / Rejected)
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

광고 프로파일 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetAdProfile

광고 프로파일 조회 요청

data가 없습니다.

예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetAdProfile"
}
]

광고 프로파일 조회 응답

Field NameTypeRequiredDescription
profileAdProfileTypeOptional광고 프로파일

활성 프로파일이 있는 경우:

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"profile": {
"version": "1.0.0-5-20260326150000|1.0.0-7-open",
"validUntil": "2026-03-26T15:00:00Z",
"items": [
{
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"displayOrder": 1,
"durationSec": 10
},
{
"mediaKey": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"displayOrder": 2,
"durationSec": 15
},
{
"mediaKey": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"displayOrder": 1,
"durationSec": 20
}
]
}
},
"status": "Accepted"
}
]

활성 프로파일이 없는 경우:

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"profile": null
},
"status": "Accepted"
}
]

광고 미디어 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetAdMedia

광고 미디어 조회 요청

Field NameTypeRequiredDescription
mediaKeyStringRequired미디어 파일 식별 키 (UUID)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetAdMedia",
"data": {
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
]

광고 미디어 조회 응답

Field NameTypeRequiredDescription
(fields)AdMediaTypeRequired미디어 파일 정보
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"fileName": "spring-event-01.jpg",
"contentType": "image/jpeg",
"fileSize": 524288,
"uri": "https://cdn.example.com/ad-media/a1b2c3d4.jpg?token=eyJhbGci...&expires=1748293800"
},
"status": "Accepted"
}
]

화면 캡처 트리거

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: TriggerScreenCapture

화면 캡처 트리거 요청

Field NameTypeRequiredDescription
screenIdStringRequired캡처 대상 화면 식별자 (충전기 내부 화면 ID)
expireAtDateTimeRequired트리거 유효 만료 시각 (UTC, ISO 8601). 만료 시 트리거 자동 해제.
maxCapturesNumberOptional최대 캡처 횟수. 생략 시 기본값 1. 해당 횟수 도달 시 트리거 자동 해제.
uploadUrlStringRequired캡처 이미지를 HTTP POST(multipart)로 업로드할 URL. CSMS가 메시지 ID 기반으로 생성한 엔드포인트.
예시
[
2,
"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "TriggerScreenCapture",
"data": {
"screenId": "SCR_ERROR_01",
"expireAt": "2025-04-07T09:00:00Z",
"maxCaptures": 3,
"uploadUrl": "https://csms.example.com/v1/screen-capture/60130038-01/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
]

화면 캡처 트리거 응답

Field NameTypeRequiredDescription
statusStringRequired트리거 등록 결과 (Accepted, Rejected, NotSupported)
statusInfoObjectOptional상세 상태 정보 (reasonCode, additionalInfo)
예시
[
3,
"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
{
"data": {
"status": "Accepted"
},
"status": "Accepted"
}
]

화면 캡처 결과 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: ScreenCaptureResult

화면 캡처 결과 전송 요청

이미지 바이너리는 uploadUrl로 HTTP POST(multipart) 전송하며, DataTransfer로는 메타데이터만 전송합니다.

Field NameTypeRequiredDescription
screenIdStringRequired캡처된 화면의 식별자 (트리거 설정 시 지정한 값)
capturedAtDateTimeRequired실제 캡처가 수행된 시각 (UTC, ISO 8601)
uploadStatusStringRequiredHTTP 업로드 결과 (Uploaded, UploadFailed)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "ScreenCaptureResult",
"data": {
"screenId": "SCR_ERROR_01",
"capturedAt": "2025-04-06T14:23:15Z",
"uploadStatus": "Uploaded"
}
}
]

화면 캡처 결과 전송 응답

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

StopTransaction

규칙

  1. idTag 값은 보내주지 마세요.
  2. reason 값은 반드시 보내주세요.
  3. transactionData 대신 MeterValues.req를 보내주세요. (단, contextTransaction.End로 설정해야 합니다.)