운영 스케줄 - Use Cases
CSMS는 충전기의 운영 시간을 커넥터별, 요일별로 관리하고 배포하는 기능을 제공합니다.
OCPP v1.6/v2.1 공통
운영 스케줄 기능은 SK일렉링크 커스텀 DataTransfer 메시지로 동작합니다. OCPP v1.6과 OCPP v2.1 세션 모두 DataTransfer:com.skelectlink:SetOperatingSchedule을 사용합니다.
운영 스케줄 설정
스케줄에 정의되지 않은 요일/커넥터 조합은 24시간 운영(제한 없음)으로 동작합니다. 운영 시간을 제한하려는 요일/커넥터만 명시적으로 등록하면 됩니다.
- CSMS: 각 충전기에
DataTransfer:com.skelectlink:SetOperatingSchedule전송 - EVSE: 스케줄 수신 후 로컬에 저장하고
Accepted/Rejected응답
예시
요청
[
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:00 ~ 14:00만 운영됩니다.
응답
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]
EVSE 구현 권장사항
- 스케줄 저장: 수신한 운영 스케줄을 비휘발성 메모리에 저장하여 재부팅 후에도 유지합니다.
- 요일 매칭:
dayOfWeek가ALL인 항목은 모든 요일에 적용됩니다. 특정 요일 항목이ALL항목보다 우선합니다. - 커넥터 매칭:
connectorId가null인 항목은 전체 커넥터에 적용됩니다. 특정 커넥터 항목이null항목보다 우선합니다. - 시간대 처리:
utcOffset값을 사용하여 로컬 시간을 계산합니다. 충전기 내부 시계가 UTC 기준이라면 오프셋을 적용하여 운영 시간을 판단합니다. - 운영 시간 외 상태 전환: 운영 시간이 종료되면 해당 커넥터의
StatusNotification을Unavailable로 전송하고, 새로운 충전 세션 시작을 거부합니다. 운영 시간이 시작되면Available로 전환하여StatusNotification을 전송합니다. - 진행 중 충전 세션 처리: 운영 종료 시각에 이미 진행 중인 충전 세션은 정상적으로 완료되도록 허용하는 것을 권장합니다. 충전 완료 후
Unavailable로 전환합니다. - 프로파일 교체: 새로운
SetOperatingSchedule을 수신하면 기존 스케줄을 완전히 교체합니다. 병합하지 않습니다.