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"
}
}
처리 흐름
- 트리거 요청: CSMS가 특정 메시지 전송을 요청
- 요청 검증: 충전소가 요청된 메시지 타입 지원 여부 확인
- 응답 전송: 처리 가능 여부를 CSMS에 응답
- 메시지 전송:
Accepted
응답한 경우, 요청된 메시지를 즉시 전송
중요 포인트
- TriggerMessage는 CSMS에서 충전소로만 전송됩니다
- 충전소는 요청받은 메시지를 즉시 또는 가능한 한 빨리 전송해야 합니다
- EVSE나 커넥터 특정 정보가 필요한 메시지의 경우
evse
필드를 포함해야 합니다 - 지원하지 않는 메시지 타입에 대해서는
NotImplemented
상태로 응답해야 합니다 - 트리거된 메시지는 정상적인 주기적 메시지와 동일한 형식과 내용을 가집니다
이 메시지를 통해 중앙 시스템은 필요에 따라 충전소의 실시간 정보를 수집하고, 상태를 모니터링할 수 있습니다.