Skip to content

Commit 8b70d19

Browse files
committed
Document onIdentify.mode for custom vehicles
Added documentation for configuring charge mode on vehicle identification using the onIdentify.mode parameter for user-defined vehicles in the plugins page. Closes #816
1 parent 553f1c9 commit 8b70d19

File tree

2 files changed

+169
-133
lines changed

2 files changed

+169
-133
lines changed

docs/devices/plugins.mdx

Lines changed: 85 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
sidebar_position: 6
33
---
44

5-
import Tag from '@site/src/components/Tag';
5+
import Tag from "@site/src/components/Tag";
66

77
# Plugins
88

@@ -15,7 +15,6 @@ Plugins können für folgende Kategorien verwendet werden:
1515
- `tariff`: [Tarife, Vorhersagen](../tariffs)
1616
- `circuit`: [Lastmanagement](../features/loadmanagement)
1717

18-
1918
Zusätzlich können Plugins auch für die in [Messaging](/docs/reference/configuration/messaging) beschriebenen Endpunkte zum Versenden von Lifecycle-Events genutzt werden.
2019

2120
## Übersicht
@@ -78,7 +77,7 @@ Mögliche Parameter für die Datenextraktion sind:
7877

7978
- `regex`: Ein regulärer Ausdruck, um Werte aus dem empfangenen Text zu extrahieren.
8079
- `jq`: Ein [jq](https://jqlang.github.io/jq/)-Ausdruck, um Werte aus JSON-Strukturen zu extrahieren.
81-
Die volle Syntax und Möglichkeiten finden sich in der jq-Dokumentation.
80+
Die volle Syntax und Möglichkeiten finden sich in der jq-Dokumentation.
8281
- `quote`: Boolean-Wert, der die Eingabedaten in Anführungszeichen einschließt, bevor sie an jq weitergegeben werden. Dies ermöglicht es jq, unquotierte Strings (z. B. von MQTT) zu verarbeiten. Bei einem MQTT-Wert wie `Charging` kann man `quote: true` und `jq: '. == "Charging"'` verwenden.
8382
- `unpack`: Konvertiert Werte aus anderen Zahlenrepräsentationen, z. B. `hex`.
8483
- `decode`: Dekodiert Binärformate wie `uint32`, `float32` etc.
@@ -98,34 +97,34 @@ Je nach Gerät ([`meter`](#meter), [`charger`](#charger) oder [`vehicle`](#vehic
9897
Stromzähler werden in der Konfigurationssektion [`meters`](/docs/reference/configuration/meters) konfiguriert.
9998
Zähler, die unter `meters:` definiert werden, können an verschiedenen Stellen innerhalb der `site` Konfiguration verwendet werden:
10099

101-
* `grid`: Netzzähler
102-
* `pv`: PV Zähler
103-
* `battery`: Hausbatteriezähler
104-
* `charge`: Zähler für die Ladeleistung der Wallbox
105-
* `aux`: Verbrauchszähler für intelligente Verbraucher
106-
* `ext`: weiterer Zähler, bspw. für Lastmanagement oder Datenerfassung
100+
- `grid`: Netzzähler
101+
- `pv`: PV Zähler
102+
- `battery`: Hausbatteriezähler
103+
- `charge`: Zähler für die Ladeleistung der Wallbox
104+
- `aux`: Verbrauchszähler für intelligente Verbraucher
105+
- `ext`: weiterer Zähler, bspw. für Lastmanagement oder Datenerfassung
107106

108107
`power` ist das einzig zwingend erforderliche Attribut das in jeder `meter` Definition vorhanden sein muss, alle weiteren Attribute sind optional.
109108

110109
Jedoch unterstützen nicht alle Metertypen alle Pluginattribute:
111110

112-
* `limitsoc` und `batterymode` werden ausschließlich für Batteriezähler genutzt (d.h. für `meter` die in `site.battery` referenziert werden).
113-
* `currents`, `voltages` und `powers` sind Phasen Attribute, die mit jeweils genau drei Plugin-Konfigurationen (in einem YAML Array) konfiguriert werden müssen und für Netzzähler (`grid`) und Wallboxen (`charge`) verwendet werden können.
111+
- `limitsoc` und `batterymode` werden ausschließlich für Batteriezähler genutzt (d.h. für `meter` die in `site.battery` referenziert werden).
112+
- `currents`, `voltages` und `powers` sind Phasen Attribute, die mit jeweils genau drei Plugin-Konfigurationen (in einem YAML Array) konfiguriert werden müssen und für Netzzähler (`grid`) und Wallboxen (`charge`) verwendet werden können.
114113

115114
Die folgenden Tabellen enthalten alle Attribute, die von Plugins bereitgestellt werden können, wenn sie für `meter` konfiguriert werden.
116115
Bei der Verwendung der Plugins ist es auch wichtig, dass diese den richtigen Datentyp zurückliefern.
117116
Um zu dem verlangten Datentypen zu konvertieren, können die in [Lesen](#lesen) beschriebenen Pipelines genutzt werden.
118117

119-
| Attribut | Typ | Erfordert | Kontext | Beschreibung |
120-
|-----------|---------------------|-----------|----------------|---------------------------|
121-
| power | float | ja | alle | Aktuelle Leistung in W |
122-
| energy | float | nein | alle | Zählerstand in kWh |
123-
| maxpower | int | nein | `pv` (hybrid) | Maximale AC-Leistung in W |
124-
| soc | int | nein | `battery` | Ladestand in % |
125-
| capacity | float | nein | `battery` | Kapazität in kWh |
126-
| powers | [float,float,float] | nein | alle | Phasenleistungen in W |
127-
| currents | [float,float,float] | nein | alle | Phasenströme in A |
128-
| voltages | [float,float,float] | nein | alle | Phasenspannungen in V |
118+
| Attribut | Typ | Erfordert | Kontext | Beschreibung |
119+
| -------- | ------------------- | --------- | ------------- | ------------------------- |
120+
| power | float | ja | alle | Aktuelle Leistung in W |
121+
| energy | float | nein | alle | Zählerstand in kWh |
122+
| maxpower | int | nein | `pv` (hybrid) | Maximale AC-Leistung in W |
123+
| soc | int | nein | `battery` | Ladestand in % |
124+
| capacity | float | nein | `battery` | Kapazität in kWh |
125+
| powers | [float,float,float] | nein | alle | Phasenleistungen in W |
126+
| currents | [float,float,float] | nein | alle | Phasenströme in A |
127+
| voltages | [float,float,float] | nein | alle | Phasenspannungen in V |
129128

130129
**Beispiel**
131130

@@ -149,30 +148,30 @@ site:
149148

150149
Neben den Attributen, die Plugins zur lesenden Auswertung bereitstellen, werden folgende Attribute von evcc genutzt, um Aktionen zu triggern:
151150

152-
| Attribut | Typ | Erfordert | Kontext | Beschreibung |
153-
|--------------|-----|-----------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
154-
| limitsoc | int | nein | `battery` | Setze Ladeziel für Batterie in %. Das Ladeziel wird aus den konfigurierten `MinSoc`, `MaxSoc` und dem aktuellen Ladestand (Attribut `soc`) berechnet. |
155-
| batterymode | int | nein | `battery` | Setze Lademodus direkt (1: normal, 2: hold, 3: charge) |
151+
| Attribut | Typ | Erfordert | Kontext | Beschreibung |
152+
| ----------- | --- | --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
153+
| limitsoc | int | nein | `battery` | Setze Ladeziel für Batterie in %. Das Ladeziel wird aus den konfigurierten `MinSoc`, `MaxSoc` und dem aktuellen Ladestand (Attribut `soc`) berechnet. |
154+
| batterymode | int | nein | `battery` | Setze Lademodus direkt (1: normal, 2: hold, 3: charge) |
156155

157156
### Charger
158157

159158
Wallboxen und Ladegeräte haben folgende Attribute die ausgelesen werden können:
160159

161-
| Attribut | Typ | Erfordert | Beschreibung |
162-
|-------------|---------------------|-----------|-------------------------------------|
163-
| status | string | ja | Status (A..F) |
164-
| enabled | bool | ja | Ist Ladung freigegeben? |
165-
| power | float | nein | Ladeleistung in W |
166-
| energy | float | nein | Zählerstand in kWh |
167-
| identify | string | nein | Aktuelle RFID-Kennung |
168-
| soc | int | nein | Ladestand in % |
169-
| phases | int | nein | Anzahl der physischen Phasen (1..3) |
170-
| powers | [float,float,float] | nein | Phasenleistungen in W |
171-
| currents | [float,float,float] | nein | Phasenströme in A |
172-
| voltages | [float,float,float] | nein | Phasenspannungen in V |
173-
| temp | float | nein | Aktuelle Temperatur in °C (Heizung) |
174-
| templimit | int | nein | Temperaturlimit in °C (Heizung) |
175-
| getmode | int | nein | SG-Ready Modus (Wärmepumpe) |
160+
| Attribut | Typ | Erfordert | Beschreibung |
161+
| --------- | ------------------- | --------- | ----------------------------------- |
162+
| status | string | ja | Status (A..F) |
163+
| enabled | bool | ja | Ist Ladung freigegeben? |
164+
| power | float | nein | Ladeleistung in W |
165+
| energy | float | nein | Zählerstand in kWh |
166+
| identify | string | nein | Aktuelle RFID-Kennung |
167+
| soc | int | nein | Ladestand in % |
168+
| phases | int | nein | Anzahl der physischen Phasen (1..3) |
169+
| powers | [float,float,float] | nein | Phasenleistungen in W |
170+
| currents | [float,float,float] | nein | Phasenströme in A |
171+
| voltages | [float,float,float] | nein | Phasenspannungen in V |
172+
| temp | float | nein | Aktuelle Temperatur in °C (Heizung) |
173+
| templimit | int | nein | Temperaturlimit in °C (Heizung) |
174+
| getmode | int | nein | SG-Ready Modus (Wärmepumpe) |
176175

177176
**Beispiel**
178177

@@ -195,15 +194,14 @@ chargers:
195194

196195
Neben den read-only Werten können über Plugins auch Aktionen getriggert oder Konfigurationswerte gesetzt werden:
197196

198-
| Attribut | Typ | Erfordert | Beschreibung |
199-
| --------------- | ----- | --------- | ----------------------------------------------------- |
200-
| enable | bool | ja | Ladung freigeben / sperren |
201-
| maxcurrent | int | ja | Setze maximalen Ladestrom in A |
202-
| maxcurrentmilis | float | nein | Setze maximalen Ladestrom in A |
203-
| phases1p3p | int | nein | Phasenumschaltung durchführen (erfordert `tos: true`) |
204-
| wakeup | bool | nein | Wecke Fahrzeug auf |
205-
| setmode | int | nein | Ändere SG-Ready Modus (1: reduced, 2: normal, 3: boost) |
206-
197+
| Attribut | Typ | Erfordert | Beschreibung |
198+
| --------------- | ----- | --------- | ------------------------------------------------------- |
199+
| enable | bool | ja | Ladung freigeben / sperren |
200+
| maxcurrent | int | ja | Setze maximalen Ladestrom in A |
201+
| maxcurrentmilis | float | nein | Setze maximalen Ladestrom in A |
202+
| phases1p3p | int | nein | Phasenumschaltung durchführen (erfordert `tos: true`) |
203+
| wakeup | bool | nein | Wecke Fahrzeug auf |
204+
| setmode | int | nein | Ändere SG-Ready Modus (1: reduced, 2: normal, 3: boost) |
207205

208206
**Beispiel**
209207

@@ -224,22 +222,22 @@ chargers:
224222

225223
Fahrzeugparameter können ebenfalls über Plugins ausgelesen werden.
226224

227-
| Attribut | Typ | Erfordert | Beschreibung |
228-
|---------------|---------|-----------|---------------------------------|
229-
| soc | int | ja | Ladestand in % |
230-
| limitsoc | int | nein | Ladelimit in % |
231-
| status | string | nein | Status (A..F) |
232-
| range | int | nein | Reichweite in km |
233-
| odometer | int | nein | Kilometerstand in km |
234-
| climater | bool | nein | Klimatisierung aktiv? |
235-
| getmaxcurrent | float | nein | Maximaler Ladestrom in A |
236-
| finishtime | string | nein | Geplantes Ladeende (RFC3339) |
225+
| Attribut | Typ | Erfordert | Beschreibung |
226+
| ------------- | ------ | --------- | ---------------------------- |
227+
| soc | int | ja | Ladestand in % |
228+
| limitsoc | int | nein | Ladelimit in % |
229+
| status | string | nein | Status (A..F) |
230+
| range | int | nein | Reichweite in km |
231+
| odometer | int | nein | Kilometerstand in km |
232+
| climater | bool | nein | Klimatisierung aktiv? |
233+
| getmaxcurrent | float | nein | Maximaler Ladestrom in A |
234+
| finishtime | string | nein | Geplantes Ladeende (RFC3339) |
237235

238236
**Beispiel**
239237

240238
Im folgenden Beispiel wird die aktuelle Reichweite des Fahrzeugs aus MQTT Nachrichten gelesen:
241239

242-
``` yaml
240+
```yaml
243241
vehicles:
244242
- name: Mazda
245243
type: custom
@@ -250,17 +248,17 @@ vehicles:
250248

251249
Zusätzlich können spezielle Kommandos über Plugins an das Fahrzeug geschickt werden:
252250

253-
| Attribut | Typ | Erfordert | Beschreibung |
254-
|--------------|------|-----------|----------------------------------|
255-
| wakeup | bool | nein | Fahrzeug aufwecken |
256-
| chargeenable | bool | nein | Starte/stoppe den Ladevorgang |
257-
| maxcurrent | int | nein | Setze maximalen Ladestrom in A |
251+
| Attribut | Typ | Erfordert | Beschreibung |
252+
| ------------ | ---- | --------- | ------------------------------ |
253+
| wakeup | bool | nein | Fahrzeug aufwecken |
254+
| chargeenable | bool | nein | Starte/stoppe den Ladevorgang |
255+
| maxcurrent | int | nein | Setze maximalen Ladestrom in A |
258256

259257
**Beispiel**
260258

261259
Um ein Auto über einen HTTP Ping aufzuwecken, um weiter Abfragen zu senden, kann wie im folgenden Beispiel das HTTP-Plugin genutzt werden:
262260

263-
``` yaml
261+
```yaml
264262
vehicles:
265263
- name: model-y
266264
type: custom
@@ -269,6 +267,26 @@ vehicles:
269267
uri: http://teslalogger.local:5000/command/08154711/wake_up
270268
```
271269

270+
#### Lademodus bei Fahrzeugerkennung
271+
272+
Bei benutzerdefinierten Fahrzeugen kann der Lademodus beim Erkennen des Fahrzeugs mit `onIdentify` konfiguriert werden.
273+
Dies ist nützlich, wenn der gewünschte Lademodus automatisch gesetzt werden soll, sobald das Fahrzeug identifiziert wird.
274+
275+
**Beispiel**:
276+
277+
```yaml
278+
vehicles:
279+
- name: my-car
280+
type: custom
281+
soc:
282+
source: mqtt
283+
topic: car/soc
284+
onIdentify:
285+
mode: pv
286+
```
287+
288+
Verfügbare Modi sind: `off`, `now`, `minpv`, `pv`.
289+
272290
### Tarife & Vorhersagen
273291

274292
Siehe [Tarife & Vorhersagen > Eigenes Plugin](../tariffs#plugin) für mehr Details.
@@ -357,7 +375,7 @@ auth: # basic authentication
357375
insecure: false # set to true to trust self-signed certificates
358376
jq: .data.tuples[0][1] # parse response json
359377
scale: 0.001 # factor applied to result, e.g. for kW to W conversion
360-
cache: 60s # response cache duration
378+
cache: 60s # response cache duration
361379
timeout: 10s # timeout in golang duration format,
362380
# see https://golang.org/pkg/time/#ParseDuration
363381
```

0 commit comments

Comments
 (0)