죄송합니다. 브라우저가 JavaScript를 지원하지 않습니다!
로그인

Home Assistant에서 MQTT 에너지 미터 수동 구성: YAML 설정 가이드

Home Assistant에서 MQTT 에너지 미터 수동 구성

MQTT 에너지 미터는 전압, 전류, 유효 전력 및 수입/수출 에너지를 로컬 네트워크의 브로커에 게시할 수 있습니다. Home Assistant는 해당 데이터를 구독하고 JSON 값을 대시보드, 자동화 및 Energy Dashboard에서 사용할 수 있는 센서 엔티티로 변환합니다.

이 가이드는 IAMMETER 에너지 미터의 수동 MQTT 방법을 설명합니다:

  1. 미터의 WebUI에서 MQTT 브로커를 구성합니다;
  2. Home Assistant를 동일한 브로커에 연결합니다;
  3. YAML에서 필요한 MQTT 센서를 정의합니다;
  4. Energy Dashboard에 수입 및 수출 에너지를 추가합니다.

수동 MQTT를 사용하면 엔티티 이름, 토픽, 템플릿 및 메타데이터를 완전히 제어할 수 있습니다. Home Assistant가 장치 및 엔티티를 자동으로 생성하도록 하려면 MQTT Discovery를 대신 사용하세요.

수동 MQTT와 MQTT Discovery는 서로 다른 방법입니다

두 방법 모두 MQTT 브로커를 사용하지만 Home Assistant 설정이 다릅니다.

기능 수동 MQTT MQTT Discovery
미터 측 브로커 구성 필요 필요
HA MQTT 통합 필요 필요
YAML 센서 정의 필요 불필요
엔티티 이름 및 템플릿 사용자가 완전히 제어 미터가 생성
자동 장치/엔티티 생성 아니요
최적 용도 사용자 정의 MQTT 시스템 및 엔티티 정의 가장 빠른 Home Assistant 설정

이 가이드에서는 미터 WebUI에서 HA MQTT Discovery를 비활성화된 상태로 두십시오. 해당 스위치는 Home Assistant 자동 검색이 필요할 때만 활성화하면 됩니다.

필요한 사항

  • 최신 펌웨어가 설치된 IAMMETER 에너지 미터;
  • 미터와 Home Assistant 모두에서 접근 가능한 MQTT 브로커;
  • 브로커 주소, 포트, 사용자 이름 및 비밀번호;
  • 미터의 일련 번호;
  • Home Assistant YAML 구성에 대한 접근 권한.

브로커는 Home Assistant와 동일한 시스템, Mosquitto 브로커 애드온, 다른 LAN 서버 또는 원격 호스트에서 실행될 수 있습니다. 전체 데이터 경로를 LAN 내에 유지하려면 로컬 브로커를 사용하십시오.

현재 모든 IAMMETER 미터는 수동 MQTT를 지원합니다. 단상, 이중 채널 및 삼상 모델은 서로 다른 JSON 배열 구조를 게시하므로 값 템플릿이 실제 페이로드와 일치해야 합니다.

1단계: 미터 WebUI에서 MQTT 브로커 구성

미터의 로컬 WebUI를 열고 설정으로 이동합니다. 다음을 구성합니다:

설정
실행 모드 MQTT
주소 MQTT 브로커 호스트명/IP 및 포트
사용자 이름 필요한 경우 브로커 사용자 이름
비밀번호 필요한 경우 브로커 비밀번호
HA MQTT Discovery 이 수동 MQTT 가이드에서는 비활성화

설정을 저장하고 미터가 다시 연결되도록 합니다.

최신 IAMMETER WebUI에서 MQTT 브로커 구성

현재 펌웨어 WebUI는 이러한 브로커 설정을 직접 지원합니다. 기존 로컬 API 절차를 통해 사용자 이름과 비밀번호를 구성할 필요가 없습니다.

완전한 미터 측 구성 및 구형 펌웨어 지침은 IAMMETER 데이터를 MQTT 브로커에 게시를 참조하십시오.

MQTT 모드와 IAMMETER Cloud

