Add cellular settings, add connection disturbed popup

This commit is contained in:
2024-07-18 19:08:01 +02:00
parent 3c20fb2943
commit 418b1b13fa
10 changed files with 278 additions and 102 deletions

View File

@@ -17,6 +17,7 @@ AnimatedStackView {
} }
initialItem: DeviceListScreen { initialItem: DeviceListScreen {
id: deviceListScreen
onDeviceSelected: (url, password) => stackView.push(deviceScreenComponent, { url, password }) onDeviceSelected: (url, password) => stackView.push(deviceScreenComponent, { url, password })
} }
@@ -24,7 +25,7 @@ AnimatedStackView {
id: deviceScreenComponent id: deviceScreenComponent
DeviceScreen { DeviceScreen {
onCloseRequested: stackView.pop() onCloseRequested: stackView.pop(deviceListScreen)
} }
} }
} }

View File

@@ -62,6 +62,7 @@ qt_add_qml_module(evcharger-app
BaseNavigationPage.qml BaseNavigationPage.qml
CablePage.qml CablePage.qml
CarPage.qml CarPage.qml
CellularPage.qml
CenteredDialog.qml CenteredDialog.qml
ChargerTabPage.qml ChargerTabPage.qml
ChargingConfigurationPage.qml ChargingConfigurationPage.qml

56
CellularPage.qml Normal file
View File

@@ -0,0 +1,56 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
title: qsTr("Cellular")
ConfirmingOnOffSwitch {
apiKey: "cen"
dialogTitle: qsTr("Are you sure?")
dialogText: qsTr("Disabling Cellular could make your device unreachable from the cloud!")
}
EditValueItem {
text: qsTr("APN")
apiKey: "moap"
fullWidth: true
editableItem: TextField {
id: textField0
property alias value: textField0.text
}
}
EditValueItem {
text: qsTr("PIN")
apiKey: "mopi"
fullWidth: true
editableItem: TextField {
id: textField1
property alias value: textField1.text
}
}
// TODO auth Type
EditValueItem {
text: qsTr("Username")
apiKey: "mau"
fullWidth: true
editableItem: TextField {
id: textField2
property alias value: textField2.text
}
}
EditValueItem {
text: qsTr("Password")
apiKey: "mpap"
fullWidth: true
editableItem: TextField {
id: textField3
property alias value: textField3.text
}
}
}

View File

