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