You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/reference/plugins.md
+29-24Lines changed: 29 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,15 +6,13 @@ import Tag from '@site/src/components/Tag';
6
6
7
7
# Plugins
8
8
9
-
Plugins können verwendet werden, um verschiedene Geräte und externe Datenquellen in evcc zu integrieren, für die es keine direkte Unterstützung gibt.
10
-
Sie können für die Gerätekategorien [`meter`](/docs/reference/configuration/meters#custom) (Strommessgeräte), [`charger`](/docs/reference/configuration/chargers#type) (Wallboxen) oder [`vehicle`](/docs/devices/vehicles#manuell) (Fahrzeuge) verwendet werden.
11
-
Plugins können auch für die in [Messaging](/docs/reference/configuration/messaging) beschriebenen Endpunkte zum Versenden von Lifecycle-Events genutzt werden.
12
-
13
-
Je nach Verwendung werden Plugins **lesend** oder **schreibend** eingesetzt.
9
+
Plugins können verwendet werden, um Geräte und externe Datenquellen in evcc zu integrieren, für die es keine direkte Unterstützung gibt.
10
+
Plugins können für die Kategorien [`meter`](/docs/reference/configuration/meters#custom) (Strommessgeräte), [`charger`](/docs/reference/configuration/chargers#type) (Wallboxen) oder [`vehicle`](/docs/devices/vehicles#manuell) (Fahrzeuge) verwendet werden.
11
+
Zusätzlich können Plugins auch für die in [Messaging](/docs/reference/configuration/messaging) beschriebenen Endpunkte zum Versenden von Lifecycle-Events genutzt werden.
14
12
15
13
## Übersicht
16
14
17
-
Folgende Plugins können verwendet werden, um externe Datenquellen einzubinden:
15
+
evcc bietet folgende Plugins an:
18
16
19
17
-[Modbus Plugin](#modbus) - Plugin zum Auslesen von einem Modbus-fähigen Gerät.
20
18
-[MQTT Plugin](#mqtt) - Plugin um indirekt über MQTT mit den MQTT-fähigen Geräten zu kommunizieren.
@@ -24,7 +22,7 @@ Folgende Plugins können verwendet werden, um externe Datenquellen einzubinden:
24
22
-[JavaScript Plugin](#javascript) - Plugin, das Werte in über ein JavaScript Skript bereitstellt oder entgegennimmt.
25
23
-[Shell Plugin](#shell) - Plugin, das ein Shell Skript ausführen kann, um Daten zu extrahieren oder schreibend entgegennimmt.
26
24
27
-
Neben diesen Plugins, die externe Daten integrieren, gibt es folgende Helfer-Plugins, die Daten direkt bereitstellen können. Diese können nur in einem lesenden Kontext genutzt werden:
25
+
Neben diesen Integrations-Plugins, gibt es noch Helfer-Plugins, die Zusatzfunktionen bereit stellt:
28
26
29
27
-[Const Plugin](#const) - Spezielles Plugin das einfach einen konstanten Wert zurückliefert.
30
28
-[Calc Plugin](#calc) - Meta-Plugin um Ausgaben von anderen Plugins arithmetisch zu verknüpfen.
@@ -35,7 +33,6 @@ Neben diesen Plugins, die externe Daten integrieren, gibt es folgende Helfer-Plu
35
33
Jedes Plugin besitzt ein individuelles Konfigurationsschema.
36
34
Dabei ist es wichtig zu wissen, ob das Plugin in einem **lesenden** oder **schreibenden** Kontext verwendet wird.
37
35
Einige Konfigurationsparameter machen nur in einem lesenden Kontext Sinn, andere nur, wenn sie im Schreibmodus genutzt werden.
38
-
Die meisten Konfigurationsparameter sind Plugin spezifisch, jedoch gibt es eine handvoll Parameter, die beim Lesen von einem Plugin bzw. beim Schreiben via eines Plugins generell genutzt werden können.
39
36
40
37
Beispielsweise kann über die folgende Konfiguration ein MQTT Plugin als `meter` eingebunden werden, bei dem der aktuelle Stromverbrauch über das spezifizierte MQTT Topic eingelesen wird:
41
38
@@ -48,12 +45,12 @@ meters:
48
45
topic: "home/current/imsys/chn2/raw"
49
46
```
50
47
51
-
Das Schema hat dabei immer folgende Struktur:
48
+
Das Schema der Plugin Konfiguration hat dabei immer folgende Struktur:
52
49
53
50
```yaml {3,5-6,8}
54
51
- name: <name>
55
52
type: custom
56
-
<span class="highlight"><attr1></span>:
53
+
<attr1>:
57
54
source: <plugin>
58
55
<p-attr1>: ...
59
56
<p-attr2>: ...
@@ -62,7 +59,7 @@ Das Schema hat dabei immer folgende Struktur:
62
59
....
63
60
```
64
61
65
-
Dabei stehen`<name>` für den Namen des Geräts, `<attr1>` und `<attr2>` für eine der unten beschriebenen Geräte-spezifischen Attribute, `<plugin>` für den Plugin-Typ und `<p-attr1>`, `<p-attr2>` für Plugin-spezifische Konfigurationen.
62
+
Dabei steht`<name>` für den Namen des Geräts, `<attr1>` und `<attr2>` für eine der unten beschriebenen Geräte-spezifischen Attribute, `<plugin>` für den Plugin-Typ und `<p-attr1>`, `<p-attr2>` für Plugin-spezifische Konfigurationen (z.b. `source`, `topic` für Plugins vom Typ `mqtt`)
66
63
67
64
#### Lesen
68
65
@@ -86,21 +83,28 @@ Je nach Gerät ([`meter`](#meter), [`charger`](#charger) oder [`vehicle`](#vehic
86
83
87
84
### Meter
88
85
89
-
Alle `meter` haben gemeinsam, dass sie Stromzähler sind, die den aktuellen Verbrauch messen.
90
-
Wie an [anderer Stelle](/devices/meters) beschrieben, können Zähler in verschiedenen Kontexten innerhalb der `site` Konfiguration verwendet werden: Als Netzzähler (`grid`), Zähler für die PV Produktion (`pv`), Hausbatteriezähler (`battery`). Zähler für die Ladeleistung der Wallbox (`charge`) oder Verbrauchszähler für intelligente Verbraucher (`aux`).
86
+
Stromzähler werden in der Konfigurationssektion [`meters`](/docs/reference/configuration/meters) konfiguriert.
87
+
Zähler, die unter `meters:` definiert werden, können an verschiedenen Stellen innerhalb der `site` Konfiguration verwendet werden:
88
+
89
+
* `grid`: Netzzähler
90
+
* `pv`: PV Zähler
91
+
* `battery`: Hausbatteriezähler
92
+
* `charge`: Zähler für die Ladeleistung der Wallbox
93
+
* `aux`: Verbrauchszähler für intelligente Verbraucher
94
+
95
+
`power`ist das einzig zwingend erfordeliche Attribut das in jeder `meter` Definition vorhanden sein muss, alle weiteren Attribute sind optional.
91
96
92
-
`power`ist das einzige erforderliche Attribut, alle weiteren Attribute sind optional.
93
-
Nicht alle Metertypen unterstützen alle Pluginattribute:
97
+
Jedoch unterstützen nicht alle Metertypen alle Pluginattribute:
94
98
95
99
* `limitsoc` und `batterymode` werden ausschliesslich für Batterierzähler genutzt (d.h. für `meter` die in `site.battery` referenziert werden).
96
-
* `currents`, `voltages` und `powers` sind Phasen Attribute, die mit jeweils genau drei Plugin Konfigurationen (in einem YAML Array) konfiguriert werden müssen.
100
+
* `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.
97
101
98
102
Die folgende Tabellen enthalten alle Attribute, die von Plugins bereitgestellt werden können, wenn sie für `meter` konfiguriert werden.
99
103
Bei der Verwendung der Plugins ist es auch wichtig, dass diese den richtigen Datentyp zurückliefern.
100
104
Um zu dem verlangten Datentypen zu konvertieren können die in [Lesen](#lesen) beschriebenen Pipelines genutzt werde.
@@ -270,7 +274,7 @@ Das Plugin bietet auch die Fähigkeit JSON Datenstrukturen über jq-ähnliche Ab
270
274
source: mqtt
271
275
topic: mbmd/sdm1-1/Power
272
276
timeout: 30s # don't accept values older than timeout
273
-
scale: 0.001 # floating point factor applied to result, e.g. for Wh to kWh conversion
277
+
scale: 0.001 # factor applied to result, e.g. for Wh to kWh conversion
274
278
```
275
279
276
280
Für den Schreibzugriff werden die Daten mit dem Attribut `payload` bereitgestellt. Falls dieser Parameter in der Konfiguration fehlt, wird der Wert im Standardformat geschrieben.
@@ -312,8 +316,9 @@ auth: # basic authentication
312
316
password: bar
313
317
insecure: false # set to true to trust self-signed certificates
314
318
jq: .data.tuples[0][1] # parse response json
315
-
scale: 0.001 # floating point factor applied to result, e.g. for kW to W conversion
316
-
timeout: 10s # timeout in golang duration format, see https://golang.org/pkg/time/#ParseDuration
319
+
scale: 0.001 # factor applied to result, e.g. for kW to W conversion
320
+
timeout: 10s # timeout in golang duration format,
321
+
# see https://golang.org/pkg/time/#ParseDuration
317
322
```
318
323
319
324
```yaml
@@ -344,7 +349,7 @@ Das `websocket` Plugin bietet einen Websocket Listener. Es beinhaltet auch die F
0 commit comments