Add ioBroker meter and charger (#30162)

This commit is contained in:
kscholty 2026-06-10 21:33:40 +02:00 • committed by GitHub
parent 02ca578e14
commit d859ae9c7c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 332 additions and 0 deletions

View file

@ -0,0 +1,172 @@
template: iobroker
group: generic
products:
- brand: ioBroker
description:
generic: Charger
requirements:
evcc: ["skiptest"]
description:
de: |
Auf der verwendeten ioBroker Instanz muss der `rest-api` adapter (nicht `simple-api`) installiert sein.
Authentifiziert werden kann nur mittels `basic` authentication. Wird kein Passwort angegeben, so wird keine Authentifizierung durchgeführt.
Bei der Angabe der Entities für die einzelnen Messwerte ist darauf zu achten, dass diese korrekt URL-Encoded sind.
So wird aus `shelly.0.SHEM-3#8CAAB561991E#1.Total.ConsumedPower shelly.0.SHEM-3%238CAAB561991E%231.Total.ConsumedPower`
en: |
The `rest-api` adapter (not `simple-api`) must be installed on the ioBroker instance being used.
Authentication can only be performed using `basic` authentication. If no password is provided, no authentication will be performed.
When specifying the entities for the individual measured values, ensure that they are correctly URL-encoded.
For example, `shelly.0.SHEM-3#8CAAB561991E#1.Total.ConsumedPower` becomes `shelly.0.SHEM-3%238CAAB561991E%231.Total.ConsumedPower`
params:
- name: uri
required: true
description:
en: The full uri of the host to query
de: Der vollständige URI der ioBroker Instanz
example: https://iobroker.homelab.lan:8082
- name: cache
- name: user
- name: password
- name: status
description:
de: Ladezustand (Status A, B, C)
en: Charge status (A, B, C)
type: string
required: true
- name: power
description:
de: Leistung
en: Power
unit: W
type: string
- name: enabled
description:
de: Ladebereit
en: Enabled
type: string
required: true
- name: enable
description:
de: Setze ladebereit
en: Set enabled
type: string
required: true
- name: maxcurrent
description:
de: Setze maximale Stromstärke
en: Set maximum amperage
unit: A
type: string
- name: maxcurrentmillis
description:
de: Setze maximale Stromstärke
en: Set maximum amperage
unit: mA
type: string
advanced: true
- name: phases1p3p
description:
de: Setze Phasen(1 oder 3)
en: Set num phases (1 or 3)
type: string
render: |
type: custom
{{- if .status }}
status:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .status }}/plain?extraPlain=true
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .power }}
power:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .power }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .enabled }}
enabled:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .enabled }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .enable }}
enable:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .enable }}?value=${enable}
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .maxcurrent }}
maxcurrent:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .maxcurrent }}?value=${maxcurrent}
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .maxcurrentmillis }}
maxcurrentmillis:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .maxcurrentmillis }}?value=${maxcurrentmillis}
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .phases1p3p }}
phases1p3p:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .phases1p3p }}?value=${phases}
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
tos: true
{{- end }}

View file

@ -0,0 +1,160 @@
template: iobroker
products:
- brand: ioBroker
group: generic
requirements:
evcc: ["skiptest"]
description:
de: |
Auf der verwendeten ioBroker Instanz muss der `rest-api` adapter (nicht `simple-api`) installiert sein.
Authentifiziert werden kann nur mittels `basic` authentication. Wird kein Passwort angegeben, so wird keine Authentifizierung durchgeführt.
Bei der Angabe der Entities für die einzelnen Messwerte ist darauf zu achten, dass diese korrekt URL-Encoded sind.
So wird aus `shelly.0.SHEM-3#8CAAB561991E#1.Total.ConsumedPower shelly.0.SHEM-3%238CAAB561991E%231.Total.ConsumedPower`
en: |
The `rest-api` adapter (not `simple-api`) must be installed on the ioBroker instance being used.
Authentication can only be performed using `basic` authentication. If no password is provided, no authentication will be performed.
When specifying the entities for the individual measured values, ensure that they are correctly URL-encoded.
For example, `shelly.0.SHEM-3#8CAAB561991E#1.Total.ConsumedPower` becomes `shelly.0.SHEM-3%238CAAB561991E%231.Total.ConsumedPower`
params:
- name: usage
choice: ["grid", "pv", "battery", "charge"]
- name: uri
required: true
description:
en: The full uri of the host to query
de: Der vollständige URI der ioBroker Instanz
example: https://iobroker.homelab.lan:8082
- name: cache
- name: user
- name: password
- name: power
description:
de: Leistung
en: Power
unit: W
type: string
- name: soc
description:
de: Ladestand
en: State of Charge
unit: "%"
type: string
- name: energy
description:
de: Zählerstand
en: Meter reading
unit: kWh
type: string
advanced: true
- name: currentL1
description:
de: L1 Stromstärke
en: L1 current
unit: A
type: string
advanced: true
- name: currentL2
description:
de: L2 Stromstärke
en: L2 current
unit: A
type: string
advanced: true
- name: currentL3
description:
de: L3 Stromstärke
en: L3 current
unit: A
type: string
advanced: true
- preset: battery-params
- name: capacity
- name: minsoc
- name: maxsoc
- name: maxchargepower
- name: maxdischargepower
- name: maxacpower
render: |
type: custom
{{- if .power }}
power:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .power }}/plain
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
cache: {{ .cache }}
{{- end }}
{{- if .soc }}
soc:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .soc }}/plain
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
cache: {{ .cache }}
{{- end }}
{{- if .energy }}
energy:
source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .energy }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .currentL1 }}
currents:
- source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .currentL1 }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- if .currentL2 }}
- source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .currentL2 }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- if .currentL3 }}
- source: http
headers:
- accept: text/plain;charset=UTF-8
uri: {{ .uri }}/rest-api/v1/state/{{ .currentL3 }}/plain
cache: {{ .cache }}
{{- if .user }}
auth:
type: basic
user: {{ .user }}
password: {{ .password }}
{{- end }}
{{- end }}
{{- end }}