OCPP 2.0.1 TriggerMessage 메시지

 

TriggerMessage 개요

TriggerMessage는 중앙 시스템(CSMS)이 충전소에게 특정 메시지를 즉시 전송하도록 요청하는 메시지입니다. 이는 중앙 시스템이 필요에 따라 충전소의 상태 정보를 실시간으로 수집하거나, 특정 동작을 유발시키고자 할 때 사용됩니다.

메시지 구조

Request (CSMS → 충전소)

{
  "requestedMessage": "StatusNotification",
  "evse": {
    "id": 1,
    "connectorId": 1
  }
}

Response (충전소 → CSMS)

{
  "status": "Accepted"
}

주요 필드 설명

Request 필드들

requestedMessage 필드 (필수)

설명
BootNotification 부팅 알림 메시지 트리거
LogStatusNotification 로그 상태 알림 메시지 트리거
FirmwareStatusNotification 펌웨어 상태 알림 메시지 트리거
Heartbeat 하트비트 메시지 트리거
MeterValues 미터값 메시지 트리거
SignChargingStationCertificate 충전소 인증서 서명 요청 트리거
StatusNotification 상태 알림 메시지 트리거
TransactionEvent 거래 이벤트 메시지 트리거
NotifyReport 리포트 알림 메시지 트리거

evse 필드 (선택사항)

필드명 필수여부 타입 설명
id 필수 Integer EVSE 식별자
connectorId 선택사항 Integer 커넥터 식별자

Response 필드들

필드명 필수여부 타입 설명
status 필수 Enum 트리거 요청 처리 상태
statusInfo 선택사항 Object 추가 상태 정보

status 필드 값

설명
Accepted 승인됨 - 요청된 메시지가 전송될 예정
Rejected 거부됨 - 요청을 처리할 수 없음
NotImplemented 구현되지 않음 - 해당 메시지 타입이 지원되지 않음

실제 사용 예제

예제 1: StatusNotification 트리거

// Request
{
  "requestedMessage": "StatusNotification",
  "evse": {
    "id": 1,
    "connectorId": 1
  }
}

// Response
{
  "status": "Accepted"
}

// 이후 충전소가 보내는 StatusNotification
{
  "timestamp": "2024-08-14T10:30:00.000Z",
  "connectorStatus": "Available",
  "evseId": 1,
  "connectorId": 1
}

예제 2: MeterValues 트리거

// Request
{
  "requestedMessage": "MeterValues",
  "evse": {
    "id": 2
  }
}

// Response
{
  "status": "Accepted"
}

// 이후 충전소가 보내는 MeterValues
{
  "evseId": 2,
  "meterValue": [
    {
      "timestamp": "2024-08-14T10:30:00.000Z",
      "sampledValue": [
        {
          "value": 150.5,
          "context": "Sample.Periodic",
          "measurand": "Energy.Active.Import.Register",
          "location": "Outlet",
          "unitOfMeasure": {
            "unit": "kWh"
          }
        }
      ]
    }
  ]
}

예제 3: Heartbeat 트리거

// Request
{
  "requestedMessage": "Heartbeat"
}

// Response
{
  "status": "Accepted"
}

// 이후 충전소가 보내는 Heartbeat
{
  "currentTime": "2024-08-14T10:30:15.000Z"
}

예제 4: 지원되지 않는 메시지 트리거

// Request
{
  "requestedMessage": "CustomMessage"
}

// Response
{
  "status": "NotImplemented",
  "statusInfo": {
    "reasonCode": "MessageNotSupported",
    "additionalInfo": "CustomMessage is not supported by this charging station"
  }
}

처리 흐름

  1. 트리거 요청: CSMS가 특정 메시지 전송을 요청
  2. 요청 검증: 충전소가 요청된 메시지 타입 지원 여부 확인
  3. 응답 전송: 처리 가능 여부를 CSMS에 응답
  4. 메시지 전송: Accepted 응답한 경우, 요청된 메시지를 즉시 전송

중요 포인트

  • TriggerMessage는 CSMS에서 충전소로만 전송됩니다
  • 충전소는 요청받은 메시지를 즉시 또는 가능한 한 빨리 전송해야 합니다
  • EVSE나 커넥터 특정 정보가 필요한 메시지의 경우 evse 필드를 포함해야 합니다
  • 지원하지 않는 메시지 타입에 대해서는 NotImplemented 상태로 응답해야 합니다
  • 트리거된 메시지는 정상적인 주기적 메시지와 동일한 형식과 내용을 가집니다

이 메시지를 통해 중앙 시스템은 필요에 따라 충전소의 실시간 정보를 수집하고, 상태를 모니터링할 수 있습니다.