미터의 실행 모드가 MQTT로 변경되면 IAMMETER Cloud 대신 브로커에 측정값을 게시합니다. 따라서 수동 MQTT와 IAMMETER Cloud는 동일한 미터에서 동시에 실행되지 않습니다.

Home Assistant와 IAMMETER Cloud를 동시에 사용해야 하는 경우 대신 로컬 HTTP 또는 Modbus TCP 통합을 사용하십시오. 사용 가능한 방법을 Home Assistant 에너지 미터 통합 가이드에서 비교하십시오.

2단계: MQTT 토픽 및 페이로드 확인

IAMMETER는 실시간 측정값을 다음에 게시합니다:

device/{SN}/realtime

{SN}을 미터의 일련 번호로 바꾸십시오. 예:

device/80123456/realtime

Home Assistant 센서를 구성하기 전에 MQTT 클라이언트로 토픽을 구독하고 메시지가 도착하는지 확인하십시오. 이렇게 하면 YAML 문제 해결과 브로커, 자격 증명, 방화벽 또는 토픽 문제가 혼합되는 것을 방지할 수 있습니다.

단상 JSON

단상 미터는 Data 배열을 사용합니다. 처음 5개 값은 다음과 같습니다:

배열 위치 측정값
Data[0] 전압
Data[1] 전류
Data[2] 유효 전력
Data[3] 수입 에너지
Data[4] 수출 에너지

예:

{
  "method": "uploadsn",
  "SN": "12345678",
  "Data": [228.91, 1.61, 225, 15066.47, 0]
}

다중 채널 및 삼상 JSON

다중 채널 및 삼상 미터는 Datas 배열을 사용합니다. 각 중첩 배열은 위상 또는 측정 채널을 나타냅니다:

Datas[0] → A상/채널 A
Datas[1] → B상/채널 B
Datas[2] → C상/채널 C (있는 경우)

각 위상/채널 배열 내의 일반적인 위치는 다음과 같습니다:

배열 위치 측정값
[0] 전압
[1] 전류
[2] 유효 전력
[3] 수입 에너지
[4] 수출 에너지
[5] 주파수 (제공되는 경우)
[6] 역률 (제공되는 경우)

템플릿을 복사하기 전에 항상 해당 모델 및 펌웨어의 실제 MQTT 메시지를 확인하십시오. 전체 IAMMETER JSON 데이터 정의를 참조하십시오.

3단계: Home Assistant를 브로커에 연결

Home Assistant에서:

  1. 설정 → 장치 및 서비스로 이동합니다.
  2. 통합 추가를 선택합니다.
  3. MQTT를 검색합니다.
  4. 미터에서 사용하는 것과 동일한 브로커 주소, 포트, 사용자 이름 및 비밀번호를 입력합니다.
  5. MQTT 통합이 성공적으로 연결되었는지 확인합니다.

Home Assistant가 이미 이 브로커를 사용 중인 경우 중복 MQTT 통합을 추가하지 마십시오. 수동으로 정의된 센서는 기존 브로커 연결을 사용합니다.

4단계: YAML에서 수동 MQTT 센서 추가

아래 예제는 Home Assistant의 현재 mqtt: sensor: 구성 구조를 사용합니다. 모든 state_topic에서 일련 번호를 바꾸십시오.

단상 에너지 미터 YAML

mqtt:
  sensor:
    - name: "IAMMERTER 전압"
      unique_id: "iammeter_12345678_voltage"
      state_topic: "device/12345678/realtime"
      value_template: "{{ value_json.Data[0] | float(0) }}"
      unit_of_measurement: "V"
      device_class: voltage
      state_class: measurement

    - name: "IAMMERTER 전류"
      unique_id: "iammeter_12345678_current"
      state_topic: "device/12345678/realtime"
      value_template: "{{ value_json.Data[1] | float(0) }}"
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement

    - name: "IAMMERTER 유효 전력"
      unique_id: "iammeter_12345678_active_power"
      state_topic: "device/12345678/realtime"
      value_template: "{{ value_json.Data[2] | float(0) }}"
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement

    - name: "IAMMERTER 수입 에너지"
      unique_id: "iammeter_12345678_import_energy"
      state_topic: "device/12345678/realtime"
      value_template: "{{ value_json.Data[3] | float(0) }}"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing

    - name: "IAMMERTER 수출 에너지"
      unique_id: "iammeter_12345678_export_energy"
      state_topic: "device/12345678/realtime"
      value_template: "{{ value_json.Data[4] | float(0) }}"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing

