From bff316c9ad752b17afd95ac100f970a519d3291c Mon Sep 17 00:00:00 2001 From: duck Date: Thu, 10 Aug 2023 22:50:50 +0100 Subject: [PATCH 01/28] Enable Docusaurus EN language support --- docusaurus.config.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 372cbef4e8..0972457e4e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -16,7 +16,12 @@ const darkCodeTheme = require("prism-react-renderer/themes/dracula"); projectName: "docs", // Usually your repo name. i18n: { defaultLocale: "de", - locales: ["de"], + locales: ["de", "en"], + localeConfigs: { + en: { + htmlLang: "en-GB", + }, + }, }, presets: [ [ @@ -80,6 +85,10 @@ const darkCodeTheme = require("prism-react-renderer/themes/dracula"); position: "right", target: "_self", }, + { + type: 'localeDropdown', + position: 'right', + }, ], }, footer: { From 97a328d7fe4373f231d78a6981b780c346185213 Mon Sep 17 00:00:00 2001 From: duck Date: Thu, 10 Aug 2023 23:18:59 +0100 Subject: [PATCH 02/28] i18n: Translate HOME.md --- .../current/Home.md | 89 ++++++++++++++++++ .../current/screenshot.webp | Bin 0 -> 45932 bytes .../current/youtube_hausautomatisierung.webp | Bin 0 -> 79718 bytes .../current/youtube_linux_infotag.webp | Bin 0 -> 20486 bytes .../current/youtube_verdrahtet.webp | Bin 0 -> 75328 bytes 5 files changed, 89 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/Home.md create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/screenshot.webp create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/youtube_hausautomatisierung.webp create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/youtube_linux_infotag.webp create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/youtube_verdrahtet.webp diff --git a/i18n/en/docusaurus-plugin-content-docs/current/Home.md b/i18n/en/docusaurus-plugin-content-docs/current/Home.md new file mode 100644 index 0000000000..4c23d5262b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/Home.md @@ -0,0 +1,89 @@ +--- +sidebar_position: 1 +--- + +# Introduction + +EVCC controls Electric Vehicle (EV) charging as required to optimise for the current energy situation. +A Photovoltaic (PV) system can be connected in order to charge the EV with as much self-produced energy as possible, and/or grid providers can be connected to allow for exploitation of dynamic electricity prices. + +Normally, the wallbox must be compatible with the existing PV installation, often requiring equipment from the same manufacturer. However, EVCC works across manufacturers and with a wide variety of wallboxes, electricity measuring devices, and PV inverters, without requiring specific manufacturer compatibility between them. + +EVCC is installed onto a system in the local network, so that it can communicate properly with all the necessary devices. It does this completely locally, and without any reliance on cloud connectivity (though connected components may have their own requirements). The software itself is very lean, and something like a NAS (network attached storage) or a Raspberry Pi (or similar) is completely sufficient to achieve full functionality. + +![Screenshot](screenshot.webp) + +## Functionality + +- Simple and clear User Interface +- Support for + - [Wallboxes & Switchable Sockets](/docs/devices/chargers) + - [Inverters, Battery Storage, & Energy Meters](/docs/devices/meters) + - [Vehicles](/docs/devices/vehicles) +- [Plugins](/docs/reference/plugins) support a wide variety of wallboxes, meters, & vehicles over Modbus, HTTP, MQTT, JavaScript, Websockets, and Shell Scripts +- Status [Notifications](/docs/reference/configuration/messaging) via [Telegram](https://telegram.org), [PushOver](https://pushover.net) and [many more](https://containrrr.dev/shoutrrr/) +- Data Export via [InfluxDB](https://www.influxdata.com) and [Grafana](https://grafana.com/grafana/) +- Stepless regulation of charging flows with supported wall boxes (e.g the smartWB's [OLC](https://board.evse-wifi.de/viewtopic.php?f=16&t=187) functionality) +- Rest & MQTT [APIs](/docs/reference/api) for integration into other home automation systems (such as [Home Assistant](https://github.com/evcc-io/evcc-hassio-addon)) + +## Requirements + +EVCC requires at least the following: + +- a supported [Wallbox or Switchable Socket](/docs/devices/chargers) +- a supported [Energy Meter](/docs/devices/meters) at the house connection, or alternatively a supported PV inverter / other metering device that can measure current energy production +- a supported system to run EVCC on! + +Optionally: + +- one or more supported [Vehicles](/docs/devices/vehicles) to collect charge status / level information +- additional supported Wallboxes or Switchable Sockets +- supported PV inverter(s) +- supported Battery Storage System(s) +- a supported [Energy Management System](/docs/reference/configuration/hems) (such as SMA Sunny Home Manager) +- information on a dynamic electricity tariff + + +:::note +EVCC comes without any kind of guarantee, and you use the software at your own risk. It is your responsibility to use EVCC responsibly - it's your house fire! +::: + +## Contact +- Support, configurations, questions about devices, and general discussion can be found in our [Community Support Forum](https://github.com/evcc-io/evcc/discussions). +- We also have a [Slack](https://evcc.io/slack) for development discussion. + +## Videos + +:::note +Currently DE only (but please do suggest other languages!) +::: + +### Linux Infotag 2023 Lecture + +[Michael](https://github.com/naltatis) introduces the project, talks about everyday work, and financing. + +[![YouTube LIT2023](youtube_linux_infotag.webp)](https://www.youtube.com/watch?v=qN8JwBWOlzw) + +### verdrahtet: PV surplus with EVCC + +Tackles EVCC basics, integration with ioBroker, and integrating a homematic switch. + +[![YouTube verdrahtet](youtube_verdrahtet.webp)](https://youtu.be/6JxktkEaZ2o) + +### haus-automatisierung.com: Charging an Electric Vehicle with PV Surplus + +Tackles EVCC basics, custom plugins, control via MQTT and ioBroker, as well as different installation options. + +[![YouTube Haus Automatisierung](youtube_hausautomatisierung.webp)](https://youtu.be/93C47QUjomQ) + +## Articles + +### hobbyblogging.de + +- Einführung in die Grundkonzepte: [evcc - Was soll das sein?](https://hobbyblogging.de/evcc-was-soll-das-sein) +- Einrichtung mit Balkonsolar und smarten Steckdosen: [evcc installieren - So einfach geht's!](https://hobbyblogging.de/evcc-installieren) + +### elefacts.de + +- Grundlagen, Detaillierte Anleitung für Raspberry Pi Installation, Fernzugriff via Fritz!Box & DynDNS: [evcc Anleitung für intelligentes PV Überschussladen mit vielen Wallboxen](https://www.elefacts.de/test-206-evcc_anleitung_fuer_intelligentes_pv_ueberschussladen_mit_vielen_wallboxen) +- InfluxDB & Grafana: [Von evcc erfasste Daten langfristig speichern und aufbereiten](https://www.elefacts.de/test-208-von_evcc_erfasste_daten_langfristig_speichern_und_aufbereiten) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/screenshot.webp b/i18n/en/docusaurus-plugin-content-docs/current/screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..ba4791bb63e0551eb4a10380a2e26c1b9ed546d1 GIT binary patch literal 45932 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
8Rj1@*!CL$m&yp(1X)`i7@VUpdnQi7 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 literal 0 HcmV?d00001 diff --git a/i18n/en/docusaurus-plugin-content-docs/current/youtube_linux_infotag.webp b/i18n/en/docusaurus-plugin-content-docs/current/youtube_linux_infotag.webp new file mode 100644 index 0000000000000000000000000000000000000000..301d1cb31e20254c276ad6bb53054e7a8a5bdd31 GIT binary patch literal 20486 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 Date: Thu, 10 Aug 2023 23:23:53 +0100 Subject: [PATCH 03/28] i18n: Translate labels --- .../options.json | 14 +++++++ .../current.json | 6 +++ i18n/en/docusaurus-theme-classic/footer.json | 42 +++++++++++++++++++ i18n/en/docusaurus-theme-classic/navbar.json | 22 ++++++++++ 4 files changed, 84 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/en/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/en/docusaurus-theme-classic/footer.json create mode 100644 i18n/en/docusaurus-theme-classic/navbar.json diff --git a/i18n/en/docusaurus-plugin-content-blog/options.json b/i18n/en/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000000..5359900350 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Latest Posts", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json b/i18n/en/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..a4f2fa737f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,6 @@ +{ + "version.label": { + "message": "Current", + "description": "The label for the current version." + } +} diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000..4ed9c43c98 --- /dev/null +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.Contribute": { + "message": "Contribute", + "description": "The title of the footer links column with title=Contribute in the footer" + }, + "link.title.About": { + "message": "About", + "description": "The title of the footer links column with title=About in the footer" + }, + "link.item.label.Anwender Forum": { + "message": "User Forum", + "description": "The label of footer link with label=Anwender Forum linking to https://github.com/evcc-io/evcc/discussions" + }, + "link.item.label.Entwickler Slack": { + "message": "Developer Slack", + "description": "The label of footer link with label=Entwickler Slack linking to https://evcc.io/slack" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/evcc-io/evcc" + }, + "link.item.label.Sponsoring": { + "message": "Sponsoring", + "description": "The label of footer link with label=Sponsoring linking to https://github.com/sponsors/evcc-io" + }, + "link.item.label.Impressum": { + "message": "Legal Notice", + "description": "The label of footer link with label=Impressum linking to https://evcc.io/impressum/" + }, + "link.item.label.Datenschutz": { + "message": "Privacy Policy", + "description": "The label of footer link with label=Datenschutz linking to https://evcc.io/datenschutz/" + }, + "copyright": { + "message": "© 2023 evcc", + "description": "The footer copyright" + } +} diff --git a/i18n/en/docusaurus-theme-classic/navbar.json b/i18n/en/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000..38bb763a6a --- /dev/null +++ b/i18n/en/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "logo.alt": { + "message": "evcc Logo", + "description": "The alt text of navbar logo" + }, + "item.label.Sonne tanken": { + "message": "Solar Charging", + "description": "Navbar item with label Sonne tanken" + }, + "item.label.Blog": { + "message": "Blog", + "description": "Navbar item with label Blog" + }, + "item.label.Dokumentation": { + "message": "Documentation", + "description": "Navbar item with label Dokumentation" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} From 8c823228dd3c58b8b2fbaa1f66df6dc87985f1ad Mon Sep 17 00:00:00 2001 From: duck Date: Fri, 11 Aug 2023 00:07:01 +0100 Subject: [PATCH 04/28] i18n: Translate sponsorship.md & other files --- .../current/_phase_switch_supported.mdx | 3 + .../current/_since_version.jsx | 12 +++ .../current/_sponsorship_required.mdx | 3 + .../current/sponsorship.md | 75 +++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/_phase_switch_supported.mdx create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/_since_version.jsx create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/_sponsorship_required.mdx create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/sponsorship.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/_phase_switch_supported.mdx b/i18n/en/docusaurus-plugin-content-docs/current/_phase_switch_supported.mdx new file mode 100644 index 0000000000..bce94ebae4 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/_phase_switch_supported.mdx @@ -0,0 +1,3 @@ +:::note +Single and Three-phase circuits are supported. +::: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/_since_version.jsx b/i18n/en/docusaurus-plugin-content-docs/current/_since_version.jsx new file mode 100644 index 0000000000..8146f075c6 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/_since_version.jsx @@ -0,0 +1,12 @@ +// FIXME surely there's a better way of translating this than just relying on repeating the entire export for every language?! + +import React from "react"; + +export default ({ version }) => ( + + Ab Version {version} + +); diff --git a/i18n/en/docusaurus-plugin-content-docs/current/_sponsorship_required.mdx b/i18n/en/docusaurus-plugin-content-docs/current/_sponsorship_required.mdx new file mode 100644 index 0000000000..4438fa6859 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/_sponsorship_required.mdx @@ -0,0 +1,3 @@ +:::tip Sponsor Token Required +More information on 💚 evcc Sponsorship can be found [here](/docs/sponsorship). +::: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/sponsorship.md b/i18n/en/docusaurus-plugin-content-docs/current/sponsorship.md new file mode 100644 index 0000000000..99c58c2adc --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/sponsorship.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 6 +--- + +# Sponsorship + +We at evcc believe in open source software. Our goal is to develop a best-in-class solution for charging Electric Vehicles that interacts with existing hardware and technology. + +evcc already supports a long list of Vehicles, Wallboxes, Meters, Inverters, and Battery systems, with more being added regularly. However, the development and maintenance of evcc is very time consuming - so we are dependent on your support as a community to keep the project going. + +evcc is open source, but we also want to encourage manufacturers to provide open source hardware devices, public documentation, and to support open source projects like ourselves that offer additional value for otherwise closed hardware. Where this is not the case, evcc's _Contributor Sponsor Tokens_ need to finance ongoing development and support. + +The personal _Contributor Sponsor Token_ requires [GitHub sponsoring](https://github.com/sponsors/evcc-io). We've chosen to use GitHub sponsors as it's easy to integrate, and does not include commission to be paid by any party. At [sponsor.evcc.io](https://sponsor.evcc.io), the _Contributor Sponsor Token_ can be requested, which is valid for as long as the sponsorship is active, on as many installations as desired - and can be renewed at any time. Simply enter the token in your `evcc.yaml` to unlock the associated functionality, and super-special, super-awesome supporter confetti inside evcc. + +Thank you for your support! 💚🎉 + +:::info + +GitHub unfortunately no longer accepts PayPal for sponsorship. + +If you don't want to use a credit / debit card, please contact us at info@evcc.io + +::: + +The following functionality is only available with sponsorship: + +- Use of the Single / Three-Phase switchover of supported wallboxes + - [Easee Home](/docs/devices/chargers#easee-home-) + +The following devices are only available with sponsorship: + +- Wallboxes: + - [ABL Terra AC](/docs/devices/chargers#abb-terra-ac-) + - [ABL eMH](/docs/devices/chargers#abl-emh-) + - [Alfen Eve](/docs/devices/chargers#alfen-eve-) + - [Alphatec Wallbox Mini/AW1eM](/docs/devices/chargers#alphatec-wallbox-mini-aw1em-) + - [Bender CC612/613](/docs/devices/chargers#bender-cc612613-) + - [cFos PowerBrain](/docs/devices/chargers#cfos-powerbrain-) + - [Easee Home](/docs/devices/chargers#easee-home-) + - [Ebee Wallbox](/docs/devices/chargers#ebee-wallbox-) + - [Ensto Chago Wallbox](/docs/devices/chargers#ensto-chago-wallbox-) + - [Etrel INCH](/docs/devices/chargers#etrel-inch-) + - [Garo GLB, GLB+, LS4, LS4 compact](/docs/devices/chargers#garo-glb-glb-ls4-ls4-compact-) + - [go-eCharger](/docs/devices/chargers#go-echarger) + - [echarge Hardy Barth cPH1](/docs/devices/chargers#cph1--) + - [echarge Hardy Barth cPH2, CPμ2 Pro](/docs/devices/chargers#cph2-cpμ2--) + - [Heidelberg Energy Control](/docs/devices/chargers#heidelberg-energy-control-) + - [Innogy eBox](/docs/devices/chargers#innogy-ebox-) + - [Juice Charger Me](/docs/devices/chargers#juice-charger-me-) + - [KSE wBX16](/docs/devices/chargers#kse-wbx16-) + - [Mennekes Amtron XTRA/PREMIUM](/docs/devices/chargers#amtron-xtra-amtron-premium--) + - [Optec Mobility One](/docs/devices/chargers#optec-mobility-one-) + - [PC Electric Garo](/docs/devices/chargers#pc-electric-garo-) + - [Pracht Alpha XT](/docs/devices/chargers#pracht-alpha-xt-) + - [SENEC.Wallbox pro](/docs/devices/chargers#senecwallbox-pro--) + - [SENEC.Wallbox pro s](/docs/devices/chargers#senecwallbox-pro-s--) + - [SMA EV Charger](/docs/devices/chargers#sma-ev-charger-) + - [Sonnen sonnenCharger](/docs/devices/chargers#sonnen-sonnencharger-) + - [TechniSat Technivolt](/docs/devices/chargers#technisat-technivolt-) + - [Ubitricity Heinz](/docs/devices/chargers#ubitricity-heinz-) + - [Vestel EVC04](/docs/devices/chargers#vestel-evc04-) + - [Walther Werke Basic Evo Pro](/docs/devices/chargers#walther-werke-basic-evo-pro-) + - [Webasto Live](/docs/devices/chargers#live--) + - [Webasto NEXT](/docs/devices/chargers#next--) +- Vehicle Interfaces: + - [Tronity](/docs/devices/vehicles#tronity--) + + +## How to Use your Token + +Simply add the following line to your `evcc.yaml`: + +```yaml title="evcc.yaml" +sponsortoken: eyJhbGci[...]RX5s # your token from sponsor.evcc.io +``` From 59d54c5eb48ead94d427e56041cfe59d8f22b53a Mon Sep 17 00:00:00 2001 From: duck Date: Fri, 11 Aug 2023 00:08:04 +0100 Subject: [PATCH 05/28] i18n: en/blog/Home.md, evcc should be lowercase --- .../current/Home.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/Home.md b/i18n/en/docusaurus-plugin-content-docs/current/Home.md index 4c23d5262b..a4ecddb878 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/Home.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/Home.md @@ -4,12 +4,12 @@ sidebar_position: 1 # Introduction -EVCC controls Electric Vehicle (EV) charging as required to optimise for the current energy situation. +evcc controls Electric Vehicle (EV) charging as required to optimise for the current energy situation. A Photovoltaic (PV) system can be connected in order to charge the EV with as much self-produced energy as possible, and/or grid providers can be connected to allow for exploitation of dynamic electricity prices. -Normally, the wallbox must be compatible with the existing PV installation, often requiring equipment from the same manufacturer. However, EVCC works across manufacturers and with a wide variety of wallboxes, electricity measuring devices, and PV inverters, without requiring specific manufacturer compatibility between them. +Normally, the wallbox must be compatible with the existing PV installation, often requiring equipment from the same manufacturer. However, evcc works across manufacturers and with a wide variety of wallboxes, electricity measuring devices, and PV inverters, without requiring specific manufacturer compatibility between them. -EVCC is installed onto a system in the local network, so that it can communicate properly with all the necessary devices. It does this completely locally, and without any reliance on cloud connectivity (though connected components may have their own requirements). The software itself is very lean, and something like a NAS (network attached storage) or a Raspberry Pi (or similar) is completely sufficient to achieve full functionality. +evcc is installed onto a system in the local network, so that it can communicate properly with all the necessary devices. It does this completely locally, and without any reliance on cloud connectivity (though connected components may have their own requirements). The software itself is very lean, and something like a NAS (network attached storage) or a Raspberry Pi (or similar) is completely sufficient to achieve full functionality. ![Screenshot](screenshot.webp) @@ -28,11 +28,11 @@ EVCC is installed onto a system in the local network, so that it can communicate ## Requirements -EVCC requires at least the following: +evcc requires at least the following: - a supported [Wallbox or Switchable Socket](/docs/devices/chargers) - a supported [Energy Meter](/docs/devices/meters) at the house connection, or alternatively a supported PV inverter / other metering device that can measure current energy production -- a supported system to run EVCC on! +- a supported system to run evcc on! Optionally: @@ -45,7 +45,7 @@ Optionally: :::note -EVCC comes without any kind of guarantee, and you use the software at your own risk. It is your responsibility to use EVCC responsibly - it's your house fire! +evcc comes without any kind of guarantee, and you use the software at your own risk. It is your responsibility to use evcc responsibly - it's your house fire! ::: ## Contact @@ -64,15 +64,15 @@ Currently DE only (but please do suggest other languages!) [![YouTube LIT2023](youtube_linux_infotag.webp)](https://www.youtube.com/watch?v=qN8JwBWOlzw) -### verdrahtet: PV surplus with EVCC +### verdrahtet: PV surplus with evcc -Tackles EVCC basics, integration with ioBroker, and integrating a homematic switch. +Tackles evcc basics, integration with ioBroker, and integrating a homematic switch. [![YouTube verdrahtet](youtube_verdrahtet.webp)](https://youtu.be/6JxktkEaZ2o) ### haus-automatisierung.com: Charging an Electric Vehicle with PV Surplus -Tackles EVCC basics, custom plugins, control via MQTT and ioBroker, as well as different installation options. +Tackles evcc basics, custom plugins, control via MQTT and ioBroker, as well as different installation options. [![YouTube Haus Automatisierung](youtube_hausautomatisierung.webp)](https://youtu.be/93C47QUjomQ) From 70095345dded84843b0f03893370dde1e1d368a2 Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Fri, 11 Aug 2023 15:01:42 +0200 Subject: [PATCH 06/28] add wip-warning; update local dev notes --- README.md | 6 ++++++ i18n/en/docusaurus-plugin-content-docs/current/Home.md | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b4085ac10f..baea4d9d22 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,12 @@ $ npm run start This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +Start in English mode. + +```sh +npm run start -- --locale en +``` + ### Build ```sh diff --git a/i18n/en/docusaurus-plugin-content-docs/current/Home.md b/i18n/en/docusaurus-plugin-content-docs/current/Home.md index a4ecddb878..231abb6a7b 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/Home.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/Home.md @@ -2,6 +2,12 @@ sidebar_position: 1 --- +:::cautionwork in progress 🚧 + +We're still working on the English translation. Some content will still be shown in German. + +::: + # Introduction evcc controls Electric Vehicle (EV) charging as required to optimise for the current energy situation. @@ -43,12 +49,12 @@ Optionally: - a supported [Energy Management System](/docs/reference/configuration/hems) (such as SMA Sunny Home Manager) - information on a dynamic electricity tariff - :::note evcc comes without any kind of guarantee, and you use the software at your own risk. It is your responsibility to use evcc responsibly - it's your house fire! ::: ## Contact + - Support, configurations, questions about devices, and general discussion can be found in our [Community Support Forum](https://github.com/evcc-io/evcc/discussions). - We also have a [Slack](https://evcc.io/slack) for development discussion. From 5ef7cc9f448c1d5bbe361c72951e313619989e6c Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Sun, 13 Aug 2023 15:09:55 +0200 Subject: [PATCH 07/28] i18n: + index pages for reference & configuration --- .../current/reference/configuration/index.md | 147 ++++++++++++++++++ .../current/reference/index.md | 23 +++ 2 files changed, 170 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/index.md create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/index.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/index.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/index.md new file mode 100644 index 0000000000..ca7507535f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/index.md @@ -0,0 +1,147 @@ +--- +sidebar_position: 1 +--- + +# evcc.yaml + +evcc requires a configuration file in which the system is described. Without +this file, evcc cannot be used. The file itself is written in +[YAML](https://en.wikipedia.org/wiki/YAML). This format defines a syntax with +which data can be structured in plain text. + +To create or edit the configuration file, we recommend using a text editor that +understands YAML and thus helps with the formatting and shows any errors, e.g. +instance, [VS Code](https://code.visualstudio.com) with the +[YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml). + +The configuration file is called by default `evcc.yaml` and is either in the +same directory as evcc itself, or on POSIX (e.g. Linux) systems in +`/etc/evcc.yaml`. + +For non-standard paths, the filename can be passed as a command line argument, +e.g. `evcc -c /home/evcc.yaml` + +### Structure + +evcc's configuration file contains multiple sections. In order to refer to +elements in a different section, each device has a `name` parameter, which is a +free text field and is used for identification. + +An example file with many parameters can be found here: +https://github.com/evcc-io/evcc/blob/master/evcc.dist.yaml + +Here is an overview of the relationship between the most important parts of the +configuration: + +```mermaid +graph TD; + site("site (Zuhause)") + subgraph loadpoints + loadpointA("Carport (charger: KEBA)") + loadpointB("Garage (charger: Wallbe)") + end + subgraph meters + meterGrid("Discovergy") + meterPV("SMA Tripower") + meterBattery("LG RESU") + end + subgraph vehicles + vehicleA("VW ID.4") + vehicleB("Renault Zoe") + vehicleC("Tesla Model Y") + end + + loadpointA -- loadpoint.1 --> site + loadpointB -- loadpoint.2 --> site + + vehicleA --> loadpointA + vehicleB --> loadpointA + vehicleB --> loadpointB + vehicleC --> loadpointB + + meterGrid -- meters.grid --> site + meterPV -- meters.pvs --> site + meterBattery -- meters.batterys --> site +``` + +### How does evcc work? (A look into the innards) + +In order for the system to function, an electricity meter is important. This +allows us to calculate at any point in time the surplus power. Measuring the +generated power is interesting, but has no effect on the function, with the +this exception: +https://docs.evcc.io/docs/guides/meters#ich-habe-eine-pv-anlage-aber-keinen-netzanschluss-z%C3%A4hler-kann-ich-evcc-trotzdem-nutzen + +The surplus power is compared with the minimum power required to charge. If +this is sufficient, the charging process is started. + +The minimum power required to charge is calculated from the values `minCurrent` +and `phases`, defined per `loadpoint` (a group of colocated chargers) +See https://docs.evcc.io/docs/reference/configuration/loadpoints for more +information. + +For example: `phases: 1` und `minCurrent: 8` + +1 (phases) x 8A (minCurrent) x 230V (mains voltage) = 1840W (minimum power required to charge) + +#### Manipulation Options + +Normally, the surplus power corresponds to the available charging power. +However, the available charging power can be individually adjusted using +several parameters. These are: + +- Site: `residualpower` +- Site: `prioritySoc` +- Site: `bufferSoc` +- Site: `aux` +- Loadpoint: `enable: threshold` +- Loadpoint: `disable: threshold` + +Please refer to the description of each respective parameter for the available +settings. + +- [Site Configuration Parameters](https://docs.evcc.io/docs/reference/configuration/site) +- [Loadpoint Configuration Parameters](https://docs.evcc.io/docs/reference/configuration/loadpoints) + +### Site + +A [Site](site) describes the location with the existing and required devices of +the home installation and is responsible for regulating the available power. + +### Loadpoint + +A [Loadpoint](loadpoints) describes the charging infrastructure and combines +existing _Chargers_, _Vehicles_, and anything else a charging point needs. + +### Chargers + +[Chargers](chargers) include a list of chargers and their properties, such as +how they are addressed. + +### Meters + +[Meters](meters) are a list of devices that measure various power flows. These +include: + +- Imported, Exported power +- PV-generated power +- Charging current of EV (if the charger does not support this directly) +- Power flow of house battery(ies) + +### Vehicles + +To limit the state of charge (SoC) of EVs to a specific level, you can specify +the existing [vehicles](vehicles) and online access data here. + +### HEMS + +evcc can forward the charging points and their charging currents to another +[Home Energy Management System (HEMS)](hems) so that it can use this +information, for example, to control the house battery. + +### Messaging + +In this section, you can define events for which you want to be informed. A +variety of different systems are supported for message delivery. + +[More information](messaging) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/index.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/index.md new file mode 100644 index 0000000000..b9378f0acc --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/index.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 1 +--- + +# References + +Below is technical documentation on various aspects of evcc. + +### Configuration + +[An explanation of the settings and configuration files.](configuration) + +### Plug-ins + +[A description of how a plug-in can connect to a previously unsupported device.](plugins) + +### Modbus + +[Documentation for Modbus, which is used in turn by various of the devices supported.](modbus) + +### API + +[Documentation describing how to access and control evcc from other systems.](api) From 54374d393b1798b705723a8d04e51844b2f81c88 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 09:58:59 +0200 Subject: [PATCH 08/28] i18n: + EN translation for reference/configuration/site.md --- .../current/reference/configuration/site.md | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/site.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/site.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/site.md new file mode 100644 index 0000000000..bd2d502bef --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/site.md @@ -0,0 +1,284 @@ +--- +sidebar_position: 2 +--- + +# `site` + +Describes the location with the existing and required devices of the home installation and is responsible for regulating the available power. + +To regulate charging with PV surplus, a readable meter directly behind the grid connection point is necessary. In addition, devices for PV power and house battery(ies) can also be specified. Several devices are automatically added in terms of power or, in the case of battery storage, the average state of charge is calculated. + +**For example**: + +```yaml +site: + - title: Home # display name for UI + meters: + grid: mygridmeter # grid meter reference + pv: # (pvs = deprecated) + - mypv1 # first pv meter reference + - mypv9 # second pv meter reference + battery: # (batteries = deprecated) + - mybat5 # battery meter reference + aux: + - myaux1 + residualPower: 100 + bufferSoc: 80 + prioritySoc: 66 +``` + +--- + +## Required Parameters + +### `title` + +The description of the charging point is also displayed in the UI. + +**For example**: + +```yaml +title: Home +``` + +--- + +### `meters` + +Defines which configured meter (current measurement devices) are to be used as what type of measurement point. This logically links the device definition with its intended use. A initially universal meter is thus assigned a purpose based on its location within the home installation. + +:::note +At least the configuration of one `grid` or at least one `pv` element is necessary! +evcc cannot be used without at least one of these entries! +::: + +**For example**: + +```yaml +site: + meters: + grid: mygridmeter # grid meter reference + pv: mypv1 # pv meter reference + battery: mybat2 # battery meter reference + aux: myaux1 +``` + +--- + +## Optional Parameters + +### `meters.grid` + +Defines the [`meter`](meters) (current measurement device) that provides the measurements of the grid connection point. + +**Possible values**: Value of a `name` parameter in the [`meters`](#meters) configuration. + +**For example**: + +```yaml +grid: mygridmeter # grid meter reference +``` + +--- + +### `meters.pv` + +Defines [`meter`](meters) (current measurement devices), from which evcc fetches PV generation measurements. +Multiple devices can be specified. Power data is automatically added. + +**Possible values**: A single value or a list of values of a name parameter in the [`meters`](#meters) configuration. The list version can also be used with single values. + +**For example**: + +```yaml +pv: myonlypv # singele pv meter reference +``` + +or + +```yaml +pv: # (pvs = deprecated) + - myoldpv # first pv meter reference + - mynewestpv # second pv meter reference +``` + +--- + +### `meters.battery` + +Defines the [`meter`](meters) (current measurement devices) that provide measurement data from the battery(ies). +Multiple devices can be specified. Power data is automatically added, and an average is calculated from the battery state of charge. + +**Possible values**: A single value or a list of values of a `name` parameter in the [`meters`](#meters) configuration. The list version can also be used with single values. + +**For example**: + +```yaml +battery: myonlybat # single battery meter reference +``` + +or + +```yaml +battery: # (batteries = deprecated) + - mysmallbat # first battery meter reference + - myhugebat # second battery meter reference +``` + +### `meters.aux` + +Defines the meters (current measurement devices) that provide measurement data from external devices that have their own surplus control but are not directly controlled by evcc. Multiple devices can be specified. Power data is automatically added. + +In evcc, this power contributes to the calculation of the available surplus power for vehicle charging. It is assumed that devices measured using auxiliary meters will autonomously and promptly reduce or completely interrupt their power consumption when the measured auxiliary power is allocated to vehicle charging by evcc. + +Positive value: additional available surplus power (allocated to vehicle charging) + +Negative value: insufficient surplus power (not available for vehicle charging) + +Examples: + + An immersion heater for hot water production that is autonomously regulated based on PV surplus at the grid connection point. When the power consumption of this immersion heater is measured and configured as an aux meter, the entire surplus power (power of the immersion heater plus any remaining grid feed-in) is always preferentially allocated to vehicle charging. If the vehicle charging accesses it, the autonomous regulation of the immersion heater ensures that its power is reduced accordingly. + +**Possible values**: A single value or a list of values of a `name` parameter in the [`meters`](#meters) configuration. The list version can also be used with single values. + +**Example**: + +```yaml +aux: myaux # single aux meter reference +``` + +or + +yaml + +```yaml +aux: + - myaux1 # first aux meter reference + - myaux2 # second aux meter reference +``` + +### `prioritySoc` +#### (in Battery UI, boundary between Home and Vehicle) + +Charging the house battery is prioritized over vehicle charging below the specified state of charge (SoC) (%) value. If there is more generation capacity available below this value than the battery can absorb, this surplus can still be used for vehicle charging, but as a lower priority. When the house battery is charged above this value, the battery charging power is considered as available surplus power for vehicle charging. Thus, vehicle charging takes priority in using the surplus power when it is above this SoC value. +It is disabled (equivalent to 0%) if no value is provided. + +:::note +`prioritySoc` must have a smaller value than `bufferSoc`. +::: + +**For example**: + +```yaml +prioritySoc: 50 # House battery has priority for charging up to 50% SoC +``` + +### `bufferSoc` +#### (in Battery UI, boundary between Vehicle and Battery-assisted Charging) + +Allows the discharging of a house battery above the specified state of charge (SoC) (%) value when there is insufficient solar surplus (below the minimum charging power). This helps balance fluctuations in generation or consumption primarily using the house battery. If the discharge power of the house battery is not enough to provide the minimum charging power for the vehicle, the remainder will be sourced from the grid. + +In `PV` mode, a charging process is automatically initiated when enough solar surplus is available. + +It is disabled (equivalent to >100%) if no value is provided. + +:::note +`bufferSoc` must have a larger value than `prioritySoc`. +::: + +**For example**: + +```yaml +bufferSoc: 80 # House battery is used as a buffer above 80% SoC +``` + +### `bufferStartSoc` +#### (in Battery UI, boundary in Battery-assisted Charging Range) + +In `PV` mode, allows the start of a charging process above the specified state of charge (SoC) (%) value, even if there is insufficient solar surplus. + +If the discharge power of the house battery is not enough to provide the minimum charging power for the vehicle, the remainder will be sourced from the grid. + +It is disabled (equivalent to 0%) if no value is provided. + +:::note +`bufferStartSoc` must have a larger value than `bufferSoc`. +::: + +**For example**: + +```yaml +bufferStartSoc: 90 # Charging process starts when the house battery reaches 90% SoC +``` + +### `residualPower` + +Sets the target operating point of the surplus regulation at the grid connection (grid meter). The default value is 0 W. +Negative values shift the target value towards grid feed-in, while positive values shift it towards grid consumption. +Ultimately, this value sets the "idle state" of the control loop that needs to be adjusted by the controller. + +Especially in combination with other independent surplus regulation systems like a battery storage, this value must be adjusted to achieve a defined system behaviour with clear priorities. + +If a certain proportion of grid consumption should remain or be allowed in PV mode, a negative value corresponding to the maximum proportion of grid consumption can be configured. + +#### `grid` `meter` present + +- Positive value: Remaining grid feed-in power +- Negative value: Remaining grid consumption power + +#### Only `pv` `meter` present + +- Positive value: Typical household consumption, used to estimate PV surplus. +- Negative value: The specified power is added to PV power and increases available charging power (Attention: grid consumption) + +:::info +When a battery storage is present, it is strongly recommended to enter a small value, e.g. between 100 to 300 W here, allowing battery charging according to configured priorities (see `prioritySoc`). Otherwise, the independent regulation of the storage will not see usable surplus. Likewise, this prevents temporary grid consumption even without a battery during rapid generation and load changes. +::: + +**Example "Battery Storage"**: + +```yaml +residualPower: 100 +``` + +**For example "Grid Consumption Proportion"**: + +Charging should start in PV mode with at least 6A (single-phase) even with only 50% PV surplus (rest from grid). +Minimum charging power: 1 phase _ 6A _ 230V = 1380 W, 50% of it: 690 W + +```yaml +residualPower: -690 +``` + +### `smartCostLimit` (formerly `cheap`) + +This parameter can set a price or gCO2-equivalent limit. In PV mode, charging starts when this limit is undercut. + +Example price limit (for variable tariffs): + +```yaml +smartCostLimit: 0.20 # 20 cents (or pence) +``` + +For example gCO2e limit (when using e.g. green energy index): + +```yaml +smartCostLimit: 550 # 550 gCO2 equivalent +``` + +### `maxGridSupplyWhileBatteryCharging` + +This parameter is only helpful for hybrid inverter systems where the DC power generated in combination with a directly connected storage system can be greater than the AC output power of the inverter. This can result in grid consumption during vehicle charging, even when the battery is being charged simultaneously. + +Scenario: +Maximum 10 kW AC output power of the hybrid inverter. Current PV generation is 15 kW, with 5 kW going into the directly connected battery since the AC path of the hybrid inverter is fully utilized at 10 kW. + +Normally, the current battery charging power is considered as additional available vehicle charging power (once `prioritySoc` is reached). In the above example, grid consumption could occur equal to the current battery charging power since the inverter cannot provide this power to the grid (and thus the vehicle). The fully utilized AC path of the hybrid inverter creates an unexpected bottleneck for the standard regulation. + +With this parameter, a threshold value for grid consumption can be set. If this threshold is reached, the battery charging power is not considered as available vehicle charging power in this scenario. This way, the maximum surplus charging power remains limited to the maximum AC output power of the inverter, plus this value. + +A recommended value is at least 50 Watts. Depending on the responsiveness of the control systems involved, it might need to be higher. + +```yaml +maxGridSupplyWhileBatteryCharging: 50 +``` From d825b4b281d604e17281326206ef69732448d6a4 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 14:31:42 +0200 Subject: [PATCH 09/28] i18n: + EN translation for reference/configuration/loadpoints.md --- .../reference/configuration/loadpoints.md | 432 ++++++++++++++++++ 1 file changed, 432 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/loadpoints.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/loadpoints.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/loadpoints.md new file mode 100644 index 0000000000..ca062d9d08 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/loadpoints.md @@ -0,0 +1,432 @@ +--- +sidebar_position: 3 +--- + +# `loadpoints` + +`loadpoints` (charging points) is a list of charging points that combines a charger, vehicles, and, if necessary, a meter with additional optional parameters for each charging point. A minimal configuration requires a charger. + +**For example**: + +```yaml +loadpoints: + - title: Garage # display name for UI + charger: charger # charger reference + vehicle: audi # reference to standard vehicle + mode: pv # charge mode (off, now, minpv, pv) +``` + +References always correspond to the values of the `name` parameter (e.g., `charger`) in the respective device configuration. + +Now, let's explain all possible parameters. + +--- + +## Required Parameters + +### `title` + +A description of the charging point, displayed in the user interface (UI). + +**For example**: + +```yaml +title: Garage +``` + +--- + +### `charger` + +Reference to a `charger` configuration. + +**For example**: + +```yaml +charger: charger +``` + +Where the value `charger` corresponds to the value of the `name` parameter in the [charger definition](chargers#name). + +--- + +## Optional Parameters + +### `meter` + +Reference to a `meter` (current meter) configuration. + +This entry is only needed if the used charger doesn't perform its own current measurement or if the measurement values cannot be read from the charger by evcc. However, even in this case, this entry is optional, because evcc assumes that the set maximum current will also be used for charging. + +**For example**: + +```yaml +meter: charge +``` + +Where the value `charge` corresponds to the value of the `name` parameter in the [current meter definition](meters#name). + +--- + +### `vehicle` + +`vehicle`: Reference to a `vehicle` configuration that is assigned as the default vehicle to the charging point. + +When a vehicle is plugged into the charger, it is assumed that this vehicle is connected. Automatic vehicle detection is bypassed. If a different vehicle is connected (e.g., guest vehicle), this can be manually assigned later. + +**For example**: + +```yaml +vehicle: renault +``` + +Where the value `renault` corresponds to the value of the `name` parameter in the [vehicle definition](vehicles#name). + +--- + +### `resetOnDisconnect` + +Defines whether the default settings for the following values should be restored when the charging cable is unplugged from the vehicle: + +- [`mode`](#mode) +- [`minCurrent`](#mincurrent) +- [`maxCurrent`](#maxcurrent) + +**Possible values**: + +- `true`: Restore default settings. +- `false`: Keep current settings. + +**Default value:** `true` + +**For example**: + +```yaml +resetOnDisconnect: true +``` + +--- + +### `mode` + +The default charging mode when evcc starts or after the vehicle is unplugged when `resetOnDisconnect: true` is set. + +**Possible values**: + +- `off`: Charging is stopped, even if a vehicle is connected to the charger. +- `now`: Start charging immediately at the maximum possible power. +- `minpv`: Start charging immediately at the minimum possible power. If sufficient PV surplus is available, charge faster. +- `pv`: Charge only using PV surplus and pause if there isn't enough power available. + +**Default value:** `pv` + +:::info +In general, an EV requires a minimum of 1.4 kW power per phase for charging. With chargers and vehicles that communicate via the ISO15118 standard, a total of at least 1.4 kW power is needed regardless of the number of phases used for charging. +::: + +**For example**: + +```yaml +mode: pv +``` + +--- + +### `soc` + +Defins the default settings for handling the State of Charge (SoC) of a connected vehicle. + +**For example**: + +```yaml +soc: + poll: + mode: charging + interval: 60m + estimate: true +``` + +#### `poll` + +Defines how vehicle APIs are used to retrieve real-time information about the vehicle. + +:::warning +Changing the default settings is **NOT** recommended, as it could lead to the vehicle's battery draining or the vehicle manufacturer actively preventing charging control via evcc. **Use at your own risk**. +::: + +#### `poll.mode` + +Defines under what conditions the vehicle data is retrieved. + +**Possible values**: + +- `charging`: Update data **ONLY** during a charging session (recommended default). +- `connected`: Update data when the vehicle is connected to the charger (not just when charging); the `interval` parameter defines the frequency. +- `always`: Update data always, even when the vehicle is not connected to the charger; the [`interval`](#interval) parameter defines the frequency (only supported for one vehicle per charging point). + +**Default value:** `charging` + +**For example**: + +```yaml +mode: charging +``` + +#### `poll.interval` + +Defines how often the vehicle is queried for data when it is **NOT** charging. + +**Default value:** `60m` + +**For example**: + +```yaml +interval: 60m +``` + +#### `estimate` + +Calculate (interpolate) the current SoC between vehicle data queries. + +**Possible values**: + +- `true`: evcc interpolates the SoC values between vehicle data queries (recommended). +- `false`: evcc only uses the SoC values returned by the vehicle. + +**Default value:** `true` + +**For example**: + +```yaml +estimate: false # No interpolation +``` + +--- + +### `enable` + +Defines the behaviour of starting charging in PV mode. Additionally, it defines the behaviour during automatic phase switching from 1p to 3p. + +**For example**: + +```yaml +enable: + threshold: 0 + delay: 1m +``` + +#### `threshold` + +Defines the power threshold at the grid connection point in watts (W). + +**Possible values**: A positive value for grid consumption, a negative value for grid export. When set to `0`, export must reach the minimum charging power. + +**Default value:** `0` + +**For example**: + +```yaml +threshold: 0 +``` + +:::info +If a residual power offset for the desired operating point of the surplus regulation is defined for the evcc site using the `residualPower` parameter, this value must be considered when setting the `threshold` value. + +For example, if `residualPower` is set to 200 (the evcc control sets the desired operating point to 200W feed-in), then setting an `enable` `threshold` value of 100 doesn't mean that charging will start at 100W grid consumption. Instead, the remaining feed-in power will be reduced by 100W, starting the charging at 100W feed-in. + +To start charging at 100W grid consumption in this case, the `threshold` value should be set to 300. +::: + +#### `delay` + +Defines how long the `threshold` must be met. + +**Default value:** `1m` + +**For example**: + +```yaml +delay: 1m +``` + +--- + +### `disable` + +Defines the behaviour of stopping charging in PV mode. Additionally, it defines the behaviour during automatic phase switching from 3p to 1p. + +**For example**: + +```yaml +disable: + threshold: 200 # maximum import power (W) + delay: 10m +``` + +#### `threshold` + +Defines the power threshold at the grid connection point in watts (W). + +**Possible values**: A positive value for grid consumption, a negative value for grid export. + +**Default value:** `0` + +**For example**: + +```yaml +threshold: 200 # Maximum grid consumption of 200W is allowed +``` + +:::info +If a residual power offset for the desired operating point of the surplus regulation is defined for the evcc site using the `residualPower` parameter, this value must be considered when setting the `threshold` value. Refer to the example in the [`enable`](#enable) `threshold` info. +::: + +#### `delay` + +Defines how long the `threshold` must be met. + +**Default value:** `3m` + +**For example**: + +```yaml +delay: 10m +``` + +--- + +### `guardduration` + +Defines the minimum time interval during which the power must be locked or unlocked. + +**Default value:** `5m` + +**For example**: + +At least 15 minutes interval between turning on and off the charging process. + +```yaml +guardduration: 15m +``` + +--- + +### `phases` + +**charger without automatic phase switching**: + +Defines the number of phases with which the charger is connected. + +This parameter does not change the physical connection of the charger but is used to determine the minimum starting power for charging in PV mode (in combination with `minCurrent`). + +Recently, the incoming voltages are evaluated if the charger's meter provides them. Based on the voltages, the `phases` value is automatically changed via API. In cases where the charger is set to 1p or 3p using a switch, manual changes to the `phases` value are no longer necessary. + +In cases where 1p/3p charging is realised using the corresponding charging cable rather than a switch, this "automatic" behaviour causes problems. In this case, the `phases` value must be adjusted in the `vehicle` accordingly. Since this value cannot be changed via API, the following workaround can be used: + +Configure the vehicle twice: once with `phases: 1` and once with `phases: 3`. Depending on the desired charging mode, select the appropriate vehicle in the UI. + +If a known vehicle is connected, the lower value between `vehicle: phases` and `loadpoint: phases` is used for calculation. For unknown vehicles, only `loadpoint: phases` is considered. + +While the vehicle is charging and the charger or charging meter provide phase currents, the actual number of phases is detected, and (as long as the vehicle remains connected) this is used for further calculations. This only works for three-phase charging points. + +**Default value:** `3` + +**Possible values:** `1|3` + +**For example**: + +```yaml +phases: 1 +``` + +**charger with automatic phase switching**: + +The value controls whether the automatic phase switching is enabled or disabled. + +`phases: 0` = Automatic switching enabled + +`phases: 1 or 3` = Automatic switching disabled, and the set value is fixed + +**Default value:** `3` + +**Possible values:** `0|1|3` + +**For example**: + +```yaml +phases: 0 +``` + +:::info +If the charging point is not assigned a charger but one of the supported controllable sockets (AVM FritzDECT, Shelly, Tasmota, TP-Link, etc.), `phases` must be set to **1** to ensure proper charging control. +::: + +--- + +### `minCurrent` + +Defines the minimum used current in amperes (A) per connected phase from the supply to the charger. + +As mentioned with `phases`, this value sets the minimum charging power. + +For chargers with automatic phase switching, it will continue to charge in 3p until this value (from above) is reached. Only then will it switch to 1p. + +:::info +In general, an electric vehicle requires a minimum current of 6A per phase to charge. However, some vehicles might require a higher minimum current! + +For chargers and vehicles communicating via the ISO15118 standard, it might be possible to charge with a lower current per phase if the total power is still at least around 1.4kW. +::: + +**Default value:** `6` + +**For example**: + +```yaml +mincurrent: 6 +``` + +--- + +### `maxCurrent` + +Defines the maximum allowable current in amps (A) per connected phase from the supply to the charger. + +For chargers with automatic phase switching, it will continue to charge in single phase until this value (from below) is reached. Only then will it switch to three-phase. + +**Default value:** `16` + +**For example**: + +```yaml +maxcurrent: 16 +``` + +--- + +### `priority` + +During charging, this parameter prioritises loadpoints with each other. + +The prioritised loadpoint is given the charging power of other non-prioritised loadpoints or those with lower priority. When a prioritised loadpoint accesses this power, it might lead to short-term grid consumption until the regulation stabilises. + +Higher values indicate higher priority. Loadpoints without an entry have `priority: 0`. + +When multiple loadpoints are present, this parameter doesn't influence the order in which the charging sessions are started. However, if a lower-priority loadpoint is charging, a higher-priority one might be switched on if it is given access to the unused charging power. + +This prioritisation works in `pv` and `minpv` modes. In `minpv` mode, charging is not interrupted, only reduced to the minimum. + +:::info + +If a vehicle has a priority defined, it overrides the priority of the loadpoint it is connected to. + +::: + +**Default value:** `0` + +**For example**: + +```yaml +priority: 2 +``` + +--- From f3c07a1509a26ae9e17b0fa667e3454ea4eff007 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 18:40:37 +0200 Subject: [PATCH 10/28] i18n: + EN translation for reference/configuration/chargers.mdx --- .../reference/configuration/chargers.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/chargers.mdx diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/chargers.mdx b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/chargers.mdx new file mode 100644 index 0000000000..def3538f60 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/chargers.mdx @@ -0,0 +1,67 @@ +--- +sidebar_position: 4 +--- + +import SponsorshipRequired from "/docs/_sponsorship_required.mdx"; + +# `chargers` + +To control the charging process, evcc must be able to communicate with a charger. + +A charger must have at least the following configuration: + +```yaml +chargers: + - name: charger1 # reference name + type: ... + ... +``` + +Below, the possible parameters are explained. + +--- + +## Required Parameters + +### `name` + +A short designation of the charger defined here. The value is used when referencing the charger in the configuration of the [charger](loadpoints#charger). + +**For example**: + +```yaml +name: charger1 +``` + +--- + +### `type` + +This is the evcc-specific charger type that allows communication with the charger. Known chargers can be integrated using the `template` type. The appropriate (template) type can be found under [devices - chargers](/docs/devices/chargers). + +For unknown chargers (or for other individual reasons), the default implementation can be used through [Plugins](/docs/reference/plugins). + +**For example**: + +```yaml +type: custom +``` + +--- +## Optional Parameters + +### `integrateddevice` + +This parameter causes chargers that operate without a "vehicle" (e.g. heat pump, eBike) to not display a vehicle, thus omitting vehicle detection. + +In connection with this parameter, an icon can also be assigned (see [`vehicle.icon`](/docs/reference/configuration/vehicles#icon)), which will then be displayed at the charger. + +**For example**: + +```yaml +integrateddevice: true +icon: bike +``` + +--- +``` \ No newline at end of file From fdcc4cc2b67baa1c32647184917c5a1ffcc7846f Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 19:01:07 +0200 Subject: [PATCH 11/28] i18n: + EN translation for reference/configuration/meters.md --- .../current/reference/configuration/meters.md | 448 ++++++++++++++++++ 1 file changed, 448 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/meters.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/meters.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/meters.md new file mode 100644 index 0000000000..4d9cacfc29 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/meters.md @@ -0,0 +1,448 @@ +--- +sidebar_position: 5 +--- + +# `meters` + +_Meters_ (current measurement devices) is a list of devices in the house that can measure power and energy consumption, PV generation, or house battery usage. A `meter` defines a point of energy measurement and can be a physical device (e.g., a meter at the grid connection point), a PV inverter (AC or DC in the case of hybrid inverters), or a battery inverter. + +Chargers may have an integrated meter or it can be externally connected. If a charger has an internal current measurement device, no entry for it needs to be created in `meters`. If the charger doesn't have such a meter, evcc will use the meter configured here and assigned to the charger under [`meters`](loadpoints#meters) in the charging point configuration, or assume that the charging power set is actually being used. + +evcc uses positive (+) values for incoming currents (grid consumption, PV generation, house battery discharge) and negative (-) values for outgoing currents (grid feed-in, PV inverter standby consumption, or house battery charging). Any other current consumption, including from the charger, is always a positive (+) value. + +The `meters` configuration is a list of different available devices. + +**For example**: + +```yaml +meters: + - name: grid + type: ... + - name: pv + type: ... + - name: battery + type: ... + - name: charge + type: ... + - name: aux + type: ... +``` + +Configurations for known devices can be found under [Devices - House Installation](/docs/devices/meters). + +Below, the various parameters are explained. + +--- + +## Required Parameters + +### `name` + +A short designation of the meter. The value is used when referencing the device in the configuration of the [site](site) or the [charger](loadpoints#meters). + +**For example**: + +```yaml +name: charger1 +``` + +--- + +### `type` + +This is the evcc-specific meter type that allows communication with the device. The appropriate type for known devices can be found under [Devices - House Installation](/docs/devices/meters). + +**For example**: + +```yaml +type: modbus +``` + +The various possible types and their additional parameters are documented below: + +--- + +## Supported Types + +### `movingaverage` + +This meter type can smooth fluctuating meter values. It can be used in all meter applications (`usage`). The `decay` parameter indicates the percentage of the new value to be included in the calculation. + +**For example** + +```yaml +meters: +- name: grid + type: movingaverage + decay: 0.1 + meter: + type: template + template: solarlog + usage: grid + host: 192.0.2.2 + ... +``` + +In this example, 10% of the new value is included. After 10 cycles, the oldest value is removed from the calculation. The duration of this process depends on the `interval`. + +--- + +### `modbus` + +Devices connected via the ModBus interface and supported by the [MBMD (ModBus Measurement Daemon)](https://github.com/volkszaehler/mbmd#supported-devices) project. + +**For example**: + +```yaml + type: modbus + power: Power + energy: Sum + soc: ChargeState + ... +``` + +#### Required Parameters + +In addition to the parameters defined here, additional parameters are necessary. These are listed in the [Modbus](/docs/reference/modbus) documentation. + +##### `power` + +Defines the MBMD measurement value that returns the power, typically `Power`. + +**For example**: + +```yaml +power: Power +``` + +--- + +##### `energy` + +Defines the method of measurement that MBMD returns for energy, typically `Sum`. + +**For example**: + +```yaml +energy: Sum +``` + +--- + +#### Optional Parameters + +##### `soc` + +Defines the method of measurement that MBMD returns for battery state of charge (SoC), typically `ChargeState`. + +**For example**: + +```yaml +soc: ChargeState +``` + +--- + +### `lgess` + +LG ESS Home 8/10 devices. + +**For example**: + +```yaml +type: lgess +usage: grid +uri: https://192.0.2.2/ +password: "DE200..." +``` + +:::note +The `uri` and `password` parameters are only required for a `meter` device if multiple devices are configured. +::: + +#### Required Parameters + +##### `usage` + +Defines which measurements are needed here. + +**Possible Values**: + +- **`grid`**: For measurements at the grid connection point +- **`pv`**: For measurements of PV generation +- **`battery`**: For measurements of the house battery + +--- + +##### `uri` + +Defines the URL within the home network of the LG ESS device. + +**For example**: + +```yaml +uri: https://192.0.2.2/ +``` + +--- + +##### `password` + +The registration number of the LG ESS HOME inverter must be entered here. + +**For example**: + +```yaml +password: "DE200..." +``` + +--- + +### `openwb` + +Using measurements from an OpenWB charger + +**For example**: + +```yaml +type: openwb +usage: grid +broker: 192.0.2.2 +``` + +:::note +The `uri` and `password` parameters are only required for a `meter` device if multiple devices are configured. +::: + +#### Required Parameters + +##### `usage` + +Defines which measurements are needed here. + +**Possible Values**: + +- **`grid`**: For measurements at the grid connection point +- **`pv`**: For measurements of PV generation +- **`battery`**: For measurements of the house battery + +--- + +##### `broker` + +Defines the hostname or IP address and port address within the home network of the OpenWB. + +**For example**: + +```yaml +broker: 192.0.2.2:1883 +``` + +--- + +### `sma` + +For using the SMA Home Manager 2.0, SMA Energy Meter, or an SMA inverter. Devices must support the Speedwire protocol. + +**For example**: + +```yaml +type: sma +uri: 192.0.2.2 +serial: 12345678 +interface: eth0 +``` + +--- + +#### Required Parameters + +:::note +It is sufficient to define either `uri` or `serial`. +::: + +##### `uri` + +Defines the hostname or IP address within the home network of the device. + +**For example**: + +```yaml +uri: 192.0.2.2 +``` + +##### `serial` + +Defines the serial number of the device from which measurements should be received. + +**For example**: + +```yaml +serial: 12345678 +``` + +#### Optional Parameters + +##### `interface` + +Multicast messages can only be received on a specific network interface. Usually, this is the first interface on the system. If it is not the interface connected to the meter, the interface needs to be explicitly specified. + +**For example**: + +```yaml +interface: eth0 +``` + +--- + +### `tesla` + +_`tesla`_: For using measurements from a Tesla Powerwall. + +**For example**: + +```yaml +type: tesla +usage: grid +uri: https://192.0.2.2/ +password: "***" +``` + +--- + +#### Required Parameters + +##### `usage` + +Defines which measurements are needed here. + +**Possible Values**: + +- **`grid`**: For measurements at the grid connection point +- **`pv`**: For measurements of PV generation +- **`battery`**: For measurements of the house battery + +--- + +##### `uri` + +Defines the hostname or IP address within the home network of the device. + +**For example**: + +```yaml +uri: 192.0.2.2 +``` + +--- + +##### `password` + +The password for the _customer_ user must be entered here. + +**For example**: + +```yaml +password: "ThePassword" +``` + +--- + +### `custom` + +Standard implementation, in which individual values are defined via [plugins](/docs/reference/plugins). + +**For example**: + +```yaml + type: custom + power: # Power (W) + source: # Plugin Type + ... + energy: # Energy (kWh) + source: # Plugin Type + ... + soc: # Battery SOC (%) + source: # Plugin Type + ... + capacity: # Optional Battery Capacity (kWh) + currents: # Current (A) per phase + - source: # Phase 1 Plugin Type + ... + - source: # Phase 2 Plugin Type + ... + - source: # Phase 3 Plugin Type + ... + ... +``` + +--- + +#### Required Parameters + +##### `power` + +Plugin definition to return power in watts (W). + +**For example**: + +```yaml + power: ... # Power (W) + source: # Plugin Type + ... +``` + +--- + +#### Optional Parameters + +##### `energy` + +Plugin definition to return consumed energy in kilowatt-hours (kWh). + +**For example**: + +```yaml + energy: ... # Energy (kWh) + source: # Plugin Type + ... +``` + +--- + +#### `soc` + +Plugin definition to return battery state of charge (SoC) in percentage (%). + +**For example**: + +```yaml + soc: ... # Battery SOC (%) + source: # Plugin Type + ... +``` + +--- + +#### `capacity` + +Indication of battery capacity. Only useful when multiple batteries are present. Used to determine the overall SoC. + +--- + +#### `currents` + +A list of plugin definitions to return current in amperes (A) per phase. + +**For example**: + +```yaml + currents: # Current (A) per phase + - source: # Phase 1 Plugin Type + ... + - source: # Phase 2 Plugin Type + ... + - source: # Phase 3 Plugin Type + ... + ... +``` From 1ace353845e542f0dfac3209276fa7b2a63b25c8 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 19:27:25 +0200 Subject: [PATCH 12/28] i18n: + EN translation for reference/configuration/vehicles.mdx --- .../reference/configuration/vehicles.mdx | 237 ++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/vehicles.mdx diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/vehicles.mdx b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/vehicles.mdx new file mode 100644 index 0000000000..0d19be9a5c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/vehicles.mdx @@ -0,0 +1,237 @@ +--- +sidebar_position: 6 +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import SponsorshipRequired from "/docs/_sponsorship_required.mdx"; + +# `vehicles` + +A vehicle represents a specific electric vehicle (EV) with its battery. When a vehicle is configured and assigned to a [charger](loadpoints#vehicle--vehicles), the user interface can display the charging status, state of charge (SoC), remaining charging time, and other data automatically retrieved and processed from the vehicle. + +It is also possible to limit the charge to a specific state of charge (SoC). Since most chargers cannot be aware of this (it is only transmitted in very specific charger combinations), evcc can communicate directly with the vehicle through the online interface (API) of the vehicle manufacturer using this configuration. + +The `vehicles` configuration is a list of different vehicles. + +**For example**: + +```yaml +vehicles: + - name: Zoe + type: ... + ... +``` + +Configurations for known vehicles can be found under [Devices - Vehicles](/docs/devices/vehicles). + +Below, the various parameters are explained. + +--- + +## Required Parameters + +### `name` + +A short designation of the configured vehicle. The value is used when referencing the vehicle in the configuration of the [charger](loadpoints#vehicle--vehicles). + +**For example**: + +```yaml +name: zoe +``` + +--- + +### `title` + +A description of the vehicle that will be displayed in the user interface. + +**For example**: + +```yaml +title: Zoe +``` + +--- + +### `type` + +This is the evcc interface type that allows communication with the vehicle. Known vehicles can be integrated using the `template` type. The appropriate (template) type for known vehicles and instructions for manual configuration `custom` can be found under [Devices - Vehicles](/docs/devices/vehicles). + +--- + +## Optional Parameters + +### `capacity` + +The capacity of the vehicle's battery in kilowatt-hours (kWh). + +**For example**: + +```yaml +capacity: 50 # kWh +``` + +--- + +### `phases` + +The _maximum_ number of phases this vehicle can use (possibly including the charging cable). The default internal value is 3. Possible values are 1, 2, or 3. + +Some vehicles, especially plug-in hybrids, do not use the maximum possible 3 phases for charging. While `evcc` can determine the actually used phases at the start of a charging process, if a charge meter is installed, this information is not available before charging starts. By configuring the `phases` parameter on the vehicle, `evcc` can start the charging process with a lower available power in PV mode. + +**For example**: + +```yaml +phases: 2 +``` + +--- + +### `cache` + +The retention time and suppression duration of external requests to the vehicle data interface (API). + +:::info +The value must be specified with the attached time unit (see example). `m` stands for minutes. +::: + +:::warning +It is **NOT** recommended to change the default settings, as this could lead to the vehicle manufacturer actively preventing charging control via evcc. **AT YOUR OWN RISK.** +::: + +To determine current status data from the vehicle (e.g., state of charge SoC of the traction battery), the manufacturer's interface is regularly queried online. However, to avoid overwhelming the vehicle manufacturer's servers with constant requests (which could result in account suspension), a cache is implemented that intercepts these requests and responds with the recently retrieved data up to the maximum age indicated here. Since most vehicles update the data only during a running charging process at very large intervals (10 to 30 minutes are common), more frequent requests don't provide added value. + +**Default Value:** `15m` + +**For example**: + +```yaml +cache: 5m +``` + +--- + +### `onIdentify` + +Default values to be applied when the vehicle is identified: + +**Possible Values**: + +- [`mode`](loadpoints#mode) +- [`minCurrent`](loadpoints#mincurrent) +- [`maxCurrent`](loadpoints#maxcurrent) +- `minSoc` charge at the highest possible power until the specified SoC is reached, if the mode is not set to `off` +- `targetSoc` stop charging when this SoC is reached +- [`priority`](https://docs.evcc.io/docs/reference/configuration/loadpoints/#priority) + +**For example**: + + + + When vehicles are integrated into the configuration using the type=templates, e.g., when using evcc configure. + + mode: pv + mincurrent: 8 + maxcurrent: 20 + minSoc: 40 + targetSoc: 80 + priority: 5 + + + + When vehicles are integrated using their native type, e.g., type=audi, in the configuration. + + onIdentify: # set defaults when vehicle is identified + mode: pv + mincurrent: 8 + maxcurrent: 20 + minSoc: 40 + targetSoc: 80 + priority: 5 + + + + +--- + +### `identifiers` + +A list of one or more identifiers to identify the vehicle. If the vehicle needs to be identified at different chargers, multiple identifiers might be necessary. Identification can be achieved using the following mechanisms: + +#### RFID + +If the charger has an RFID interface, an RFID card can be assigned to a vehicle for identification. In this case, the `RFID Token ID` is required. + +**For example**: + +```yaml +identifiers: + - 12345ABC # RFID token ID +``` + +#### Vehicle Identifier + +If the charger supports it, it receives a vehicle identifier from the vehicle. This can be either the MAC address of the onboard charger or an identifier of a permanently installed Plug & Charge certificate (a different certificate than for DC charging!). + +**For example**: + +```yaml +identifiers: + - 01:23:45:67:89:0A # MAC address +``` + +Some vehicles generate a new MAC address every day. In this case, wildcards can be used if the existing vehicles differ in the non-changing part of the MAC address. + +```yaml +identifiers: + - 01:23:45:* +``` + +--- + +### `features: ["coarsecurrent"]` + +Indicates that a vehicle cannot be regulated with continuous current limitation. + +This setting should be used for the following combination: + +- Vehicle can only regulate in whole ampere steps +- charger can process finer-grained charging current specifications (e.g., 1 mA) + +In this combination, it can happen that changes of a few mA in current result in an unexpected change of the phase current by 1A for regulation. The regulation may then start to oscillate. This feature also limits the regulation to coarse 1A steps. + +It CANNOT be used in conjunction with a vehicle template. To use it, the vehicle must be configured as a native type. + +**For example**: + +```yaml +features: ["coarsecurrent"] +``` + +--- + +### `icon` + +Vehicles can be displayed with different icons in the UI. The available options are: +- car +- bike +- scooter +- moped +- motorcycle +- van +- bus +- tractor +- generic +- heater +- cooler +- waterheater + +**For example**: + +```yaml +icon: heater +``` + +--- \ No newline at end of file From 68841ba5b4fe859430a4c4c8da3c914ffba0568d Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Mon, 14 Aug 2023 20:18:43 +0200 Subject: [PATCH 13/28] i18n: + EN translation for reference/configuration/hems.md --- .../current/reference/configuration/hems.md | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/hems.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/hems.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/hems.md new file mode 100644 index 0000000000..3c0ebcebeb --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/hems.md @@ -0,0 +1,149 @@ +--- +sidebar_position: 7 +--- + +# `hems` + +evcc can be integrated into existing Home Energy Management Systems (HEMS). Currently, the SMA Sunny Home Manager 2.0 (SHM) is supported! + +**For example**: + +```yaml +hems: + type: sma + ... +``` + +Below, the various parameters are explained. + +--- + +## Required Parameters + +### `type` + +Defines the HEMS system. + +**Possible Values**: + +- `sma`: For the SMA Sunny Home Manager 2.0. See [`sma`](#sma) + +**For example**: + +```yaml +type: sma +``` + +--- + +## Optional Parameters + +### `allowcontrol` + +Defines whether the HEMS defined should take over the charging control of evcc. + +**Possible Values**: + +- `true`: This allows adjusting the ratio of grid power to PV power for the **Min+PV** mode in the Sunny Portal using the "Optional energy demand" slider. If the required PV power is not available, charging will be interrupted as in the **PV** mode. Sliding the slider all the way to the left makes the **Min+PV** mode work as described. Sliding the slider all the way to the right makes the **Min+PV** mode behave like the **PV** mode. +- `false`: The SHM cannot influence the charging modes; they are controlled only by evcc. + +**For example**: + +```yaml +hems: + type: sma + allowcontrol: false + ... +``` + +--- + +## Optional SMA Parameters + +evcc registers each charging point with the SHM as an independent device. The device ID is generated by evcc. + +The device ID is a HEX string and is composed as follows + +```text +F-AAAAAAAA-BBBBBBBBBBBB-00 +``` + +- F: Vendor ID Type, predefined +- AAAAAAAA: See `vendorid` +- BBBBBBBBBBBB: See `deviceid` +- 00: Sub Device ID, predefined + +--- + +### `vendorid` + +Defines the VendorID used for generating the Device ID. If no Vendor ID is specified in the configuration, a predefined ID is used. + +HEX string, length 8 characters + +**For example**: + +```yaml +hems: + type: sma + vendorid: AAAAAAAA + ... +``` + +--- + +### `deviceid` + +Defines the device ID used for generating the Device ID. If no device ID is specified, evcc generates a random device ID depending on the current computer. + +HEX string, length: 12 characters + +**For example**: + +```yaml +hems: + type: sma + deviceid: BBBBBBBBBBBB + ... +``` + +:::info Docker Container +If evcc is running as a Docker container, `machine-id` must be mounted. See also [Docker Configuration](../../installation/docker) +::: + +#### Determine Previous DeviceID + +If evcc is moved to another computer, the randomly generated device ID also changes. In this case, the SHM recognizes evcc as a new device, and the previous devices are not recognized in the SMA Portal. + +To prevent this, the device ID from the previous system should be adopted: + +- Open the address `http://PREVIOUS-EVCC-HOST-IP-ADDRESS:7070/semp` in a browser. +- XML-formatted text will be displayed. The text starts in this form: + + ```xml + + + + F-28081973-BBBBBBBBBBBB-00 + ``` + +- The string at the location of `BBBBBBBBBBBB` corresponds to the DeviceID. +- This string must now be used in the configuration for `deviceid` in the new system. + +--- + +## HEMS Supported + +### `sma` + +Provides support for the SMA Sunny Home Manager 2.0 (SHM). + +Through this integration, [chargers](loadpoints) can be added to the SHM and, for example, considered for its control. + +**For example**: + +```yaml +hems: + type: sma + allowcontrol: false # set true to allow SHM controlling charger in PV modes +``` \ No newline at end of file From efb6a78261f887df08f3d7013364c0076bbab770 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 12:03:14 +0200 Subject: [PATCH 14/28] i18n: + EN translation for reference/configuration/uri.md --- .../current/reference/configuration/uri.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/uri.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/uri.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/uri.md new file mode 100644 index 0000000000..bd66474380 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/uri.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# `network` + +Defines the IP address or hostname and port on which the web interface should be accessed. + +**Example**: + +```yaml +network: + # schema is the HTTP schema + # setting to `https` does not enable https, it only changes the way URLs are generated + schema: http + # host is the hostname or IP address + # if the host name contains a `.local` suffix, the name will be announced on MDNS + # docker: MDNS announcements don't work. host must be set to the docker host's name. + host: evcc.local + # port is the listening port for UI and api + # evcc will listen on all available interfaces + port: 7070 +``` \ No newline at end of file From 90f4254facd9cee963fb790b0d83627524270dc4 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 12:07:47 +0200 Subject: [PATCH 15/28] i18n: + EN translation for reference/configuration/interval.md --- .../reference/configuration/interval.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md new file mode 100644 index 0000000000..f68a877ee2 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md @@ -0,0 +1,19 @@ +``` +sidebar_position: 9 +``` + +# `interval` + +Defines the time interval at which new values are read from all measurement devices and the charging currents of the chargers are re-regulated. + +**Possible values**: A numerical value followed by the time unit + +**For example**: + +```yaml +interval: 30s # every 30 seconds +``` + +:::caution +Too short an interval ( < 30s ) can lead to undesired behaviour (oscillations in regulation) if the components involved do not have enough reaction time before the next control cycle begins. Experience shows that an interval of 10s to 15s is possible if all components react quickly enough. This should be tested individually. +::: From 5fa47c3c9a79dfde47b2ad27a8d2e19267b429c6 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 12:27:46 +0200 Subject: [PATCH 16/28] i18n: fixed formatting in reference/configuration/interval.md --- .../current/reference/configuration/interval.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md index f68a877ee2..4c882d21dc 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/interval.md @@ -1,6 +1,6 @@ -``` +--- sidebar_position: 9 -``` +--- # `interval` From b513a2f466abe6b472f5fec1874db17cbb56e542 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 12:43:13 +0200 Subject: [PATCH 17/28] i18n: + EN translation for reference/configuration/log.md --- .../current/reference/configuration/log.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/log.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/log.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/log.md new file mode 100644 index 0000000000..1c4e2344a3 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/log.md @@ -0,0 +1,56 @@ +--- +sidebar_position: 10 +--- + +# `log, levels` + +## `log` + +Defines the level of detail for logging information to the console. + +**Possible values**: + +- `fatal`: Only messages of the `fatal` category will be displayed. These are errors that prevent the system from functioning. +- `error`: Only messages of the `error` category will be displayed. There are very few of this type of message. +- `warn`: Includes `error`, additionally shows messages of the `warn` category. +- `info`: Includes `warn`, additionally shows messages of the `info` category. +- `debug`: Includes `info`, additionally shows messages of the `debug` category. This is necessary for error analysis. +- `trace`: Includes `debug`, additionally shows messages of the `trace` category. This is the most detailed category and can result in very large log data. In general, this is not usually needed! + +When running evcc in the console, the `log` messages are simply directed to the standard output. +If evcc is run as a Linux systemd service, messages can be tracked using `sudo journalctl -fau evcc`, see [Logfile zur Fehleranalyse](/docs/guides/setup#how-can-i-create-a-logfile-for-error-analysis). +In the case of a Docker installation, you can view the messages using `docker logs`, see [Docker Documentation](https://docs.docker.com/config/containers/logging/). + +**For example**: + +```yaml +log: error +``` + +--- + +## `levels` + +Allows configuring different logging levels for various components of evcc. + +Defines the level of detail for logging for different evcc components. + +**Possible components**: + +- `site`: The central evcc component (control, calculations, ...) +- `lp-X`: The respective charging point, where `X` is numbered according to the order of [`loadpoints`](loadpoints) configuration (charging points), starting at `1` +- `sma`: The SMA HEMS component if SMA Sunny Home Manager 2.0 is integrated using [`hems`](hems) +- _`vehicle`_: Each [`vehicle`](vehicles) (vehicle), where you must specify the corresponding value of the [`type`](vehicles#type) parameter (or template). +- Additionally, depending on the use case, additional components can be specified (e.g. `cache`, `db`, `influx`, `mqtt`, ...) + +**Possible values for each component**: Identical to the values of [`log`](#log) + +**For example**: + +```yaml +levels: + site: debug + lp-1: debug + lp-2: debug + tesla: trace +``` From c8db3c8af32b3700c5e946556819ba4e65043cca Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 13:45:27 +0200 Subject: [PATCH 18/28] i18n: + EN translation for reference/configuration/tariffs.md --- .../reference/configuration/tariffs.md | 327 ++++++++++++++++++ 1 file changed, 327 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/tariffs.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/tariffs.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/tariffs.md new file mode 100644 index 0000000000..3819909a98 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/tariffs.md @@ -0,0 +1,327 @@ +--- +sidebar_position: 11 +--- + +# `tariffs` + +Here you can specify your energy tariff and, if applicable, your feed-in remuneration. Evcc uses these values for a rough [Einsparungsberechnung](/docs/guides/setup#ersparnisberechnung) displayed in the web UI. + +Furthermore, the planner uses these settings for price- or CO2-optimised target charging. These settings are taken into account in the following order: "flexible grid tariff" before "CO2 tariff" before "constant grid tariff". + +**Structure** + +```yaml +tariffs: + grid: + type: ... + feedin: + type: ... + co2: + type: ... +``` + +**For example: Constant Energy Price** + +```yaml +tariffs: + currency: EUR # (default EUR) + grid: + # static grid price + type: fixed + price: 0.294 # [currency]/kWh + + feedin: + # rate for feeding excess (pv) energy to the grid + type: fixed + price: 0.08 # [currency]/kWh +``` + +**For example: Constant Energy Price with Time-dependent Tariffs** + +```yaml +tariffs: + currency: EUR # (default EUR) + grid: + # static grid price with price zones) + type: fixed + price: 0.294 # EUR/kWh + zones: + - days: Mo-Fr + hours: 2-5 + price: 0.2 # EUR/kWh + - days: Sa,So + price: 0.15 # EUR/kWh +``` + +evcc supports the use of flexible electricity tariffs from [Awattar](https://www.awattar.de), [Tibber](https://tibber.com), or [Octopus Energy](https://octopus.energy). The configuration allows defining "cheap" prices (see `smartCostLimit` in site), where charging from the grid with the maximum possible power is enabled even if there is not enough PV power available. + +**For example: Flexible Energy Price** + +```yaml +tariffs: + grid: + # either + type: tibber + token: "476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4" # access token + homeid: "cc83e83e-8cbf-4595-9bf7-c3cf192f7d9c" # optional if multiple homes associated with account + + # or + type: awattar + region: de # optional, choose at for Austria + charges: 0 # optional, additional charges per kWh + tax: 0 # optional, additional tax (0.1 for 10%) +``` + +Below, the various parameters are explained: + +--- + +## `currency` + +Currency in which energy prices are presented and calculated. + +**Default value:** `EUR` + +**Possible values:** `EUR|CHF|USD|NOK|GBP|...` Currency codes according to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) + +--- + +## `grid` + +The following tariff types (`type`) are supported: + +**Possible values:** `fixed|awattar|tibber|octopusenergy` + +--- + +### `type:` **`fixed`** + +Fixed energy price for grid consumption. + +**For example**: + +```yaml +type: fixed +price: 0.297 # 0.297 [currency]/kWh +``` + +#### `price` + +The price in [currency]/kWh that you pay to your electricity supplier. Used for savings calculation. + +**Default value:** `0.30` + +--- + +### `type:` **`awattar`** + +The electricity provider [Awattar](https://www.awattar.de). + +**For example**: + +```yaml +type: awattar +region: de # optional +charges: 0 # optional, additional charges per kWh +tax: 0 # optional, additional tax (0.1 for 10%) +``` + +#### `region` + +The region you are located in. + +**Possible values**: + +- **`de`**: Germany +- **`at`**: Austria + +--- + +### `type:` **`tibber`** + +The electricity provider [Tibber](https://www.tibber.com). + +**For example**: + +```yaml +type: tibber +token: "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" +homeid: "12345678-90ab-cdef-1234-567890abcdef" # optional +``` + +#### `token` + +The access token of the provider. + +#### `homeid` + +The ID of the location, if there are multiple locations associated with the account. + +--- + +### `type:` **`octopusenergy`** + +The electricity provider [Octopus Energy](https://octopus.energy) in the United Kingdom. + +:::tip Tariff and Regional Codes +Determining the tariff and regional codes is not covered in this documentation. +::: + +**For example**: + +```yaml +type: octopusenergy +tariff: AGILE-FLEX-22-11-25 # Tariff code +region: A # optional +``` + +#### `tariff` + +The tariff code for your energy contract. + +#### `region` + +The DNO region you are in: [More information](https://www.energy-stats.uk/dno-region-codes-explained/) + +**Possible values**: + +- **`A`**: Eastern England +- **`B`**: East Midlands +- **`C`**: London +- **`D`**: Merseyside and Northern Wales +- **`E`**: West Midlands +- **`F`**: North Eastern England +- **`G`**: North Western England +- **`H`**: Southern England +- **`J`**: South Eastern England +- **`K`**: Southern Wales +- **`L`**: South Western England +- **`M`**: Yorkshire +- **`N`**: Southern Scotland +- **`P`**: Northern Scotland + +--- + +### `type:` **`elering`** + +The electricity provider [Nordpool Estonia](https://elering.ee) in Estonia. + +**For example**: + +```yaml +type: elering # Nordpool +region: ee # or lt, lv, fi +charges: # optional, additional charges per kWh +tax: # optional, additional tax (0.1 for 10%) +``` + +--- + +### `type:` **`energinet`** + +The electricity provider [Energinet](https://energinat.dk) in Denmark. + +**For example**: + +```yaml +type: energinet # Energinet using the price in DKK +region: dk1 # or dk2 +charges: # optional, additional charges per kWh +tax: # optional, additional tax (0.1 for 10%) +``` + +--- + +## `feedin` + +Feed-in tariffs. For older German installations (before 1.4.2012), enter the difference between the feed-in and self-use tariff here. + +**Possible values:** `fixed|octopusenergy` + +### `type:` **`fixed`** + +Fixed feed-in remuneration. + +**For example**: + +```yaml +type: fixed +price: 0.12 # 0.12 [currency]/kWh +``` + +#### `price` + +The price in [currency]/kWh that you receive from the grid operator. Used for savings calculation. + +**Default value:** `0.08` + +--- + +### `type:` **`octopusenergy`** + +The electricity provider [Octopus Energy](https://octopus.energy) in the United Kingdom. + +:::tip Tariff and Regional Codes +Determining the tariff and regional codes is not covered in this documentation. +::: + +**For example**: + +```yaml +type: octopusenergy +tariff: AGILE-FLEX-22-11-25 # Tariff code +region: A # optional +``` + +#### `tariff` + +The tariff code for your energy contract. Make sure this is set to your **import tariff code**. + +#### `region` + +The DNO region you are in: [More information](https://www.energy-stats.uk/dno-region-codes-explained/) + +**Possible values**: + +- **`A`**: Eastern England +- **`B`**: East Midlands +- **`C`**: London +- **`D`**: Merseyside and Northern Wales +- **`E`**: West Midlands +- **`F`**: North Eastern England +- **`G`**: North Western England +- **`H`**: Southern England +- **`J`**: South Eastern England +- **`K`**: Southern Wales +- **`L`**: South Western England +- **`M`**: Yorkshire +- **`N`**: Southern Scotland +- **`P`**: Northern Scotland + +--- + +## `co2` + +In addition to optimising the charging schedule based on costs, optimisation can also be done based on other criteria, such as CO2 emissions. This enables CO2-optimised charging even when a variable tariff is not used. Optimisation can be done using the Grünstromindex or ElectricityMaps. + +### `type:` **`grünstromindex`** + +**For example**: + +```yaml +co2: + type: grünstromindex + zip: my post code # For post codes with leading zeros, enclose in "" +``` + +### `type:` **`electricitymaps`** + +**For example**: + +```yaml +co2: + type: electricitymaps + uri: + token: + zone: DE +``` From f41a05b0f65babe734e13d39e8f603637a538aca Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 15:54:36 +0200 Subject: [PATCH 19/28] i18n: + EN translation for reference/configuration/messaging.md --- .../reference/configuration/messaging.md | 357 ++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/messaging.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/messaging.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/messaging.md new file mode 100644 index 0000000000..1feef83dde --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/messaging.md @@ -0,0 +1,357 @@ +--- +sidebar_position: 12 +--- + +# `messaging` + +evcc supports the transmission of status information via [Telegram](https://telegram.org), [PushOver](https://pushover.net), [ntfy](https://ntfy.sh), and many other services using the [shoutrrr](https://containrrr.dev/shoutrrr/) system. The configuration allows defining custom messages for specific events and systems. + +`messaging` defines in sub-elements what and how to send. The events for which messages should be sent must be defined under `events` and the services through which the messages should be sent must be defined under `services`. + +**For example**: + +```yaml +messaging: + events: ... + services: ... +``` + +## `events` + +`events` defines the message content for various predefined events. + +The available events are: + +- `start`: Charging has started +- `stop`: Charging has stopped +- `connect`: Vehicle connected +- `disconnect`: Vehicle disconnected +- `soc`: Vehicle battery state of charge changed +- `guest`: Unknown vehicle detected + +**For example**: + +```yaml +start: # charge start event + title: Charge started + msg: Started charging in "${mode}" mode +``` + +### `title` + +`title` defines the text for the message title. + +**For example**: + +```yaml +title: Charge started +``` + +### `msg` + +`msg` defines the text for the message content. Various variables in the format `${}` can be used to display evcc information in the text. +:::note +When using variables, make sure to use the correct capitalisation (uppercase/lowercase)! +::: + +**Useful messages for use in evcc notifications**: + +| msg Variable | Description | +| ------------------------ | ------------------------------------------------------------------------------- | +| `${chargedEnergy:%.1fk}` | Energy amount charged in kWh | +| `${chargeDuration}` | Charging duration | +| `${connectedDuration}` | Charger connection duration | +| `${loadpoint}` | Number of [`loadpoints`](loadpoints) (charging point) 1,2... | +| `${mode}` | Active charging mode (see [`mode`](loadpoints/#mode) of [`loadpoints`](loadpoints)) | +| `${pvPower:%.1fk}` | Currently measured PV power in kW | +| `${title}` | Charging point: Text from [`loadpoints`](loadpoints) [`title`](loadpoints/#title) parameter | +| `${vehicleTitle}` | Vehicle: Text from [`vehicles`](vehicles) [`title`](vehicles/#title) parameter | + +**For example**: + +```yaml + # Message examples using evcc variables + # start + msg: Charger ${title} started charging ${vehicleTitle} in ${mode} mode + # stop + msg: Charger ${title} finished charging ${vehicleTitle} with ${chargedEnergy:%.1fk}kWh in ${chargeDuration} + # connect + msg: ${vehicleTitle} connected on Charger ${title} at ${pvPower:%.1fk}kW PV + # disconnect + msg: ${vehicleTitle} disconnected of Charger ${title} after ${connectedDuration} +``` + +:::note +To render the `msg` texts, you can also use the [go text/template](https://pkg.go.dev/text/template) syntax in combination with [sprig functions](http://masterminds.github.io/sprig/). + +```yaml +# Message config using evcc go-text-template rendering, evcc variables and sprig-functions +messaging: + events: + start: # charge start event + title: Charge of {{.vehicleTitle}} started + msg: | + Charger {{.title}} started charging {{.vehicleTitle}} in {{ toString .mode | upper }} mode. + -------------------------- + evcc Status {{printf `(%d-%02d-%02d %02d:%02d:%02d)` now.Year now.Month now.Day now.Hour now.Minute now.Second}} + Grid power: {{round (divf .gridPower 1000) 3 }} kW + Solar power: {{round (divf .pvPower 1000) 3 }} kW + Home consumption: {{round (divf .homePower 1000) 3 }} kW + {{if .batteryConfigured}}Battery storage status: {{round (divf .batteryPower 1000) 3 }} kW ({{.batterySoc }} %){{end}} + stop: # charge stop event + title: Charge of {{.vehicleTitle}} finished + msg: | + Charger {{.title}} finished charging {{.vehicleTitle}} + with {{round (divf .chargedEnergy 1000) 2 }} kWh in {{.chargeDuration}}. + -------------------------- + evcc Status {{printf `(%d-%02d-%02d %02d:%02d:%02d)` now.Year now.Month now.Day now.Hour now.Minute now.Second}} + Grid power: {{round (divf .gridPower 1000) 3 }} kW + Solar power: {{round (divf .pvPower 1000) 3 }} kW + Home consumption: {{round (divf .homePower 1000) 3 }} kW + {{if .batteryConfigured}}Battery storage status: {{round (divf .batteryPower 1000) 3 }} kW ({{.batterySoc }} %){{end}} + connect: # vehicle connect event + title: "{{.vehicleTitle}} connected on Charger {{.title}}" + msg: | + {{.vehicleTitle}} connected on Charger {{.title}} at {{round (divf .pvPower 1000) 2 }} kW PV. + -------------------------- + evcc Status {{printf `(%d-%02d-%02d %02d:%02d:%02d)` now.Year now.Month now.Day now.Hour now.Minute now.Second}} + Grid power: {{round (divf .gridPower 1000) 3 }} kW + Solar power: {{round (divf .pvPower 1000) 3 }} kW + Home consumption: {{round (divf .homePower 1000) 3 }} kW + {{if .batteryConfigured}}Battery storage status: {{round (divf .batteryPower 1000) 3 }} kW ({{.batterySoc }} %){{end}} + disconnect: # vehicle connected event + title: "{{.vehicleTitle}} disconnected of Charger {{.title}}" + msg: | + {{.vehicleTitle}} disconnected of Charger {{.title}} after {{.connectedDuration}}. + -------------------------- + evcc Status {{printf `(%d-%02d-%02d %02d:%02d:%02d)` now.Year now.Month now.Day now.Hour now.Minute now.Second}} + Grid power: {{round (divf .gridPower 1000) 3 }} kW + Solar power: {{round (divf .pvPower 1000) 3 }} kW + + + Home consumption: {{round (divf .homePower 1000) 3 }} kW + {{if .batteryConfigured}}Battery storage status: {{round (divf .batteryPower 1000) 3 }} kW ({{.batterySoc }} %){{end}} +``` + +::: + +**List of all evcc-provided variables**: + +The variables provided by evcc (also see /api/state) must be defined as `${}` or in the go-template format `{{}}` in the message text. Multiple variables in the message text are possible. + +- Site + - Configuration + - [`siteTitle`](site) - Main headline of the evcc app (_string_) + - [`prioritySoc`](site/#prioritysoc) - Minimum Powerwall state of charge in percent before [PV mode](loadpoints/#mode) release (_integer_) + - Information + - `batteryConfigured` - Indicator, home battery/Powerwall meter configured (_bool_) + - `gridConfigured` - Indicator, smart/grid meter configured (_bool_) + - `pvConfigured` - Indicator, solar panels/photovoltaic meter configured (_bool_) +- Tariff Information + - [`currency`](tariffs) - Tariff currency (_string_) + - [`tariffFeedIn`](tariffs/#feedin) - PV feed-in remuneration per kWh in tariff currency (float) + - [`tariffGrid`](tariffs/#grid) - Grid consumption price per kWh in tariff currency (float) +- Meter Information + - `batteryPower` - Current home battery/Powerwall power in watts (_float_) + - `batterySoc` - Current state of charge of home battery/Powerwall in percent (_integer_) + - `gridPower` - Current grid feed-in(-) or consumption(+) in watts (_float_) + - `homePower` - Current home consumption power (excluding Charger consumption) in watts (_float_) + - `pvPower` - Current solar panels power in watts (_float_) +- Charging Point (loadpoint) + - Configuration + - [`loadpoint`](loadpoints) - Loadpoint index (_integer_) + - [`maxCurrent`](loadpoints#maxcurrent) - Maximum charging current in amperes (_float_) + - [`minCurrent`](loadpoints#mincurrent) - Minimum charging current in amperes (_float_) + - [`minSoc`](loadpoints#min) - Minimum state of charge of the vehicle battery in percent (_integer_) + - [`mode`](loadpoints/#mode) - Initial mode of the charging point after evcc start `off`/`now`/`min`/`pv` (_string_) + - [`phases`](loadpoints/#phases) - Initial active number of phases of the charging point after evcc start (_integer_) + - [`targetSoc`](loadpoints#target) - Target state of charge of the vehicle battery in percent (_integer_) + - [`title`](loadpoints/#title) - Label of the charging point in the evcc app (_string_) + - Information + - `activePhases`- Currently active number of phases of the charging point (_integer_) + - `chargeCurrent` - Current total charging current in amperes (_float_) + - `chargeCurrents` - Current charging current per active phase in amperes (_float_) + - `chargeDuration` - Charging duration in nanoseconds (_integer_) + - `chargePower` - Current charging power in watts (_float_) + - `chargeRemainingDuration` - Charging time in nanoseconds until the target state of charge (_integer_) + - `chargeRemainingEnergy` - Required energy until the target state of charge in watt-hours (_float_) + - `chargedEnergy` - Energy charged so far in watt-hours (_float_) + - `charging` - Indicator, charging process active (_bool_) + - `enabled` - Indicator, charging enabled (_bool_) + - `hasVehicle` - Indicator, vehicle definitions assigned to the charging point (_bool_) + - `targetTime` - Target charging time in nanoseconds since 1970 UTC (_integer_) + - `pvAction` - Control variable for PV timer control `enable`/`disable` (_string_) + - `pvRemaining` - Required PV remaining charging time with activated timer control in nanoseconds (_integer_) +- Vehicles (vehicles) + - Configuration + - [`vehicleCapacity`](vehicles/#capacity)- Capacity of the vehicle battery in watt-hours (_float_) + - [`vehicleTitle`](vehicles/#title) - Label of the vehicle in the evcc app (_string_) + - Information + - `climater` - Status of vehicle climatisation `on`/`off`/`heating`/`cooling` (_string_) + - `connected` - Indicator, vehicle connected to the charging point (_bool_) + - `connectedDuration` - Duration of vehicle connection in nanoseconds (_integer_) + - `vehicleOdometer` - Current vehicle odometer reading in kilometers (_float_) + - `vehiclePresent` - Indicator, evcc can access vehicle data (_bool_) + - `vehicleRange` - Current vehicle range in kilometers (_float_) + - `vehicleSoc` - Current state of charge of the vehicle battery in percent (_integer_) +- Savings Efficiency Information + - `savingsAmount` - Sum of evcc savings (_float_) + - `savingsEffectivePrice` - Calculated savings price (_float_) + - `savingsGridCharged` - Consumed grid energy in Wh (_float_) + - `savingsSelfConsumptionCharged` - Consumed solar energy in Wh (_float_) + - `savingsSelfConsumptionPercent` - Percentage of consumed solar energy in Wh (_float_) + - `savingsSince` - Time period of savings calculation in nanoseconds (_integer_) + - `savingsTotalCharged` - Total energy consumed in Wh (_float_) +- Charging Session Information + - `sessionSolarPercentage` - Solar percentage of the session + - `sessionPrice` - Price of the charged energy of the session + - `sessionPricePerKWh` - Average price of energy per kWh of the session + - `sessionCO2PerKWh` - Average CO2 emissions per kWh +- Sponsor + - Configuration + - [`auth`](sponsortoken) - Authentication token of the evcc sponsor (_string_) + - Information + - `sponsor` - Name of the evcc sponsor (_string_) + +## `services` + +`services` defines a list of message services to be used. + +**For example**: + +```yaml +services: + - type: pushover + app: 12345 + recipients: + - 234567 +``` + +The following sections will now explain all the required parameters. + +### `type` + +`type` defines the type of message service to be used. + +**Possible values**: + +- `pushover`: [Pushover](https://pushover.net/). See [`pushover`](#pushover) definition +- `telegram`: [Telegram Messenger](https://telegram.org/). See [`telegram`](#telegram) definition +- `email`: Email. See [`email`](#email) definition +- `shout`: [shoutrrr](https://contain + +rrr.dev/shoutrrr). See [`shout`](#shout) definition +- `script`: Can initiate external scripts to send messages. It's also useful to include any kind of external functionality. See [`script`](#script) definition + +**For example**: + +```yaml +services: + - type: pushover +``` + +--- + +## Supported Services + +### `pushover` + +`pushover` uses the [Pushover](https://pushover.net/) service. Details can be found at [Pushover API](https://https://pushover.net/api). + +**For example**: + +```yaml +- type: pushover + app: # API Token/Key of the created application in Pushover + recipients: + - # List of recipients: either User Key or Delivery Group. Groups created in Pushover can be limited to specific devices. + devices: + - Johns phone + - Mias ticker +``` + +### `telegram` + +`telegram` uses the [Telegram Messenger](https://telegram.org/) service. + +**For example**: + +```yaml +- type: telegram + token: # bot id : each running instance of evcc needs its own bot id + chats: + - # List of chat or group IDs. Each entry requires a - sign in the beginning and must be in a separate line. + - -GroupID #Note: Group IDs in Telegram have a - sign + - ChatID +``` + +### `email` + +`email` uses the [shoutrrr](https://containrrr.dev/shoutrrr) service. + +Here, the parameter `uri` with the value `smtp://:@:/?fromAddress=&toAddresses=` is expected. The placeholders are to be replaced as follows: + +- ``: Address (hostname or IP address) of the email server +- ``: Port address of the email server +- ``: Username for the email server +- ``: User password +- ``: Sender's email address +- ``: Recipient's email address + +**For example**: + +```yaml +- type: email + uri: smtp://username:password@emailserver.domain:1234/?fromAddress=sender@mail.com&toAddresses=recipient@mail.com +``` + +### `shout` + +`shout` uses the [shoutrrr](https://containrrr.dev/shoutrrr) service and supports all its services. + +The configuration is shown in the following example using [Gotify](https://gotify.net/), and the same applies to the other options through the same method. + +**For example**: + +```yaml +- type: shout + uri: gotify://gotify.example.com:443/AzyoeNS.D4iJLVa/?priority=1 +``` + +Further information can be found in the [shoutrrr documentation](https://containrrr.dev/shoutrrr/v0.5/services/overview/) on [supported services](https://containrrr.dev/shoutrrr/v0.5/services/overview/). + +### `ntfy` + +`ntfy` uses the [ntfy](https://ntfy.sh) service. + +Here, the parameter `uri` with the value `https:///` is expected. The placeholders are to be replaced as follows: + +- ``: Address (hostname or IP address) of the ntfy server +- ``: Subscribed topic or topics + +Optional parameters are `priority` and `tags`. All parameters are passed as strings. + +**For example**: + +```yaml +- type: ntfy + uri: https://ntfy.sh/evcctestalerts + priority: default + tags: electric_plug,blue_car +``` + +Further information can be found in the [ntfy documentation](https://docs.ntfy.sh). + +### `script` + +`script` starts shell scripts or other commands to send messages or start any action based on the [events](#events). + +The path to the script must be specified in `cmdline`. Likewise, a `timeout` should be set. The `timeout` specifies after how much time the script will be aborted. + +**For example**: + +```yaml +- type: script + cmdline: /home/pi/sendSignalMessage.sh + timeout: 50s +``` From acca9fa2f90e46eeb03663b6128bf93f373e1bdd Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:02:45 +0200 Subject: [PATCH 20/28] i18n: + EN translation for reference/configuration/eebus.md --- .../current/reference/configuration/eebus.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/eebus.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/eebus.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/eebus.md new file mode 100644 index 0000000000..6990954752 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/eebus.md @@ -0,0 +1,106 @@ +--- +sidebar_position: 13 +--- + +# `eebus` + +:::warning +EEBUS support is still experimental. Please expect some issues while using it! +::: + +**For example**: + +```yaml +eebus: + shipid: EVCC-1234567890abcdef + interfaces: + - eth0 + certificate: + public: | + -----BEGIN CERTIFICATE----- + 1234567890abcdef== + -----END CERTIFICATE----- + private: | + -----BEGIN EC PRIVATE KEY----- + 1234567890abcdef + -----END EC PRIVATE KEY----- +``` + +--- + +## Required Parameters + +### `certificate` + +Defines the certificate and its private key to be used for the required HTTPS connection. + +This can be generated using `evcc eebus-cert`. + +**For example**: + +```yaml +certificate: + public: | + -----BEGIN CERTIFICATE----- + 1234567890abcdef== + -----END CERTIFICATE----- + private: | + -----BEGIN EC PRIVATE KEY----- + 1234567890abcdef + -----END EC PRIVATE KEY----- +``` + +--- + +### `certificate.public` + +The public certificate. + +**For example**: + +```yaml +public: | + -----BEGIN CERTIFICATE----- + 1234567890abcdef== + -----END CERTIFICATE----- +``` + +--- + +### `certificate.private` + +The private key of the certificate. + +**For example**: + +```yaml +private: | + -----BEGIN EC PRIVATE KEY----- + 1234567890abcdef + -----END EC PRIVATE KEY----- +``` + +--- + +## Optional Parameters + +### `interfaces` + +Defines a list of network interfaces through which EEBUS should communicate. By default, all interfaces are used, but this might lead to communication issues. + +**For example**: + +```yaml +interfaces: + - eth0 +``` + +### `shipid` + +Defines the Device ID (SKI) to be used. + +**For example**: + +```yaml +shipid: EVCC-1234567890abcdef +``` From aecea07d5cfeedf35993dccbbb0bf893e608ef2d Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:06:52 +0200 Subject: [PATCH 21/28] i18n: + EN translation for reference/configuration/mqtt.md --- .../current/reference/configuration/mqtt.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/mqtt.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/mqtt.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/mqtt.md new file mode 100644 index 0000000000..9618659f4f --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/mqtt.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 14 +--- + +# `mqtt` + +Establishes connectivity with an MQTT broker. +When the connection is active, evcc automatically pushes all internal values to the specified topic via the MQTT broker and also receives changes there. +For more information, refer to the [`MQTT API`](/docs/reference/api/#mqtt-api) documentation. + +**For example**: + +```yaml +# mqtt message broker +mqtt: + broker: localhost:1883 + topic: evcc # root topic for publishing, set empty to disable publishing + # clientid: foo + # user: + # password: +``` + +--- + +## Required Parameters + +### `broker` + +Connection details (hostname/IP and port) of the MQTT broker to which evcc should connect as a client. + +### `topic` + +Specifies the root topic that evcc uses. +If not specified here, no MQTT communication can take place! + +--- + +## Optional Parameters + +### `user` + +The username for authentication to the MQTT broker. + +### `password` + +The authentication password for the MQTT broker. + +### `clientid` + +Specifies a fixed MQTT client ID. By default, it will be assigned dynamically. From 5571d1f9fa7d4a60e31aa82e2f5a1aa39fab69d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:09:51 +0200 Subject: [PATCH 22/28] i18n: + EN translation for reference/configuration/influx.md --- .../current/reference/configuration/influx.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/influx.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/influx.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/influx.md new file mode 100644 index 0000000000..dd2d8acc5d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/influx.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 15 +--- + +# `influx` + +Defines the configuration required to write data to Influx. + +--- + +## InfluxDB v1.8.x + +:::important +Requires at least InfluxDB 1.8.3 +::: + +**Example for Influx v1**: + +```yaml +influx: + url: http://localhost:8086 + database: evcc + # user: + # password: +``` + +--- + +## InfluxDB v2.x + +**Example for Influx v2**: + +```yaml +influx: + url: http://localhost:8086 + database: evcc # InfluxDB v2.x uses the term `bucket`, but for compatibility, it's still named `database` here + token: 1234567890abcdef + org: home +``` From e55b8c834d2b3873bc5b297eaa262550f2db5a55 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:11:58 +0200 Subject: [PATCH 23/28] i18n: + EN translation for reference/configuration/sponsortoken.md --- .../current/reference/configuration/sponsortoken.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/sponsortoken.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/sponsortoken.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/sponsortoken.md new file mode 100644 index 0000000000..07e640f6e9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/sponsortoken.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 16 +--- + +# `sponsortoken` + +`sponsortoken` defines a token that is provided on [https://sponsor.evcc.io](https://sponsor.evcc.io). + +**For example**: + +```yaml +sponsortoken: eyJhbGci[...]RX5s # your token from sponsor.evcc.io +``` From ffbb806964555670a5c4aa302028e567fce070a5 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:15:31 +0200 Subject: [PATCH 24/28] i18n: + EN translation for reference/configuration/sponsortelemetry.md --- .../reference/configuration/telemetry.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/telemetry.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/telemetry.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/telemetry.md new file mode 100644 index 0000000000..53a3561da7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/telemetry.md @@ -0,0 +1,22 @@ +--- +sidebar_position: 16 +--- + +import SponsorshipRequired from "/docs/_sponsorship_required.mdx"; +import SinceVersion from "/docs/_since_version.jsx"; + +# `telemetry` + + + + + +The `telemetry` option enables the regular transmission of charging data (power, energy, solar share) to evcc.io. No personal data or configuration details are transmitted. You can learn more about this in the [Privacy Policy](https://sponsor.evcc.io/privacy). + +The aggregated data is displayed on platforms like [evcc.io](https://evcc.io). You can access the raw data through [https://api.evcc.io/v1/total](https://api.evcc.io/v1/total). + +**For example**: + +```yaml +telemetry: true # default: false +``` From 29829f9831752f49f4574ebe12e5b8fdff77994d Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 17:50:33 +0200 Subject: [PATCH 25/28] i18n: + EN translation for reference/configuration/modbusproxy.md --- .../reference/configuration/modbusproxy.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/modbusproxy.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/modbusproxy.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/modbusproxy.md new file mode 100644 index 0000000000..fe3aa74118 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/configuration/modbusproxy.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 17 +--- + +# `modbusproxy` + +The `modbusproxy` setting is a list of devices that are exposed for third-party systems via Modbus TCP on the network. + +Some devices allow only a very limited number of Modbus TCP clients. In the worst case, only a single connection is allowed, as is the case with SolarEdge components. Additionally, in serial Modbus RTU RS485 bus systems, only one master is allowed. +With the help of `modbusproxy`, it's possible to set up evcc as a Modbus proxy that can share existing Modbus connections with other systems. This allows evcc to communicate directly with the device, while other systems communicate with evcc, which bundles the communication connections and forwards them to the target device. + +The `modbusproxy` configuration is a list of different proxy configurations. + +**For example**: + +```yaml +modbusproxy: + - port: 5021 + uri: 192.0.2.2:502 + - port: 5022 + device: /dev/ttyUSB0 + baudrate: 9600 + comset: "8N1" + - port: 5023 + uri: 192.0.2.3:502 + rtu: true +``` + +:::info +_Incoming_ (from third-party systems such as home automation, loggers), the proxy function exclusively supports Modbus TCP. + +_Outgoing_ towards the target device to be queried (e.g., inverter, energy meter), the protocol may be translated according to the target device's configuration. +::: + +:::tip Sponsortoken required + +For more information about evcc sponsorship, please visit: https://docs.evcc.io/docs/sponsorship + +::: + +--- + +## Required Parameters + +### `port` + +The local TCP/IP port under which a connection is provided as a proxy server, and from which incoming Modbus TCP connections from third-party systems are accepted. + +**For example**: + +```yaml +port: 5021 +``` + +## Optional Parameters + +### `rtu` + +Modbus TCP is typically used for communication with network targets. If needed, you can switch to Modbus RTU over TCP by specifying `rtu: true`. A typical use case is for simple transparent RS485-TCP converters (without protocol translation). This must match the device's configuration. It's ignored for serial target systems. + +**For example**: + +```yaml +rtu: true +``` + +### `readonly` + +By setting `readonly: true`, you can prevent Modbus write accesses by third-party systems. + +**For example**: + +```yaml +readonly: true +``` From 212fc096c7b96a678345684fd2514f3d3de875af Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 18:02:07 +0200 Subject: [PATCH 26/28] i18n: + EN translation for reference/plugins.md --- .../current/reference/plugins.md | 229 ++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/plugins.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/plugins.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/plugins.md new file mode 100644 index 0000000000..78c6b37538 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/plugins.md @@ -0,0 +1,229 @@ +--- +sidebar_position: 3 +--- + +# Plugins + +Plugins can be used to integrate various devices and external data sources into evcc. These can be used through the `custom` value of the `type` parameter in [`meter`](/docs/reference/configuration/meters#custom) (power meters), [`charger`](/docs/reference/configuration/chargers#type) (charging stations), or [`vehicle`](/docs/reference/configuration/vehicles#custom) (vehicles). + +Plugins allow both _write access_ and _read access_. When the plugin is used for _writing_, the data is provided in the `${var[:format]}` format. If `format` is not specified, the data is provided in the default `%v` [Go Format](https://golang.org/pkg/fmt/). The variables are replaced with their corresponding values before the plugin is executed. + +## Modbus (read/write) + +The `modbus` plugin can read data from any Modbus-capable device or SunSpec-compatible inverter. Many power meters are already pre-configured (see [MBMD Supported Devices](https://github.com/volkszaehler/mbmd#supported-devices)). It is also possible to write Modbus registers to integrate additional charging stations. + +For more details, see the [Modbus Documentation](modbus). + +## MQTT (read/write) + +The `mqtt` plugin allows reading values via MQTT topics. This is particularly useful for power meters, for example, if they already provide their data via MQTT. +Refer to [MBMD](https://github.com/volkszaehler/mbmd) for an example of how to get Modbus measurement data into MQTT. The plugin also offers the ability to read or parse JSON data structures using jq-like queries (See [HTTP plugin](#http-readwrite)). + +**Example of reading from a device**: + +```yaml +source: mqtt +topic: mbmd/sdm1-1/Power +timeout: 30s # don't accept values older than timeout +scale: 0.001 # floating point factor applied to result, e.g. for converting Wh to kWh +``` + +For write access, the data is provided with the `payload` attribute. If this parameter is missing from the configuration, the value is written in the default format. + +**Example of writing to a device**: + +```yaml +source: mqtt +topic: mbmd/charger/maxcurrent +payload: ${var:%d} +``` + +## HTTP (read/write) + +The `http` plugin performs HTTP calls to read or update data. It also includes the ability to read or parse JSON data structures using jq queries (e.g., for REST APIs). + +:::important +XML documents are automatically converted to JSON format internally, which can then be filtered like a native JSON response using jq. Attributes are prefixed with `attr`. +::: + +:::tip +For testing jq queries, tools like https://www.jsonquerytool.com/ for JSON queries and https://regex101.com/ for regular expression tests can be helpful. +::: + +**Example of reading from a device**: + +```yaml +source: http +uri: https://volkszaehler/api/data/.json?from=now +method: GET # default HTTP method +headers: + - content-type: application/json +auth: # basic authorisation + type: basic + user: foo + password: bar +insecure: false # set to true to trust self-signed certificates +jq: .data.tuples[0][1] # parse response json +scale: 0.001 # floating point factor applied to result, e.g. for converting kW to W +timeout: 10s # timeout in golang duration format, see https://golang.org/pkg/time/#ParseDuration +``` + +**Example of writing to a device**: + +```yaml +body: %v # only applicable for PUT or POST requests +``` + +## Websocket (read only) + +The `websocket` plugin provides a WebSocket listener. It also includes the ability to read or parse JSON data structures using jq-like queries. This can be used, for example, to receive data from Volkszähler's push server. + +**Example of reading from a device**: + +```yaml +source: http +uri: ws:///socket +jq: .data | select(.uuid=="") .tuples[0][1] # parse message json +scale: 0.001 # floating point factor applied to result, e.g. for converting Wh to kWh +timeout: 30s # error if no update received in 30 seconds +``` + +## SMA/Speedwire (read only) + +The `sma` plugin provides an interface to SMA devices that support the Speedwire protocol. + +**Example of reading from a device**: + +```yaml +source: sma +uri: 192.168.4.51 # alternative to serial +serial: 123456 # alternative to uri +value: ActivePowerPlus # ID of value to read +password: "0000" # optional (default: 0000) +interface: eth0 # optional +scale: 1 # optional scale factor for value +``` + +Supported values for `value` can be found in the diagnostic output using the `evcc meter` command (with configured SMA `meter` devices). + +All possible values can be found as constants [here](https://gitlab.com/bboehmke/sunny/-/blob/master/values.go#L24) (use the constant name for `value`). + +## Javascript (read/write) + +evcc integrates a Javascript interpreter with the [Underscore.js](https://underscorejs.org) library, which is directly accessible through `_.`, e.g., `_.random(0,5)`. The `js` plugin can execute JavaScript code using the `script` parameter. Very helpful for quickly creating prototypes: + +**Example of reading from a device**: + +```yaml +source: js +script: | + var res = 500; + 2 * res; // returns 1000 +``` + +When the `js` plugin is used for writing, the value to be written is passed to the script as a variable: + +**Example of writing to a device**: + +```yaml +charger: + - type: custom + maxcurrent: + source: js + script: | + console.log(maxcurrent); +``` + +## Shell Script (read/write) + +The `script` plugin executes external scripts to read or update data. The plugin is useful for integrating any kind of external functionality. + +**Example of reading from a device**: + +```yaml +source: script +cmd: /bin/bash -c "cat /dev/urandom" +timeout: 5s +``` + +**Example of writing to a device**: + +```yaml +source: script +cmd: /home/user/my-script.sh ${enable:%b} # format boolean enable as 0/1 +timeout: 5s +``` + +## Const (read only) + +The `const` plugin returns a constant value. It is suitable, for example, to apply fixed correction values (offsets) to a variable value using the `calc` plugin, or to simulate measurement and status values for testing purposes. + +**Example of reading from a device**: + +```yaml +source: const +value: -16247 +``` + +## Calc (read only) + +The `calc` plugin allows for further processing of multiple individual values mathematically: + +**Example of reading from a device**: + +```yaml +source: calc +add: +- source: ... + ... +- source: ... + ... +``` + +```yaml +source: calc +mul: +- source + +: calc + sign: + source: ... (power) + ... +- source: ... (current) + ... +``` + +The basic arithmetic operations of addition (add) and multiplication (mul) are supported as operands. + +With `scale: -1`, a simple subtraction can be performed, and with `scale: 0.001`, division can be used, for example, to convert kWh to Wh. + +With `sign:` (every positive number becomes +1, every negative number becomes -1, 0 remains 0), signs can be transferred to other values (in conjunction with `mul`). For example, to transfer the "direction" of power (injection or consumption) to the measured currents. + +The `calc` plugin is helpful for: + +- Summing power values from individual PV strings (addition) +- Calculating apparent power from voltage and current (multiplication) +- Combining separate power values for import and export into a signed single value (subtraction) +- Calculating percentage fill levels (division) +- Determining the correct direction of current flow (sign) +- Eliminating known offsets (addition with `const` plugin) + +:::tip +Constant auxiliary values (e.g., for offsets) can be generated as operands using the `const` plugin. +::: + +## Combined Status (read only) + +The `combined` status plugin is used to convert mixed boolean status values of `Plugged` / `Charging` into an evcc-compatible charging status of A..F. It is used, for example, with the OpenWB MQTT integration. + +**Example of reading from a device**: + +```yaml +source: combined +plugged: + source: mqtt + topic: openWB/lp/1/boolPlugStat +charging: + source: mqtt + topic: openWB/lp/1/boolChargeStat +``` \ No newline at end of file From e99cf3e58b755aa2030be984caee86f3a332ecb7 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 18:09:28 +0200 Subject: [PATCH 27/28] i18n: + EN translation for reference/modbus.md --- .../current/reference/modbus.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/modbus.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/modbus.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/modbus.md new file mode 100644 index 0000000000..254f517758 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/modbus.md @@ -0,0 +1,145 @@ +--- +sidebar_position: 4 +--- + +# Modbus + +Some devices, such as meters ([`meters`](/docs/reference/configuration/meters#modbus)) or chargers ([`chargers`](/docs/reference/configuration/chargers)), are connected and addressed using the Modbus protocol. + +The `meter` configuration includes the type of physical connection (interface), optional technical interface parameters, the Modbus protocol used, the unique Modbus ID of the device on the bus, and the number and type of the register to be read or written. + +It is important to note that there are three different Modbus protocols: Modbus RTU, Modbus ASCII, and Modbus TCP. These can technically be transmitted over different types of interfaces. The classic version is Modbus RTU over a serial RS485 bus interface, commonly used with most meters or some chargers. Devices with a native network interface (Ethernet/WiFi), on the other hand, are typically addressed using the Modbus TCP protocol. + +If a serial Modbus device needs to be connected through an interface converter via a network (Ethernet/WiFi/PowerLAN), Modbus RTU protocol over a TCP/IP connection is established. The Modbus RTU protocol is directly transmitted over the network (i.e., "tunnelled"). Even though the transport method (TCP/IP) is the same, the protocol is NOT the same as Modbus TCP. It's essential to distinguish between the protocol and the transport method. "Modbus (RTU) over TCP" is different from Modbus TCP! + +:::caution +Caution: There are more complex interface converters that can optionally translate the Modbus protocol itself between Modbus RTU and Modbus TCP! +If this feature is active, evcc must communicate with the converter using Modbus TCP, while the converter communicates with the serial device via Modbus RTU and bidirectionally translates the two protocols. +In this case, careful attention must be paid to the device specification and configuration; otherwise, communication might not work! +::: + +In the case of a configuration with an interface converter, the serial bus configuration is determined only on the converter. The evcc configuration then concerns only the section up to the converter. + +## Physical Connection + +### Serial Connection (RS485) + +If the device is directly connected via an RS485 adapter (Modbus RTU), `device` and the serial communication parameters `baudrate` and `comset` must be specified according to the device configuration. Please refer to the respective user manual, data sheets, or system settings. + +:::info +Multiple devices with identical communication parameters can be operated on a serial RS485 bus if each device is assigned a unique Modbus ID. If not all devices on a bus can be configured with uniform communication settings (but with different IDs), splitting into multiple independent bus systems is necessary. +::: + +:::caution +Mixing devices with different serial communication parameters on a bus is not possible and leads to unpredictable communication errors. +::: + +**For example**: + +```yaml +source: modbus +id: 1 +device: /dev/ttyUSB0 +baudrate: 38400 +comset: "8E1" +``` + +### Direct Network Connection + +If the device is directly connected via a native network connection (Modbus TCP), a `uri` consisting of HOSTNAME:PORT or IP:PORT must be provided: + +**For example**: + +```yaml +source: modbus +id: 1 +uri: 192.168.0.11:502 +``` + +### Serial Device via Network Connection (with Interface Converter) + +If a serial device is connected via an intermediate transparent RS485-IP interface converter (without protocol translation), the protocol must also be switched to Modbus RTU over the TCP/IP connection using `rtu: true`. + +**For example**: + +```yaml +source: modbus +id: 1 +uri: 192.168.0.10:502 +rtu: true # Modbus RTU over TCP +``` + +## Predefined Devices + +The integrated predefined device models `model` are identical to [MBMD](https://github.com/volkszaehler/mbmd/blob/master/docs/mbmd_run.md#options): + + ABB ABB A/B-Series meters + DDM DDM18SD + DZG DZG Metering GmbH DVH4013 meters + IEM3000 Schneider Electric iEM3000 series + INEPRO Inepro Metering Pro 380 + JANITZA Janitza meters + MPM Bernecker Engineering MPM3PM meters + ORNO1P ORNO WE-514 & WE-515 + ORNO1P504 ORNO WE-504 + ORNO3P ORNO WE-516 & WE-517 + SBC Saia Burgess Controls ALE3 meters + SDM Eastron SDM630/120/72DMv2 + SDM220 Eastron SDM220 + SDM230 Eastron SDM230 + SDM72 Eastron SDM72 + SEMTR SolarEdge SE-MTR-3Y + +Any `model` that deviates from these is + + treated as a _SunSpec_ device type. + +Use `value` to define the value to be read from the device. All supported values are predefined in [MBMD](https://github.com/volkszaehler/mbmd/blob/master/meters/measurements.go#L28). + +In the case of a _SunSpec_-compatible inverter or meter, the values to be read are specified in the format `model:[block:]point` according to the _SunSpec_ definition. For example, querying the DC power on the second string of a three-phase PV inverter (corresponding to SunSpec Model 103) is done as follows: `value: 103:2:W`. + +The device `model` and the slave ID `id` are always required: + +**For example**: + +```yaml +source: modbus +--- +model: sdm +value: Power +scale: -1 # floating point factor applied to result, e.g. for kW to W conversion +``` + +## Manual Configuration + +If the Modbus device is not directly supported, or if values different from the predefined models need to be read or written, Modbus registers can also be manually configured: + +**For example**: + +```yaml +source: modbus +--- +register: + address: 40070 + type: holding # holding or input + decode: int32 # int16|32|64, uint16|32|64, float32|64 and u|int32s + float32s +scale: -1.0 # floating point factor applied to result, e.g. for kW to W conversion +timeout: 2s # timeout, without unit in ns +``` + +For the `int32s/uint32s` decodings, the byte order is swapped, which is useful for E3/DC devices. + +### Writing Registers +Both holding registers and coils can be written. For this, either `type: writeholding` for holding registers or `type: writecoil` for coils must be specified. +`type: writeholding` always writes a 16-bit register (int or bool16). Therefore, for `decode`, `uint16` must always be specified. +`type: writecoil` writes a coil. Specifications for `decode` are ignored. + +**For example**: + +```yaml +source: modbus +--- +register: + address: 40070 + type: writeholding # writeholding or writecoil +``` From 0544adf3e60fda091cd5980dcb5dd968c6105ef9 Mon Sep 17 00:00:00 2001 From: Jeffrey Ratcliffe Date: Tue, 15 Aug 2023 18:15:08 +0200 Subject: [PATCH 28/28] i18n: + EN translation for reference/api.md --- .../current/reference/api.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/reference/api.md diff --git a/i18n/en/docusaurus-plugin-content-docs/current/reference/api.md b/i18n/en/docusaurus-plugin-content-docs/current/reference/api.md new file mode 100644 index 0000000000..9d025f2ed7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/reference/api.md @@ -0,0 +1,87 @@ +--- +sidebar_position: 5 +--- + +# API + +evcc can interact with REST and MQTT APIs. + +All API IDs (e.g., Loadpoint ID) start at `1`. + +## REST API + +- `GET /api/state`: evcc state (static configuration and dynamic state as JSON object) +- `GET /api/health`: evcc health check +- `POST /api/prioritysoc/`: battery priority SoC in % +- `POST /api/buffersoc/`: battery buffer SoC in % +- `POST /api/bufferstartsoc/`: battery buffer start SoC in % +- `POST /api/residualpower/`: grid residual power in W +- `POST /api/smartcostlimit/`: smart charging cost limit (previously known as "cheap" tariff) +- `GET /api/tariff/`: list of prices (grid/feedin/planner) +- `GET /api/sessions[?format=csv&lang=]`: charging sessions +- `GET /api/telemetry`: telemetry enabled status +- `POST /api/telemetry/`: enable/disable telemetry (true/false) + +### Loadpoint + +- `POST /api/loadpoints//mode/`: charge mode (off/pv/minpv/now) +- `POST /api/loadpoints//minsoc/`: minimum SoC in % +- `POST /api/loadpoints//target/soc/`: target SoC in % +- `POST /api/loadpoints//target/energy/`: target energy in kWh +- `POST /api/loadpoints//target/time/