Skip to content

Commit 5bd097f

Browse files
committed
added labels for read and write
1 parent 4acfddd commit 5bd097f

File tree

2 files changed

+47
-18
lines changed

2 files changed

+47
-18
lines changed

docs/reference/plugins.md

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
sidebar_position: 3
33
---
4+
import Tag from '@site/src/components/Tag';
45

56
# Plugins
67

@@ -14,13 +15,13 @@ Je nach Verwendung werden Plugins **lesend** oder **schreibend** eingesetzt.
1415

1516
Folgende Plugins können verwendet werden, um externe Datenquellen einzubinden:
1617

17-
- [Modbus Plugin](#modbus) - Plugin zum Auslesen von einem Modbus-fähigen Gerät (lesen/schreiben).
18-
- [MQTT Plugin](#mqtt) - Plugin um indirekt über MQTT mit den MQTT-fähigen Geräten zu kommunizieren (lesen/schreiben).
19-
- [HTTP Plugin](#http) - Plugin, das über HTTP-API mit Endgeräten spricht (lesen/schreiben).
20-
- [Websocket Plugin](#websocket) - Plugin zum Empfangen von Gerätedaten über einen eigenen Webserver. Kann nur zum Lesen von Daten genutzt werden (lesen).
21-
- [SMA/Speedwire Plugin](#speedwire) - Plugin speziell für SMA Geräte, die mit dem Speedwire Protokoll kommunizieren können (lesen).
22-
- [JavaScript Plugin](#javascript) - Plugin, das Werte in über ein JavaScript Skript bereitstellt oder entgegennimmt (lesen/schreiben).
23-
- [Shell Plugin](#shell) - Plugin, das ein Shell Skript ausführen kann, um Daten zu extrahieren oder schreibend entgegennimmt (lesen/schreiben).
18+
- [Modbus Plugin](#modbus) - Plugin zum Auslesen von einem Modbus-fähigen Gerät.
19+
- [MQTT Plugin](#mqtt) - Plugin um indirekt über MQTT mit den MQTT-fähigen Geräten zu kommunizieren.
20+
- [HTTP Plugin](#http) - Plugin, das über HTTP-API mit Endgeräten spricht.
21+
- [Websocket Plugin](#websocket) - Plugin zum Empfangen von Gerätedaten über einen eigenen Webserver. Kann nur zum Lesen von Daten genutzt werden.
22+
- [SMA/Speedwire Plugin](#speedwire) - Plugin speziell für SMA Geräte, die mit dem Speedwire Protokoll kommunizieren können.
23+
- [JavaScript Plugin](#javascript) - Plugin, das Werte in über ein JavaScript Skript bereitstellt oder entgegennimmt.
24+
- [Shell Plugin](#shell) - Plugin, das ein Shell Skript ausführen kann, um Daten zu extrahieren oder schreibend entgegennimmt.
2425

2526
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:
2627

@@ -80,7 +81,7 @@ Wenn Format nicht angegeben wird, werden die Daten im Standard %v Go-Format bere
8081
Die Variablen werden mit dem entsprechenden Wert ersetzt, bevor das Plugin ausgeführt wird.
8182
Zusätzlich können sämtliche Funktionen der Go Template Library verwendet werden, um komplexere Datentransformationen durchzuführen.
8283

83-
Je nach Gerät ([`meter`](#meter), [`charger`](#charger) oder [`vehicle`](#vehicle)) können andere Attribute mit Plugins gelesen oder gesetzt werden.
84+
Je nach Gerät ([`meter`](#meter), [`charger`](#charger) oder [`vehicle`](#vehicle)) können andere Attribute mit Plugins gelesen oder gesetzt werden.
8485

8586
### Meter
8687

@@ -174,15 +175,16 @@ Zusätzlich können spezielle Kommandos über Plugins an das Fahrzeug geschickt
174175

175176
Folgende Plugins stehen zur Verfügung und können für die oben beschriebenen Attribute konfiguriert werden, um eine flexible Anbindung an die verschiedenen Systeme zu ermöglichen.
176177

177-
### Modbus
178+
### Modbus <Tag label="lesen" category="read" /> <Tag label="schreiben" category="write" />
179+
178180

179181
Das `modbus` Plugin kann Daten von jedem Modbus-fähigen Gerät oder SunSpec-kompatiblen Wechselrichter lesen.
180182
Viele Strommessgeräte sind bereits vorkonfiguriert (siehe [MBMD Supported Devices](https://github.com/volkszaehler/mbmd#supported-devices)).
181183
Es ist ebenfalls möglich Modbus Register zu Schreiben um weitere Wallboxen zu integrieren.
182184

183185
Schaue in die [Modbus Dokumentation](modbus) für weitere Details.
184186

185-
### MQTT
187+
### MQTT <Tag label="lesen" category="read" /> <Tag label="schreiben" category="write" />
186188

187189
Das `mqtt` Plugin ermöglicht das Lesen von Werten über MQTT Topics.
188190
Das ist insbesondere für Strommessgeräte nützlich, z.B. wenn diese ihre Daten bereits über MQTT bereitstellen.
@@ -208,7 +210,7 @@ topic: mbmd/charger/maxcurrent
208210
payload: ${var:%d}
209211
```
210212

211-
### HTTP
213+
### HTTP <Tag label="lesen" category="read" /> <Tag label="schreiben" category="write" />
212214

213215
Das `http` Plugin führt HTTP Aufrufe durch, um Daten zu lesen oder zu aktualisieren. Es beinhaltet auch die Fähigkeit JSON-Datenstrukturen über jq-Abfragen (z. B. für REST-APIs) zu lesen oder einfache Transformationen durchzuführen. Der volle Funktionsumfang ist in der [offiziellen jq Dokumentation](https://jqlang.github.io/jq/manual/) zu finden.
214216

@@ -259,7 +261,7 @@ enable:
259261
uri: "http://charger/relay/0?turn={{if .enable}}on{{else}}off{{end}}"
260262
```
261263

262-
### Websocket
264+
### Websocket <Tag label="lesen" category="read" />
263265

264266
Das `websocket` Plugin bietet einen Websocket Listener. Es beinhaltet auch die Fähigkeit JSON-Datenstrukturen über jq-ähnliche Abfragen zu lesen oder zu parsen. Dies kann z.B. verwendet werden, um Daten von Volkszählers Push Server zu empfangen.
265267

@@ -273,7 +275,8 @@ scale: 0.001 # floating point factor applied to result, e.g. for Wh to kWh conve
273275
timeout: 30s # error if no update received in 30 seconds
274276
```
275277

276-
### SMA/Speedwire {#speedwire}
278+
### SMA/Speedwire {#speedwire} <Tag label="lesen" category="read" />
279+
277280

278281
Das `sma` Plugin bietet eine Schnittstelle zu SMA Geräten, welche das Speedwire Protokoll beherrschen.
279282

@@ -293,7 +296,7 @@ Unterstützte Werte für `value` können in der Diagnoseausgabe über das Komman
293296

294297
Alle möglichen Werte können als Konstanten [hier](https://gitlab.com/bboehmke/sunny/-/blob/master/values.go#L24) gefunden werden (verwende den Namen der Konstante für `value`).
295298

296-
### JavaScript
299+
### JavaScript <Tag label="lesen" category="read" /> <Tag label="schreiben" category="write" />
297300

298301
evcc integriert einen JavaScript Interpreter mit der [Underscore.js](https://underscorejs.org) Bibliothek, welche direkt über `_.` zugreifbar ist, z.B. `_.random(0,5)`. Das `js` Plugin kann JavaScript code über den `script` Parameter ausführen. Sehr hilfreich für das schnelle Erstellen von Prototypen:
299302

@@ -319,7 +322,7 @@ charger:
319322
console.log(maxcurrent);
320323
```
321324

322-
### Shell Script {#shell}
325+
### Shell Script {#shell} <Tag label="lesen" category="read" /> <Tag label="schreiben" category="write" />
323326

324327
Das `script` Plugin führt externe Skripte zum Lesen oder Aktualisieren von Daten aus. Das Plugin ist hilfreich um jede Art von externer Funktionalität einzubinden.
325328

@@ -339,7 +342,7 @@ cmd: /home/user/my-script.sh ${enable:%b} # format boolean enable as 0/1
339342
timeout: 5s
340343
```
341344

342-
### Const
345+
### Const <Tag label="lesen" category="read" />
343346

344347
Das `const` Plugin gibt einen konstanten Wert zurück.
345348
Es eignet sich z.B. um in Verbindung mit dem `calc` Plugin feste Korrekturwerte (Offset) auf einen variablen Wert anzuwenden oder auch zur Simulation von Mess- und Statuswerten zu Testzwecken.
@@ -351,7 +354,7 @@ source: const
351354
value: -16247
352355
```
353356

354-
### Calc
357+
### Calc <Tag label="lesen" category="read" />
355358

356359
Das `calc` Plugin erlaubt es mehrere Einzelwerte mathematisch weiterzuverarbeiten:
357360

@@ -396,7 +399,7 @@ Das `calc` Plugin ist hilfreich um z.B.
396399
Konstante Hilfswerte (z. B. für Offsets) lassen sich mithilfe des `const` Plugins als Operand erzeugen.
397400
:::
398401

399-
### Combined
402+
### Combined <Tag label="lesen" category="read" />
400403

401404
Das `combined` Status Plugin wird verwendet um gemischte Boolean Status Werte von `Plugged` (angeschlossen) / `Charging` (Laden) in einen evcc-kompatiblen Ladestatus von A..F zu konvertieren.
402405
Es wird z.b. zusammen mit einer OpenWB MQTT Integration verwendet.

src/components/Tag.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import React from 'react';
2+
3+
// Predefined color mappings
4+
const colorMap = {
5+
"read": { bgColor: "#2196f3", textColor: "#ffffff" },
6+
"write": { bgColor: "#ff9800", textColor: "#ffffff" },
7+
"default": { bgColor: "#4ea72a", textColor: "#ffffff" }
8+
};
9+
10+
export default function Tag({ label, category }) {
11+
const { bgColor, textColor } = colorMap[category] || colorMap["default"];
12+
13+
const style = {
14+
backgroundColor: bgColor,
15+
color: textColor,
16+
padding: '0px 10px',
17+
borderRadius: '10px',
18+
display: 'inline-block',
19+
marginLeft: '2px',
20+
verticalAlign: 'middle',
21+
fontSize: '0.75rem',
22+
fontWeight: 'bold',
23+
};
24+
25+
return <span style={style}>{label}</span>;
26+
}

0 commit comments

Comments
 (0)