unique_id를 사용하면 Home Assistant가 UI에서 엔티티 설정을 관리할 수 있습니다. 모든 ID를 고유하고 안정적으로 유지하십시오. 표시되는 엔티티 이름만 변경하려고 ID를 변경하지 마십시오.

삼상 에너지 미터 YAML

다음 예제는 A상 엔티티를 생성합니다. B상 및 C상에 대해 Datas[0]Datas[1]Datas[2]로 변경하고 고유한 이름과 ID를 사용하여 블록을 복제하십시오.

mqtt:
  sensor:
    - name: "IAMMERTER 전압 A"
      unique_id: "iammeter_80123456_voltage_a"
      state_topic: "device/80123456/realtime"
      value_template: "{{ value_json.Datas[0][0] | float(0) }}"
      unit_of_measurement: "V"
      device_class: voltage
      state_class: measurement

    - name: "IAMMERTER 전류 A"
      unique_id: "iammeter_80123456_current_a"
      state_topic: "device/80123456/realtime"
      value_template: "{{ value_json.Datas[0][1] | float(0) }}"
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement

    - name: "IAMMERTER 유효 전력 A"
      unique_id: "iammeter_80123456_active_power_a"
      state_topic: "device/80123456/realtime"
      value_template: "{{ value_json.Datas[0][2] | float(0) }}"
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement

    - name: "IAMMERTER 수입 에너지 A"
      unique_id: "iammeter_80123456_import_energy_a"
      state_topic: "device/80123456/realtime"
      value_template: "{{ value_json.Datas[0][3] | float(0) }}"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing

    - name: "IAMMERTER 수출 에너지 A"
      unique_id: "iammeter_80123456_export_energy_a"
      state_topic: "device/80123456/realtime"
      value_template: "{{ value_json.Datas[0][4] | float(0) }}"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing

WEM2067 및 기타 다중 채널 모델의 경우 실제 Datas 페이로드에 있는 채널 블록 수만 생성하십시오.

두 개의 최상위 mqtt: 블록 방지

configuration.yaml에 이미 mqtt: 섹션이 있는 경우 기존 섹션 아래에 센서를 추가하십시오. YAML은 동일한 이름을 가진 두 개의 독립적인 최상위 키를 안전하게 포함할 수 없습니다.

대규모 구성의 경우 MQTT 센서를 포함된 파일에 보관할 수 있지만 Home Assistant의 포함 구조 및 들여쓰기 규칙을 따르십시오.

5단계: 구성 확인 및 센서 로드

YAML 저장 후:

  1. Home Assistant의 구성 검사를 실행합니다;
  2. YAML, 들여쓰기 또는 템플릿 오류를 수정합니다;
  3. 필요한 경우 Home Assistant를 다시 시작합니다;
  4. 개발자 도구 → 상태를 엽니다;
  5. 각 MQTT 엔티티에 적절한 값, 단위, device_class 및 state_class가 있는지 확인합니다.

엔티티 값은 device/{SN}/realtime에 새 메시지가 도착한 후 변경되어야 합니다.

6단계: Energy Dashboard에 수입 및 수출 에너지 추가

Home Assistant의 Energy Dashboard에는 누적 에너지 엔티티가 필요합니다. YAML 예제에서는 다음을 사용합니다:

unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing

설정 → 대시보드 → 에너지로 이동하여 다음을 선택합니다:

  • IAMMERTER 수입 에너지 — 그리드 소비용;
  • IAMMERTER 수출 에너지 — 그리드 반환용.

삼상 미터의 경우 설치 및 Home Assistant 대시보드 디자인에 맞는 엔티티 구조를 선택하십시오. 위상 에너지를 개별적으로 표시하거나 적절한 합계 엔티티를 생성할 수 있지만, 선택한 배선 모드에 대해 미터가 위상 및 순 에너지를 보고하는 방식을 확인하지 않고 값을 합산하지 마십시오.

