본문으로 건너뛰기

운영 스케줄 - Use Cases

CSMS는 충전기의 운영 시간을 커넥터별, 요일별로 관리하고 배포하는 기능을 제공합니다.

OCPP v1.6/v2.1 공통

운영 스케줄 기능은 SK일렉링크 커스텀 DataTransfer 메시지로 동작합니다. OCPP v1.6과 OCPP v2.1 세션 모두 DataTransfer:com.skelectlink:SetOperatingSchedule을 사용합니다.

운영 스케줄 설정

스케줄에 정의되지 않은 요일/커넥터 조합은 24시간 운영(제한 없음)으로 동작합니다. 운영 시간을 제한하려는 요일/커넥터만 명시적으로 등록하면 됩니다.

  1. CSMS: 각 충전기에 DataTransfer:com.skelectlink:SetOperatingSchedule 전송
  2. 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 구현 권장사항

  1. 스케줄 저장: 수신한 운영 스케줄을 비휘발성 메모리에 저장하여 재부팅 후에도 유지합니다.
  2. 요일 매칭: dayOfWeekALL인 항목은 모든 요일에 적용됩니다. 특정 요일 항목이 ALL 항목보다 우선합니다.
  3. 커넥터 매칭: connectorIdnull인 항목은 전체 커넥터에 적용됩니다. 특정 커넥터 항목이 null 항목보다 우선합니다.
  4. 시간대 처리: utcOffset 값을 사용하여 로컬 시간을 계산합니다. 충전기 내부 시계가 UTC 기준이라면 오프셋을 적용하여 운영 시간을 판단합니다.
  5. 운영 시간 외 상태 전환: 운영 시간이 종료되면 해당 커넥터의 StatusNotificationUnavailable로 전송하고, 새로운 충전 세션 시작을 거부합니다. 운영 시간이 시작되면 Available로 전환하여 StatusNotification을 전송합니다.
  6. 진행 중 충전 세션 처리: 운영 종료 시각에 이미 진행 중인 충전 세션은 정상적으로 완료되도록 허용하는 것을 권장합니다. 충전 완료 후 Unavailable로 전환합니다.
  7. 프로파일 교체: 새로운 SetOperatingSchedule을 수신하면 기존 스케줄을 완전히 교체합니다. 병합하지 않습니다.

전체 연동 흐름