2026/01/30

전기계량기 표시값과 에너지미터 값 동기화


전기계량기 측정량에 셀리 에너지미터 측정값 뺀것을 오프셋으로 설정하여 누적 전기 사용량으로 소스 설정.

input_number.energy_pulse에 계량기에 표시된 값을 입력하면 자동화에 의해 input_number.energy_offset에 오프셋값이 계산됨.
템플릿센서인 sensor.energy_total은 셀리 에너지미터와 오프셋값을 더한 값이 되고 이 센서를 일/월/년의 유틸리티미터 소스 센서로 정하면 됨.
정전이나 HA서버 다운등으로 인해 측정값이 달라지는 것을 보정하려면 input_number.energy_pluse에 새로 계량기값을 넣으면 오프셋이 재설정.

configuration.yaml
input_number: !include input_number.yaml
automation: !include automations.yaml
template: !include template.yaml


input_number.yaml
energy_pulse:
  name: Energy Pulse
  unit_of_measurement: kWh
  max: 300000
  step: 0.1
  mode: box
energy_offset:
  name: Energy Offset
  unit_of_measurement: kWh
  max: 100000
  step: 0.1

automations.yaml
- id: 입력-Energy/Offset
  alias: 입력-Energy/Offset
  triggers:
    - trigger: state
      entity_id: input_number.energy_pulse
  actions:
    - action: input_number.set_value
      target:
        entity_id: input_number.energy_offset
      data:
        value: >
          {{ states('input_number.energy_pulse') | float(0)
           - states('sensor.shellyem_ch2_energy') | float(0) }}

template.yaml
sensor:
  - name: "Energy Total"
    unique_id: energy_total
    state: "{{ states('sensor.shellyem_ch2_energy') | float(0)
                + states('input_number.energy_offset') | float(0) }}"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing