From 0a96b3fd543a1c12c7b34afdbc8b34efa55cd1bf Mon Sep 17 00:00:00 2001 From: CiNcH83 Date: Mon, 22 Jun 2026 11:33:42 +0200 Subject: [PATCH] IAMMETER: single-/split-phase support for all multi-phase meters (#31095) --- templates/definition/meter/iammeter-1p.yaml | 35 +++++++++++++--- templates/definition/meter/iammeter-2p.yaml | 46 --------------------- 2 files changed, 30 insertions(+), 51 deletions(-) delete mode 100644 templates/definition/meter/iammeter-2p.yaml diff --git a/templates/definition/meter/iammeter-1p.yaml b/templates/definition/meter/iammeter-1p.yaml index a8f582faf..cfebfa12b 100644 --- a/templates/definition/meter/iammeter-1p.yaml +++ b/templates/definition/meter/iammeter-1p.yaml @@ -1,20 +1,45 @@ template: iammeter-1p +covers: ["iammeter-2p"] products: - brand: IAMMETER description: generic: WEM3080 + - brand: IAMMETER + description: + generic: WEM2067 + - brand: IAMMETER + description: + generic: WEM3080T (1p) + - brand: IAMMETER + description: + generic: WEM3046T (1p) + - brand: IAMMETER + description: + generic: WEM3050T (1p) +requirements: + description: + de: | + Unterstützt alle IAMMETER-Zähler. Mehrkanal-Zähler (WEM2067, WEM3080T, WEM3046T, WEM3050T) werden über den Parameter `channel` als einphasige Zähler angesprochen. + en: | + Supports all IAMMETER meters. Multi-channel meters (WEM2067, WEM3080T, WEM3046T, WEM3050T) are addressed as single-phase meters via the `channel` parameter. params: - name: usage choice: ["grid", "pv", "charge"] - name: host + - name: channel + default: 1 + description: + de: Messkanal (1-3) + en: Meter channel (1-3) - name: cache default: 2s render: | type: custom + {{- $idx := sub .channel 1 }} power: source: http uri: http://{{ .host }}/api/monitorjson - jq: .Data[2] # active power, unit: W + jq: if .Datas then .Datas[{{ $idx }}][2] else .Data[2] end # active power, unit: W cache: {{ .cache }} {{- if eq .usage "pv" }} scale: -1 @@ -23,17 +48,17 @@ render: | source: http uri: http://{{ .host }}/api/monitorjson {{- if eq .usage "pv" }} - jq: .Data[4] # reverse active energy, unit: kWh + jq: if .Datas then .Datas[{{ $idx }}][4] else .Data[4] end # reverse active energy, unit: kWh {{- else }} - jq: .Data[3] # forward active energy, unit: kWh + jq: if .Datas then .Datas[{{ $idx }}][3] else .Data[3] end # forward active energy, unit: kWh {{- end }} cache: {{ .cache }} returnenergy: source: http uri: http://{{ .host }}/api/monitorjson {{- if eq .usage "pv" }} - jq: .Data[3] # forward active energy, unit: kWh + jq: if .Datas then .Datas[{{ $idx }}][3] else .Data[3] end # forward active energy, unit: kWh {{- else }} - jq: .Data[4] # reverse active energy, unit: kWh + jq: if .Datas then .Datas[{{ $idx }}][4] else .Data[4] end # reverse active energy, unit: kWh {{- end }} cache: {{ .cache }} diff --git a/templates/definition/meter/iammeter-2p.yaml b/templates/definition/meter/iammeter-2p.yaml deleted file mode 100644 index 519aa871f..000000000 --- a/templates/definition/meter/iammeter-2p.yaml +++ /dev/null @@ -1,46 +0,0 @@ -template: iammeter-2p -products: - - brand: IAMMETER - description: - generic: WEM2067 -params: - - name: usage - choice: ["grid", "pv", "charge"] - - name: host - - name: channel - default: 1 - required: true - description: - de: Messkanal (1-2) - en: Meter channel (1-2) - - name: cache - default: 2s -render: | - type: custom - {{- $idx := sub .channel 1 }} - power: - source: http - uri: http://{{ .host }}/api/monitorjson - jq: .Datas[{{ $idx }}][2] # active power, unit: W - cache: {{ .cache }} - {{- if eq .usage "pv" }} - scale: -1 - {{- end }} - energy: - source: http - uri: http://{{ .host }}/api/monitorjson - {{- if eq .usage "pv" }} - jq: .Datas[{{ $idx }}][4] # reverse active energy, unit: kWh - {{- else }} - jq: .Datas[{{ $idx }}][3] # forward active energy, unit: kWh - {{- end }} - cache: {{ .cache }} - returnenergy: - source: http - uri: http://{{ .host }}/api/monitorjson - {{- if eq .usage "pv" }} - jq: .Datas[{{ $idx }}][3] # forward active energy, unit: kWh - {{- else }} - jq: .Datas[{{ $idx }}][4] # reverse active energy, unit: kWh - {{- end }} - cache: {{ .cache }}