@@ -13,6 +13,13 @@ NavigationPage {
visible: wifiStaApiKeyValueHelper.exists visible: wifiStaApiKeyValueHelper.exists
} }
NavigationItem {
iconSource: "material-icons/grid_guides.svg"
title: qsTr("Cellular")
component: "CellularPage.qml"
visible: cellularApiKeyValueHelper.exists
}
NavigationItem { NavigationItem {
iconSource: "material-icons/grid_guides.svg" iconSource: "material-icons/grid_guides.svg"
title: qsTr("Hotspot") title: qsTr("Hotspot")

View File

@@ -12,7 +12,12 @@ Loader {
property alias password: theDeviceConnection.password property alias password: theDeviceConnection.password
function backPressed() { function backPressed() {
return item.backPressed() if (connectionDisturbed.visible) {
closeRequested()
return true
}
else
return item.backPressed()
} }
ListModel { ListModel {
@@ -34,6 +39,9 @@ Loader {
onLogMessage: (message) => collectedMessages.push(message) onLogMessage: (message) => collectedMessages.push(message)
onShowDisturbed: connectionDisturbed.open()
onHideDisturbed: connectionDisturbed.close()
onAuthRequired: { onAuthRequired: {
passwordError.visible = false; passwordError.visible = false;
passwordDialog.open(); passwordDialog.open();
@@ -120,4 +128,26 @@ Loader {
text: qsTr("To use this password remotely a password has to be setup first. This can be done over the AccessPoint."); text: qsTr("To use this password remotely a password has to be setup first. This can be done over the AccessPoint.");
} }
} }
Popup {
id: connectionDisturbed
parent: Overlay.overlay
anchors.centerIn: Overlay.overlay
// x: 100
// y: 100
// width: 200
// height: 300
modal: true
focus: true
closePolicy: Popup.NoAutoClose
contentItem: Text {
text: qsTr("Connection disturbed")
wrapMode: Text.Wrap
}
}
} }

View File

@@ -60,6 +60,11 @@ AnimatedStackView {
deviceConnection: theDeviceConnection deviceConnection: theDeviceConnection
apiKey: "wen" apiKey: "wen"
} }
ApiKeyValueHelper {
id: cellularApiKeyValueHelper
deviceConnection: theDeviceConnection
apiKey: "cen"
}
ApiKeyValueHelper { ApiKeyValueHelper {
id: wifiApApiKeyValueHelper id: wifiApApiKeyValueHelper
deviceConnection: theDeviceConnection deviceConnection: theDeviceConnection
@@ -90,6 +95,7 @@ AnimatedStackView {
title: qsTr("Connection") title: qsTr("Connection")
description: [ description: [
wifiStaApiKeyValueHelper.exists ? qsTr("Wi-Fi") : null, wifiStaApiKeyValueHelper.exists ? qsTr("Wi-Fi") : null,
cellularApiKeyValueHelper.exists ? qsTr("Cellular") : null,
wifiApApiKeyValueHelper.exists ? qsTr("Hotspot") : null, wifiApApiKeyValueHelper.exists ? qsTr("Hotspot") : null,
ethernetApiKeyValueHelper.exists ? qsTr("Ethernet") : null, ethernetApiKeyValueHelper.exists ? qsTr("Ethernet") : null,
cloudApiKeyValueHelper.exists ? qsTr("Cloud") : null, cloudApiKeyValueHelper.exists ? qsTr("Cloud") : null,

View File

@@ -132,6 +132,7 @@ void DeviceConnection::messageReceived(const QVariant &variant)
} }
const auto &type = typeVariant.toString(); const auto &type = typeVariant.toString();
qDebug() << type;
bool omitLog{}; bool omitLog{};
if (type == "hello") if (type == "hello")
@@ -277,6 +278,8 @@ void DeviceConnection::messageReceived(const QVariant &variant)
{ {
omitLog = true; omitLog = true;
emit hideDisturbed();
bool partial{}; bool partial{};
if (auto iter = map.find("partial"); iter != std::cend(map)) if (auto iter = map.find("partial"); iter != std::cend(map))
@@ -359,6 +362,10 @@ void DeviceConnection::messageReceived(const QVariant &variant)
} }
} }
} }
else if (type == "offline")
{
emit showDisturbed();
}
if (!omitLog) if (!omitLog)
{ {
@@ -465,6 +472,8 @@ void DeviceConnection::disconnected()
qDebug() << "called"; qDebug() << "called";
emit logMessage(tr("Disconnected!")); emit logMessage(tr("Disconnected!"));
emit showDisturbed();
emit logMessage(tr("Reconnecting to %0").arg(m_url)); emit logMessage(tr("Reconnecting to %0").arg(m_url));
QTimer::singleShot(1s, this, [this](){ QTimer::singleShot(1s, this, [this](){
m_websocket.open(QUrl{m_url}); m_websocket.open(QUrl{m_url});

View File

@@ -52,6 +52,8 @@ signals:
void passwordChanged(const QString &password); void passwordChanged(const QString &password);
void logMessage(const QString &message); void logMessage(const QString &message);
void showDisturbed();
void hideDisturbed();
void responseReceived(const QString &requestId, const QVariantMap &message); void responseReceived(const QString &requestId, const QVariantMap &message);

View File

@@ -261,6 +261,51 @@
<translation>Auto</translation> <translation>Auto</translation>
</message> </message>
</context> </context>
<context>
<name>CellularPage</name>
<message>
<location filename="../CellularPage.qml" line="7"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="7"/>
<source>Cellular</source>
<translation>Mobilfunk</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="11"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="11"/>
<source>Are you sure?</source>
<translation>Sind Sie sicher?</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="12"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="12"/>
<source>Disabling Cellular could make your device unreachable from the cloud!</source>
<translation>Wenn die Mobilfunkverbindung ausgeschaltet wird, kann Ihr Gerät unerreichbar werden, wenn die App über Mobilfunk verbunden ist!</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="16"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="16"/>
<source>APN</source>
<translation>APN</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="26"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="26"/>
<source>PIN</source>
<translation>PIN</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="38"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="38"/>
<source>Username</source>
<translation>Benutzername</translation>
</message>
<message>
<location filename="../CellularPage.qml" line="48"/>
<location filename="../build/Desktop-Debug/EVChargerApp/CellularPage.qml" line="48"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
</context>
<context> <context>
<name>ChargerTabPage</name> <name>ChargerTabPage</name>
<message> <message>
@@ -597,36 +642,42 @@
<message> <message>
<location filename="../ConnectionPage.qml" line="18"/> <location filename="../ConnectionPage.qml" line="18"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="18"/> <location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="18"/>
<source>Hotspot</source> <source>Cellular</source>
<translation>Hotspot</translation> <translation>Mobilfunk</translation>
</message> </message>
<message> <message>
<location filename="../ConnectionPage.qml" line="25"/> <location filename="../ConnectionPage.qml" line="25"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="25"/> <location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="25"/>
<source>Ethernet</source> <source>Hotspot</source>
<translation>Ethernet</translation> <translation>Hotspot</translation>
</message>
<message>
<location filename="../ConnectionPage.qml" line="39"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="39"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message> </message>
<message> <message>
<location filename="../ConnectionPage.qml" line="32"/> <location filename="../ConnectionPage.qml" line="32"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="32"/> <location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="32"/>
<source>Cloud</source> <source>Ethernet</source>
<translation>Cloud</translation> <translation>Ethernet</translation>
</message> </message>
<message> <message>
<location filename="../ConnectionPage.qml" line="46"/> <location filename="../ConnectionPage.qml" line="46"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="46"/> <location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="46"/>
<source>MQTT</source> <source>OCPP</source>
<translation>MQTT</translation> <translation>OCPP</translation>
</message>
<message>
<location filename="../ConnectionPage.qml" line="39"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="39"/>
<source>Cloud</source>
<translation>Cloud</translation>
</message> </message>
<message> <message>
<location filename="../ConnectionPage.qml" line="53"/> <location filename="../ConnectionPage.qml" line="53"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="53"/> <location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="53"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../ConnectionPage.qml" line="60"/>
<location filename="../build/Desktop-Debug/EVChargerApp/ConnectionPage.qml" line="60"/>
<source>API Settings</source> <source>API Settings</source>
<translation>API Einstellungen</translation> <translation>API Einstellungen</translation>
</message> </message>
@@ -705,42 +756,42 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="143"/> <location filename="../deviceconnection.cpp" line="144"/>
<source>Received hello without serial!</source> <source>Received hello without serial!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="150"/> <location filename="../deviceconnection.cpp" line="151"/>
<source>Received hello with a non-string serial!</source> <source>Received hello with a non-string serial!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="162"/> <location filename="../deviceconnection.cpp" line="163"/>
<source>Received hello with a non-bool secured!</source> <source>Received hello with a non-bool secured!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="175"/> <location filename="../deviceconnection.cpp" line="176"/>
<source>Received hello without manufacturer!</source> <source>Received hello without manufacturer!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="182"/> <location filename="../deviceconnection.cpp" line="183"/>
<source>Received hello with a non-string manufacturer!</source> <source>Received hello with a non-string manufacturer!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="211"/> <location filename="../deviceconnection.cpp" line="212"/>
<source>Received hello without friendly_name!</source> <source>Received hello without friendly_name!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="218"/> <location filename="../deviceconnection.cpp" line="219"/>
<source>Received hello with a non-string friendly_name!</source> <source>Received hello with a non-string friendly_name!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="193"/> <location filename="../deviceconnection.cpp" line="194"/>
<source>Received hello without devicetype!</source> <source>Received hello without devicetype!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -755,142 +806,142 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="200"/> <location filename="../deviceconnection.cpp" line="201"/>
<source>Received hello with a non-string devicetype!</source> <source>Received hello with a non-string devicetype!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="239"/> <location filename="../deviceconnection.cpp" line="240"/>
<source>Received authRequired without token1!</source> <source>Received authRequired without token1!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="246"/> <location filename="../deviceconnection.cpp" line="247"/>
<source>Received authRequired with a non-string token1!</source> <source>Received authRequired with a non-string token1!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="257"/> <location filename="../deviceconnection.cpp" line="258"/>
<source>Received authRequired without token2!</source> <source>Received authRequired without token2!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="264"/> <location filename="../deviceconnection.cpp" line="265"/>
<source>Received authRequired with a non-string token2!</source> <source>Received authRequired with a non-string token2!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="287"/> <location filename="../deviceconnection.cpp" line="290"/>
<source>Received fullStatus with a non-bool partial!</source> <source>Received fullStatus with a non-bool partial!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="297"/> <location filename="../deviceconnection.cpp" line="300"/>
<source>Received fullStatus without a status!</source> <source>Received fullStatus without a status!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="304"/> <location filename="../deviceconnection.cpp" line="307"/>
<source>Received fullStatus with a non-object status!</source> <source>Received fullStatus with a non-object status!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="312"/> <location filename="../deviceconnection.cpp" line="315"/>
<source>Received partial fullStatus</source> <source>Received partial fullStatus</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="312"/> <location filename="../deviceconnection.cpp" line="315"/>
<source>Received last fullStatus</source> <source>Received last fullStatus</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="324"/> <location filename="../deviceconnection.cpp" line="327"/>
<source>Received deltaStatus without a status!</source> <source>Received deltaStatus without a status!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="331"/> <location filename="../deviceconnection.cpp" line="334"/>
<source>Received deltaStatus with a non-object status!</source> <source>Received deltaStatus with a non-object status!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="365"/> <location filename="../deviceconnection.cpp" line="372"/>
<source>Received message type %0 %1</source> <source>Received message type %0 %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="373"/> <location filename="../deviceconnection.cpp" line="380"/>
<source>Received message with a non-string requestId!</source> <source>Received message with a non-string requestId!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="426"/> <location filename="../deviceconnection.cpp" line="433"/>
<source>Sending %0</source> <source>Sending %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="460"/> <location filename="../deviceconnection.cpp" line="467"/>
<source>Connected!</source> <source>Connected!</source>
<translation>Verbunden!</translation> <translation>Verbunden!</translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="466"/> <location filename="../deviceconnection.cpp" line="473"/>
<source>Disconnected!</source> <source>Disconnected!</source>
<translation>Verbindung verloren!</translation> <translation>Verbindung verloren!</translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="468"/> <location filename="../deviceconnection.cpp" line="477"/>
<source>Reconnecting to %0</source> <source>Reconnecting to %0</source>
<translation>Verbinde wieder zu %0</translation> <translation>Verbinde wieder zu %0</translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="477"/> <location filename="../deviceconnection.cpp" line="486"/>
<source>state changed: %0</source> <source>state changed: %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="486"/> <location filename="../deviceconnection.cpp" line="495"/>
<source>could not parse received json: %0 at offset %1</source> <source>could not parse received json: %0 at offset %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="503"/> <location filename="../deviceconnection.cpp" line="512"/>
<source>unknown binary message type %0 received</source> <source>unknown binary message type %0 received</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="511"/> <location filename="../deviceconnection.cpp" line="520"/>
<source>error occured: %0</source> <source>error occured: %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="517"/> <location filename="../deviceconnection.cpp" line="526"/>
<source>ssl peer verify error</source> <source>ssl peer verify error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="523"/> <location filename="../deviceconnection.cpp" line="532"/>
<source>ssl errors</source> <source>ssl errors</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="534"/> <location filename="../deviceconnection.cpp" line="543"/>
<source>ssl alert sent level=%0 type=%1 description=%2</source> <source>ssl alert sent level=%0 type=%1 description=%2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="540"/> <location filename="../deviceconnection.cpp" line="549"/>
<source>ssl alert received level=%0 type=%1 description=%2</source> <source>ssl alert received level=%0 type=%1 description=%2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="546"/> <location filename="../deviceconnection.cpp" line="555"/>
<source>ssl handshake interrupted on error</source> <source>ssl handshake interrupted on error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../deviceconnection.cpp" line="593"/> <location filename="../deviceconnection.cpp" line="602"/>
<source>unknown response type %0</source> <source>unknown response type %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -1033,35 +1084,41 @@
<context> <context>
<name>DeviceScreen</name> <name>DeviceScreen</name>
<message> <message>
<location filename="../DeviceScreen.qml" line="68"/> <location filename="../DeviceScreen.qml" line="76"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="68"/> <location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="76"/>
<source>Password required</source> <source>Password required</source>
<translation>Passwort erforderlich</translation> <translation>Passwort erforderlich</translation>
</message> </message>
<message> <message>
<location filename="../DeviceScreen.qml" line="91"/> <location filename="../DeviceScreen.qml" line="99"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="91"/> <location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="99"/>
<source>Password:</source> <source>Password:</source>
<translation>Passwort:</translation> <translation>Passwort:</translation>
</message> </message>
<message> <message>
<location filename="../DeviceScreen.qml" line="101"/> <location filename="../DeviceScreen.qml" line="109"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="101"/> <location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="109"/>
<source>Password</source> <source>Password</source>
<translation>Passwort</translation> <translation>Passwort</translation>
</message> </message>
<message> <message>
<location filename="../DeviceScreen.qml" line="111"/> <location filename="../DeviceScreen.qml" line="119"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="111"/> <location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="119"/>
<source>Authentication impossible!</source> <source>Authentication impossible!</source>
<translation>Authentifizierung unmöglich!</translation> <translation>Authentifizierung unmöglich!</translation>
</message> </message>
<message> <message>
<location filename="../DeviceScreen.qml" line="120"/> <location filename="../DeviceScreen.qml" line="128"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="120"/> <location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="128"/>
<source>To use this password remotely a password has to be setup first. This can be done over the AccessPoint.</source> <source>To use this password remotely a password has to be setup first. This can be done over the AccessPoint.</source>
<translation>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.</translation> <translation>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.</translation>
</message> </message>
<message>
<location filename="../DeviceScreen.qml" line="149"/>
<location filename="../build/Desktop-Debug/EVChargerApp/DeviceScreen.qml" line="149"/>
<source>Connection disturbed</source>
<translation>Verbindung schwer gestört</translation>
</message>
</context> </context>
<context> <context>
<name>DevicesModel</name> <name>DevicesModel</name>
@@ -2184,104 +2241,110 @@
<translation>Kategorien</translation> <translation>Kategorien</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="92"/> <location filename="../SettingsTabPage.qml" line="97"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="92"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="97"/>
<source>Wi-Fi</source> <source>Wi-Fi</source>
<translation>WLAN</translation> <translation>WLAN</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="93"/> <location filename="../SettingsTabPage.qml" line="98"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="93"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="98"/>
<source>Cellular</source>
<translation>Mobilfunk</translation>
</message>
<message>
<location filename="../SettingsTabPage.qml" line="99"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="99"/>
<source>Hotspot</source> <source>Hotspot</source>
<translation>Hotspot</translation> <translation>Hotspot</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="94"/> <location filename="../SettingsTabPage.qml" line="100"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="94"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="100"/>
<source>Ethernet</source> <source>Ethernet</source>
<translation>Ethernet</translation> <translation>Ethernet</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="96"/> <location filename="../SettingsTabPage.qml" line="102"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="96"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="102"/>
<source>OCPP</source> <source>OCPP</source>
<translation>OCPP</translation> <translation>OCPP</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="95"/> <location filename="../SettingsTabPage.qml" line="101"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="95"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="101"/>
<source>Cloud</source> <source>Cloud</source>
<translation>Cloud</translation> <translation>Cloud</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="97"/> <location filename="../SettingsTabPage.qml" line="103"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="97"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="103"/>
<source>MQTT</source> <source>MQTT</source>
<translation>MQTT</translation> <translation>MQTT</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="98"/> <location filename="../SettingsTabPage.qml" line="104"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="98"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="104"/>
<source>API Settings</source> <source>API Settings</source>
<translation>API Einstellungen</translation> <translation>API Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="122"/> <location filename="../SettingsTabPage.qml" line="128"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="122"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="128"/>
<source>Name</source> <source>Name</source>
<translation>Name</translation> <translation>Name</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="123"/> <location filename="../SettingsTabPage.qml" line="129"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="123"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="129"/>
<source>Switch Language</source> <source>Switch Language</source>
<translation>Sprache ändern</translation> <translation>Sprache ändern</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="124"/> <location filename="../SettingsTabPage.qml" line="130"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="124"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="130"/>
<source>Notifications</source> <source>Notifications</source>
<translation>Benachrichtigungen</translation> <translation>Benachrichtigungen</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="125"/> <location filename="../SettingsTabPage.qml" line="131"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="125"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="131"/>
<source>Date and time</source> <source>Date and time</source>
<translation>Datum und Uhrzeit</translation> <translation>Datum und Uhrzeit</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="126"/> <location filename="../SettingsTabPage.qml" line="132"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="126"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="132"/>
<source>LED</source> <source>LED</source>
<translation>LED</translation> <translation>LED</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="127"/> <location filename="../SettingsTabPage.qml" line="133"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="127"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="133"/>
<source>Controller</source> <source>Controller</source>
<translation>Controller</translation> <translation>Controller</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="128"/> <location filename="../SettingsTabPage.qml" line="134"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="128"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="134"/>
<source>Display settings</source> <source>Display settings</source>
<translation>Display</translation> <translation>Display</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="136"/> <location filename="../SettingsTabPage.qml" line="142"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="136"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="142"/>
<source>Firmware</source> <source>Firmware</source>
<translation>Firmware</translation> <translation>Firmware</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="137"/> <location filename="../SettingsTabPage.qml" line="143"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="137"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="143"/>
<source>Hardware information</source> <source>Hardware information</source>
<translation>Hardwareinformationen</translation> <translation>Hardwareinformationen</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="138"/> <location filename="../SettingsTabPage.qml" line="144"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="138"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="144"/>
<source>Licenses</source> <source>Licenses</source>
<translation>Lizenzen</translation> <translation>Lizenzen</translation>
</message> </message>
@@ -2310,8 +2373,8 @@
<translation type="vanished">Sensoren Kategorien</translation> <translation type="vanished">Sensoren Kategorien</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="90"/> <location filename="../SettingsTabPage.qml" line="95"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="90"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="95"/>
<source>Connection</source> <source>Connection</source>
<translation>Verbindung</translation> <translation>Verbindung</translation>
</message> </message>
@@ -2320,8 +2383,8 @@
<translation type="vanished">WLAN Hotspot OCPP API Einstellungen</translation> <translation type="vanished">WLAN Hotspot OCPP API Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="120"/> <location filename="../SettingsTabPage.qml" line="126"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="120"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="126"/>
<source>General</source> <source>General</source>
<translation>Allgemein</translation> <translation>Allgemein</translation>
</message> </message>
@@ -2330,8 +2393,8 @@
<translation type="vanished">Name Sprache ändern Benachrichtigungen Datum und Uhrzeit LED Controller</translation> <translation type="vanished">Name Sprache ändern Benachrichtigungen Datum und Uhrzeit LED Controller</translation>
</message> </message>
<message> <message>
<location filename="../SettingsTabPage.qml" line="134"/> <location filename="../SettingsTabPage.qml" line="140"/>
<location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="134"/> <location filename="../build/Desktop-Debug/EVChargerApp/SettingsTabPage.qml" line="140"/>
<source>About</source> <source>About</source>
<translation>Über</translation> <translation>Über</translation>
</message> </message>

1
qmldir
View File

@@ -12,6 +12,7 @@ EVChargerApp 1.0 AppSettingsPage.qml
EVChargerApp 1.0 BaseNavigationPage.qml EVChargerApp 1.0 BaseNavigationPage.qml
EVChargerApp 1.0 CablePage.qml EVChargerApp 1.0 CablePage.qml
EVChargerApp 1.0 CarPage.qml EVChargerApp 1.0 CarPage.qml
EVChargerApp 1.0 CellularPage.qml
EVChargerApp 1.0 CenteredDialog.qml EVChargerApp 1.0 CenteredDialog.qml
EVChargerApp 1.0 ChargerTabPage.qml EVChargerApp 1.0 ChargerTabPage.qml
EVChargerApp 1.0 ChargingConfigurationPage.qml EVChargerApp 1.0 ChargingConfigurationPage.qml