evcc-io/templates/definition/meter/smartfox-em2.yaml
2025-06-09 18:19:04 +02:00

109 lines
3.6 KiB
YAML

template: smartfox-em2
products:
- brand: Smartfox
description:
generic: Pro
- brand: Smartfox
description:
generic: Pro 2
- brand: Smartfox
description:
generic: Pro Light
- brand: Smartfox
description:
generic: Pro Light 2
- brand: Smartfox
description:
generic: Light (EM2 firmware)
requirements:
description:
de: |
`aux` kann für die Leistung der Warmwasserbereitung verwendet werden.
en: |
`aux` can be used for water heating power.
params:
- name: usage
choice: ["grid", "pv", "aux"]
- name: host
- name: cache
advanced: true
default: 1s
render: |
{{- define "uri" -}}
http://{{ .host }}/values.xml
{{- end }}
type: custom
# jq: parse json generated from response values.xml (https://jqplay.org is your friend to test queries)
{{- if eq .usage "grid" }}
power: # grid power in W
source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="detailsPowerValue")."#content" | rtrimstr(" W")
energy: # grid energy in kWh
source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="energyValue")."#content" | rtrimstr(" kWh")
voltages: # grid voltages in V
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="voltageL1Value")."#content" | rtrimstr(" V")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="voltageL2Value")."#content" | rtrimstr(" V")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="voltageL3Value")."#content" | rtrimstr(" V")
currents: # grid currents in A
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="ampereL1Value")."#content" | rtrimstr(" A")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="ampereL2Value")."#content" | rtrimstr(" A")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="ampereL3Value")."#content" | rtrimstr(" A")
powers: # grid powers in W
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="powerL1Value")."#content" | rtrimstr(" W")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="powerL2Value")."#content" | rtrimstr(" W")
- source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="powerL3Value")."#content" | rtrimstr(" W")
{{- end }}
{{- if eq .usage "pv" }}
# PV power and energy values are delivered for each inverter, we select them via regex and sum the values
power: # PV power in W
source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: '[.values.value[] | select(.attrid|test("wr\\d+PowerValue"))."#content" | rtrimstr(" kW") | tonumber] | add'
scale: 1000 # wr1PowerValue, ..., wr5PowerValue are in kW
energy: # PV energy in kWh
source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: '[.values.value[] | select(.attrid|test("wr\\d+EnergyValue"))."#content" | rtrimstr(" kWh") | tonumber] | add'
{{- end }}
{{- if eq .usage "aux" }}
power: # heating power in W
source: http
cache: {{ .cache }}
uri: {{ include "uri" . }}
jq: .values.value[] | select(.attrid=="htPowerMeasValue")."#content" | rtrimstr(" kW")
scale: 1000
{{- end }}