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 RemoteStartTransaction 확장 필드를 설명합니다. OCPP v2.1 충전기는 동일한 목적의 원격 시작에 RequestStartTransactionRequest를 사용합니다.
규칙
CSMS가 EVSE로 요청하는 해당 메시지는, 아래 비표준 파라미터를 추가로 포함합니다.
| Field Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Optional | 충전을 시작할 커넥터 번호 |
| idTag | String | Required | transactionId 수신전 임시로 사용하는 임의의 키값 |
| chargingProfile | Number | Optional | 스마트 충전 관련 규격 |
| additionalInfo | RemoteStartTransactionAdditionalInfoType | Optional | (추가) |
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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | fixed 0 |
| currency | String | Required | fixed "" |
| unitPrice | Number | Required | kWh/원 단가 |
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"connectorId": 0,
"currency": "",
"unitPrice": 420
},
"status": "Accepted"
}
]
단가 조회
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
messageId: GetUnitPrice
단가 조회 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| unitPriceEnumType | UnitPriceEnumType | Required | 요청할 단가 타입 구분 |
| connectorId | Number | Optional | 커넥터 식별자 (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 Name | Type | Required | Description |
|---|---|---|---|
| currency | String | Required | fixed "KRW" |
| unitPrice | String | Required | kWh/원 단가 |
| memberInfo | MemberInfoType | Optional | 회원 유형 정보 (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 Name | Type | Required | Description |
|---|---|---|---|
| requestMessage | MessageTriggerEnumType | Required | Trigger할 메시지의 타입을 의미합니다. |
| customTrigger | String | Optional | requestMessage가 CustomTrigger인 경우 해당 필드가 포함됩니다. |
| evse | EVSEType | Optional | 사용하지 않습니다. |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "TriggerMessage",
"data": {
"requestMessage": "CustomTrigger",
"customTrigger": "DataTransfer:com.skelectlink:GetPrice"
}
}
]
예상되는 동작: EVSE는 CSMS로 DataTransfer 메시지를 보냅니다.
메시지 트리거 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| status | TriggerMessageStatusEnumType | Required | 트리거 명령 수행 상태를 응답합니다. |
| statusInfo | StatusInfoType | Optional | 자세한 충전기의 상태의 포함합니다. |
충전기는 반드시 해당 요청을 받고, 해당 명령을 수행할 수 있는 상태를 즉시 응답한 이후 언급된 트리거 메시지를 동작시켜야한다.
statusInfo는 status가 Accepted가 아닌 경우 가급적 포함하십시오.
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted",
"data": {
"status": "Rejected",
"statusInfo": {
"reasonCode": "{제조사별 임의 코드}",
"additionalInfo": "충전기가 작동 준비중입니다."
}
}
}
]
변수 조회
이 메시지는 양방향으로 교환할 수 있습니다.
OCPP v1.6에서는 아래 형식을 DataTransfer:com.skelectlink:GetVariables로 전송합니다. OCPP v2.1에서는 같은 getVariableData payload를 표준 GetVariables 메시지 본문으로 직접 전송합니다.
messageId: GetVariables
변수 조회 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| getVariableData | Array<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 Name | Type | Required | Description |
|---|---|---|---|
| getVariableResult | Array<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 v1.6에서는 아래 형식을 DataTransfer:com.skelectlink:SetVariables로 전송합니다. OCPP v2.1에서는 같은 setVariableData payload를 표준 SetVariables 메시지 본문으로 직접 전송합니다.
messageId: SetVariables
변수 설정 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| setVariableData | Array<SetVariableDataType> | Required | 설정할 컴포넌트-변수 쌍과 속성 값들입니다. |
변수 설정 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| setVariableResult | Array<SetVariableResultType> | Required | 변수 설정 결과 리스트입니다. |
사용자 인증
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
OCPP v1.6 또는 하위 호환이 필요한 경우 DataTransfer:com.skelectlink:Authorize를 사용합니다. OCPP v2.1 세션에서는 표준 Authorize 메시지를 직접 사용할 수 있으며, idToken 구조는 동일하게 적용됩니다.
messageId: Authorize
사용자 인증 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| certificate | String | Optional | EV가 제시한 X.509 인증서 체인으로 PEM 형식으로 인코딩됩니다. 검증이 필요한 경우에만 사용됩니다. |
| idToken | IdTokenType | Required | 인증이 필요한 식별자를 포함합니다. |
| iso15118CertificateHashData | OCSPRequestDataType | Optional | OCSP를 통해 EV 계약 인증서를 검증하는 데 필요한 정보를 포함합니다. |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "Authorize",
"data": {
"idToken": {
"idToken": "04D2A91234567890",
"type": "ISO14443"
}
}
}
]
사용자 인증 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| idTokenInfo | IdTokenInfoType | Required | 인증 결과 및 추가 정보를 포함합니다. |
| certificateStatusEnumType | AuthorizeCertificateStatusEnumTypeEnumType | Optional | 인증서 상태 정보입니다. |
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"idTokenInfo": {
"status": "Accepted"
}
},
"status": "Accepted"
}
]
결제 정보 전송
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
messageId: PaymentInfo
결제 정보 전송 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| type | PaymentInfoEnumType | Required | 결제 처리 유형 |
| paymentMethod | PaymentMethodEnumType | Required | 결제 방식 |
| transactionId | String | Required | 거래 번호 |
| demandValue | Number | Required | 요구 값 (kWh: Wh 단위, Money: KRW 단위) |
| tradeApprovalId | String | Required | 결제 승인번호 |
| tradeUniqueId | String | Required | 결제 고유번호 |
| deviceResponseCode | String | Required | 결제단말기 응답 코드 |
| deviceResponseMessage | String | Required | 결제단말기 응답 메시지 |
| deviceCardResponseCode | String | Required | 카드사 응답 코드 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| macAddress | String | Required | MAC 주소 |
| cardNumber | String | Required | 연결할 카드 번호 |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "MacRegister",
"data": {
"macAddress": "00-1A-2B-3C-4D-5E",
"cardNumber": "04D2A91234567890"
}
}
]
MAC 주소 등록 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| success | Boolean | Required | 등록 성공 여부 |
| message | String | Optional | 등록 결과 메시지(success == false 시 노출됩니다) |
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"success": true
},
"status": "Accepted"
}
]
네트워크 프로파일 설정
이 메시지는 CSMS가 EVSE의 네트워크 연결 정보를 설정할 때 사용합니다.
messageId: SetNetworkProfile
네트워크 프로파일 설정 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| configurationSlot | Integer | Required | 설정을 저장할 슬롯 번호 |
| connectionData | NetworkConnectionProfileType | Required | 연결 상세 정보 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| status | SetNetworkProfileStatusEnumType | Required | 작업 결과 상태 |
| statusInfo | StatusInfoType | Optional | 상세 상태 정보 |
예시
[
3,
"e1a2b3c4-d567-8901-2345-6789abcdef01",
{
"data": {
"status": "Accepted",
"statusInfo": {
"reasonCode": "Configured",
"additionalInfo": "네트워크 프로파일이 정상적으로 설정되었습니다."
}
},
"status": "Accepted"
}
]
스마트충전(VAS) 인증서 발급 요청
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
messageId: GetSmartChargeCertificate
인증서 발급 요청 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| timeStamp | String | Required | 인증서 요청 시간 |
| connectorId | Number | Required | 요청 커넥터 번호(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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | 요청 커넥터 번호(Not 0) |
| certificates | SmartChargeCertificateInfoType | Required | 인증서 정보 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | 요청 커넥터 번호(Not 0) |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeCertificateInfoType",
"data": {
"connectorId": 1
}
}
]
인증서 정보 조회 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| certificates | SmartChargeCertificateInfoType | Optional | 설치된 인증서 정보 목록 |
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"certificates": {
"chargerCertificate": "LS0tLS1CRUdJTi...",
"chargerPrivateKey": "LS0tLS1CRUdJTi...",
"kecoServerCertificate": "LS0tLS1CRUdJTi..."
}
},
"status": "Accepted"
}
]
스마트충전(VAS) 세션키 발급 요청
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
messageId: GetSmartChargeSessionKey
세션키 발급 요청 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| timeStamp | DateTime | Required | 세션키 요청 시간 |
| keyType | String | Optional | 요청하는 키 타입 |
| connectorId | Number | Required | 요청 커넥터 번호(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 Name | Type | Required | Description |
|---|---|---|---|
| signData | String | Required | 서명 데이터 |
| publicKey | String | Required | 공개키 |
| keyId | String | Required | 키 ID |
| keyType | String | Optional | 키 타입 |
| validFrom | String | Required | 유효 시작 시간 |
| validTo | String | Required | 유효 만료 시간 |
| connectorId | Number | Required | 요청 커넥터 번호(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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | 요청 커넥터 번호(Not 0) |
| userTargetSoC | String | Required | 사용자 설정 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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | 요청 커넥터 번호(Not 0) |
| infoCount | Number | Required | Battery 데이터 수 |
| SmartChargeBatteryDataSetType | Array<SmartChargeBatteryDataSetType> | Required | BatteryData 배열 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required | 요청 커넥터 번호(Not 0) |
| timeStamp | DateTime | Required | 개인정보 수집 및 동의 확인 시간 |
| consented | Boolean | Required | 개인정보 수집 및 동의여부 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| message | MessageInfoType | Required | 표시할 메시지의 설정 정보를 포함합니다. |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| connectorId | Number | Required |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetEssentialsKey",
"data": {
"connectorId": 1
}
}
]
충전 고유키 조회 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| essentialsKey | String | Required |
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"essentialsKey": "4326342645265234MJUWXVCASUSDRGDDERDXGF"
},
"status": "Accepted"
}
]
운영 스케줄 설정
이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.
messageId: SetOperatingSchedule
운영 스케줄 설정 요청
| Field Name | Type | Required | Description |
|---|---|---|---|
| profileId | Number | Required | 운영 스케줄 프로파일 ID |
| utcOffset | String | Required | UTC 오프셋 (예: "+09:00", "+00:00") |
| schedules | Array<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 Name | Type | Required | Description |
|---|---|---|---|
| status | String | Required | 처리 결과 (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 Name | Type | Required | Description |
|---|---|---|---|
| profile | AdProfileType | Optional | 광고 프로파일 |
활성 프로파일이 있는 경우:
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| mediaKey | String | Required | 미디어 파일 식별 키 (UUID) |
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetAdMedia",
"data": {
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
]
광고 미디어 조회 응답
| Field Name | Type | Required | Description |
|---|---|---|---|
| (fields) | AdMediaType | Required | 미디어 파일 정보 |
예시
[
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 Name | Type | Required | Description |
|---|---|---|---|
| screenId | String | Required | 캡처 대상 화면 식별자 (충전기 내부 화면 ID) |
| expireAt | DateTime | Required | 트리거 유효 만료 시각 (UTC, ISO 8601). 만료 시 트리거 자동 해제. |
| maxCaptures | Number | Optional | 최대 캡처 횟수. 생략 시 기본값 1. 해당 횟수 도달 시 트리거 자동 해제. |
| uploadUrl | String | Required | 캡처 이미지를 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 Name | Type | Required | Description |
|---|---|---|---|
| status | String | Required | 트리거 등록 결과 (Accepted, Rejected, NotSupported) |
| statusInfo | Object | Optional | 상세 상태 정보 (reasonCode, additionalInfo) |
예시
[
3,
"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
{
"data": {
"status": "Accepted"
},
"status": "Accepted"
}
]
화면 캡처 결과 전송
이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.
messageId: ScreenCaptureResult
화면 캡처 결과 전송 요청
이미지 바이너리는 uploadUrl로 HTTP POST(multipart) 전송하며, DataTransfer로는 메타데이터만 전송합니다.
| Field Name | Type | Required | Description |
|---|---|---|---|
| screenId | String | Required | 캡처된 화면의 식별자 (트리거 설정 시 지정한 값) |
| capturedAt | DateTime | Required | 실제 캡처가 수행된 시각 (UTC, ISO 8601) |
| uploadStatus | String | Required | HTTP 업로드 결과 (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
규칙
idTag값은 보내주지 마세요.reason값은 반드시 보내주세요.transactionData대신MeterValues.req를 보내주세요. (단,context는Transaction.End로 설정해야 합니다.)