ReserveNow 개요
ReserveNow는 중앙 시스템(CSMS)이 충전소의 특정 EVSE를 미리 예약하기 위해 보내는 메시지입니다. 이 메시지를 통해 특정 사용자를 위해 충전기를 일정 시간 동안 예약할 수 있으며, 예약된 EVSE는 지정된 사용자만 사용할 수 있도록 제한되어 충전 서비스의 편의성과 효율성을 향상시킵니다.
메시지 구조
Request (CSMS → 충전소)
{
"id": 123456,
"expiryDateTime": "2024-08-14T12:00:00.000Z",
"idToken": {
"idToken": "RFID12345678",
"type": "ISO14443"
},
"evseId": 1,
"groupIdToken": {
"idToken": "GROUP001",
"type": "ISO14443"
},
"connectorType": "cType2"
}
Response (충전소 → CSMS)
{
"status": "Accepted",
"statusInfo": {
"reasonCode": "OK"
}
}
주요 필드 설명
Request 필드들
필드명 |
필수여부 |
타입 |
설명 |
id |
필수 |
Integer |
예약의 고유 식별자 |
expiryDateTime |
필수 |
DateTime |
예약 만료 시간 (ISO 8601 형식) |
idToken |
필수 |
Object |
예약 대상 사용자의 인증 토큰 |
evseId |
선택사항 |
Integer |
예약할 특정 EVSE ID (생략 시 자동 선택) |
groupIdToken |
선택사항 |
Object |
그룹 인증 토큰 |
connectorType |
선택사항 |
Enum |
요구되는 커넥터 타입 |
idToken 객체 필드들
필드명 |
필수여부 |
타입 |
설명 |
idToken |
필수 |
String |
인증 토큰 값 |
type |
필수 |
Enum |
토큰 타입 |
type 필드 값 (idToken)
값 |
설명 |
Central |
중앙 시스템 토큰 |
eMAID |
e-Mobility Account ID |
ISO14443 |
RFID 카드 (ISO14443 표준) |
ISO15693 |
RFID 카드 (ISO15693 표준) |
KeyCode |
키 코드 |
Local |
로컬 토큰 |
MacAddress |
MAC 주소 |
NoAuthorization |
인증 불필요 |
connectorType 필드 값
값 |
설명 |
cCCS1 |
CCS1 (Combined Charging System 1) |
cCCS2 |
CCS2 (Combined Charging System 2) |
cG105 |
GB/T AC 커넥터 |
cTesla |
Tesla 전용 커넥터 |
cType1 |
Type 1 (SAE J1772) |
cType2 |
Type 2 (IEC 62196-2) |
s309-1P-16A |
CEE 7/7 16A |
s309-1P-32A |
CEE 7/7 32A |
sBS1361 |
BS 1361 (영국 표준) |
sCEE-7-7 |
CEE 7/7 (유럽 표준) |
sType2 |
Type 2 소켓 |
sType3 |
Type 3 소켓 |
Other |
기타 커넥터 |
Response 필드들
필드명 |
필수여부 |
타입 |
설명 |
status |
필수 |
Enum |
예약 요청 처리 결과 |
statusInfo |
선택사항 |
Object |
추가 상태 정보 |
status 필드 값
값 |
설명 |
Accepted |
승인됨 - 예약이 성공적으로 생성됨 |
Faulted |
오류 - EVSE 장애로 예약 불가능 |
Occupied |
점유됨 - 해당 EVSE가 현재 사용 중 |
Rejected |
거부됨 - 예약 생성 불가능 |
Unavailable |
사용불가 - EVSE가 서비스 불가 상태 |
실제 사용 예제
예제 1: 기본적인 EVSE 예약
// Request
{
"id": 789001,
"expiryDateTime": "2024-08-14T15:00:00.000Z",
"idToken": {
"idToken": "USER123456789",
"type": "ISO14443"
},
"evseId": 2
}
// Response
{
"status": "Accepted"
}
예제 2: 특정 커넥터 타입 요구 예약
// Request
{
"id": 789002,
"expiryDateTime": "2024-08-14T16:30:00.000Z",
"idToken": {
"idToken": "CARD987654321",
"type": "ISO14443"
},
"connectorType": "cCCS2"
}
// Response
{
"status": "Accepted",
"statusInfo": {
"reasonCode": "ReservedConnectorAssigned",
"additionalInfo": "EVSE 3 assigned"
}
}
예제 3: 점유된 EVSE 예약 실패
// Request
{
"id": 789003,
"expiryDateTime": "2024-08-14T17:00:00.000Z",
"idToken": {
"idToken": "APP_USER_001",
"type": "Central"
},
"evseId": 1
}
// Response
{
"status": "Occupied",
"statusInfo": {
"reasonCode": "EVSEOccupied",
"additionalInfo": "EVSE 1 currently in use"
}
}
예제 4: 그룹 토큰을 포함한 예약
// Request
{
"id": 789004,
"expiryDateTime": "2024-08-14T18:00:00.000Z",
"idToken": {
"idToken": "EMPLOYEE001",
"type": "ISO14443"
},
"groupIdToken": {
"idToken": "COMPANY_FLEET",
"type": "Central"
},
"evseId": 3
}
// Response
{
"status": "Accepted"
}
처리 흐름
- 예약 요청: CSMS가 사용자 요청 또는 시스템 판단에 따라 ReserveNow 전송
- 가용성 확인: 충전소가 해당 EVSE의 현재 상태 및 가용성 확인
- 커넥터 매칭: connectorType 지정 시 호환 가능한 EVSE 검색
- 예약 처리:
Accepted
: 예약 생성 및 EVSE 상태를 "Reserved"로 변경
Occupied/Faulted/Unavailable
: 예약 실패, 사유와 함께 응답
- 상태 알림: StatusNotification으로 EVSE 상태 변경 알림
- 예약 관리: 만료 시간까지 해당 사용자만 접근 허용
- 자동 해제: 만료 시간 도달 시 자동으로 예약 해제
중요 포인트
- 이 메시지는 CSMS에서 충전소로 보내는 예약 요청 메시지입니다
- 예약 ID(
id
)는 나중에 CancelReservation에서 예약 취소 시 사용됩니다
evseId
를 생략하면 충전소가 가용한 EVSE를 자동으로 선택합니다
- 예약된 EVSE는 지정된
idToken
사용자만 접근할 수 있습니다
expiryDateTime
이후에는 예약이 자동으로 만료되어 일반 사용자도 접근 가능합니다
groupIdToken
을 통해 특정 그룹(회사, 조직 등)의 사용자들이 공유 예약할 수 있습니다
- 예약 상태는 StatusNotification 메시지로 별도 알림됩니다
- 동일한 EVSE에 대한 중복 예약은 거부됩니다
- 예약 시간은 충전소의 로컬 시간이 아닌 UTC 기준으로 처리됩니다
관련 메시지와의 연관성
- CancelReservation: 생성된 예약을 취소할 때 사용
- StatusNotification: 예약으로 인한 EVSE 상태 변경 알림
- Authorize: 예약된 사용자의 실제 충전 시작 시 인증 확인
이 메시지를 통해 중앙 시스템은 사용자의 충전 계획에 맞춰 EVSE를 미리 확보할 수 있게 하여 충전 서비스의 편의성을 크게 향상시키고, 충전소 운영의 효율성과 사용자 만족도를 동시에 높일 수 있습니다.