GetBaseReport 개요
GetBaseReport는 중앙 시스템(CSMS)이 충전소에게 기본 구성 정보 보고서를 요청하는 메시지입니다. 이 메시지를 통해 충전소의 기본 설정값, 지원 기능, 하드웨어 정보 등의 핵심 데이터를 수집하여 중앙에서 충전소를 효율적으로 관리하고 모니터링할 수 있습니다.
메시지 구조
Request (CSMS → 충전소)
{
"requestId": 12345,
"reportBase": "FullInventory"
}
Response (충전소 → CSMS)
{
"status": "Accepted"
}
주요 필드 설명
Request 필드들
필드명 |
필수여부 |
타입 |
설명 |
requestId |
필수 |
Integer |
보고서 요청의 고유 식별자 |
reportBase |
필수 |
Enum |
요청할 보고서의 기본 유형 |
reportBase 필드 값
값 |
설명 |
ConfigurationInventory |
설정 가능한 변수들의 목록 및 현재 값 |
FullInventory |
모든 컴포넌트, 변수, 속성의 전체 정보 |
SummaryInventory |
주요 컴포넌트와 기본 정보의 요약 |
Response 필드들
필드명 |
필수여부 |
타입 |
설명 |
status |
필수 |
Enum |
보고서 요청 처리 상태 |
status 필드 값
값 |
설명 |
Accepted |
승인됨 - 보고서 생성 시작, NotifyReport로 응답 예정 |
Rejected |
거부됨 - 보고서 생성 불가능 |
NotSupported |
미지원 - 해당 보고서 타입을 지원하지 않음 |
실제 사용 예제
예제 1: 전체 인벤토리 보고서 요청
// Request
{
"requestId": 100001,
"reportBase": "FullInventory"
}
// Response
{
"status": "Accepted"
}
예제 2: 설정 인벤토리 보고서 요청
// Request
{
"requestId": 100002,
"reportBase": "ConfigurationInventory"
}
// Response
{
"status": "Accepted"
}
예제 3: 요약 인벤토리 보고서 요청
// Request
{
"requestId": 100003,
"reportBase": "SummaryInventory"
}
// Response
{
"status": "Accepted"
}
예제 4: 지원되지 않는 보고서 타입 요청
// Request
{
"requestId": 100004,
"reportBase": "CustomInventory"
}
// Response
{
"status": "NotSupported"
}
처리 흐름
- 보고서 필요: CSMS가 충전소의 기본 구성 정보가 필요하다고 판단
- 요청 전송: 원하는 보고서 타입으로 GetBaseReport 전송
- 충전소 확인: 요청된 보고서 타입 지원 여부 확인
- 응답 처리:
Accepted
: 보고서 생성 시작
Rejected/NotSupported
: 요청 거부
- 보고서 생성: 백그라운드에서 요청된 데이터 수집 및 정리
- 데이터 전송: NotifyReport 메시지를 통해 실제 보고서 데이터 전송
- 완료 확인: 모든 데이터가 전송될 때까지 반복
보고서 타입별 포함 내용
FullInventory
- 모든 컴포넌트 정보 (ChargingStation, EVSE, Connector 등)
- 모든 변수와 속성값
- 하드웨어 및 소프트웨어 정보
- 지원 기능 목록
- 네트워크 설정 정보
ConfigurationInventory
- 설정 가능한 변수들만 선별
- 현재 설정값과 기본값
- 변경 가능 여부 (mutability)
- 설정 범위 (min/max 값)
SummaryInventory
- 기본 충전소 정보
- EVSE 개수 및 상태
- 주요 설정값만 요약
- 펌웨어 버전 등 핵심 정보
중요 포인트
- 이 메시지는 CSMS에서 충전소로 보내는 정보 수집 요청 메시지입니다
- 응답은 즉시 처리 상태만 알리고, 실제 데이터는 NotifyReport로 별도 전송됩니다
requestId
는 NotifyReport와 매칭하여 어떤 요청에 대한 응답인지 식별합니다
- 보고서 생성은 시간이 오래 걸릴 수 있어 비동기적으로 처리됩니다
FullInventory
는 데이터량이 많아 여러 개의 NotifyReport로 분할 전송될 수 있습니다
- 충전소 초기 설정, 정기 점검, 문제 진단 시 주로 사용됩니다
- 보고서 생성 중에도 충전소의 정상 운영에는 영향을 주지 않아야 합니다
- 네트워크 상태에 따라 보고서 전송이 지연될 수 있습니다
- 중복 요청을 방지하기 위해 고유한
requestId
를 사용해야 합니다
관련 메시지와의 연관성
- NotifyReport: 실제 보고서 데이터를 전송하는 응답 메시지
- GetReport: 특정 컴포넌트나 변수만 조회할 때 사용
- SetVariables: 보고서에서 확인한 설정값을 변경할 때 사용
일반적인 사용 시나리오
- 초기 구성: 새로 설치된 충전소의 기본 정보 수집
- 정기 감사: 주기적인 구성 정보 확인 및 업데이트
- 문제 진단: 장애 발생 시 현재 설정 상태 확인
- 업그레이드 준비: 펌웨어/소프트웨어 업그레이드 전 현재 상태 백업
- 규정 준수: 규제 요구사항에 따른 정기 보고서 생성
이 메시지를 통해 중앙 시스템은 충전소의 전체적인 구성과 상태를 체계적으로 파악하고 관리할 수 있어, 효율적인 운영과 예방적 유지보수를 통해 충전 서비스의 안정성과 품질을 지속적으로 향상시킬 수 있습니다.