evcc-io/templates/definition/charger/emsesp.yaml
2026-04-06 08:13:48 +00:00

195 lines
5.1 KiB
YAML

template: emsesp
products:
- brand: Buderus
description:
generic: SG Ready
- brand: Bosch
description:
generic: SG Ready
- brand: Junkers
description:
generic: SG Ready
group: heating
requirements:
description:
de: "Eingebunden via [emsesp.org](https://emsesp.org/)"
en: "Integrated via [emsesp.org](https://emsesp.org/)"
# evcc: ["sponsorship"]
params:
- name: host
- name: token
- name: powersource
type: choice
choice: ["hpcurrpower", "hppower"]
description:
de: "Leistungsquelle"
en: "Power source"
default: hpcurrpower
- name: tempsource
type: choice
choice: ["warmwater"]
- name: sg1
advanced: true
type: choice
choice: ["hpin1opt", "hpin2opt", "hpin3opt", "hpin4opt"]
default: hpin1opt
description:
de: "SG1-Eingang"
en: "SG1 input"
- name: sg4
advanced: true
type: choice
choice: ["hpin1opt", "hpin2opt", "hpin3opt", "hpin4opt"]
default: hpin4opt
description:
de: "SG4-Eingang"
en: "SG4 input"
- name: value_normal_sg4
advanced: true
type: string
default: "0xxxxxxxxxxx"
description:
de: "Bitmask für SG4 im Normalbetrieb"
en: "Bitmask for SG4 in normal mode"
- name: value_normal_sg1
advanced: true
type: string
default: "0xxxxxxxxxxxxxx"
description:
de: "Bitmask für SG1 im Normalbetrieb"
en: "Bitmask for SG1 in normal mode"
- name: value_boost_sg4
advanced: true
type: string
default: "1xxxxxxxxxxx"
description:
de: "Bitmask für SG4 im Boost-Betrieb"
en: "Bitmask for SG4 in boost mode"
- name: value_boost_sg1
advanced: true
type: string
default: ""
description:
de: "Bitmask für SG1 im Boost-Betrieb"
en: "Bitmask for SG1 in boost mode"
- name: value_dim_sg1
advanced: true
type: string
default: "1xxxxxxxxxxxxxx"
description:
de: "Bitmask für SG1 im Dimm-Betrieb"
en: "Bitmask for SG1 in dim mode"
- name: value_dim_sg4
advanced: true
type: string
default: "0xxxxxxxxxxx"
description:
de: "Bitmask für SG4 im Dimm-Betrieb"
en: "Bitmask for SG4 in dim mode"
render: |
type: sgready
power:
source: http
uri: http://{{ .host }}/api/boiler/{{ .powersource }}
jq: .value // 0
{{- if eq .powersource "hppower" }}
scale: 1000
{{- end}}
getmode:
source: go
script: |
res := 2 // 0/0 Normal
switch {
case SG1 == "1" && SG4 == "0": res = 1 // 1/0 Frostschutz
case SG4 == "1": res = 3 // x/1 Forcierter Betrieb/Sofortige Ansteuerung
}
res
in:
- name: SG1
type: string
config:
source: http
uri: http://{{ .host }}/api/boiler/{{ .sg1 }}
jq: '.value[0:1]'
- name: SG4
type: string
config:
source: http
uri: http://{{ .host }}/api/boiler/{{ .sg4 }}
jq: '.value[0:1]'
setmode:
source: switch
switch:
- case: 2 # normal
set:
source: sequence
set:
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg4 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_normal_sg4 }}" }
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg1 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_normal_sg1 }}" }
- case: 3 # boost
set:
source: sequence
set:
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg4 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_boost_sg4 }}" }
{{- if .value_boost_sg1 }}
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg1 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_boost_sg1 }}" }
{{- end }}
- case: 1 # dimm
set:
source: sequence
set:
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg1 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_dim_sg1 }}" }
- source: http
uri: http://{{ .host }}/api/boiler/{{ .sg4 }}
method: POST
headers:
- content-type: application/json
- authorization: Bearer {{ .token}}
body: >
{ "value" : "{{ .value_dim_sg4 }}" }
{{- if .tempsource }}
temp:
source: http
uri: http://{{ .host }}/api/boiler/dhw/curtemp
jq: .value
limittemp:
source: http
uri: http://{{ .host }}/api/boiler/dhw/settemp
jq: .value
{{- end }}
{{ include "heatpumpswitch" . }}