OCPP 2.0.1 StatusNotification 메시지

 

StatusNotification 개요

StatusNotification은 충전소의 커넥터 상태가 변경될 때마다 중앙 시스템(CSMS)에 전송하는 메시지입니다. 충전소의 실시간 상태 정보를 CSMS에 알려 원격 모니터링과 관리를 가능하게 하는 핵심적인 메시지입니다.

메시지 구조

Request (충전소 → CSMS)

{
  "timestamp": "2024-08-16T10:30:00.000Z",
  "connectorStatus": "Available",
  "evseId": 1,
  "connectorId": 1
}

Response (CSMS → 충전소)

{
}

주요 필드 설명

Request 필드들

필드명 필수여부 타입 설명
timestamp 필수 DateTime 상태 변경 발생 시간 (ISO 8601 형식)
connectorStatus 필수 Enum 커넥터 상태
evseId 필수 Integer EVSE(Electric Vehicle Supply Equipment) ID
connectorId 필수 Integer 커넥터 ID

connectorStatus 필드 값

상태 설명
Available 사용 가능 - 충전 준비 완료
Occupied 사용 중 - 차량이 연결됨
Reserved 예약됨 - 특정 사용자를 위해 예약
Unavailable 사용 불가 - 정비, 오류 등으로 비활성화
Faulted 오류 - 하드웨어 또는 소프트웨어 오류 발생

Response 필드들

필드명 필수여부 타입 설명
- - - StatusNotification Response는 빈 JSON 객체입니다

실제 사용 예제

예제 1: 충전 시작 시 상태 변경

// 차량 연결 시
// Request
{
  "timestamp": "2024-08-16T10:30:00.000Z",
  "connectorStatus": "Occupied",
  "evseId": 1,
  "connectorId": 1
}

// Response
{
}

예제 2: 충전 완료 후 상태 변경

// 충전 완료 후 차량 분리
// Request
{
  "timestamp": "2024-08-16T12:45:30.000Z",
  "connectorStatus": "Available",
  "evseId": 1,
  "connectorId": 1
}

// Response
{
}

예제 3: 오류 발생 시 상태 변경

// 하드웨어 오류 발생
// Request
{
  "timestamp": "2024-08-16T11:15:45.000Z",
  "connectorStatus": "Faulted",
  "evseId": 2,
  "connectorId": 1
}

// Response
{
}

예제 4: 정비로 인한 비활성화

// 정비 모드 진입
// Request
{
  "timestamp": "2024-08-16T09:00:00.000Z",
  "connectorStatus": "Unavailable",
  "evseId": 1,
  "connectorId": 1
}

// Response
{
}

예제 5: 예약 시스템 사용

// 특정 사용자 예약
// Request
{
  "timestamp": "2024-08-16T08:30:00.000Z",
  "connectorStatus": "Reserved",
  "evseId": 3,
  "connectorId": 1
}

// Response
{
}

상태 전환 시나리오

일반적인 충전 과정

Available → Occupied → Available

예약 시스템 포함

Available → Reserved → Occupied → Available

오류 상황

Available → Faulted → Unavailable → Available

정비 상황

Available → Unavailable → Available

상태별 상세 설명

Available (사용 가능)

  • 충전기가 정상 작동하며 충전 준비 완료
  • 사용자가 충전을 시작할 수 있는 상태
  • 가장 일반적인 대기 상태

Occupied (사용 중)

  • 차량이 커넥터에 연결된 상태
  • 충전 중이거나 충전 완료 후 차량이 아직 연결된 상태
  • 다른 사용자는 사용 불가

Reserved (예약됨)

  • 특정 사용자를 위해 예약된 상태
  • 예약 시간 동안 다른 사용자 사용 불가
  • ReserveNow 메시지로 설정됨

Unavailable (사용 불가)

  • 관리자에 의한 의도적 비활성화
  • 정비, 점검, 업데이트 등의 이유
  • ChangeAvailability 메시지로 설정 가능

Faulted (오류)

  • 하드웨어 또는 소프트웨어 오류 발생
  • 안전상의 이유로 충전 불가
  • 수리 또는 리셋이 필요한 상태

처리 흐름

  1. 상태 변경 감지: 충전소 하드웨어/소프트웨어가 상태 변화 감지
  2. 타임스탬프 기록: 정확한 변경 시간 기록
  3. StatusNotification 전송: CSMS에 상태 변경 알림
  4. CSMS 처리: 중앙 시스템에서 충전소 상태 업데이트
  5. 응답 전송: 빈 JSON으로 수신 확인
  6. 모니터링 업데이트: 관리자 대시보드 및 앱에 상태 반영

모니터링 및 분석

상태 지속 시간 분석

// Available 상태 지속 시간
{
  "timestamp": "2024-08-16T10:00:00.000Z",
  "connectorStatus": "Available",
  "evseId": 1,
  "connectorId": 1
}

// 30분 후 Occupied로 변경
{
  "timestamp": "2024-08-16T10:30:00.000Z", 
  "connectorStatus": "Occupied",
  "evseId": 1,
  "connectorId": 1
}

이용률 계산

  • Available 시간 비율로 가용성 측정
  • Occupied 시간 비율로 이용률 계산
  • Faulted 시간 비율로 안정성 평가

문제 상황 감지

  • Faulted 상태 빈발: 하드웨어 점검 필요
  • Unavailable 장기 지속: 정비 상황 확인
  • 상태 변경 누락: 통신 문제 의심

관련 메시지와의 연관성

StartTransaction과 연관

// StatusNotification (Occupied)
{
  "timestamp": "2024-08-16T10:30:00.000Z",
  "connectorStatus": "Occupied",
  "evseId": 1,
  "connectorId": 1
}

// 이후 StartTransaction 전송

StopTransaction과 연관

// StopTransaction 후
// StatusNotification (Available)
{
  "timestamp": "2024-08-16T12:45:30.000Z",
  "connectorStatus": "Available", 
  "evseId": 1,
  "connectorId": 1
}

ChangeAvailability와 연관

// ChangeAvailability 수신 후
// StatusNotification (Unavailable)
{
  "timestamp": "2024-08-16T09:00:00.000Z",
  "connectorStatus": "Unavailable",
  "evseId": 1,
  "connectorId": 1
}

중요 포인트

  • 실시간 모니터링: 충전소 상태의 실시간 추적 가능
  • 정확한 타임스탬프: 모든 상태 변경의 정확한 시점 기록
  • EVSE/Connector 식별: 멀티포트 충전소에서 개별 커넥터 상태 관리
  • 빈 응답: Response는 단순 수신 확인 역할
  • 상태 일관성: 실제 하드웨어 상태와 보고된 상태 일치 보장
  • 오류 대응: Faulted 상태 시 신속한 대응 체계 필요

StatusNotification은 충전 인프라의 운영 상태를 실시간으로 파악하고 관리할 수 있게 해주는 핵심 메시지입니다. 이를 통해 충전소 운영자는 각 충전기의 상태를 원격으로 모니터링하고, 문제 발생 시 즉시 대응할 수 있습니다.