NotifyReport 개요
NotifyReport는 충전소가 중앙 시스템(CSMS)에게 GetReport 요청에 대한 응답으로 설정값, 상태 정보, 변수 데이터 등의 보고서를 전송하는 메시지입니다. 이 메시지를 통해 충전소의 세부 구성 정보, 운영 상태, 설정 변수들을 중앙에서 모니터링하고 관리할 수 있어 원격 관리 시스템의 핵심 역할을 합니다.
메시지 구조
Request (충전소 → CSMS)
{
"requestId": 12345,
"generatedAt": "2024-08-14T10:30:00.000Z",
"reportData": [
{
"component": {
"name": "ChargingStation"
},
"variable": {
"name": "AvailabilityState"
},
"variableAttribute": [
{
"type": "Actual",
"value": "Available",
"mutability": "ReadOnly"
}
]
},
{
"component": {
"name": "EVSE",
"instance": "1"
},
"variable": {
"name": "Power"
},
"variableAttribute": [
{
"type": "Actual",
"value": "7400",
"unit": "W",
"mutability": "ReadOnly"
}
]
}
],
"tbc": false,
"seqNo": 0
}
Response (CSMS → 충전소)
{}
주요 필드 설명
Request 필드들
필드명 |
필수여부 |
타입 |
설명 |
requestId |
필수 |
Integer |
원본 GetReport 요청의 식별자 |
generatedAt |
필수 |
DateTime |
보고서 생성 시간 (ISO 8601 형식) |
reportData |
선택사항 |
Array |
보고서 데이터 배열 |
tbc |
선택사항 |
Boolean |
추가 보고서가 이어질지 여부 (To Be Continued) |
seqNo |
선택사항 |
Integer |
연속된 보고서의 순서 번호 |
reportData 객체 필드들
필드명 |
필수여부 |
타입 |
설명 |
component |
필수 |
Object |
컴포넌트 정보 |
variable |
필수 |
Object |
변수 정보 |
variableAttribute |
선택사항 |
Array |
변수 속성 배열 |
component 객체 필드들
필드명 |
필수여부 |
타입 |
설명 |
name |
필수 |
String |
컴포넌트 이름 |
instance |
선택사항 |
String |
컴포넌트 인스턴스 (예: EVSE 번호) |
evse |
선택사항 |
Object |
EVSE 정보 |
variable 객체 필드들
필드명 |
필수여부 |
타입 |
설명 |
name |
필수 |
String |
변수 이름 |
instance |
선택사항 |
String |
변수 인스턴스 |
variableAttribute 객체 필드들
필드명 |
필수여부 |
타입 |
설명 |
type |
선택사항 |
Enum |
속성 타입 |
value |
선택사항 |
String |
속성 값 |
mutability |
선택사항 |
Enum |
변경 가능성 |
persistent |
선택사항 |
Boolean |
재부팅 후 유지 여부 |
constant |
선택사항 |
Boolean |
상수 값 여부 |
type 필드 값
값 |
설명 |
Actual |
현재 실제 값 |
Target |
목표 설정값 |
MinSet |
최소 설정 가능값 |
MaxSet |
최대 설정 가능값 |
mutability 필드 값
값 |
설명 |
ReadOnly |
읽기 전용 |
WriteOnly |
쓰기 전용 |
ReadWrite |
읽기/쓰기 가능 |
실제 사용 예제
예제 1: 충전소 기본 상태 보고서
// Request
{
"requestId": 100001,
"generatedAt": "2024-08-14T10:30:00.000Z",
"reportData": [
{
"component": {
"name": "ChargingStation"
},
"variable": {
"name": "AvailabilityState"
},
"variableAttribute": [
{
"type": "Actual",
"value": "Available",
"mutability": "ReadOnly"
}
]
}
],
"tbc": false,
"seqNo": 0
}
// Response
{}
예제 2: EVSE 전력 설정 정보
// Request
{
"requestId": 100002,
"generatedAt": "2024-08-14T10:35:00.000Z",
"reportData": [
{
"component": {
"name": "EVSE",
"instance": "1"
},
"variable": {
"name": "MaxCurrentOffered"
},
"variableAttribute": [
{
"type": "Actual",
"value": "32",
"unit": "A",
"mutability": "ReadWrite"
},
{
"type": "MaxSet",
"value": "32",
"unit": "A",
"mutability": "ReadOnly"
}
]
}
],
"tbc": false,
"seqNo": 0
}
// Response
{}
예제 3: 분할된 대용량 보고서 (첫 번째 부분)
// Request
{
"requestId": 100003,
"generatedAt": "2024-08-14T10:40:00.000Z",
"reportData": [
{
"component": {
"name": "ChargingStation"
},
"variable": {
"name": "Interval"
},
"variableAttribute": [
{
"type": "Actual",
"value": "300",
"unit": "s",
"mutability": "ReadWrite",
"persistent": true
}
]
}
],
"tbc": true,
"seqNo": 0
}
// Response
{}
예제 4: 네트워크 설정 보고서
// Request
{
"requestId": 100004,
"generatedAt": "2024-08-14T11:00:00.000Z",
"reportData": [
{
"component": {
"name": "OCPPCommCtrlr"
},
"variable": {
"name": "NetworkConfigurationPriority"
},
"variableAttribute": [
{
"type": "Actual",
"value": "0,1,2,3",
"mutability": "ReadWrite",
"persistent": true
}
]
}
],
"tbc": false,
"seqNo": 0
}
// Response
{}
처리 흐름
- 보고서 요청: CSMS가 GetReport 메시지로 특정 정보 요청
- 데이터 수집: 충전소가 요청된 컴포넌트/변수 정보 수집
- 보고서 생성: 수집된 데이터를 NotifyReport 형식으로 구성
- 분할 판단: 데이터 크기에 따라 여러 메시지로 분할 여부 결정
- 순차 전송:
tbc: true
: 추가 보고서가 이어짐
tbc: false
: 마지막 보고서
- CSMS 처리: 중앙 시스템이 보고서 데이터 저장 및 분석
- 확인 응답: CSMS가 빈 객체로 수신 확인
중요 포인트
- 이 메시지는 충전소에서 CSMS로 보내는 보고서 전송 메시지입니다
requestId
는 원본 GetReport 요청과 매칭하여 어떤 요청에 대한 응답인지 식별합니다
- 대용량 보고서는
tbc
와 seqNo
를 활용하여 여러 메시지로 분할 전송됩니다
variableAttribute
배열을 통해 하나의 변수에 대한 다양한 속성을 전달할 수 있습니다
mutability
필드로 해당 변수의 변경 가능 여부를 확인할 수 있습니다
persistent
필드는 재부팅 후에도 값이 유지되는지를 나타냅니다
- 실시간 모니터링, 원격 설정, 문제 진단 등 다양한 목적으로 활용됩니다
- 보고서 생성 시간(
generatedAt
)을 통해 데이터의 신선도를 확인할 수 있습니다
- 컴포넌트와 변수의 조합으로 충전소의 모든 설정과 상태를 체계적으로 관리할 수 있습니다
관련 메시지와의 연관성
- GetReport: 보고서 요청 메시지로 이 알림의 시작점
- SetVariables: 보고서에서 확인한 변수값 변경에 사용
- GetVariables: 특정 변수값만 조회할 때 사용
이 메시지를 통해 중앙 시스템은 충전소의 상세한 운영 정보를 수집하고 분석하여 최적화된 충전 서비스를 제공하고, 예방적 유지보수와 효율적인 원격 관리를 실현할 수 있습니다.