diff --git a/docs/devices/plugins.mdx b/docs/devices/plugins.mdx index b5a8c69a4..fceb31e1e 100644 --- a/docs/devices/plugins.mdx +++ b/docs/devices/plugins.mdx @@ -2,7 +2,7 @@ sidebar_position: 6 --- -import Tag from '@site/src/components/Tag'; +import Tag from "@site/src/components/Tag"; # Plugins @@ -15,7 +15,6 @@ Plugins können für folgende Kategorien verwendet werden: - `tariff`: [Tarife, Vorhersagen](../tariffs) - `circuit`: [Lastmanagement](../features/loadmanagement) - Zusätzlich können Plugins auch für die in [Messaging](/docs/reference/configuration/messaging) beschriebenen Endpunkte zum Versenden von Lifecycle-Events genutzt werden. ## Übersicht @@ -35,6 +34,7 @@ Neben diesen Integrations-Plugins, gibt es noch Helfer-Plugins, die Zusatzfunkti - [Const Plugin](#const) - Spezielles Plugin das einfach einen konstanten Wert zurückliefert. - [Calc Plugin](#calc) - Meta-Plugin um Ausgaben von anderen Plugins arithmetisch zu verknüpfen. - [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. +- [Valid Plugin](#valid) - Meta-Plugin um Plugin-Werte basierend auf einer booleschen Validierung bereitzustellen. ### Syntax @@ -78,7 +78,7 @@ Mögliche Parameter für die Datenextraktion sind: - `regex`: Ein regulärer Ausdruck, um Werte aus dem empfangenen Text zu extrahieren. - `jq`: Ein [jq](https://jqlang.github.io/jq/)-Ausdruck, um Werte aus JSON-Strukturen zu extrahieren. -Die volle Syntax und Möglichkeiten finden sich in der jq-Dokumentation. + Die volle Syntax und Möglichkeiten finden sich in der jq-Dokumentation. - `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. - `unpack`: Konvertiert Werte aus anderen Zahlenrepräsentationen, z. B. `hex`. - `decode`: Dekodiert Binärformate wie `uint32`, `float32` etc. @@ -98,34 +98,34 @@ Je nach Gerät ([`meter`](#meter), [`charger`](#charger) oder [`vehicle`](#vehic Stromzähler werden in der Konfigurationssektion [`meters`](/docs/reference/configuration/meters) konfiguriert. Zähler, die unter `meters:` definiert werden, können an verschiedenen Stellen innerhalb der `site` Konfiguration verwendet werden: -* `grid`: Netzzähler -* `pv`: PV Zähler -* `battery`: Hausbatteriezähler -* `charge`: Zähler für die Ladeleistung der Wallbox -* `aux`: Verbrauchszähler für intelligente Verbraucher -* `ext`: weiterer Zähler, bspw. für Lastmanagement oder Datenerfassung +- `grid`: Netzzähler +- `pv`: PV Zähler +- `battery`: Hausbatteriezähler +- `charge`: Zähler für die Ladeleistung der Wallbox +- `aux`: Verbrauchszähler für intelligente Verbraucher +- `ext`: weiterer Zähler, bspw. für Lastmanagement oder Datenerfassung `power` ist das einzig zwingend erforderliche Attribut das in jeder `meter` Definition vorhanden sein muss, alle weiteren Attribute sind optional. Jedoch unterstützen nicht alle Metertypen alle Pluginattribute: -* `limitsoc` und `batterymode` werden ausschließlich für Batteriezähler genutzt (d.h. für `meter` die in `site.battery` referenziert werden). -* `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. +- `limitsoc` und `batterymode` werden ausschließlich für Batteriezähler genutzt (d.h. für `meter` die in `site.battery` referenziert werden). +- `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. Die folgenden Tabellen enthalten alle Attribute, die von Plugins bereitgestellt werden können, wenn sie für `meter` konfiguriert werden. Bei der Verwendung der Plugins ist es auch wichtig, dass diese den richtigen Datentyp zurückliefern. Um zu dem verlangten Datentypen zu konvertieren, können die in [Lesen](#lesen) beschriebenen Pipelines genutzt werden. -| Attribut | Typ | Erfordert | Kontext | Beschreibung | -|-----------|---------------------|-----------|----------------|---------------------------| -| power | float | ja | alle | Aktuelle Leistung in W | -| energy | float | nein | alle | Zählerstand in kWh | -| maxpower | int | nein | `pv` (hybrid) | Maximale AC-Leistung in W | -| soc | int | nein | `battery` | Ladestand in % | -| capacity | float | nein | `battery` | Kapazität in kWh | -| powers | [float,float,float] | nein | alle | Phasenleistungen in W | -| currents | [float,float,float] | nein | alle | Phasenströme in A | -| voltages | [float,float,float] | nein | alle | Phasenspannungen in V | +| Attribut | Typ | Erfordert | Kontext | Beschreibung | +| -------- | ------------------- | --------- | ------------- | ------------------------- | +| power | float | ja | alle | Aktuelle Leistung in W | +| energy | float | nein | alle | Zählerstand in kWh | +| maxpower | int | nein | `pv` (hybrid) | Maximale AC-Leistung in W | +| soc | int | nein | `battery` | Ladestand in % | +| capacity | float | nein | `battery` | Kapazität in kWh | +| powers | [float,float,float] | nein | alle | Phasenleistungen in W | +| currents | [float,float,float] | nein | alle | Phasenströme in A | +| voltages | [float,float,float] | nein | alle | Phasenspannungen in V | **Beispiel** @@ -149,30 +149,30 @@ site: Neben den Attributen, die Plugins zur lesenden Auswertung bereitstellen, werden folgende Attribute von evcc genutzt, um Aktionen zu triggern: -| Attribut | Typ | Erfordert | Kontext | Beschreibung | -|--------------|-----|-----------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| -| 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. | -| batterymode | int | nein | `battery` | Setze Lademodus direkt (1: normal, 2: hold, 3: charge) | +| Attribut | Typ | Erfordert | Kontext | Beschreibung | +| ----------- | --- | --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| 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. | +| batterymode | int | nein | `battery` | Setze Lademodus direkt (1: normal, 2: hold, 3: charge) | ### Charger Wallboxen und Ladegeräte haben folgende Attribute die ausgelesen werden können: -| Attribut | Typ | Erfordert | Beschreibung | -|-------------|---------------------|-----------|-------------------------------------| -| status | string | ja | Status (A..F) | -| enabled | bool | ja | Ist Ladung freigegeben? | -| power | float | nein | Ladeleistung in W | -| energy | float | nein | Zählerstand in kWh | -| identify | string | nein | Aktuelle RFID-Kennung | -| soc | int | nein | Ladestand in % | -| phases | int | nein | Anzahl der physischen Phasen (1..3) | -| powers | [float,float,float] | nein | Phasenleistungen in W | -| currents | [float,float,float] | nein | Phasenströme in A | -| voltages | [float,float,float] | nein | Phasenspannungen in V | -| temp | float | nein | Aktuelle Temperatur in °C (Heizung) | -| templimit | int | nein | Temperaturlimit in °C (Heizung) | -| getmode | int | nein | SG-Ready Modus (Wärmepumpe) | +| Attribut | Typ | Erfordert | Beschreibung | +| --------- | ------------------- | --------- | ----------------------------------- | +| status | string | ja | Status (A..F) | +| enabled | bool | ja | Ist Ladung freigegeben? | +| power | float | nein | Ladeleistung in W | +| energy | float | nein | Zählerstand in kWh | +| identify | string | nein | Aktuelle RFID-Kennung | +| soc | int | nein | Ladestand in % | +| phases | int | nein | Anzahl der physischen Phasen (1..3) | +| powers | [float,float,float] | nein | Phasenleistungen in W | +| currents | [float,float,float] | nein | Phasenströme in A | +| voltages | [float,float,float] | nein | Phasenspannungen in V | +| temp | float | nein | Aktuelle Temperatur in °C (Heizung) | +| templimit | int | nein | Temperaturlimit in °C (Heizung) | +| getmode | int | nein | SG-Ready Modus (Wärmepumpe) | **Beispiel** @@ -195,15 +195,14 @@ chargers: Neben den read-only Werten können über Plugins auch Aktionen getriggert oder Konfigurationswerte gesetzt werden: -| Attribut | Typ | Erfordert | Beschreibung | -| --------------- | ----- | --------- | ----------------------------------------------------- | -| enable | bool | ja | Ladung freigeben / sperren | -| maxcurrent | int | ja | Setze maximalen Ladestrom in A | -| maxcurrentmilis | float | nein | Setze maximalen Ladestrom in A | -| phases1p3p | int | nein | Phasenumschaltung durchführen (erfordert `tos: true`) | -| wakeup | bool | nein | Wecke Fahrzeug auf | -| setmode | int | nein | Ändere SG-Ready Modus (1: reduced, 2: normal, 3: boost) | - +| Attribut | Typ | Erfordert | Beschreibung | +| --------------- | ----- | --------- | ------------------------------------------------------- | +| enable | bool | ja | Ladung freigeben / sperren | +| maxcurrent | int | ja | Setze maximalen Ladestrom in A | +| maxcurrentmilis | float | nein | Setze maximalen Ladestrom in A | +| phases1p3p | int | nein | Phasenumschaltung durchführen (erfordert `tos: true`) | +| wakeup | bool | nein | Wecke Fahrzeug auf | +| setmode | int | nein | Ändere SG-Ready Modus (1: reduced, 2: normal, 3: boost) | **Beispiel** @@ -224,22 +223,22 @@ chargers: Fahrzeugparameter können ebenfalls über Plugins ausgelesen werden. -| Attribut | Typ | Erfordert | Beschreibung | -|---------------|---------|-----------|---------------------------------| -| soc | int | ja | Ladestand in % | -| limitsoc | int | nein | Ladelimit in % | -| status | string | nein | Status (A..F) | -| range | int | nein | Reichweite in km | -| odometer | int | nein | Kilometerstand in km | -| climater | bool | nein | Klimatisierung aktiv? | -| getmaxcurrent | float | nein | Maximaler Ladestrom in A | -| finishtime | string | nein | Geplantes Ladeende (RFC3339) | +| Attribut | Typ | Erfordert | Beschreibung | +| ------------- | ------ | --------- | ---------------------------- | +| soc | int | ja | Ladestand in % | +| limitsoc | int | nein | Ladelimit in % | +| status | string | nein | Status (A..F) | +| range | int | nein | Reichweite in km | +| odometer | int | nein | Kilometerstand in km | +| climater | bool | nein | Klimatisierung aktiv? | +| getmaxcurrent | float | nein | Maximaler Ladestrom in A | +| finishtime | string | nein | Geplantes Ladeende (RFC3339) | **Beispiel** Im folgenden Beispiel wird die aktuelle Reichweite des Fahrzeugs aus MQTT Nachrichten gelesen: -``` yaml +```yaml vehicles: - name: Mazda type: custom @@ -250,17 +249,17 @@ vehicles: Zusätzlich können spezielle Kommandos über Plugins an das Fahrzeug geschickt werden: -| Attribut | Typ | Erfordert | Beschreibung | -|--------------|------|-----------|----------------------------------| -| wakeup | bool | nein | Fahrzeug aufwecken | -| chargeenable | bool | nein | Starte/stoppe den Ladevorgang | -| maxcurrent | int | nein | Setze maximalen Ladestrom in A | +| Attribut | Typ | Erfordert | Beschreibung | +| ------------ | ---- | --------- | ------------------------------ | +| wakeup | bool | nein | Fahrzeug aufwecken | +| chargeenable | bool | nein | Starte/stoppe den Ladevorgang | +| maxcurrent | int | nein | Setze maximalen Ladestrom in A | **Beispiel** Um ein Auto über einen HTTP Ping aufzuwecken, um weiter Abfragen zu senden, kann wie im folgenden Beispiel das HTTP-Plugin genutzt werden: -``` yaml +```yaml vehicles: - name: model-y type: custom @@ -357,7 +356,7 @@ auth: # basic authentication insecure: false # set to true to trust self-signed certificates jq: .data.tuples[0][1] # parse response json scale: 0.001 # factor applied to result, e.g. for kW to W conversion -cache: 60s # response cache duration +cache: 60s # response cache duration timeout: 10s # timeout in golang duration format, # see https://golang.org/pkg/time/#ParseDuration ``` @@ -537,3 +536,26 @@ charging: source: mqtt topic: openWB/lp/1/boolChargeStat ``` + +### Valid {#valid} + +Das `valid` Plugin ermöglicht es, Plugin-Werte basierend auf einer booleschen Validierung bereitzustellen. +Es trennt die Gültigkeit eines Werts von dessen eigenem Inhalt. +Wenn die Validierung `false` zurückgibt, wird der Wert als nicht verfügbar betrachtet. + +Dies ist besonders nützlich für Integrationen wie ioBroker, die Gültigkeit und Wert getrennt bereitstellen. + +**Beispiel Lesen**: + +```yaml +source: valid +valid: + source: mqtt + topic: iobroker/wallbox/power/valid +value: + source: mqtt + topic: iobroker/wallbox/power/value +``` + +In diesem Beispiel wird der Wert nur verwendet, wenn das `valid` Topic `true` zurückgibt. +Wenn es `false` zurückgibt, wird der Wert als nicht verfügbar markiert. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devices/plugins.mdx b/i18n/en/docusaurus-plugin-content-docs/current/devices/plugins.mdx index 8780e1fac..cde7a3758 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/devices/plugins.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/devices/plugins.mdx @@ -2,7 +2,7 @@ sidebar_position: 6 --- -import Tag from '../../../../../src/components/Tag'; +import Tag from "../../../../../src/components/Tag"; # Plugins @@ -15,7 +15,6 @@ Plugins can be used for the following categories: - `tariff`: [Tariffs, forecasts](../tariffs) - `circuit`: [Load management](../features/loadmanagement) - Additionally, plugins can also be used for the endpoints described in [Messaging](/docs/reference/configuration/messaging) for sending lifecycle events. ## Overview @@ -35,6 +34,7 @@ In addition to these integration plugins, there are also helper plugins that pro - [Const Plugin](#const) - Special plugin that simply returns a constant value. - [Calc Plugin](#calc) - Meta-plugin for arithmetically linking outputs from other plugins. - [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. +- [Valid Plugin](#valid) - Meta-plugin for providing plugin values based on boolean validation. ### Syntax @@ -78,7 +78,7 @@ Possible parameters for data extraction are: - `regex`: A regular expression to extract values from the received text. - `jq`: A [jq](https://jqlang.github.io/jq/)-expression to extract values from JSON structures. -The full syntax and possibilities can be found in the jq documentation. + The full syntax and possibilities can be found in the jq documentation. - `quote`: Boolean value that wraps the input data in quotes before passing it to jq. This allows jq to process unquoted strings (e.g. from MQTT). For an MQTT value like `Charging`, you can use `quote: true` and `jq: '. == "Charging"'`. - `unpack`: Converts values from other number representations, e.g. `hex`. - `decode`: Decodes binary formats like `uint32`, `float32` etc. @@ -98,34 +98,34 @@ Depending on the device ([`meter`](#meter), [`charger`](#charger) or [`vehicle`] Power meters are configured in the configuration section [`meters`](/docs/reference/configuration/meters). Meters defined under `meters:` can be used at various places within the `site` configuration: -* `grid`: Grid meter -* `pv`: PV meter -* `battery`: Home battery meter -* `charge`: Meter for the charging power of the wallbox -* `aux`: Consumption meter for intelligent consumers -* `ext`: Additional meter, e.g. for load management or data collection +- `grid`: Grid meter +- `pv`: PV meter +- `battery`: Home battery meter +- `charge`: Meter for the charging power of the wallbox +- `aux`: Consumption meter for intelligent consumers +- `ext`: Additional meter, e.g. for load management or data collection `power` is the only mandatory attribute that must be present in every `meter` definition, all other attributes are optional. However, not all meter types support all plugin attributes: -* `limitsoc` and `batterymode` are used exclusively for battery meters (i.e. for `meter` referenced in `site.battery`). -* `currents`, `voltages` and `powers` are phase attributes that must be configured with exactly three plugin configurations each (in a YAML array) and can be used for grid meters (`grid`) and wallboxes (`charge`). +- `limitsoc` and `batterymode` are used exclusively for battery meters (i.e. for `meter` referenced in `site.battery`). +- `currents`, `voltages` and `powers` are phase attributes that must be configured with exactly three plugin configurations each (in a YAML array) and can be used for grid meters (`grid`) and wallboxes (`charge`). The following tables contain all attributes that can be provided by plugins when configured for `meter`. When using the plugins, it's also important that they return the correct data type. To convert to the required data type, the pipelines described in [Reading](#reading) can be used. -| Attribute | Type | Required | Context | Description | -|-----------|---------------------|----------|---------------|--------------------------| -| power | float | yes | all | Current power in W | -| energy | float | no | all | Meter reading in kWh | -| maxpower | int | no | `pv` (hybrid) | Maximum AC power in W | -| soc | int | no | `battery` | State of charge in % | -| capacity | float | no | `battery` | Capacity in kWh | -| powers | [float,float,float] | no | all | Phase powers in W | -| currents | [float,float,float] | no | all | Phase currents in A | -| voltages | [float,float,float] | no | all | Phase voltages in V | +| Attribute | Type | Required | Context | Description | +| --------- | ------------------- | -------- | ------------- | --------------------- | +| power | float | yes | all | Current power in W | +| energy | float | no | all | Meter reading in kWh | +| maxpower | int | no | `pv` (hybrid) | Maximum AC power in W | +| soc | int | no | `battery` | State of charge in % | +| capacity | float | no | `battery` | Capacity in kWh | +| powers | [float,float,float] | no | all | Phase powers in W | +| currents | [float,float,float] | no | all | Phase currents in A | +| voltages | [float,float,float] | no | all | Phase voltages in V | **Example** @@ -149,30 +149,30 @@ site: In addition to the attributes that plugins provide for reading evaluation, the following attributes are used by evcc to trigger actions: -| Attribute | Type | Required | Context | Description | -|--------------|------|-----------|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------| -| limitsoc | int | no | `battery` | Set charging target for battery in %. The charging target is calculated from the configured `MinSoc`, `MaxSoc` and the current state of charge (attribute `soc`). | -| batterymode | int | no | `battery` | Set charging mode directly (1: normal, 2: hold, 3: charge) | +| Attribute | Type | Required | Context | Description | +| ----------- | ---- | -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| limitsoc | int | no | `battery` | Set charging target for battery in %. The charging target is calculated from the configured `MinSoc`, `MaxSoc` and the current state of charge (attribute `soc`). | +| batterymode | int | no | `battery` | Set charging mode directly (1: normal, 2: hold, 3: charge) | ### Charger Wallboxes and chargers have the following attributes that can be read: -| Attribute | Type | Required | Description | -|-------------|---------------------|----------|------------------------------------| -| status | string | yes | Status (A..F) | -| enabled | bool | yes | Is charging enabled? | -| power | float | no | Charging power in W | -| energy | float | no | Meter reading in kWh | -| identify | string | no | Current RFID identifier | -| soc | int | no | State of charge in % | -| phases | int | no | Number of physical phases (1..3) | -| powers | [float,float,float] | no | Phase powers in W | -| currents | [float,float,float] | no | Phase currents in A | -| voltages | [float,float,float] | no | Phase voltages in V | -| temp | float | no | Current temperature in °C (heating)| -| templimit | int | no | Temperature limit in °C (heating) | -| getmode | int | no | SG-Ready mode (heat pump) | +| Attribute | Type | Required | Description | +| --------- | ------------------- | -------- | ----------------------------------- | +| status | string | yes | Status (A..F) | +| enabled | bool | yes | Is charging enabled? | +| power | float | no | Charging power in W | +| energy | float | no | Meter reading in kWh | +| identify | string | no | Current RFID identifier | +| soc | int | no | State of charge in % | +| phases | int | no | Number of physical phases (1..3) | +| powers | [float,float,float] | no | Phase powers in W | +| currents | [float,float,float] | no | Phase currents in A | +| voltages | [float,float,float] | no | Phase voltages in V | +| temp | float | no | Current temperature in °C (heating) | +| templimit | int | no | Temperature limit in °C (heating) | +| getmode | int | no | SG-Ready mode (heat pump) | **Example** @@ -195,15 +195,14 @@ chargers: In addition to read-only values, actions can also be triggered or configuration values set via plugins: -| Attribute | Type | Required | Description | -|-----------------|-------|----------|-----------------------------------------------------| -| enable | bool | yes | Enable / disable charging | -| maxcurrent | int | yes | Set maximum charging current in A | -| maxcurrentmilis | float | no | Set maximum charging current in A | -| phases1p3p | int | no | Perform phase switching (requires `tos: true`) | -| wakeup | bool | no | Wake up vehicle | -| setmode | int | no | Change SG-Ready mode (1: reduced, 2: normal, 3: boost)| - +| Attribute | Type | Required | Description | +| --------------- | ----- | -------- | ------------------------------------------------------ | +| enable | bool | yes | Enable / disable charging | +| maxcurrent | int | yes | Set maximum charging current in A | +| maxcurrentmilis | float | no | Set maximum charging current in A | +| phases1p3p | int | no | Perform phase switching (requires `tos: true`) | +| wakeup | bool | no | Wake up vehicle | +| setmode | int | no | Change SG-Ready mode (1: reduced, 2: normal, 3: boost) | **Example** @@ -224,22 +223,22 @@ chargers: Vehicle parameters can also be read via plugins. -| Attribute | Type | Required | Description | -|---------------|--------|----------|-------------------------------| -| soc | int | yes | State of charge in % | -| limitsoc | int | no | Charge limit in % | -| status | string | no | Status (A..F) | -| range | int | no | Range in km | -| odometer | int | no | Odometer reading in km | -| climater | bool | no | Climate control active? | -| getmaxcurrent | float | no | Maximum charging current in A | -| finishtime | string | no | Planned charging end (RFC3339)| +| Attribute | Type | Required | Description | +| ------------- | ------ | -------- | ------------------------------ | +| soc | int | yes | State of charge in % | +| limitsoc | int | no | Charge limit in % | +| status | string | no | Status (A..F) | +| range | int | no | Range in km | +| odometer | int | no | Odometer reading in km | +| climater | bool | no | Climate control active? | +| getmaxcurrent | float | no | Maximum charging current in A | +| finishtime | string | no | Planned charging end (RFC3339) | **Example** In the following example, the current range of the vehicle is read from MQTT messages: -``` yaml +```yaml vehicles: - name: Mazda type: custom @@ -250,17 +249,17 @@ vehicles: Additionally, special commands can be sent to the vehicle via plugins: -| Attribute | Type | Required | Description | -|--------------|------|----------|--------------------------------| -| wakeup | bool | no | Wake up vehicle | -| chargeenable | bool | no | Start/stop charging process | +| Attribute | Type | Required | Description | +| ------------ | ---- | -------- | --------------------------------- | +| wakeup | bool | no | Wake up vehicle | +| chargeenable | bool | no | Start/stop charging process | | maxcurrent | int | no | Set maximum charging current in A | **Example** To wake up a car via an HTTP ping to send further queries, the HTTP plugin can be used as in the following example: -``` yaml +```yaml vehicles: - name: model-y type: custom @@ -357,7 +356,7 @@ auth: # basic authentication insecure: false # set to true to trust self-signed certificates jq: .data.tuples[0][1] # parse response json scale: 0.001 # factor applied to result, e.g. for kW to W conversion -cache: 60s # response cache duration +cache: 60s # response cache duration timeout: 10s # timeout in golang duration format, # see https://golang.org/pkg/time/#ParseDuration ``` @@ -537,3 +536,26 @@ charging: source: mqtt topic: openWB/lp/1/boolChargeStat ``` + +### Valid {#valid} + +The `valid` plugin allows providing plugin values based on boolean validation. +It separates the validity of a value from its actual content. +If the validation returns `false`, the value is considered unavailable. + +This is particularly useful for integrations like ioBroker that provide validity and value separately. + +**Reading Example**: + +```yaml +source: valid +valid: + source: mqtt + topic: iobroker/wallbox/power/valid +value: + source: mqtt + topic: iobroker/wallbox/power/value +``` + +In this example, the value is only used when the `valid` topic returns `true`. +If it returns `false`, the value is marked as unavailable.