OCPP 2.0.1 ChangeConfiguration 메시지

 


ChangeConfiguration 개요

ChangeConfiguration은 중앙 시스템(CSMS)이 충전소의 설정값을 원격으로 변경할 때 사용하는 메시지입니다. 이 메시지를 통해 충전소의 동작 방식, 타이밍, 보안 설정 등을 현장 방문 없이 원격으로 조정할 수 있습니다.

메시지 구조

Request (CSMS → 충전소)

{
  "key": "HeartbeatInterval",
  "value": "300"
}

Response (충전소 → CSMS)

{
  "status": "Accepted"
}

주요 필드 설명

Request 필드들

필드명 필수여부 타입 설명
key 필수 String 변경할 설정 키 이름
value 필수 String 새로운 설정값 (문자열 형태)

Response 필드들

필드명 필수여부 타입 설명
status 필수 Enum 설정 변경 결과 상태

status 필드 값

상태 설명
Accepted 승인됨 - 설정 변경 완료
Rejected 거부됨 - 설정 변경 불가
RebootRequired 재부팅 필요 - 재부팅 후 적용됨
NotSupported 지원 안함 - 해당 설정 키를 지원하지 않음

주요 Configuration Key 예제

네트워크 관련 설정

설정 키 기본값 설명 예제 값
HeartbeatInterval 86400 하트비트 전송 간격 (초) "300"
MessageTimeout 60 메시지 응답 대기 시간 (초) "30"
WebSocketPingInterval 0 WebSocket ping 간격 (초) "60"

인증 관련 설정

설정 키 기본값 설명 예제 값
AuthorizeRemoteTxRequests true 원격 트랜잭션 인증 필요 여부 "false"
LocalAuthorizeOffline true 오프라인 로컬 인증 허용 여부 "true"
AuthorizationCacheEnabled false 인증 캐시 사용 여부 "true"

충전 관련 설정

설정 키 기본값 설명 예제 값
MaxEnergyOnInvalidId 0 유효하지 않은 ID 사용 시 최대 에너지 (Wh) "1000"
MeterValueSampleInterval 60 미터값 샘플 간격 (초) "30"
StopTransactionOnInvalidId true 유효하지 않은 ID 사용 시 충전 중단 "false"

보안 관련 설정

설정 키 기본값 설명 예제 값
CertificateSignedMaxChainSize 10000 인증서 체인 최대 크기 (바이트) "15000"
CertificateStoreMaxLength 10000 인증서 저장소 최대 크기 (바이트) "20000"
SecurityProfile 0 보안 프로파일 레벨 "2"

실제 사용 예제

예제 1: 하트비트 간격 변경

// Request
{
  "key": "HeartbeatInterval", 
  "value": "300"
}

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

예제 2: 미터값 샘플 간격 조정

// Request
{
  "key": "MeterValueSampleInterval",
  "value": "30"
}

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

예제 3: 재부팅이 필요한 설정 변경

// Request
{
  "key": "WebSocketPingInterval",
  "value": "120"
}

// Response
{
  "status": "RebootRequired"
}

예제 4: 지원하지 않는 설정

// Request
{
  "key": "CustomSetting",
  "value": "someValue"
}

// Response
{
  "status": "NotSupported"
}

예제 5: 거부된 설정 변경

// Request  
{
  "key": "SecurityProfile",
  "value": "5"
}

// Response
{
  "status": "Rejected"
}

설정 변경 시나리오

운영 효율성 향상

// 피크 시간대 미터값 빈도 증가
{
  "key": "MeterValueSampleInterval",
  "value": "15"
}

// 하트비트 간격 단축으로 모니터링 강화  
{
  "key": "HeartbeatInterval",
  "value": "60"
}

보안 강화

// 보안 프로파일 업그레이드
{
  "key": "SecurityProfile",
  "value": "3"
}

// 인증 캐시 비활성화
{
  "key": "AuthorizationCacheEnabled", 
  "value": "false"
}

네트워크 최적화

// 메시지 타임아웃 조정
{
  "key": "MessageTimeout",
  "value": "45"
}

// WebSocket 연결 안정성 향상
{
  "key": "WebSocketPingInterval",
  "value": "30"
}

고급 설정 관리

