OCPP 1.6에서 StatusNotification 메시지는 충전기가 자신의 상태 변화나 현재 상태를 중앙 시스템(서버)에 알리기 위해 사용하는 메시지입니다. 이 메시지를 통해 충전기는 현재 상태(예: 충전 가능, 충전 중, 고장, 연결 안 됨 등)를 서버에 보고하
여 충전소의 실시간 상태 모니터링이 가능하도록 합니다.
StatusNotification 메시지는 충전기에서 플러그가 꽂히거나 빠지는 상황, 고장이 발생하거나 해결되는 상황 등 상태 변화를 감지할 때마다 서버로 전송됩니다.
◈ StatusNotification 메시지 구조
StatusNotification 메시지에는 충전기 커넥터의 현재 상태와 관련된 여러 필드가 포함됩니다.
▶ StatusNotification 요청 (Charge Point → Central System)
필드 이름 | 필드 타입 | 설명 |
connectorId | integer connectorId >= 0 | 상태가 변경된 커넥터의 ID (0이면 충전기 전체 상태를 나타냄, 양수 값이면 개별 커넥터를 나타냄)(필수) |
errorCode | ChargePointErrorCode | 현재 충전기의 오류 코드. `NoError`로 설정된 경우 오류가 없음을 의미함 (필수) |
info | CiString50Type | 상태에 대한 추가 정보를 제공하는 선택적 텍스트 필드(옵션) |
status | ChargePointStatus | 커넥터의 현재 상태(필수) |
timestamp | dateTime | 상태 변경이 발생한 시간 (ISO 8601 형식)(옵션) |
vendorId | CiString255Type | 오류를 발생시킨 공급업체 ID(옵션) |
vendorErrorCode | CiString50Type | 공급업체가 지정한 오류 코드 (옵션) |
StatusNotification 요청에서 필수로 들어가는 요소 중 connectorId는 주유기를 들어 설명하면 보통 하나의 주유기에 경유 커넥터 1개, 휘발유 커넥터 1개 이렇게 2개가 존재하는데 전기 충전기는 전기만을 사용하기에 하나의 충전기에 보통 2개의 커넥터가 존재합니다. 물론 1개인 경우도 있습니다. 이때 커넥터 ID를 전송하여 1번이 충전 중인지 2번이 충전 중인지를 서버로 전달하게 됩니다.
그리고 errorCode와 status는 다음과 같은 값을 가질 수 있습니다.
● ChargePointErrorCode
value | 설명 |
ConnectorLockFailure | 커넥터가 잠금에 실패 하였거나 참기지 않은 상태 |
EVCommunicationError | 충전기와 차량과의 통신 실패 상태 |
GroundFailure | 접지 고장 회로 차단기가 작동 상태 |
HighTemperature | 충전기 내부 온도가 높은 상태 |
InternalError | 충전기의 하드웨어 또는 소프트웨어의 오류 상태 |
NoError | 정상 상태 |
OtherError | 다른 유형의 오류 상태. vendorErrorCode에서 확인 |
OverCurrentFailure | 과전류 보호 장치가 작동 상태 |
OverVoltage | 과전압 상태 |
WeakSignal | 무선 통신 장치가 신호가 약한 상태 |
● ChargePointStatus
status | 설명 |
Available | 충전이 가능한 상태 |
Preparing | 충전이 곧 시작될 준비 상태 |
Charging | 충전 중 |
SuspendedEV | 차량이 충전을 멈춘 상태 (차량 측 요인으로 중단됨) |
SuspendedEVSE | 충전기가 충전을 멈춘 상태 (충전기 측 요인으로 중단됨) |
Finishing | 충전이 완료되는 상태 |
Reserved | 예약된 상태 |
Unavailable | 사용 불가 상태 |
Faulted | 고장 상태 |
▶ StatusNotification 응답 (Central System → Charge Point)
서버는 StatusNotification 요청에 대해 단순히 빈 응답 data를 반환하여 성공적으로 메시지를 수신했음을 알립니다.
◈ StatusNotification 메시지 예
OCPP 프로토콜은 충전기와 서버와의 data는 JSON 형식을 통해 송수신됩니다.
▶ StatusNotification 요청 예
{
"connectorId": 1,
"errorCode": "NoError",
"status": "Charging",
"info": "Charging in progress",
"timestamp": "2024-11-05T14:30:00Z",
"vendorId": "VendorX",
"vendorErrorCode": ""
}
▶ StatusNotification 응답 예
{} // Empty
이와 같이 StatusNotification 메시지는 충전기의 상태 변화를 서버에 전달함으로써 충전소의 효율적인 운영과 유지보수에 큰 도움을 줍니다.