From 9f7b16a271d1129ca49456355ac7224bdde5a488 Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Tue, 10 Dec 2024 06:33:17 +0100 Subject: [PATCH] Dedicated Smart Switches page (#686) --- docs/devices/chargers.mdx | 267 --------------- .../chargers/_schaltbare_steckdosen.mdx | 45 --- docs/devices/meters.mdx | 2 +- docs/devices/smartswitches.mdx | 318 +++++++++++++++++ .../current/devices/chargers.mdx | 261 -------------- .../devices/chargers/_switchable_sockets.mdx | 39 --- .../current/devices/meters.mdx | 2 +- .../current/devices/smartswitches.mdx | 320 ++++++++++++++++++ src/generateFromTemplate.js | 43 ++- 9 files changed, 675 insertions(+), 622 deletions(-) delete mode 100644 docs/devices/chargers/_schaltbare_steckdosen.mdx create mode 100644 docs/devices/smartswitches.mdx delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devices/chargers/_switchable_sockets.mdx create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/devices/smartswitches.mdx diff --git a/docs/devices/chargers.mdx b/docs/devices/chargers.mdx index 36cb94a76f..29c0dc99ff 100644 --- a/docs/devices/chargers.mdx +++ b/docs/devices/chargers.mdx @@ -3905,270 +3905,3 @@ Die konkrete Konfiguration und der tatsächliche nutzbare Funktionsumfang hänge - - -## Schaltbare Steckdosen - -Die von evcc unterstützten schaltbaren Steckdosen und SmartHome Schalter, können in zwei Modi betrieben werden: - -- Charger Modus (Standard) -- Static-Switch Modus - -Der _Charger Modus_ erlaubt die Nutzung der schaltbaren Steckdose als Ladesteuerung von Akku betriebenen Geräten (E-Motorrad, E-Bikes ...). -Dabei wird der Ladestrom gemessen und von evcc angezeigt, sowie beim Erreichen des Erhaltungsladungsstroms ( < `standbypower`) des Akkus der Status geladen ausgegeben. - -Demgegenüber dient der _Static-Switch_ Modus zum einfachen Schalten von Verbrauchern, wie Wärmepumpen, Klimaanlagen etc. -Der von der Steckdose gelieferte Status hängt dabei direkt vom Schaltzustand der Steckdose ab (An=Lade, Aus=Geladen). - -:::note -Um im _Static-Switch_ Modus eine aussagefähige Leistungsinformation anzuzeigen, empfiehlt es sich ein separates Custom-Meter zu definieren. -::: - -Bei allen schaltbaren Steckdosen wird der Modus über den Parameter `standbypower` eingestellt. - -Ist der Wert größer oder gleich 0, ist der _Charger Modus_ aktiviert. Der eingestellte Wert dient als Schwellwert in Watt. -Solange die durch die Steckdose gemessene Leistung sich über diesem Schellwert befindet, wird der Ladevorgang gemeldet, -fällt die Leistung unter diesen Schwellwert, ist der Erhaltungsladebereich bei vollem Akku erreicht und es wird der Ladevorgang als abgeschlossen gemeldet. - -Setzt man `standbypower` auf einen negativen Wert, arbeitet die schaltbare Steckdose im _Static-Switch_ Modus. - -:::note -Da bei schaltbaren Steckdosen nicht erkannt werden kann, ob ein Verbraucher "angesteckt" ist oder nicht, zeigen sie immer den Status "verbunden" an. Durch Einstellen des Lademodus "Aus" wechselt der Status auf "nicht verbunden". Dadurch wird dann auch die Ladesession beendet. -::: - -:::info -Der Ladepunkt-Parameter `phases` **muss** bei Nutzung einer schaltbaren Steckdose zwingend auf **1** gesetzt werden, um eine ordnungsgemäße Lade-Steuerung zu gewährleisten. -Beispiel: - -```yaml -# loadpoint describes the charger, charge meter and connected vehicle -loadpoints: - - title: Shelly # display name for UI - charger: my_charger # charger - vehicle: audi - mode: pv ---- -mincurrent: 9 # 9A*220V=1980W minimum charge current (default 6A) -maxcurrent: 10 # 10A*220V=2200W maximum charge current (default 16A) -phases: 1 # ev phases (default 3) -``` - -::: - -### AVM FritzDECT - - - - - - - - - -### Homematic IP - - - - - - - - - -### HomeWizard - - - - - - - - - -### myStrom Switch - - - - - - - - - -### Shelly - - - - - - - - - -### Tasmota einphasig - - - - - - - - - -### TP-Link - -#### H-Series Smart Plug - - - - - - - - - -#### Tapo P-Series Smart Plug - - - - - - - diff --git a/docs/devices/chargers/_schaltbare_steckdosen.mdx b/docs/devices/chargers/_schaltbare_steckdosen.mdx deleted file mode 100644 index 7faabaa1b2..0000000000 --- a/docs/devices/chargers/_schaltbare_steckdosen.mdx +++ /dev/null @@ -1,45 +0,0 @@ -Die von evcc unterstützten schaltbaren Steckdosen und SmartHome Schalter, können in zwei Modi betrieben werden: - -- Charger Modus (Standard) -- Static-Switch Modus - -Der _Charger Modus_ erlaubt die Nutzung der schaltbaren Steckdose als Ladesteuerung von Akku betriebenen Geräten (E-Motorrad, E-Bikes ...). -Dabei wird der Ladestrom gemessen und von evcc angezeigt, sowie beim Erreichen des Erhaltungsladungsstroms ( < `standbypower`) des Akkus der Status geladen ausgegeben. - -Demgegenüber dient der _Static-Switch_ Modus zum einfachen Schalten von Verbrauchern, wie Wärmepumpen, Klimaanlagen etc. -Der von der Steckdose gelieferte Status hängt dabei direkt vom Schaltzustand der Steckdose ab (An=Lade, Aus=Geladen). - -:::note -Um im _Static-Switch_ Modus eine aussagefähige Leistungsinformation anzuzeigen, empfiehlt es sich ein separates Custom-Meter zu definieren. -::: - -Bei allen schaltbaren Steckdosen wird der Modus über den Parameter `standbypower` eingestellt. - -Ist der Wert größer oder gleich 0, ist der _Charger Modus_ aktiviert. Der eingestellte Wert dient als Schwellwert in Watt. -Solange die durch die Steckdose gemessene Leistung sich über diesem Schellwert befindet, wird der Ladevorgang gemeldet, -fällt die Leistung unter diesen Schwellwert, ist der Erhaltungsladebereich bei vollem Akku erreicht und es wird der Ladevorgang als abgeschlossen gemeldet. - -Setzt man `standbypower` auf einen negativen Wert, arbeitet die schaltbare Steckdose im _Static-Switch_ Modus. - -:::note -Da bei schaltbaren Steckdosen nicht erkannt werden kann, ob ein Verbraucher "angesteckt" ist oder nicht, zeigen sie immer den Status "verbunden" an. Durch Einstellen des Lademodus "Aus" wechselt der Status auf "nicht verbunden". Dadurch wird dann auch die Ladesession beendet. -::: - -:::info -Der Ladepunkt-Parameter `phases` **muss** bei Nutzung einer schaltbaren Steckdose zwingend auf **1** gesetzt werden, um eine ordnungsgemäße Lade-Steuerung zu gewährleisten. -Beispiel: - -```yaml -# loadpoint describes the charger, charge meter and connected vehicle -loadpoints: - - title: Shelly # display name for UI - charger: my_charger # charger - vehicle: audi - mode: pv ---- -mincurrent: 9 # 9A*220V=1980W minimum charge current (default 6A) -maxcurrent: 10 # 10A*220V=2200W maximum charge current (default 16A) -phases: 1 # ev phases (default 3) -``` - -::: diff --git a/docs/devices/meters.mdx b/docs/devices/meters.mdx index 119a56aed0..e37779c874 100644 --- a/docs/devices/meters.mdx +++ b/docs/devices/meters.mdx @@ -9,7 +9,7 @@ import DeviceFeatureFilter from "../../src/components/DeviceFeatureFilter"; import DeviceConfig from "../../src/components/DeviceConfig"; import SponsorshipRequired from "/docs/_sponsorship_required.mdx"; -# Hausinstallation +# PV, Batterie, Netz Die aufgelisteten Geräte können als `meter` für verschiedene Zwecke eingebunden werden: diff --git a/docs/devices/smartswitches.mdx b/docs/devices/smartswitches.mdx new file mode 100644 index 0000000000..888226c5bf --- /dev/null +++ b/docs/devices/smartswitches.mdx @@ -0,0 +1,318 @@ +--- +sidebar_position: 1 +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import SponsorshipRequired from "/docs/_sponsorship_required.mdx"; +import PhaseSwitchSupported from "/docs/_phase_switch_supported.mdx"; +import DeviceConfig from "../../src/components/DeviceConfig"; +import DeviceFeatures from "../../src/components/DeviceFeatures"; +import DeviceFeatureFilter from "../../src/components/DeviceFeatureFilter"; + +# Smarte Schalter + +evcc unterstützt smarte Steckdosen und steuerbare Schalter. +Diese Schalter funktionieren ähnlich wie Wallboxen, jedoch ohne die Regelung der Ladeleistung. +Hier steuert evcc lediglich den Ein-/Aus-Zustand der Steckdose. +Ist genügend [Überschuss vorhanden](/docs/features/solar-charging) oder [günstige Energie](/docs/features/dynamic-prices) aus dem Netz verfügbar, wird automatisch geschaltet. +Darüber hinaus ist auch eine manuelle Steuerung über "Aus" und "Schnell" möglich. + +## Modus + +Abhängig vom Anwendungsfall gibt es zwei Modi, in denen geregelt wird. +Diese werden implizit über den Parameter `standbypower` am Gerät festgelegt. + +### Lademodus (Standard) + +Dieser Modus eignet sich für die Verwendung von Steckdosen als Ladesteuerung für Akku-betriebene Fahrzeuge (E-Motorrad, E-Bikes, Werkzeugakkus, ...). +Die gemessene Ladeleistung am Schalter wird als Ladeleistung gewertet. +Fällt diese Leistung unter einen Schwellwert (Standard: `standbypower: 15`) betrachtet evcc das Gerät als geladen. +Dieser Modus ist aktiv, wenn der konfigurierte Wert für `standbypower` nicht negativ ist. + +Hier ein einfaches Beispiel für eine Tasmota-Steckdose, die im Normalmodus betrieben wird. +Das angeschlossene Ladegerät hat einen Standby-Verbrauch von maximal 50 W. + +```yaml +chargers: + - name: e_bike_outlet + type: template + template: tasmota + host: 192.0.2.1 + standbypower: 50 +``` + +Das heißt, in diesem Modus wird der Zustand des Ladepunkts abhängig von der gemessenen Leistung bestimmt: + +- Laden: (Leistung > `standbypower`) +- Geladen: (Leistung ≤ `standbypower`) + +:::note +Dieser Modus setzt voraus, dass der Schalter auch einen eingebauten Energiezähler hat. +Es ist aktuell nicht möglich dieses Verhalten mit einem zusätzlichen [Energiezähler](/docs/devices/meters) am Ladepunkt zu erreichen. +::: + +### Statischer Modus + +Der statische Modus eignet sich für allgemeine Verbraucher wie Wärmepumpen, Klimaanlagen, Heizlüfter, etc. +Dieser Modus wird durch einen negativen Wert für `standbypower` aktiviert. + +Hier ein Beispiel für einen Shelly Schalter, der einen SG-Ready-Kontakt einer Wärmepumpe mit 5 kW Leistung steuert. + +```yaml +chargers: + - name: my_sg_ready + type: template + template: shelly + host: 192.0.2.2 + standbypower: -5000 +``` + +Der Zustand des Ladepunktes wird direkt vom Schaltzustand der Steckdose abhängig gemacht: + +- Laden: Schalter eingeschaltet +- Geladen: Schalter ausgeschaltet + +Zudem geht evcc von einer konstanten Leistung aus, die durch den Parameter `standbypower` festgelegt wird. +Also bspw. 5 kW bei eingeschaltetem SG-Ready-Kontakt. + +Für bessere Auswertungen empfiehlt es sich hier dem Ladepunkt einen separaten [Energiezähler](./meters) hinzuzufügen. + +## Besonderheiten + +### Keine automatischen Ladevorgänge + +In evcc wird der Zeitraum vom Anstecken eines Fahrzeugs bis zum Trennen als Ladevorgang betrachtet. +Dieses Konzept funktioniert bei Schaltern nicht, da diese keinen verbunden/getrennt Zustand erkennen können. +Daher protokolliert evcc den Verbrauch an Schaltern als einen langen Ladevorgang, der vom Start bis zum Beenden von evcc läuft. +Eine rein zeitbasierte Auswertung gibt es aktuell nicht. Diese Funktion ist aber geplant. + +Es gibt allerdings schon heute einen Weg, mit dem du manuell einen Ladevorgang erstellen kannst. +Bei Schaltern wird der aktuelle Ladevorgang beendet, wenn du den Ladepunkt auf **Aus** schaltest. +Durch ein Ein-/Aus-Schalten über die UI kannst du den Ladevorgang manuell starten. +Dies ist natürlich auch automatisiert via API möglich (bspw. jede Nacht). + +### Integriertes Gerät + +Standardmäßig bieten Ladepunkte die Möglichkeit einer Fahrzeugzuordnung. +In vielen Szenarien ist das jedoch nicht erwünscht. +Es ergibt wenig Sinn den Tesla mit dem SG-Ready-Kontakt einer Wärmepumpe zu verbinden. +Über den Parameter `integrateddevice: true` deaktivierst du die manuelle Zuordnung von Fahrzeugen in der UI. +Zusätzlich wird die automatische Fahrzeugerkennung für diesen Ladepunkt deaktiviert. + +### Wärmeerzeugung + +Nutzt du den Schalter zur Steuerung eines Wärmeerzeugers solltest du den Parameter `heating: true` setzen. +Dadurch verändert sich die Darstellung in der UI. +Es werden die Begriffe "heizen" anstatt "laden" verwendet. +Zudem wird der `soc` des Chargers (sofern verfügbar) nicht mehr in % sondern als Temperatur in °C angezeigt. + +--- + + + + + +## Schaltbare Steckdosen + +### AVM FritzDECT + + + + + + + +### Homematic IP + + + + + + + +### HomeWizard + + + + + + + +### myStrom Switch + + + + + + + +### Shelly + + + + + + + +### Tasmota einphasig + + + + + + + +### TP-Link + +#### H-Series Smart Plug + + + + + + + +#### Tapo P-Series Smart Plug + + + + + diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers.mdx b/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers.mdx index 888f7f522b..7d8161da86 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers.mdx @@ -3905,264 +3905,3 @@ The specific configuration and the actual usable functionality depend on the cha - - -## Switchable sockets - -Switchable Sockets (including smart-home switches) supported by evcc can be operated in one of two modes: - -- Charger Mode (default) -- Static-Switch Mode - -_Charger Mode_ allows use of the Switchable Socket to control the charging of battery-operated devices such as e-Motorcycles, e-Bikes, etc). -Charging current is measured and displayed by evcc, and the device is considered "charged" when power draw drops to a trickle (i.e `power < standbypower`) - -In contrast, _Static-Switch Mode_ can be used to easily control consumers such as heat pumps, air conditioning systems, and more. -The status of the device is determined by whether the Socket is on or off (on = "charging", off = "charged"). - -:::note -When using _Static-Switch Mode_, it is recommended to define a separate custom _Meter_ in order to display meaningful performance information. -::: - -For all Switchable Sockets, the _mode_ depends on how `standbypower` is configured. - -If the value of `standbypower` is greater than or equal to 0 (`standbypower >= 0`), then the Socket uses _Charger Mode_, -and the set value is treated as the threshold value (in Watts). -So long as the measured socket power is above this threshold value, the device is treated as "charging". If the power falls below this value (usually when the device is trickle-charging when its battery is full), it is treated as "charged" / complete. - -If `standbypower` is set to a negative value, then the Socket uses _Static-Switch Mode_. -:::info -The Charging Point parameter `phases` **must** be set to **1** when using a switchable socket to ensure proper control. - -```yaml -# loadpoint describes the charger, charge meter and connected vehicle -loadpoints: - - title: Shelly # display name for UI - charger: my_charger # charger - vehicle: audi - mode: pv ---- -mincurrent: 9 # 9A*220V=1980W minimum charge current (default 6A) -maxcurrent: 10 # 10A*220V=2200W maximum charge current (default 16A) -phases: 1 # ev phases (default 3) -``` - -::: - -### AVM FritzDECT - - - - - - - - - -### Homematic IP - - - - - - - - - -### HomeWizard - - - - - - - - - -### myStrom Switch - - - - - - - - - -### Shelly - - - - - - - - - -### Tasmota single phase - - - - - - - - - -### TP-Link - -#### H-Series Smart Plug - - - - - - - - - -#### Tapo P-Series Smart Plug - - - - - - - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers/_switchable_sockets.mdx b/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers/_switchable_sockets.mdx deleted file mode 100644 index bf3f1759d6..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/devices/chargers/_switchable_sockets.mdx +++ /dev/null @@ -1,39 +0,0 @@ -Switchable Sockets (including smart-home switches) supported by evcc can be operated in one of two modes: - -- Charger Mode (default) -- Static-Switch Mode - -_Charger Mode_ allows use of the Switchable Socket to control the charging of battery-operated devices such as e-Motorcycles, e-Bikes, etc). -Charging current is measured and displayed by evcc, and the device is considered "charged" when power draw drops to a trickle (i.e `power < standbypower`) - -In contrast, _Static-Switch Mode_ can be used to easily control consumers such as heat pumps, air conditioning systems, and more. -The status of the device is determined by whether the Socket is on or off (on = "charging", off = "charged"). - -:::note -When using _Static-Switch Mode_, it is recommended to define a separate custom _Meter_ in order to display meaningful performance information. -::: - -For all Switchable Sockets, the _mode_ depends on how `standbypower` is configured. - -If the value of `standbypower` is greater than or equal to 0 (`standbypower >= 0`), then the Socket uses _Charger Mode_, -and the set value is treated as the threshold value (in Watts). -So long as the measured socket power is above this threshold value, the device is treated as "charging". If the power falls below this value (usually when the device is trickle-charging when its battery is full), it is treated as "charged" / complete. - -If `standbypower` is set to a negative value, then the Socket uses _Static-Switch Mode_. -:::info -The Charging Point parameter `phases` **must** be set to **1** when using a switchable socket to ensure proper control. - -```yaml -# loadpoint describes the charger, charge meter and connected vehicle -loadpoints: - - title: Shelly # display name for UI - charger: my_charger # charger - vehicle: audi - mode: pv ---- -mincurrent: 9 # 9A*220V=1980W minimum charge current (default 6A) -maxcurrent: 10 # 10A*220V=2200W maximum charge current (default 16A) -phases: 1 # ev phases (default 3) -``` - -::: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devices/meters.mdx b/i18n/en/docusaurus-plugin-content-docs/current/devices/meters.mdx index fe0ca8ed24..31d26c373b 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/devices/meters.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/devices/meters.mdx @@ -9,7 +9,7 @@ import DeviceFeatures from "../../../../../src/components/DeviceFeatures"; import DeviceFeatureFilter from "../../../../../src/components/DeviceFeatureFilter"; import SponsorshipRequired from "../_sponsorship_required.mdx"; -# Meters / Site +# PV, Battery, Grid The devices on this page can all be used as energy measuring points (`meter`) for various purposes: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/devices/smartswitches.mdx b/i18n/en/docusaurus-plugin-content-docs/current/devices/smartswitches.mdx new file mode 100644 index 0000000000..0d671dc9e4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/devices/smartswitches.mdx @@ -0,0 +1,320 @@ +--- +sidebar_position: 1 +--- + + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import SponsorshipRequired from "../_sponsorship_required.mdx"; +import PhaseSwitchSupported from "../_phase_switch_supported.mdx"; +import DeviceConfig from "../../../../../src/components/DeviceConfig"; +import DeviceFeatures from "../../../../../src/components/DeviceFeatures"; +import DeviceFeatureFilter from "../../../../../src/components/DeviceFeatureFilter"; + +# Smart Switches + +evcc supports smart sockets and controllable switches. +These switches work similarly to EV chargers, but without the power control. +Here, evcc only controls the on/off state of the socket. +If there is enough [surplus](/docs/features/solar-charging) or [cheap energy](/docs/features/dynamic-prices) available, the socket is switched automatically. +Additionally, manual control via "Off" and "Fast" is possible. + +## Modes + +Depending on the application, there are two modes of operation. +These are set implicitly via the `standbypower` parameter on the device. + +### Charging mode (default) + +This mode is suitable for the use of sockets that control battery-powered vehicles (e-motorcycles, e-bikes, tool batteries, ...). +The measured charging power at the switch is considered as charging power. +If this power falls below a threshold (default: `standbypower: 15`), evcc considers the device as charged. +This mode is active if the configured value for `standbypower` is not negative. + +Here is an example of a Tasmota socket that is operated in charging mode. +The connected charger has a standby consumption of a maximum of 50 W. + +```yaml +chargers: + - name: e_bike_outlet + type: template + template: tasmota + host: 192.0.2.1 + standbypower: 50 +``` + +This means that in this mode the state of the charger is determined by the measured power: + +- Charging: (power > `standbypower`) +- Charged: (power ≤ `standbypower`) + +:::note +This mode assumes that the switch also has an integrated energy meter. +It is currently not possible to achieve this behavior with an additional [energy meter](/docs/devices/meters) at the charger. +::: + +### Static mode + +This mode is suitable for general consumers such as heat pumps, air conditioners, heaters, etc. +This mode is activated by a negative value for `standbypower`. + +Here is an example of a Shelly switch that controls a heat pump with 5 kW power. + +```yaml +chargers: + - name: my_sg_ready + type: template + template: shelly + host: 192.0.2.2 + standbypower: -5000 +``` + +The state of the charger is directly dependent on the switch state of the socket: + +- Charging: switch on +- Charged: switch off + +evcc assumes a constant power that is set by the `standbypower` parameter. +In the example above the switch controls a 5 kW heat pump. + +If you want to see the real power consumption it is recommended to add a separate [energy meter](./meters) to the charging point. + +## Special behavior + +### No automatic sessions + +In evcc the period from plugging in a vehicle to disconnecting is considered a charging session. +This concept does not work with switches, as these cannot detect a connected/disconnected state. +Therefore, evcc logs the consumption at switches as a long charging process that runs from the start to the end of evcc. +There is currently no purely time-based evaluation. +There are plans to implement this in the future. + +However, there is already a way to manually create a charging sessions. +When switching the charging point to **Off** at a switch, the current charging session is stopped. +You can manually start a charging session by switching on and off via the UI. +You could automate this via API (e.g. every night). + +### Integrated device + +By default, charging points offer the possibility of vehicle assignment. +In many switch scenarios this is not desired. +It makes little sense to connect the Tesla to the SG-Ready contact of a heat pump. +By setting the parameter `integrateddevice: true` you disable the manual vehicle assignment in the UI. +Additionally, the automatic vehicle detection is disabled for this charging point. + +### Heating + +If you use the switch to control a heat pump, you should set the parameter `heating: true`. +This changes the display in the UI. +Now the status uses the word "heating" instead of "charging". +Additionally, the `soc` of the charger (if available) is no longer displayed in % but as a temperature in °C. + +--- + + + + + +## Switchable sockets + +### AVM FritzDECT + + + + + + + +### Homematic IP + + + + + + + +### HomeWizard + + + + + + + +### myStrom Switch + + + + + + + +### Shelly + + + + + + + +### Tasmota single phase + + + + + + + +### TP-Link + +#### H-Series Smart Plug + + + + + + + +#### Tapo P-Series Smart Plug + + + + + diff --git a/src/generateFromTemplate.js b/src/generateFromTemplate.js index 336d2d9313..17ebfd10bc 100644 --- a/src/generateFromTemplate.js +++ b/src/generateFromTemplate.js @@ -11,9 +11,15 @@ const TARIFF_GROUPS = { "CO₂ forecast": "co2", }; +const CHARGER_GROUPS = { + "Switchable sockets": "smartswitch", + "Schaltbare Steckdosen": "smartswitch", +}; + const CODE_PREAMBLES = { vehicle: "vehicles:\n - name: my_car", charger: "chargers:\n - name: my_charger", + smartswitch: "chargers:\n - name: my_smartswitch", meter: "meters:\n - name: my_meter", grid: "meters:\n - name: my_grid", pv: "meters:\n - name: my_pv", @@ -150,6 +156,21 @@ function generateMarkdown(data, type, translations, target) { x.product.brand = x.product.brand || ""; x.product.description = x.product.description || ""; }); + + // smart switches only + if (type === "smartswitch") { + data = data.filter( + (x) => CHARGER_GROUPS[x.product.group] === "smartswitch", + ); + } + + // remove smart switches from chargers + if (type === "charger") { + data = data.filter( + (x) => CHARGER_GROUPS[x.product.group] !== "smartswitch", + ); + } + // sort const dataSorted = _.orderBy(data, [ (x) => x.product.group.toLowerCase(), @@ -210,22 +231,28 @@ function generateMarkdown(data, type, translations, target) { fs.writeFileSync(target, content, "utf-8"); } -["vehicle", "meter", "charger", "tariff"].forEach((type) => { - // German - const templatesDe = readTemplates(`./templates/release/de/${type}`); +["vehicle", "meter", "charger", "tariff", "smartswitch"].forEach((type) => { + let templates = type; + let markdown = `${type}s.mdx`; + + if (type === "smartswitch") { + templates = "charger"; + markdown = "smartswitches.mdx"; + } + + const templatesDe = readTemplates(`./templates/release/de/${templates}`); + const templatesEn = readTemplates(`./templates/release/en/${templates}`); + generateMarkdown( templatesDe, type, TRANSLATIONS_DE, - `./docs/devices/${type}s.mdx`, + `./docs/devices/${markdown}`, ); - - // English - const templatesEn = readTemplates(`./templates/release/en/${type}`); generateMarkdown( templatesEn, type, TRANSLATIONS_EN, - `./i18n/en/docusaurus-plugin-content-docs/current/devices/${type}s.mdx`, + `./i18n/en/docusaurus-plugin-content-docs/current/devices/${markdown}`, ); });