Skip to content

Commit e45b0e1

Browse files
committed
Merge branch 'main' of github.com:evcc-io/docs
2 parents 049a6d5 + 38b7d87 commit e45b0e1

File tree

4 files changed

+281
-156
lines changed

4 files changed

+281
-156
lines changed

docs/devices/plugins.mdx

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Zusätzlich können Plugins auch für die in [Messaging](/docs/reference/configu
3737
- [Calc Plugin](#calc) - Meta-Plugin um Ausgaben von anderen Plugins arithmetisch zu verknüpfen.
3838
- [Combined Plugin](#combined) - Meta-Plugin speziell für `charger` um die booleschen Status-Werte für den angeschlossenen (_plugged_) und ladenden (_charging_) Zustand zu einem einzigen Ladestatus zu kombinieren.
3939
- [Const Plugin](#const) - Spezielles Plugin das einfach einen konstanten Wert zurückliefert.
40+
- [Error Plugin](#error) - Spezielles Plugin das einen bekannten Fehlerwert zurückgibt.
4041
- [Convert Plugin](#convert) - Meta-Plugin zur Datentyp-Konvertierung beim Schreiben (z. B. float zu int).
4142
- [Delta Plugin](#delta) - Meta-Plugin zur Umwandlung von absoluten Werten in Änderungswerte (Deltas) beim Schreiben.
4243
- [Ignore Plugin](#ignore) - Meta-Plugin zum Unterdrücken spezifischer Fehlermeldungen.
@@ -95,6 +96,19 @@ Mögliche Parameter für die Datenextraktion sind:
9596
- `unpack`: Konvertiert Werte aus anderen Zahlenrepräsentationen, z. B. `hex`.
9697
- `decode`: Dekodiert Binärformate wie `uint32`, `float32` etc.
9798

99+
##### Bekannte Fehlerwerte {#known-errors}
100+
101+
[HTTP](#http)-, [MQTT](#mqtt)- und [Websocket](#websocket)-Plugins können spezielle Fehlerwerte als String zurückgeben.
102+
evcc erkennt diese und wandelt sie in interne Fehlercodes um, anstatt sie als Daten zu behandeln.
103+
Das ist z. B. nützlich für eigene Fahrzeugintegrationen, bei denen die Datenquelle den Zustand des Fahrzeugs kennt.
104+
105+
- `ErrAsleep` — Fahrzeug schläft. evcc kann entscheiden, ob das Fahrzeug geweckt werden soll.
106+
- `ErrMustRetry` — Vorgang soll erneut versucht werden (z. B. bei Rate-Limiting).
107+
- `ErrNotAvailable` — Wert ist nicht verfügbar. evcc behandelt dies als permanenten Fehler bis zum nächsten Neustart.
108+
109+
Wenn ein Plugin z. B. den String `ErrAsleep` als Antwort liefert, erzeugt evcc intern den entsprechenden Fehler.
110+
Das [Error Plugin](#error) nutzt denselben Mechanismus, um einen festen Fehlerwert als Konstante zurückzugeben.
111+
98112
#### Schreiben
99113

100114
Beim Schreiben können Parameter in der Konfiguration durch Platzhalter ersetzt werden.
@@ -780,6 +794,8 @@ Das `websocket`-Plugin bietet einen WebSocket-Listener.
780794
Es beinhaltet auch die Fähigkeit, JSON-Datenstrukturen über jq-ähnliche Abfragen zu lesen oder zu parsen.
781795
Dies kann z. B. verwendet werden, um Daten von Volkszählers Push Server zu empfangen.
782796

797+
Für die Datenextraktion stehen die unter [Lesen](#lesen) beschriebenen Pipeline-Parameter zur Verfügung (`regex`, `jq`, `quote`, etc.).
798+
783799
**Beispiel Lesen**:
784800

785801
```yaml
@@ -871,6 +887,25 @@ source: const
871887
value: -16247
872888
```
873889

890+
### Error <Tag label="lesen" category="read" /> {#error}
891+
892+
Das `error` Plugin gibt immer einen [bekannten Fehlerwert](#known-errors) zurück.
893+
Es ist nützlich, um ein nicht implementiertes Attribut als explizit nicht verfügbar zu kennzeichnen.
894+
895+
**Parameter**:
896+
897+
| Parameter | Typ | Erfordert | Beschreibung |
898+
| --------- | ------ | --------- | --------------------------------------------------------------- |
899+
| error | string | ja | Fehlerwert (`ErrAsleep`, `ErrMustRetry` oder `ErrNotAvailable`) |
900+
901+
**Beispiel**:
902+
903+
```yaml
904+
soc:
905+
source: error
906+
error: ErrNotAvailable
907+
```
908+
874909
### Convert <Tag label="schreiben" category="write" /> {#convert}
875910

876911
Das `convert` Plugin konvertiert Datentypen beim Schreiben.

docs/integrations/mqtt-api.md

Lines changed: 109 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -4,85 +4,114 @@ sidebar_position: 2
44

55
# MQTT API
66

7-
:::note
8-
Die Dokumentation ist noch nicht vollständig.
9-
Die meisten der über die [REST API](./rest-api) verfügbaren Daten und Funktionen sind auch via MQTT verfügbar.
10-
Nutze Tools wie [MQTT Explorer](https://mqtt-explorer.com/) um die Daten zu visualisieren.
7+
Alle Daten des [REST API](./rest-api) Endpunkts `/api/state` werden auch per MQTT veröffentlicht.
8+
Listen werden dabei in einzelne Sub-Topics aufgelöst (Index beginnt bei `1`).
9+
10+
## Lesbare Topics {#read}
11+
12+
### Site {#site-read}
13+
14+
- `evcc/site/siteTitle`: Seitentitel
15+
- `evcc/site/currency`: konfigurierte Währung
16+
- `evcc/site/homePower`: aktueller Hausverbrauch (W)
17+
- `evcc/site/pvPower`: aktuelle PV-Erzeugung (W)
18+
- `evcc/site/grid/power`: aktuelle Netzleistung (W, positiv = Bezug)
19+
- `evcc/site/battery/power`: Batterieleistung (W, positiv = Entladung)
20+
- `evcc/site/battery/soc`: Batterie-Ladestand (%)
21+
- `evcc/site/greenShareHome`: Eigenerzeugungs-Anteil am Hausverbrauch (0–1)
22+
- `evcc/site/greenShareLoadpoints`: Eigenerzeugungs-Anteil am Ladepunktverbrauch (0–1)
23+
- `evcc/site/tariffGrid`: aktueller Netztarif
24+
- `evcc/site/tariffFeedIn`: aktuelle Einspeisevergütung
25+
- `evcc/site/tariffCo2`: aktuelle CO₂-Intensität
26+
- `evcc/site/batteryGridChargeActive`: Netzladen der Batterie aktiv (true/false)
27+
28+
### Loadpoints {#loadpoint-read}
29+
30+
Alle Loadpoint IDs beginnen bei `1`.
31+
32+
- `evcc/loadpoints`: Anzahl der verfügbaren Ladepunkte
33+
- `evcc/loadpoints/<id>/title`: Ladepunkt-Titel
34+
- `evcc/loadpoints/<id>/connected`: Fahrzeug verbunden (true/false)
35+
- `evcc/loadpoints/<id>/charging`: lädt gerade (true/false)
36+
- `evcc/loadpoints/<id>/enabled`: Ladepunkt aktiviert (true/false)
37+
- `evcc/loadpoints/<id>/chargePower`: aktuelle Ladeleistung (W)
38+
- `evcc/loadpoints/<id>/chargedEnergy`: geladene Energie in Sitzung (Wh)
39+
- `evcc/loadpoints/<id>/chargeDuration`: Ladedauer (ns)
40+
- `evcc/loadpoints/<id>/chargeRemainingDuration`: verbleibende Ladedauer (ns)
41+
- `evcc/loadpoints/<id>/chargeRemainingEnergy`: verbleibende Energie (Wh)
42+
- `evcc/loadpoints/<id>/chargeTotalImport`: Zählerstand Ladezähler (Wh)
43+
- `evcc/loadpoints/<id>/vehicleName`: Fahrzeug-Bezeichner
44+
- `evcc/loadpoints/<id>/vehicleTitle`: Fahrzeug-Anzeigename
45+
- `evcc/loadpoints/<id>/vehicleSoc`: Fahrzeug-SoC (%)
46+
- `evcc/loadpoints/<id>/vehicleRange`: Fahrzeug-Reichweite (km)
47+
- `evcc/loadpoints/<id>/phasesActive`: aktive Phasen
48+
- `evcc/loadpoints/<id>/planActive`: Plan aktiv (true/false)
49+
- `evcc/loadpoints/<id>/sessionEnergy`: Sitzungsenergie (Wh)
50+
- `evcc/loadpoints/<id>/sessionSolarPercentage`: Eigenerzeugungs-Anteil der Sitzung (%)
51+
- `evcc/loadpoints/<id>/smartCostActive`: Smart Cost aktiv (true/false)
52+
- `evcc/loadpoints/<id>/effectivePriority`: effektive Priorität
53+
54+
:::warning Weitere Topics
55+
Diese Liste ist nicht vollständig.
56+
Alle verfügbaren Topics kannst du mit [MQTT Explorer](https://mqtt-explorer.com/) einsehen.
1157
:::
1258

13-
Die MQTT API folgt der [REST API](./rest-api) Struktur.
14-
Alle API IDs (z. B. die Loadpoint ID) beginnen bei `1`.
15-
16-
- `evcc`: root topic
17-
- `evcc/status`: status (`online`/`offline`)
18-
- `evcc/updated`: timestamp of last update
19-
20-
## Site
21-
22-
- `evcc/site`: site dynamic state
23-
- `evcc/site/prioritySoc`: battery priority SoC (writable)
24-
- `evcc/site/bufferSoc`: battery buffer SoC (writable)
25-
- `evcc/site/bufferStartSoc`: battery buffer start SoC (writable)
26-
- `evcc/site/residualPower`: grid residual power (writable)
27-
- `evcc/site/batteryGridChargeLimit`: smart charging cost limit (previously known as "cheap" tariff) (writable)
28-
- `evcc/site/batteryDischargeControl`: enable/disable battery discharge control (true/false) (writable)
29-
- `evcc/site/batteryMode`: external battery mode (writable: `normal`, `hold`, `charge`) - directly controls all controllable batteries, overrules other evcc modes, resets after 60s
30-
31-
## Vehicles
32-
33-
**Note**: for vehicle names see `evcc/vehicles`.
34-
35-
- `evcc/vehicles`: number of vehicles
36-
- `evcc/vehicles/<name>/minSoc`: minimum soc in % (writable)
37-
- `evcc/vehicles/<name>/limitSoc`: limit soc in % (writable)
38-
- `evcc/vehicles/<name>/planSoc`: plan soc (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`)
39-
40-
## Loadpoints
41-
42-
- `evcc/loadpoints`: number of available loadpoints
43-
- `evcc/loadpoints/<id>`: dynamic state
44-
- `evcc/loadpoints/<id>/mode`: charge mode (writable)
45-
- `evcc/loadpoints/<id>/minSoc`: minimum SoC (writable)
46-
- `evcc/loadpoints/<id>/limitSoc`: limit SoC in % (writable) - only applicable for online vehicles
47-
- `evcc/loadpoints/<id>/limitEnergy`: limit energy in kWh (writable) - only applicable for offline vehicles
48-
- `evcc/loadpoints/<id>/plan/energy`: plan energy (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`)
49-
- `evcc/loadpoints/<id>/phasesConfigured`: configured phases (writable)
50-
- `evcc/loadpoints/<id>/minCurrent`: current minCurrent value (writable)
51-
- `evcc/loadpoints/<id>/maxCurrent`: current maxCurrent value (writable)
52-
- `evcc/loadpoints/<id>/enableThreshold`: threshold value (writable)
53-
- `evcc/loadpoints/<id>/enableDelay`: delay value (s) (writable)
54-
- `evcc/loadpoints/<id>/disableThreshold`: threshold value (writable)
55-
- `evcc/loadpoints/<id>/disableDelay`: delay value (s) (writable)
56-
- `evcc/loadpoints/<id>/batteryboost`: battery boost enabled (writeable: [1/0])
57-
- `evcc/loadpoints/<id>/priority`: priority value (writable)
58-
59-
:::note
60-
Um schreibbare Einstellungen durchzuführen, muss ein `/set` am Ende des Topics hinzugefügt werden an welches der neue Wert gesendet wird.
61-
Beispiel: `mosquitto_pub -t "evcc/loadpoints/1/phasesConfigured/set" -m "3"` um die Anzahl der netzseitigen Phasen am 1. Ladepunkt auf `3` festzulegen.
62-
:::
63-
64-
:::info
65-
\*\* Zeitangabe efolgt in UTC im Format `yyyy-mm-ddThh:mm:ssZ`
66-
67-
Beispiele:
68-
69-
`2023-03-05T07:00:00Z` = 5. März 2023 um 8:00 Uhr MEZ
70-
71-
`2023-08-17T19:30:00Z` = 17. August 2023 um 21:30 Uhr MESZ
72-
:::
73-
74-
:::note
75-
\*\* Unterstützung leerer Werte:
76-
Folgende Zeichenfolgen werden als leere Werte erkannt:
77-
78-
- `nil`
79-
- `null`
80-
- `none`
81-
- `-`
82-
83-
Beispiele:
84-
85-
- `evcc/site/batteryGridChargeLimit/set`: 'none'
86-
87-
Um die Preisschwelle zum Laden der Batterie auf 'none' zu setzten, bzw. zu löschen.
88-
:::
59+
## Schreibbare Topics {#write}
60+
61+
Um schreibbare Topics zu ändern, hänge `/set` an das Topic an und sende den neuen Wert.
62+
63+
```bash
64+
mosquitto_pub -t "evcc/loadpoints/1/phasesConfigured/set" -m "3"
65+
```
66+
67+
Zeitangaben erfolgen in UTC im Format `yyyy-mm-ddThh:mm:ssZ`, z. B. `2023-03-05T07:00:00Z` (= 5. März 2023, 8:00 MEZ).
68+
69+
Folgende Zeichenfolgen werden als leere Werte erkannt: `nil`, `null`, `none`, `-`.
70+
Damit lassen sich z. B. gesetzte Schwellenwerte zurücksetzen:
71+
72+
```bash
73+
mosquitto_pub -t "evcc/site/batteryGridChargeLimit/set" -m "none"
74+
```
75+
76+
### Site {#site-write}
77+
78+
- `evcc/site/prioritySoc`: Batterie-Prioritäts-SoC
79+
- `evcc/site/bufferSoc`: Batterie-Puffer-SoC
80+
- `evcc/site/bufferStartSoc`: Batterie-Puffer-Start-SoC
81+
- `evcc/site/residualPower`: Netz-Residualleistung
82+
- `evcc/site/batteryGridChargeLimit`: Preisschwelle für Netzladen
83+
- `evcc/site/batteryDischargeControl`: Entladeregelung aktivieren/deaktivieren (true/false)
84+
- `evcc/site/batteryMode`: externer Batteriemodus (`normal`, `hold`, `charge`) – steuert alle regelbaren Batterien direkt, überschreibt andere evcc-Modi, wird nach 60 s zurückgesetzt
85+
- `evcc/site/smartCostLimit`: Smart-Cost-Limit für alle Ladepunkte
86+
- `evcc/site/smartFeedInPriorityLimit`: Einspeise-Prioritäts-Limit für alle Ladepunkte
87+
88+
### Loadpoints {#loadpoint-write}
89+
90+
- `evcc/loadpoints/<id>/mode`: Lademodus
91+
- `evcc/loadpoints/<id>/minSoc`: minimaler SoC
92+
- `evcc/loadpoints/<id>/limitSoc`: Limit-SoC in % – nur für Online-Fahrzeuge
93+
- `evcc/loadpoints/<id>/limitEnergy`: Limit-Energie in kWh – nur für Offline-Fahrzeuge
94+
- `evcc/loadpoints/<id>/planEnergy`: Planenergie (JSON-Payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`)
95+
- `evcc/loadpoints/<id>/phasesConfigured`: konfigurierte Phasen
96+
- `evcc/loadpoints/<id>/minCurrent`: minimaler Ladestrom
97+
- `evcc/loadpoints/<id>/maxCurrent`: maximaler Ladestrom
98+
- `evcc/loadpoints/<id>/enableThreshold`: Einschaltschwelle
99+
- `evcc/loadpoints/<id>/enableDelay`: Einschaltverzögerung (s)
100+
- `evcc/loadpoints/<id>/disableThreshold`: Ausschaltschwelle
101+
- `evcc/loadpoints/<id>/disableDelay`: Ausschaltverzögerung (s)
102+
- `evcc/loadpoints/<id>/batteryboost`: Battery Boost aktiviert (1/0)
103+
- `evcc/loadpoints/<id>/batteryBoostLimit`: Battery Boost SoC-Limit
104+
- `evcc/loadpoints/<id>/priority`: Priorität
105+
- `evcc/loadpoints/<id>/smartCostLimit`: Smart-Cost-Limit
106+
- `evcc/loadpoints/<id>/smartFeedInPriorityLimit`: Einspeise-Prioritäts-Limit
107+
- `evcc/loadpoints/<id>/planStrategy`: Planstrategie (JSON)
108+
- `evcc/loadpoints/<id>/vehicle`: Fahrzeug setzen (Fahrzeugname)
109+
110+
### Vehicles {#vehicle-write}
111+
112+
Fahrzeugnamen siehe `evcc/vehicles`.
113+
114+
- `evcc/vehicles/<name>/minSoc`: minimaler SoC in %
115+
- `evcc/vehicles/<name>/limitSoc`: Limit-SoC in %
116+
- `evcc/vehicles/<name>/planSoc`: Plan-SoC (JSON-Payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`)
117+
- `evcc/vehicles/<name>/planStrategy`: Planstrategie (JSON)

i18n/en/docusaurus-plugin-content-docs/current/devices/plugins.mdx

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Additionally, plugins can also be used for the endpoints described in [Messaging
3737
- [Calc Plugin](#calc) - Meta-plugin for arithmetically linking outputs from other plugins.
3838
- [Combined Plugin](#combined) - Meta-plugin specifically for `charger` to combine the boolean status values for the connected (_plugged_) and charging (_charging_) state into a single charging status.
3939
- [Const Plugin](#const) - Special plugin that simply returns a constant value.
40+
- [Error Plugin](#error) - Special plugin that returns a known error value.
4041
- [Convert Plugin](#convert) - Meta-plugin for data type conversion when writing (e.g., float to int).
4142
- [Delta Plugin](#delta) - Meta-plugin for converting absolute values to delta/increment values when writing.
4243
- [Ignore Plugin](#ignore) - Meta-plugin for suppressing specific error messages.
@@ -95,6 +96,19 @@ Possible parameters for data extraction are:
9596
- `unpack`: Converts values from other number representations, e.g. `hex`.
9697
- `decode`: Decodes binary formats like `uint32`, `float32` etc.
9798

99+
##### Known Error Values {#known-errors}
100+
101+
[HTTP](#http), [MQTT](#mqtt), and [Websocket](#websocket) plugins can return special error strings.
102+
evcc recognises these and converts them into internal error codes instead of treating them as data.
103+
This is useful e.g. for custom vehicle integrations where the data source knows the vehicle's state.
104+
105+
- `ErrAsleep` — Vehicle is asleep. evcc may choose to wake up the vehicle and retry.
106+
- `ErrMustRetry` — Operation should be retried (e.g. due to rate limiting).
107+
- `ErrNotAvailable` — Value is not available. evcc treats this as a permanent error until the next restart.
108+
109+
If a plugin returns the string `ErrAsleep` as its response, evcc generates the corresponding internal error.
110+
The [Error Plugin](#error) uses the same mechanism to return a fixed error value as a constant.
111+
98112
#### Writing
99113

100114
When writing, parameters in the configuration can be replaced by placeholders.
@@ -780,6 +794,8 @@ The `websocket` plugin provides a WebSocket listener.
780794
It also includes the ability to read or parse JSON data structures via jq-like queries.
781795
This can be used, for example, to receive data from Volkszähler's push server.
782796

797+
For data extraction, the pipeline parameters described in [Reading](#reading) are available (`regex`, `jq`, `quote`, etc.).
798+
783799
**Reading Example**:
784800

785801
```yaml
@@ -871,6 +887,25 @@ source: const
871887
value: -16247
872888
```
873889

890+
### Error <Tag label="read" category="read" /> {#error}
891+
892+
The `error` plugin always returns a [known error value](#known-errors).
893+
It is useful to explicitly mark an unimplemented attribute as not available.
894+
895+
**Parameters**:
896+
897+
| Parameter | Type | Required | Description |
898+
| --------- | ------ | -------- | -------------------------------------------------------------- |
899+
| error | string | yes | Error value (`ErrAsleep`, `ErrMustRetry` or `ErrNotAvailable`) |
900+
901+
**Example**:
902+
903+
```yaml
904+
soc:
905+
source: error
906+
error: ErrNotAvailable
907+
```
908+
874909
### Convert <Tag label="write" category="write" /> {#convert}
875910

876911
The `convert` plugin converts data types when writing.

0 commit comments

Comments
 (0)