diff --git a/ApiSettingsPage.qml b/ApiSettingsPage.qml
index cbe8c44..610c706 100644
--- a/ApiSettingsPage.qml
+++ b/ApiSettingsPage.qml
@@ -21,6 +21,7 @@ NavigationPage {
Button {
text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v2/blob/main/http-en.md"))
}
RowLayout {
@@ -116,6 +117,7 @@ NavigationPage {
Button {
text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v2/blob/main/cloudapi-en.md"))
}
}
}
@@ -148,6 +150,7 @@ NavigationPage {
Button {
text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v2/blob/main/gridapi-en.md"))
}
}
}
@@ -167,6 +170,7 @@ NavigationPage {
Button {
text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v1/blob/master/go-eCharger%20API%20v1%20EN.md"))
}
}
}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index be93502..3a0eebc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,7 @@ qt_add_qml_module(evcharger-app
ChargingSpeedPage.qml
CloudPage.qml
CloudUrlsModel.qml
+ ConfirmingOnOffSwitch.qml
ConnectingScreen.qml
ConnectionPage.qml
ControllerPage.qml
@@ -128,7 +129,6 @@ qt_add_qml_module(evcharger-app
WhiteItemDelegate.qml
WhiteSwipeDelegate.qml
WiFiErrorsPage.qml
- WiFiOnOffSwitch.qml
WiFiPage.qml
WiFiScanPage.qml
RESOURCES
diff --git a/CenteredDialog.qml b/CenteredDialog.qml
index feefa3c..e733660 100644
--- a/CenteredDialog.qml
+++ b/CenteredDialog.qml
@@ -3,5 +3,6 @@ import QtQuick.Controls
import QtQuick.Layouts
Dialog {
- anchors.centerIn: parent
+ parent: Overlay.overlay
+ anchors.centerIn: Overlay.overlay
}
diff --git a/ChargerTabPage.qml b/ChargerTabPage.qml
index 4607b61..1589774 100644
--- a/ChargerTabPage.qml
+++ b/ChargerTabPage.qml
@@ -1,6 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
+import QtQml
import EVChargerApp
AnimatedStackView {
@@ -177,7 +178,7 @@ AnimatedStackView {
visible: logicMode.value == 4
iconSource: "material-icons/grid_guides.svg"
title: qsTr("Price limit")
- description: qsTr("%0 ct/kWh").arg(priceLimitHelper.value)
+ description: qsTr("%0 ct/kWh").arg(Qt.locale().toString(priceLimitHelper.value, 'f', 1))
component: "SetPriceLimitPage.qml"
}
diff --git a/CloudPage.qml b/CloudPage.qml
index 85fa8a9..31df596 100644
--- a/CloudPage.qml
+++ b/CloudPage.qml
@@ -6,10 +6,11 @@ import EVChargerApp
NavigationPage {
title: qsTr("Cloud")
- GeneralOnOffSwitch {
- Layout.fillWidth: true
+ ConfirmingOnOffSwitch {
apiKey: "cwe"
text: qsTr("Enable cloud connection")
+ dialogTitle: qsTr("Are you sure?")
+ dialogText: qsTr("Disabling could connection could make your device unreachable from other places than home!")
}
Text {
diff --git a/WiFiOnOffSwitch.qml b/ConfirmingOnOffSwitch.qml
similarity index 59%
rename from WiFiOnOffSwitch.qml
rename to ConfirmingOnOffSwitch.qml
index 3f66dcd..d85bbfa 100644
--- a/WiFiOnOffSwitch.qml
+++ b/ConfirmingOnOffSwitch.qml
@@ -6,6 +6,10 @@ import EVChargerApp
WhiteCheckDelegate {
id: checkDelegate
+ required property string apiKey
+ required property string dialogTitle
+ required property string dialogText
+
Layout.fillWidth: true
Component.onCompleted: {
@@ -13,23 +17,23 @@ WhiteCheckDelegate {
}
ApiKeyValueHelper {
- id: staEnabled
+ id: apiKeyValueHelper
deviceConnection: theDeviceConnection
- apiKey: "wen"
+ apiKey: checkDelegate.apiKey
}
SetValueHelper {
- id: staEnabledChanger
+ id: setValueHelper
deviceConnection: theDeviceConnection
- apiKey: "wen"
+ apiKey: checkDelegate.apiKey
}
- checked: staEnabled.value
- text: staEnabled.value ? qsTr("On") : qsTr("Off")
+ checked: apiKeyValueHelper.value
+ text: apiKeyValueHelper.value === true ? qsTr("On") : apiKeyValueHelper.value === false ? qsTr("Off") : qsTr("Unknown")
onClicked: {
if (checked)
- staEnabledChanger.setValue(checked)
+ setValueHelper.setValue(checked)
else {
checked = true
disableStaDialog.open()
@@ -37,29 +41,29 @@ WhiteCheckDelegate {
}
BusyIndicator {
- visible: staEnabledChanger.pending
+ visible: setValueHelper.pending
}
RequestStatusText {
- request: staEnabledChanger
+ request: setValueHelper
}
CenteredDialog {
id: disableStaDialog
- title: qsTr("Are you sure?")
+ title: checkDelegate.dialogTitle
standardButtons: Dialog.Ok | Dialog.Cancel
focus: true
modal: true
onAccepted: {
checkDelegate.checked = false
- staEnabledChanger.setValue(false)
+ setValueHelper.setValue(false)
}
- onRejected: checkDelegate.checked = Qt.binding(function() { return staEnabled.value })
+ onRejected: checkDelegate.checked = Qt.binding(function() { return apiKeyValueHelper.value })
contentItem: Text {
- text: qsTr("Disabling Wi-Fi could make your device unreachable from your local homenetwork or the cloud!");
+ text: checkDelegate.dialogText
wrapMode: Text.Wrap
}
}
diff --git a/DeviceScreen.qml b/DeviceScreen.qml
index 41fb744..ffed4fe 100644
--- a/DeviceScreen.qml
+++ b/DeviceScreen.qml
@@ -71,7 +71,7 @@ Loader {
modal: true
onAccepted: theDeviceConnection.sendAuth(passwordInput.text)
- onRejected: loader.close()
+ onRejected: loader.closeRequested()
contentItem: GridLayout {
property int minimumInputSize: 120
@@ -109,12 +109,12 @@ Loader {
id: authImpossibleDialog
title: qsTr("Authentication impossible!")
- standardButtons: Dialog.Ok | Dialog.Cancel
+ standardButtons: Dialog.Ok
focus: true
modal: true
- onAccepted: loader.close()
- onRejected: loader.close()
+ onAccepted: loader.closeRequested()
+ onRejected: loader.closeRequested()
contentItem: Text {
text: qsTr("To use this password remotely a password has to be setup first. This can be done over the AccessPoint.");
diff --git a/EditValueItem.qml b/EditValueItem.qml
index 0b938ae..8304a77 100644
--- a/EditValueItem.qml
+++ b/EditValueItem.qml
@@ -34,6 +34,14 @@ WhiteItemDelegate {
text: itemDelegate.text
}
+ BusyIndicator {
+ visible: setValueHelper.pending
+ }
+
+ RequestStatusText {
+ request: setValueHelper
+ }
+
Text {
text: itemDelegate.valueText
}
diff --git a/GeneralOnOffSwitch.qml b/GeneralOnOffSwitch.qml
index c93bfff..029a82b 100644
--- a/GeneralOnOffSwitch.qml
+++ b/GeneralOnOffSwitch.qml
@@ -29,7 +29,7 @@ WhiteCheckDelegate {
}
checked: valueHelper.value
- text: valueHelper.value ? qsTr("On") : qsTr("Off")
+ text: valueHelper.value === true ? qsTr("On") : valueHelper.value === false ? qsTr("Off") : qsTr("Unknown")
onClicked: {
valueChanger.setValue(checked)
diff --git a/HotspotPage.qml b/HotspotPage.qml
index 1956827..7385deb 100644
--- a/HotspotPage.qml
+++ b/HotspotPage.qml
@@ -14,9 +14,33 @@ NavigationPage {
text: qsTr("Disable AP when online")
}
- Text {
- text: "TODO"
+ EditValueItem {
+ text: qsTr("SSID")
+ apiKey: "wan"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField0
+ property alias value: textField0.text
+ }
+ }
- Layout.fillHeight: true
+ EditValueItem {
+ text: qsTr("Password")
+ apiKey: "wak"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField1
+ property alias value: textField1.text
+ }
+ }
+
+ EditValueItem {
+ text: qsTr("Channel")
+ valueText: Qt.locale().toString(value)
+ apiKey: "wapc"
+ editableItem: SpinBox {
+ from: 0
+ to: 15
+ }
}
}
diff --git a/MqttPage.qml b/MqttPage.qml
index a69b0bb..173922c 100644
--- a/MqttPage.qml
+++ b/MqttPage.qml
@@ -10,6 +10,21 @@ NavigationPage {
apiKey: "mce"
}
+ EditValueItem {
+ text: qsTr("Broker url")
+ apiKey: "mcu"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField0
+ property alias value: textField0.text
+ }
+ }
+
+ Button {
+ text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v2/blob/main/mqtt-en.md"))
+ }
+
WhiteBox {
Layout.fillWidth: true
@@ -85,4 +100,59 @@ NavigationPage {
}
}
}
+
+ GeneralOnOffSwitch {
+ apiKey: "mqg"
+ text: qsTr("Use global CA store")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "mqcn"
+ text: qsTr("Skip cert commonName check")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "mqss"
+ text: qsTr("Skip server cert verification")
+ }
+
+ // TODO clientKey
+
+ // TODO clientCert
+
+ // TODO serverCert
+
+ GeneralOnOffSwitch {
+ apiKey: "mcr"
+ text: qsTr("MQTT readonly")
+ }
+
+ EditValueItem {
+ // TODO allow set to null to reset to default
+ text: qsTr("Topic prefix")
+ apiKey: "mtp"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField1
+ property alias value: textField1.text
+ }
+ }
+
+ GeneralOnOffSwitch {
+ id: homeassistant
+ apiKey: "mhe"
+ text: qsTr("Homeassistant autodiscover")
+ }
+
+ EditValueItem {
+ visible: homeassistant.checked
+ // TODO allow set to null to reset to default
+ text: qsTr("Homeassistant topic prefix")
+ apiKey: "mht"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField2
+ property alias value: textField2.text
+ }
+ }
}
diff --git a/NamePage.qml b/NamePage.qml
index 3e9610f..2b31546 100644
--- a/NamePage.qml
+++ b/NamePage.qml
@@ -5,14 +5,7 @@ import QtQuick.Layouts
NavigationPage {
title: qsTr("Name")
- NavigationItem {
- iconSource: "material-icons/grid_guides.svg"
- title: qsTr("Name")
- component: "NamePage.qml"
- }
-
EditValueItem {
- id: test
text: qsTr("Name")
apiKey: "fna"
fullWidth: true
diff --git a/OcppPage.qml b/OcppPage.qml
index 94eb0ca..019224b 100644
--- a/OcppPage.qml
+++ b/OcppPage.qml
@@ -10,6 +10,21 @@ NavigationPage {
apiKey: "ocppe"
}
+ EditValueItem {
+ text: qsTr("Backend url")
+ apiKey: "ocppu"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField0
+ property alias value: textField0.text
+ }
+ }
+
+ Button {
+ text: qsTr("API documentation")
+ onClicked: Qt.openUrlExternally(qsTr("https://github.com/goecharger/go-eCharger-API-v2/blob/main/ocpp-en.md"))
+ }
+
WhiteBox {
Layout.fillWidth: true
@@ -129,4 +144,101 @@ NavigationPage {
}
}
}
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppg"
+ text: qsTr("Use global CA store")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppcn"
+ text: qsTr("Skip cert commonName check")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppss"
+ text: qsTr("Skip server cert verification")
+ }
+
+ // TODO clientKey
+
+ // TODO clientCert
+
+ // TODO serverCert
+
+ // TODO fallbackCurrentLimit
+
+ // TODO transactionId
+
+ EditValueItem {
+ text: qsTr("Heartbeat interval:")
+ valueText: Qt.locale().toString(value)
+ apiKey: "ocpph"
+ editableItem: SpinBox {
+ from: 0
+ to: 3600
+ }
+ }
+
+ EditValueItem {
+ text: qsTr("MeterValues sample interval:")
+ valueText: Qt.locale().toString(value)
+ apiKey: "ocppi"
+ editableItem: SpinBox {
+ from: 0
+ to: 3600
+ }
+ }
+
+ EditValueItem {
+ text: qsTr("Clock aligned data interval:")
+ valueText: Qt.locale().toString(value)
+ apiKey: "ocppai"
+ editableItem: SpinBox {
+ from: 0
+ to: 3600
+ }
+ }
+
+ EditValueItem {
+ text: qsTr("Dummy card id")
+ apiKey: "ocppd"
+ fullWidth: true
+ editableItem: TextField {
+ id: textField1
+ property alias value: textField1.text
+ }
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppr"
+ text: qsTr("Rotate phases on charger")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppao"
+ text: qsTr("Allow Offline Tx For UnknownId")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocpplo"
+ text: qsTr("Local Authorize Offline")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppla"
+ text: qsTr("Local Auth List Enabled")
+ }
+
+ // TODO MeterValuesCondition
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppt"
+ text: qsTr("Accept time from backend")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "ocppio"
+ text: qsTr("Set as inoperable")
+ }
}
diff --git a/SetPriceLimitPage.qml b/SetPriceLimitPage.qml
index 325d970..562ad8e 100644
--- a/SetPriceLimitPage.qml
+++ b/SetPriceLimitPage.qml
@@ -12,9 +12,8 @@ NavigationPage {
}
EditValueItem {
- id: test
text: qsTr("Price limit")
- valueText: qsTr("%0 ct/kWh").arg(test.value)
+ valueText: qsTr("%0 ct/kWh").arg(Qt.locale().toString(value, 'f', 1))
apiKey: "awp"
editableItem: DoubleSpinBox {
from: -1000.
diff --git a/WiFiPage.qml b/WiFiPage.qml
index 60a7a80..513f91a 100644
--- a/WiFiPage.qml
+++ b/WiFiPage.qml
@@ -6,8 +6,10 @@ import EVChargerApp
NavigationPage {
title: qsTr("Wi-Fi")
- WiFiOnOffSwitch {
-
+ ConfirmingOnOffSwitch {
+ apiKey: "wen"
+ dialogTitle: qsTr("Are you sure?")
+ dialogText: qsTr("Disabling Wi-Fi could make your device unreachable from your local homenetwork or the cloud!")
}
GridLayout {
@@ -84,7 +86,23 @@ NavigationPage {
}
}
- Item {
- Layout.fillHeight: true
+ EditValueItem {
+ text: qsTr("Min RSSI")
+ valueText: Qt.locale().toString(value)
+ apiKey: "wsmr"
+ editableItem: SpinBox {
+ from: -100
+ to: 0
+ }
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "wspc"
+ text: qsTr("Pmf capable")
+ }
+
+ GeneralOnOffSwitch {
+ apiKey: "wspr"
+ text: qsTr("Pmf required")
}
}
diff --git a/i18n/qml_de.ts b/i18n/qml_de.ts
index 2015e0e..39e953e 100644
--- a/i18n/qml_de.ts
+++ b/i18n/qml_de.ts
@@ -40,40 +40,40 @@
AddDeviceScreen
-
-
+
+
Setup or add device
Gerät hinzufügen oder einrichten
-
-
+
+
Add via local connection or AP:
Über lokale Verbindung oder AP einrichten:
-
-
+
+
Local url
Lokale url
-
-
-
-
+
+
+
+
Connect
Verbinden
-
-
+
+
Add via cloud:
Über Cloud einrichten:
-
-
+
+
Cloud Serial
Cloud Seriennr.
@@ -106,60 +106,84 @@
-
-
-
+
+
+
-
-
-
+
+
+
API documentation
API-Dokumentation
-
-
+
+
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/http-en.md
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/http-de.md
+
+
+
+
Generate token
Token erzeugen
-
-
+
+
OK! token: %0
OK! token: %0
-
-
+
+
Clear API token
API-Token entfernen
-
-
+
+
Enable cloud API
Cloud HTTP API aktivieren
-
-
-
-
+
+
+
+
API key: %0
API key: %0
-
-
+
+
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/cloudapi-en.md
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/cloudapi-de.md
+
+
+
+
Enable grid API
Netzbetreiber-API aktiviert
-
-
+
+
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/gridapi-en.md
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/gridapi-de.md
+
+
+
+
Allow access to legacy HTTP-Api v1
Zugriff auf lokale HTTP-API v1 zulassen
+
+
+
+ https://github.com/goecharger/go-eCharger-API-v1/blob/master/go-eCharger%20API%20v1%20EN.md
+ https://github.com/goecharger/go-eCharger-API-v1/blob/master/go-eCharger%20API%20v1%20DE.md
+
AppSettingsPage
@@ -170,44 +194,44 @@
App Einstellungen
-
-
+
+
Number of app instances:
Anzahl an App Instanzen:
-
-
+
+
solalaweb key:
solalaweb key:
-
-
-
-
+
+
+
+
Select...
Auswählen...
-
-
-
-
+
+
+
+
Replace...
Ersetzen...
-
-
+
+
solalaweb cert:
solalaweb cert:
-
-
+
+
Show solalaweb:
-
+ Zeige solalaweb:
@@ -240,98 +264,98 @@
ChargerTabPage
-
-
+
+
Devices
Geräte
-
-
+
+
Internal error
Interner Fehler
-
-
+
+
No car connected
Kein Auto angeschlossen
-
-
+
+
Car is charging
Auto wird geladen
-
-
+
+
Connecting to your car...
Verbinde mit Auto...
-
-
+
+
Charging completed
Ladevorgang abgeschlossen
-
-
+
+
Unknown error %0
Unbekannter Fehler %0
-
-
+
+
Plug in the cable to start charging your car
Stecke das Kabel ein, um dein Auto aufzuladen
-
-
+
+
Charger is connecting to your car, it usually takes a few seconds
Der Charger stellt die Verbindung zu deinem Auto her, das dauert in der Regel ein paar Sekunden
-
-
+
+
Let's go-e :)
Let's go-e :)
-
-
+
+
Price limit
Preisgrenze
-
-
+
+
%0 ct/kWh
%0 ct/kWh
-
-
+
+
By %0 with %1
Bis %0 mit %1
-
-
+
+
%0 km
%0 km
-
-
+
+
Charging speed
Ladegeschwindigkeit
-
-
+
+
%0 Ampere & %1-phase
%0 Ampere & %1-phasic
@@ -340,14 +364,14 @@
Stecke das Kabel ein, um dein Auto aufzuladen
-
-
+
+
Start
Start
-
-
+
+
Daily trip
Daily trip
@@ -433,44 +457,56 @@
Cloud
-
-
+
+
Enable cloud connection
Cloud Verbindung aktivieren
-
-
+
+
+ Are you sure?
+ Sind Sie sicher?
+
+
+
+
+ Disabling could connection could make your device unreachable from other places than home!
+ Wenn die Cloud-Verbindung ausgeschaltet wird, kann Ihr Gerät unerreichbar werden, wenn Sie sich nicht zuhause im Heimnetzwerk befinden!
+
+
+
+
Features like flexible energy tariffs, time sync and app connection are unavilable when "Enable cloud connection" is disabled
Wenn "Cloud Verbindung aktivieren" deaktiviert ist, sind Funktionen wie flexible Energietarife, Zeitsynchronisierung und App-Verbindung über das Internet nicht möglich
-
-
+
+
Trying to connect:
Versuche zu verbinden:
-
-
+
+
Is connected:
Ist verbunden:
-
-
+
+
Hello received:
Hallo empfangen:
-
-
+
+
Queue size cloud:
Cloud Warteschlagengröße:
-
-
+
+
Last error:
Letzer Fehler:
@@ -508,17 +544,38 @@
Solalaweb
+
+ ConfirmingOnOffSwitch
+
+
+
+ On
+ An
+
+
+
+
+ Off
+ Aus
+
+
+
+
+ Unknown
+ Unbekannt
+
+
ConnectingScreen
-
-
+
+
Trying to reach device...
Versuche Gerät zu erreichen...
-
-
+
+
Cancel
Abbrechen
@@ -586,14 +643,14 @@
ControllerTabPage
-
-
+
+
Devices
Geräte
-
-
+
+
Connected
Verbunden
@@ -628,212 +685,212 @@
DeviceConnection
-
+
Connecting to %0
Verbinde zu %0
-
+
Received something that is not a json object!
-
+
Received something that does not contain a type!
-
+
Received something with a non-string type!
-
+
Received hello without serial!
-
+
Received hello with a non-string serial!
-
+
Received hello with a non-bool secured!
-
+
Received hello without manufacturer!
-
+
Received hello with a non-string manufacturer!
-
+
Received hello without friendly_name!
-
+
Received hello with a non-string friendly_name!
-
+
Received hello without devicetype!
-
+
Could not parse solalaweb certificate!
-
+
Could not parse solalaweb key!
-
+
Received hello with a non-string devicetype!
-
+
Received authRequired without token1!
-
+
Received authRequired with a non-string token1!
-
+
Received authRequired without token2!
-
+
Received authRequired with a non-string token2!
-
+
Received fullStatus with a non-bool partial!
-
+
Received fullStatus without a status!
-
+
Received fullStatus with a non-object status!
-
+
Received partial fullStatus
-
+
Received last fullStatus
-
+
Received deltaStatus without a status!
-
+
Received deltaStatus with a non-object status!
-
+
Received message type %0 %1
-
+
Received message with a non-string requestId!
-
+
Sending %0
-
+
Connected!
Verbunden!
-
+
Disconnected!
Verbindung verloren!
-
+
Reconnecting to %0
Verbinde wieder zu %0
-
+
state changed: %0
-
+
could not parse received json: %0 at offset %1
-
+
unknown binary message type %0 received
-
+
error occured: %0
-
+
ssl peer verify error
-
+
ssl errors
-
+
ssl alert sent level=%0 type=%1 description=%2
-
+
ssl alert received level=%0 type=%1 description=%2
-
+
ssl handshake interrupted on error
-
+
unknown response type %0
@@ -857,62 +914,62 @@
Cloud Seriennr.
-
-
+
+
Device list
Geräteliste
-
-
+
+
App Settings
App Einstellungen
-
-
+
+
My devices
Meine Geräte
-
-
+
+
Found devices
Im Netzwerk verfügbare Geräte
-
-
+
+
Delete
Löschen
-
-
+
+
Serial Number %0
Seriennummer %0
-
-
- 🛜
-
+
+
+ Local
+ Lokal
-
-
- ☁️
-
+
+
+ Cloud
+ Cloud
-
-
+
+
Solala
-
+ Solala
-
-
+
+
Add or setup device
Gerät hinzufügen oder einrichten
@@ -933,14 +990,14 @@
Meine Geräte:
-
-
+
+
Manufacturer:
Hersteller:
-
-
+
+
Device Type:
Gerätetyp:
@@ -949,14 +1006,14 @@
Anzeigename:
-
-
+
+
Host Name:
Host Name:
-
-
+
+
Ip:
Ip:
@@ -976,32 +1033,32 @@
DeviceScreen
-
-
+
+
Password required
Passwort erforderlich
-
-
+
+
Password:
Passwort:
-
-
+
+
Password
Passwort
-
-
+
+
Authentication impossible!
Authentifizierung unmöglich!
-
-
+
+
To use this password remotely a password has to be setup first. This can be done over the AccessPoint.
Um dieses Gerät aus der Ferne nutzen zu können, müssen Sie erst ein Passwort einrichten. Dies kann über den AccessPoint gemacht werden.
@@ -1177,17 +1234,23 @@
GeneralOnOffSwitch
-
-
+
+
On
An
-
-
+
+
Off
Aus
+
+
+
+ Unknown
+ Unbekannt
+
GeneralPage
@@ -1305,6 +1368,24 @@
Disable AP when online
AP ausschalten wenn online
+
+
+
+ SSID
+ SSID
+
+
+
+
+ Password
+ Passwort
+
+
+
+
+ Channel
+ Kanal
+
KwhLimitPage
@@ -1345,62 +1426,62 @@
MainScreen
-
-
+
+
%0 ago
vor %0
-
-
+
+
in %0
in %0
-
-
-
-
+
+
+
+
Charger
Charger
-
-
-
-
+
+
+
+
Eco
Eco
-
-
-
-
+
+
+
+
Controller
Controller
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Infromations
Informationen
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Settings
Einstellungen
@@ -1414,47 +1495,109 @@
MQTT
-
-
+
+
+ Broker url
+ Broker url
+
+
+
+
+ API documentation
+ API-Dokumentation
+
+
+
+
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/mqtt-en.md
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/mqtt-de.md
+
+
+
+
Trying to connect:
Versuche zu verbinden:
-
-
+
+
Is connected:
Ist verbunden:
-
-
+
+
Connected since:
Verbunden seit:
-
-
+
+
Command Counter:
Befehlszähler:
-
-
+
+
Last error:
Letzer Fehler:
-
-
+
+
Last error age:
Alter des letzten Fehlers:
+
+
+
+ Use global CA store
+ Verwende den global CA Store
+
+
+
+
+ Skip cert commonName check
+ commonName Überprüfung überspringen
+
+
+
+
+ Skip server cert verification
+ Server Zertifikat Überprüfung überspringen
+
+
+
+
+ MQTT readonly
+ MQTT nur-lesend
+
+
+
+
+ Topic prefix
+ Topic prefix
+
+
+
+
+ Homeassistant autodiscover
+ Homeassistant autodiscover
+
+
+
+
+ Homeassistant topic prefix
+ Homeassistant topic prefix
+
NamePage
+
+
Name
Name
@@ -1484,107 +1627,203 @@
OCPP
-
-
+
+
+ Backend url
+ Backend url
+
+
+
+
+ API documentation
+ API-Dokumentation
+
+
+
+
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/ocpp-en.md
+ https://github.com/goecharger/go-eCharger-API-v2/blob/main/ocpp-de.md
+
+
+
+
Trying to connect:
Versuche zu verbinden:
-
-
+
+
Is connected:
Ist verbunden:
-
-
+
+
Connected since:
Verbunden seit:
-
-
+
+
Is accepted:
Ist akzeptiert:
-
-
+
+
Accepted since:
Akzeptiert seit:
-
-
+
+
Last error:
Letzer Fehler:
-
-
+
+
Last error age:
Alter des letzten Fehlers:
-
-
+
+
Chargepoint status:
Chargepoint Status:
-
-
+
+
Available
-
-
+
+
Preparing
-
-
+
+
Charging
-
-
+
+
SuspendedEVSE
-
-
+
+
SuspendedEV
-
-
+
+
Finishing
-
-
+
+
Reserved
-
-
+
+
Unavailable
-
-
+
+
Faulted
+
+
+
+ Use global CA store
+ Verwende den global CA Store
+
+
+
+
+ Skip cert commonName check
+ commonName Überprüfung überspringen
+
+
+
+
+ Skip server cert verification
+ Server Zertifikat Überprüfung überspringen
+
+
+
+
+ Heartbeat interval:
+ Heartbeat Intervall:
+
+
+
+
+ MeterValues sample interval:
+ MeterValues Sample Intervall:
+
+
+
+
+ Clock aligned data interval:
+ Clock Aligned Data Intervall:
+
+
+
+
+ Dummy card id
+ Dummy Karten-ID
+
+
+
+
+ Rotate phases on charger
+ Phasen am Charger rotieren
+
+
+
+
+ Allow Offline Tx For UnknownId
+
+
+
+
+
+ Local Authorize Offline
+
+
+
+
+
+ Local Auth List Enabled
+
+
+
+
+
+ Accept time from backend
+
+
+
+
+
+ Set as inoperable
+ Als Unverfügbar setzen
+
PasswordPage
@@ -1626,13 +1865,13 @@
Scheduler day
-
+ Ladetimer Tag
24 Hour
-
+ 24 Stunden
@@ -1683,37 +1922,37 @@
Workdays
-
+ Wochentags
Create workdays schedule
-
+ Wochentags-Ladetimer erstellen
Saturdays
-
+ Samstags
Create saturdays schedule
-
+ Samstags-Ladetimer erstellen
Sundays
-
+ Sonntags
Create sundays schedule
-
+ Sonntags-Ladetimer erstellen
About eco
@@ -1778,38 +2017,38 @@
SelectLogicModeItem
-
-
+
+
Eco
Eco
-
-
+
+
Eco-friendly & cost effective
Nachhaltig & Wirtschaftlich
-
-
+
+
Basic
Basic
-
-
+
+
Basic charging
Einfaches Laden
-
-
+
+
Daily trip
Daily trip
-
-
+
+
Specific energy and time
Energie zur bestimmten Zeit
@@ -1846,14 +2085,14 @@
Lege eine angemessene Preisgrenze für das Laden fest, sodass das Laden beginnt, wenn der Strompreis unter dieser Grenze liegt. Außerdem siehst du unten ein Diagramm mit der Ladeprognose, die auf dem von dir festgelegten Grenzwert basiert.
-
-
+
+
Price limit
Preisgrenze
-
-
+
+
%0 ct/kWh
%0 ct/kWh
@@ -2161,28 +2400,20 @@
WiFiOnOffSwitch
-
-
On
- An
+ An
-
-
Off
- Aus
+ Aus
-
-
Do you really want to disable Wi-Fi?
- Möchten Sie wirklich WLAN ausschalten?
+ Möchten Sie wirklich WLAN ausschalten?
-
-
This action could make your device unreachable from your local homenetwork or the cloud!
- Diese Aktion könnte das Gerät im Heimnetzwerk und aus der Cloud unerreichbar machen!
+ Diese Aktion könnte das Gerät im Heimnetzwerk und aus der Cloud unerreichbar machen!
@@ -2194,16 +2425,181 @@
WLAN
-
-
+
+
+ Are you sure?
+ Sind Sie sicher?
+
+
+
+
+ Disabling Wi-Fi could make your device unreachable from your local homenetwork or the cloud!
+ Wenn die WLAN-Verbindung ausgeschaltet wird, kann Ihr Gerät im Heimnetzwerk und über die Cloud unerreichbar werden!
+
+
+
+
Status:
Status:
-
-
+
+
+ (%0) Wi-Fi Scan
+ (%0) Wi-Fi Scan
+
+
+
+
(%0) Wi-Fi Errors
(%0) WLAN Probleme
+
+
+
+ Min RSSI
+ Min RSSI
+
+
+
+
+ Pmf capable
+ Pmf fähig
+
+
+
+
+ Pmf required
+ Pmf erforderlich
+
+
+
+ WiFiScanPage
+
+
+
+ Wi-Fi Scan Result
+ WLAN Scan Result
+
+
+
+
+ SSID:
+ SSID:
+
+
+
+
+ Authmode:
+ Authentifizierungsart:
+
+
+
+
+ OPEN
+
+
+
+
+
+ WEP
+
+
+
+
+
+ WPA_PSK
+
+
+
+
+
+ WPA2_PSK
+
+
+
+
+
+ WPA_WPA2_PSK
+
+
+
+
+
+ WPA2_ENTERPRISE
+
+
+
+
+
+ WPA3_PSK
+
+
+
+
+
+ WPA2_WPA3_PSK
+
+
+
+
+
+ WAPI_PSK
+
+
+
+
+
+ OWE
+
+
+
+
+
+ WPA3_ENT_192
+
+
+
+
+
+ WPA3_EXT_PSK
+
+
+
+
+
+ WPA3_EXT_PSK_MIXED_MODE
+
+
+
+
+
+ Pairwise cipher:
+ Paarweise Cipher:
+
+
+
+
+ Group cipher:
+ Gruppen Cipher:
+
+
+
+
+ RSSI:
+ RSSI:
+
+
+
+
+ Channel:
+ Kanal:
+
+
+
+
+ BSSID:
+ BSSID:
+
diff --git a/qmldir b/qmldir
index 62af13c..808fd5a 100644
--- a/qmldir
+++ b/qmldir
@@ -18,6 +18,7 @@ EVChargerApp 1.0 ChargingConfigurationPage.qml
EVChargerApp 1.0 ChargingSpeedPage.qml
EVChargerApp 1.0 CloudPage.qml
EVChargerApp 1.0 CloudUrlsModel.qml
+EVChargerApp 1.0 ConfirmingOnOffSwitch.qml
EVChargerApp 1.0 ConnectingScreen.qml
EVChargerApp 1.0 ConnectionPage.qml
EVChargerApp 1.0 ControllerPage.qml
@@ -78,6 +79,5 @@ EVChargerApp 1.0 WhiteCheckDelegate.qml
EVChargerApp 1.0 WhiteItemDelegate.qml
EVChargerApp 1.0 WhiteSwipeDelegate.qml
EVChargerApp 1.0 WiFiErrorsPage.qml
-EVChargerApp 1.0 WiFiOnOffSwitch.qml
EVChargerApp 1.0 WiFiPage.qml
EVChargerApp 1.0 WiFiScanPage.qml