OCPP 2.0.1 GetChargingProfiles 메시지

 

GetChargingProfiles 개요

GetChargingProfiles는 중앙 시스템(CSMS)이 충전소에게 현재 설정되어 있는 충전 프로파일 정보를 조회하도록 요청하는 메시지입니다. 이는 중앙 시스템이 충전소의 현재 충전 제한 설정을 확인하거나, 프로파일 관리 상태를 모니터링하고자 할 때 사용됩니다.

메시지 구조

Request (CSMS → 충전소)

{
  "requestId": 12345,
  "evseId": 1,
  "chargingProfile": {
    "chargingProfilePurpose": "TxProfile",
    "stackLevel": 2,
    "chargingProfileId": [101, 102],
    "chargingLimitSource": ["EMS", "CSO"]
  }
}

Response (충전소 → CSMS)

{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "ProfilesFound",
    "additionalInfo": "2 profiles matching criteria"
  }
}

주요 필드 설명

Request 필드들

requestId 필드 (필수)

필드명 필수여부 타입 설명
requestId 필수 Integer 요청 식별자 (ReportChargingProfiles 메시지와 매칭)

evseId 필드 (선택사항)

필드명 필수여부 타입 설명
evseId 선택사항 Integer 특정 EVSE의 프로파일만 조회 (0이면 충전소 레벨)

chargingProfile 필드 (선택사항)

필드명 필수여부 타입 설명
chargingProfilePurpose 선택사항 Enum 조회할 프로파일의 목적
stackLevel 선택사항 Integer 조회할 프로파일의 스택 레벨
chargingProfileId 선택사항 Integer Array 조회할 특정 프로파일 ID 목록
chargingLimitSource 선택사항 Enum Array 충전 제한 소스 필터

chargingProfilePurpose 값

설명
ChargingStationMaxProfile 충전소 최대 전력 프로파일
TxDefaultProfile 트랜잭션 기본 프로파일
TxProfile 특정 트랜잭션 프로파일

chargingLimitSource 값

설명
EMS 에너지 관리 시스템
Other 기타 소스
SO 시스템 운영자
CSO 충전소 운영자

Response 필드들

필드명 필수여부 타입 설명
status 필수 Enum 프로파일 조회 요청 처리 상태
statusInfo 선택사항 Object 추가 상태 정보

status 필드 값

설명
Accepted 승인됨 - 조회 요청이 처리되어 ReportChargingProfiles로 응답 예정
NoProfiles 프로파일 없음 - 조건에 맞는 프로파일이 존재하지 않음

실제 사용 예제

예제 1: 모든 프로파일 조회

// Request
{
  "requestId": 12345
}

// Response
{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "AllProfilesRequested",
    "additionalInfo": "Retrieving all charging profiles"
  }
}

// 이후 충전소가 보내는 ReportChargingProfiles
{
  "requestId": 12345,
  "chargingLimitSource": "CSO",
  "chargingProfile": [
    {
      "id": 101,
      "stackLevel": 1,
      "chargingProfilePurpose": "TxDefaultProfile",
      "chargingProfileKind": "Absolute",
      "chargingSchedule": [
        {
          "id": 1,
          "startSchedule": "2024-08-14T06:00:00.000Z",
          "duration": 28800,
          "chargingRateUnit": "A",
          "chargingSchedulePeriod": [
            {
              "startPeriod": 0,
              "limit": 32.0
            }
          ]
        }
      ]
    }
  ]
}

예제 2: 특정 EVSE의 트랜잭션 프로파일 조회

// Request
{
  "requestId": 12346,
  "evseId": 2,
  "chargingProfile": {
    "chargingProfilePurpose": "TxProfile"
  }
}

// Response
{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "EVSETxProfilesRequested",
    "additionalInfo": "Retrieving transaction profiles for EVSE 2"
  }
}

예제 3: 특정 스택 레벨과 소스의 프로파일 조회

// Request
{
  "requestId": 12347,
  "chargingProfile": {
    "stackLevel": 3,
    "chargingLimitSource": ["EMS"]
  }
}

// Response
{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "FilteredProfilesRequested",
    "additionalInfo": "Retrieving stack level 3 EMS profiles"
  }
}

예제 4: 특정 프로파일 ID 목록 조회

// Request
{
  "requestId": 12348,
  "chargingProfile": {
    "chargingProfileId": [101, 102, 103]
  }
}

// Response
{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "SpecificProfilesRequested",
    "additionalInfo": "Retrieving profiles 101, 102, 103"
  }
}

예제 5: 프로파일이 없는 경우

// Request
{
  "requestId": 12349,
  "evseId": 5,
  "chargingProfile": {
    "chargingProfilePurpose": "TxProfile"
  }
}

// Response
{
  "status": "NoProfiles",
  "statusInfo": {
    "reasonCode": "NoMatchingProfiles",
    "additionalInfo": "No transaction profiles found for EVSE 5"
  }
}

예제 6: 충전소 레벨 프로파일 조회

// Request
{
  "requestId": 12350,
  "evseId": 0,
  "chargingProfile": {
    "chargingProfilePurpose": "ChargingStationMaxProfile"
  }
}

// Response
{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "StationLevelProfileRequested",
    "additionalInfo": "Retrieving charging station max profile"
  }
}

처리 흐름

  1. 조회 요청: CSMS가 특정 조건의 충전 프로파일 조회를 요청
  2. 프로파일 검색: 충전소가 요청 조건에 맞는 프로파일을 검색
  3. 즉시 응답: 조회 요청의 수락/거부 상태를 즉시 응답
  4. 프로파일 전송: Accepted 응답한 경우, ReportChargingProfiles 메시지로 실제 프로파일 데이터 전송
  5. 조회 완료: 모든 매칭되는 프로파일 전송 완료

연관 메시지

이 메시지는 다음 메시지와 함께 사용됩니다:

  • ReportChargingProfiles: GetChargingProfiles 요청에 대한 실제 프로파일 데이터 응답
  • SetChargingProfile: 프로파일 설정 후 확인 목적으로 조회
  • ClearChargingProfile: 프로파일 삭제 후 확인 목적으로 조회

중요 포인트

  • GetChargingProfiles는 CSMS에서 충전소로만 전송됩니다
  • requestId는 필수이며, 이후 ReportChargingProfiles 메시지와 매칭하는 데 사용됩니다
  • 모든 조건 필드가 선택사항이므로, 필드를 지정하지 않으면 모든 프로파일이 조회됩니다
  • evseId가 0이면 충전소 레벨 프로파일, 양수면 해당 EVSE의 프로파일을 의미합니다
  • statusAccepted인 경우 반드시 ReportChargingProfiles 메시지가 뒤따라야 합니다
  • 대용량 프로파일 데이터의 경우 여러 개의 ReportChargingProfiles 메시지로 분할 전송될 수 있습니다
  • 조회된 프로파일 정보는 현재 활성 상태와 스케줄 정보를 모두 포함합니다

이 메시지를 통해 중앙 시스템은 충전소의 현재 충전 제한 설정을 실시간으로 모니터링하고, 프로파일 관리 상태를 정확히 파악할 수 있습니다.