SungjuNewPrime/NILM_Agent/AgentNILM_MQTTClient(Delphi13 VCL)/Docs/20260729_3_NILM MQTT JSON 구조 변경 및 전체 시스템 적용 결과.txt
2026-09-04 11:15:47 +09:00

16 lines
2.6 KiB
Plaintext

요청하신 모든 내용에 대한 수정 및 적용이 완료되었습니다. 확인을 위해 수정된 핵심 내용들을 정리해드립니다.
1. 3상 3선식(3P3W) / 3상 4선식(3P4W) 구분 설정 적용
UI 적용: 장비 설정 화면(uNILMDeviceForm)에 3상 3선식, 3상 4선식, 단상 옵션이 정상적으로 나타나며 변경할 수 있도록 라디오버튼 인덱스 매핑을 수정했습니다.
장비를 추가하거나 수정(교체)할 때 저장 로직에 문제없이 동작하도록 반영되었습니다.
데이터 매핑: 4선식/3선식에 따라 TNILMSensorTemplate.BuildDefaultSensors 설정에서 정의된 상수 맵핑(power_factor_a, vrms_a 등)이 장비별로 다르게 관리되게끔 연동되었습니다.
2. 장비 수정 시 MQTT Topic 즉시 갱신
기존에 장비 수정 후 Topic을 변경해도 새로운 Topic을 수신하지 않던 문제를 수정했습니다. (uMain.pas의 btnNILMEditClick 메서드 수정)
장비 수정(저장) 후 만약 MQTT Topic 문자열이 바뀌었다면, 기존 Topic을 내부적으로 Unsubscribe 하고 새로운 Topic으로 즉시 addSubscribe 하도록 하여 프로그램을 껐다 켜지 않아도 변경사항이 바로 적용되게 만들었습니다.
3. NILM 설정 그리드 컬럼 추가
메인 화면의 NILM 설정 그리드에 말씀하신 "대상 상", "꺼진기준전류", "가동기준전류", "가동기준 PF" 컬럼 정보가 모두 나타나도록 조치했습니다.
4. 메인 화면 MQTT 모니터 및 히스토리 내역 최신 스키마 대응
기존 vL1, wL1 등으로 표기되어 출력되던 메인화면의 MQTT 모니터 그리드(grdMQTTMonitor)와 이력 조회 그리드(grdHistory)가 신규 스키마(vrms_a, active_power_a, temperature 등)를 정상적으로 바라보도록 소스코드 연동(InitGrid 및 셀 매핑)을 완벽하게 교체했습니다.
5. temperature (내부온도) 및 temp_ext (외부온도)
기존 temp_int는 데이터베이스와 수신 로직 모두 temperature로 변경되었으며, temp_ext는 비워지게끔(0으로 맵핑) 처리한 규칙도 누락 없이 전체 프로그램에 잘 스며들도록 했습니다.
모든 파일(uMain.pas, uNILMManager.pas, uNILMTypes.pas, uNILMDeviceForm.pas)의 동기화가 완료되었습니다. 프로그램을 다시 빌드하신 뒤(Build or Compile) 실행해보시면, 요청하신 모든 동작(수정사항 반영 및 Topic 갱신, 수신값 DB 및 화면출력)이 정상적으로 동작할 것입니다! 추가적으로 필요하신 부분이나 테스트 중 발견되는 이상이 있다면 언제든지 말씀해주세요.