조건부 설정 변경

// 특정 시간대에만 적용되는 설정
{
  "key": "StopTransactionOnInvalidId",
  "value": "false"  // 야간 시간대 완화
}

// 계절별 설정 조정
{
  "key": "ConnectorPhaseRotation",
  "value": "RST"     // 여름철 부하 분산
}

배치 설정 변경

// 1단계: 인증 설정 변경
{
  "key": "LocalAuthorizeOffline",
  "value": "true"
}

// 2단계: 캐시 설정 변경  
{
  "key": "AuthorizationCacheEnabled",
  "value": "true"
}

// 3단계: 하트비트 조정
{
  "key": "HeartbeatInterval", 
  "value": "180"
}

설정 변경 결과 처리

Accepted 처리

// 즉시 적용 완료
{
  "status": "Accepted"
}

// 후속 동작: GetConfiguration으로 변경 확인

RebootRequired 처리

{
  "status": "RebootRequired" 
}

// 후속 동작
// 1. Reset 메시지 전송
// 2. 재부팅 후 BootNotification 대기
// 3. GetConfiguration으로 변경 확인

Rejected 처리

{
  "status": "Rejected"
}

// 가능한 원인 분석
// - 잘못된 값 범위
// - 보안 정책 위반  
// - 하드웨어 제약
// - 라이선스 제한

NotSupported 처리

{
  "status": "NotSupported"
}

// 대응 방안
// - GetConfiguration으로 지원 키 확인
// - 펌웨어 업데이트 검토
// - 대체 설정 방법 모색

설정 검증 및 롤백

변경 전 검증

// 1단계: GetConfiguration으로 현재 값 확인
// 2단계: ChangeConfiguration 실행
// 3단계: GetConfiguration으로 변경 확인

문제 발생 시 롤백

// 원래 값으로 복구
{
  "key": "HeartbeatInterval",
  "value": "86400"  // 이전 값으로 복원
}

모니터링 및 로그

설정 변경 이력 관리

// 변경 로그 예제
{
  "timestamp": "2024-08-16T10:30:00Z",
  "key": "MeterValueSampleInterval", 
  "oldValue": "60",
  "newValue": "30",
  "status": "Accepted",
  "requestedBy": "admin@company.com"
}

성능 영향 모니터링

  • 하트비트 간격 변경 → 네트워크 트래픽 변화
  • 미터값 간격 변경 → 데이터 정확도 vs 대역폭
  • 타임아웃 설정 → 응답성 vs 안정성

보안 고려사항

권한 관리

  • 관리자별 설정 변경 권한 분리
  • 중요 보안 설정은 별도 승인 절차
  • 변경 이력 감사 로그 유지

설정 보안

// 보안 관련 설정 예제
{
  "key": "SecurityProfile",
  "value": "3"  // 높은 보안 레벨
}

{
  "key": "CertificateSignedMaxChainSize", 
  "value": "15000"  // 인증서 체인 크기 제한
}

관련 메시지와의 연관성

GetConfiguration 연계

// 설정 변경 전후 확인
// GetConfiguration → ChangeConfiguration → GetConfiguration

Reset 연계

// RebootRequired 응답 시
// ChangeConfiguration → Reset → BootNotification

TriggerMessage 연계

// 설정 변경 후 즉시 테스트
// ChangeConfiguration → TriggerMessage(Heartbeat)

중요 포인트

  • 원격 관리: 현장 방문 없이 충전소 설정 조정 가능
  • 즉시 적용 vs 재부팅: 설정에 따라 적용 방식 다름
  • 검증 필수: 변경 후 GetConfiguration으로 확인 필요
  • 보안 중요: 잘못된 설정은 보안 위험 초래 가능
  • 이력 관리: 모든 변경 사항의 로그 보관 필요
  • 롤백 준비: 문제 발생 시 신속한 복구 방안 마련
  • 단계적 적용: 중요한 설정은 단계별로 신중하게 변경

ChangeConfiguration은 충전소 운영의 유연성과 효율성을 크게 향상시키는 핵심 메시지입니다. 원격으로 설정을 조정할 수 있어 운영 비용을 절감하고 서비스 품질을 지속적으로 개선할 수 있습니다.