Energy Dashboard의 에너지 필드에 와트 단위로 측정된 유효 전력 엔티티를 선택하지 마십시오. 전력은 순간 속도이며 대시보드에는 누적 kWh가 필요합니다.

MQTT 게시 간격 선택

현재 IAMMETER 펌웨어는 최소 2초까지 MQTT 게시 간격을 지원합니다. 가장 짧은 간격이 항상 최상의 설정은 아닙니다.

권장 시작값:

사용 사례 권장 간격
빠른 로컬 자동화 2–5초
실시간 에너지 대시보드 5–12초
일반 모니터링 10–60초

브로커 용량, Home Assistant 레코더 증가, 네트워크 안정성 및 엔티티 수를 고려하십시오. 여러 위상 값이 포함된 메시지는 한 번에 여러 Home Assistant 센서를 업데이트할 수 있습니다.

지원되는 IAMMETER 모델

현재 모든 IAMMETER 에너지 미터는 수동 MQTT를 지원합니다. 주요 Home Assistant 차이점은 페이로드 구조와 측정 채널 수입니다.

모델 일반적인 구조 제품 정보
WEM3080 단일 Data 배열 단상 에너지 미터
WEM2067 다중 채널 Datas 배열 가정용 태양광 이중 채널 미터
WEM3080T 삼중 채널 Datas 배열 삼상 에너지 미터
WEM3050T 삼중 채널 Datas 배열 가정용 삼상/분할상 미터
WEM3080TD 모델/배선별 다중 채널 데이터 WEM3080TD
WEM3046T / WEM3046TE 외부 5A CT 측정을 통한 삼중 채널 데이터 5A CT 삼상 미터

WEM3046T 및 WEM3046TE는 외부 CT의 5A 2차 출력을 측정합니다. 올바른 CT 비율을 적용하여 1차 측 값을 얻으십시오. 이는 MQTT 또는 Home Assistant 제한이 아닌 계량 시스템의 특성입니다.

문제 해결

MQTT 메시지가 도착하지 않음

  • 미터 WebUI에서 브로커 주소와 포트를 확인하십시오.
  • 사용자 이름과 비밀번호를 확인하십시오.
  • 브로커 로그에서 인증 또는 연결 오류를 확인하십시오.
  • 방화벽 또는 VLAN 규칙을 통해 미터가 브로커에 도달할 수 있는지 확인하십시오.
  • 독립적인 MQTT 클라이언트로 device/{SN}/realtime을 구독하십시오.

메시지는 도착하지만 Home Assistant 엔티티를 사용할 수 없음

  • Home Assistant가 동일한 브로커에 연결되어 있는지 확인하십시오.
  • 정확한 토픽과 일련 번호를 확인하십시오.
  • 실제 페이로드와 DataDatas를 비교하십시오.
  • YAML 들여쓰기와 템플릿의 유효성을 검사하십시오.
  • 다시 로드하거나 다시 시작한 후 Home Assistant 로그를 확인하십시오.

일부 엔티티가 0 또는 잘못된 측정값을 표시함

  • Datas 페이로드에 단상 Data 템플릿을 복사하지 마십시오.
  • JSON 정의에 대해 배열 위치를 확인하십시오.
  • 위상/채널 인덱스를 확인하십시오.
  • WEM3046T/WEM3046TE의 경우 외부 CT 비율을 확인하십시오.

에너지 엔티티가 Energy Dashboard에 표시되지 않음

세 가지 필드를 모두 확인하십시오:

unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing

또한 엔티티가 유효한 숫자 데이터를 수신했는지 확인하고 개발자 도구 → 상태에 표시되는지 확인하십시오.

중복 장치 또는 센서가 나타남

수동 MQTT와 MQTT Discovery는 동일한 미터에서 별도의 엔티티를 생성할 수 있습니다. YAML 방법을 사용하는 경우 두 세트를 모두 의도적으로 원하고 고유한 엔티티 이름을 계획하지 않은 한 HA MQTT Discovery를 비활성화된 상태로 유지하십시오.

관련 가이드

업데이트: 2026년 7월 19일.

맨 위