Add flotten-updater and goecommon lib

This commit is contained in:
feedc0de committed 2024-10-11 09:43:29 +02:00
1 parent 20e3e9c7ab
commit f622d76ec8
197 files changed
+3475 -272

No files matched your search

+4 -175
View File
@@ -19,179 +19,8 @@ find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Quick WebSockets LinguistT
qt_standard_project_setup(REQUIRES 6.6 I18N_TRANSLATED_LANGUAGES de)
qt_add_executable(evcharger-app WIN32 MACOSX_BUNDLE
src/apikeyvaluehelper.cpp
src/apikeyvaluehelper.h
src/appsettings.cpp
src/appsettings.h
src/deviceconnection.cpp
src/deviceconnection.h
src/devicesmodel.cpp
src/devicesmodel.h
src/main.cpp
src/sendmessagehelper.cpp
src/sendmessagehelper.h
)
target_include_directories(evcharger-app
PRIVATE
src
)
qt6_add_translations(evcharger-app
RESOURCE_PREFIX /EVChargerApp/i18n
TS_FILE_BASE qml
TS_FILE_DIR i18n
)
set_property(TARGET evcharger-app APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)
if (ANDROID)
include(${ANDROID_SDK_ROOT}/android_openssl/CMakeLists.txt)
set_target_properties(evcharger-app PROPERTIES QT_ANDROID_EXTRA_LIBS "${ANDROID_EXTRA_LIBS}")
add_subdirectory(evcharger-app)
if (NOT ANDROID)
add_subdirectory(flotten-updater)
endif()
qt_add_qml_module(evcharger-app
URI EVChargerApp
VERSION 1.0
QML_FILES
qml/AboutPage.qml
qml/AccessPage.qml
qml/AddDeviceScreen.qml
qml/AnimatedStackLayout.qml
qml/AnimatedStackView.qml
qml/ApiKeyValueItem.qml
qml/ApiSettingsPage.qml
qml/AppInstance.qml
qml/AppSettingsPage.qml
qml/BaseNavigationPage.qml
qml/CablePage.qml
qml/CarPage.qml
qml/CellularPage.qml
qml/CenteredDialog.qml
qml/ChargerTabPage.qml
qml/ChargingConfigurationPage.qml
qml/ChargingSpeedPage.qml
qml/CloudApiQrCodePage.qml
qml/CloudPage.qml
qml/CloudUrlsModel.qml
qml/ConfirmingOnOffSwitch.qml
qml/ConnectingScreen.qml
qml/ConnectionPage.qml
qml/Constants.qml
qml/ControllerPage.qml
qml/ControllerTabPage.qml
qml/CurrentLevelsPage.qml
qml/DailyTripPage.qml
qml/DateAndTimePage.qml
qml/DeviceHeaderBar.qml
qml/DeviceListScreen.qml
qml/DeviceScreen.qml
qml/DisplaySettingsPage.qml
qml/DoubleSpinBox.qml
qml/EcoTabPage.qml
qml/EditValueItem.qml
qml/EthernetPage.qml
qml/EVChargerApp.qml
qml/FirmwarePage.qml
qml/FlexibleEnergyTariffPage.qml
qml/GeneralOnOffSwitch.qml
qml/GeneralPage.qml
qml/GridPage.qml
qml/GroundCheckPage.qml
qml/HardwareInformationPage.qml
qml/HotspotPage.qml
qml/InformationsTabPage.qml
qml/KwhLimitPage.qml
qml/LedPage.qml
qml/LicensesPage.qml
qml/LoadBalancingPage.qml
qml/LogicModeButton.qml
qml/MainScreen.qml
qml/MqttPage.qml
qml/NamePage.qml
qml/NavigationItem.qml
qml/NavigationPage.qml
qml/NotificationsPage.qml
qml/OcppPage.qml
qml/OpenLinkButton.qml
qml/PasswordPage.qml
qml/PvSurplusPage.qml
qml/QrCode.qml
qml/RebootPage.qml
qml/RequestStatusText.qml
qml/SchedulerDayPage.qml
qml/SchedulerPage.qml
qml/ScrollableTabPage.qml
qml/SecurityPage.qml
qml/SelectLogicModeItem.qml
qml/SelectPhaseSwitchModeItem.qml
qml/SensorsConfigurationPage.qml
qml/SetPriceLimitPage.qml
qml/SettingsTabPage.qml
qml/SetValueHelper.qml
qml/SimpleNavigationItem.qml
qml/StartStopButton.qml
qml/SwitchLanguagePage.qml
qml/TimeComponentLabel.qml
qml/TimePickerDialog.qml
qml/TimePickerLabel.qml
qml/TimePicker.qml
qml/TitleText.qml
qml/VerticalTabButton.qml
qml/WhiteBox.qml
qml/WhiteCheckDelegate.qml
qml/WhiteItemDelegate.qml
qml/WhiteSwipeDelegate.qml
qml/WiFiErrorsPage.qml
qml/WiFiPage.qml
qml/WiFiScanPage.qml
RESOURCES
qml/icons/Charger.svg
qml/icons/ChargerV3.svg
qml/icons/ChargerV4.svg
qml/icons/Controller.svg
qml/icons/Alarm.svg
qml/icons/EcoModeFilled.svg
qml/icons/Charts.svg
qml/images/controller.png
qml/images/geminiFlex.png
qml/images/homeFix.png
qml/images/homePlus.png
qml/images/wattpilot.png
qml/images/phoenix.png
qml/images/geminiFix.png
qml/js/qrcode.min.js
qml/material-icons/add.svg
qml/material-icons/grid_guides.svg
qml/material-icons/open_in_new.svg
qml/material-icons/settings.svg
qml/ui-icons/MaterialIcons-Regular.ttf
)
set_source_files_properties(Constants.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
target_link_libraries(evcharger-app PUBLIC
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Quick
Qt6::WebSockets
qmsgpack
QtZeroConf
)
install(TARGETS evcharger-app
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
qt_generate_deploy_qml_app_script(
TARGET evcharger-app
OUTPUT_SCRIPT deploy_script
MACOS_BUNDLE_POST_BUILD
NO_UNSUPPORTED_PLATFORM_ERROR
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
)
install(SCRIPT ${deploy_script})
add_subdirectory(goecommon)
-1
View File
@@ -1 +0,0 @@
../../3rdparty/QtZeroConf/QZeroConfNsdManager.java
+171
View File
@@ -0,0 +1,171 @@
qt_add_executable(evcharger-app WIN32 MACOSX_BUNDLE
appsettings.cpp
appsettings.h
apikeyvaluehelper.cpp
apikeyvaluehelper.h
deviceconnection.cpp
deviceconnection.h
devicesmodel.cpp
devicesmodel.h
main.cpp
sendmessagehelper.cpp
sendmessagehelper.h
)
qt6_add_translations(evcharger-app
RESOURCE_PREFIX /EVChargerApp/i18n
TS_FILE_BASE qml
TS_FILE_DIR i18n
)
if (ANDROID)
set_property(TARGET evcharger-app APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)
include(${ANDROID_SDK_ROOT}/android_openssl/CMakeLists.txt)
set_target_properties(evcharger-app PROPERTIES QT_ANDROID_EXTRA_LIBS "${ANDROID_EXTRA_LIBS}")
endif()
qt_add_qml_module(evcharger-app
URI EVChargerApp
VERSION 1.0
QML_FILES
qml/AboutPage.qml
qml/AccessPage.qml
qml/AddDeviceScreen.qml
qml/AnimatedStackLayout.qml
qml/AnimatedStackView.qml
qml/ApiKeyValueItem.qml
qml/ApiSettingsPage.qml
qml/AppInstance.qml
qml/AppSettingsPage.qml
qml/BaseNavigationPage.qml
qml/CablePage.qml
qml/CarPage.qml
qml/CellularPage.qml
qml/CenteredDialog.qml
qml/ChargerTabPage.qml
qml/ChargingConfigurationPage.qml
qml/ChargingSpeedPage.qml
qml/CloudApiQrCodePage.qml
qml/CloudPage.qml
qml/CloudUrlsModel.qml
qml/ConfirmingOnOffSwitch.qml
qml/ConnectingScreen.qml
qml/ConnectionPage.qml
qml/Constants.qml
qml/ControllerPage.qml
qml/ControllerTabPage.qml
qml/CurrentLevelsPage.qml
qml/DailyTripPage.qml
qml/DateAndTimePage.qml
qml/DeviceHeaderBar.qml
qml/DeviceListScreen.qml
qml/DeviceScreen.qml
qml/DisplaySettingsPage.qml
qml/DoubleSpinBox.qml
qml/EcoTabPage.qml
qml/EditValueItem.qml
qml/EthernetPage.qml
qml/EVChargerApp.qml
qml/FirmwarePage.qml
qml/FlexibleEnergyTariffPage.qml
qml/GeneralOnOffSwitch.qml
qml/GeneralPage.qml
qml/GridPage.qml
qml/GroundCheckPage.qml
qml/HardwareInformationPage.qml
qml/HotspotPage.qml
qml/InformationsTabPage.qml
qml/KwhLimitPage.qml
qml/LedPage.qml
qml/LicensesPage.qml
qml/LoadBalancingPage.qml
qml/LogicModeButton.qml
qml/MainScreen.qml
qml/MqttPage.qml
qml/NamePage.qml
qml/NavigationItem.qml
qml/NavigationPage.qml
qml/NotificationsPage.qml
qml/OcppPage.qml
qml/OpenLinkButton.qml
qml/PasswordPage.qml
qml/PvSurplusPage.qml
qml/QrCode.qml
qml/RebootPage.qml
qml/RequestStatusText.qml
qml/SchedulerDayPage.qml
qml/SchedulerPage.qml
qml/ScrollableTabPage.qml
qml/SecurityPage.qml
qml/SelectLogicModeItem.qml
qml/SelectPhaseSwitchModeItem.qml
qml/SensorsConfigurationPage.qml
qml/SetPriceLimitPage.qml
qml/SettingsTabPage.qml
qml/SetValueHelper.qml
qml/SimpleNavigationItem.qml
qml/StartStopButton.qml
qml/SwitchLanguagePage.qml
qml/TimeComponentLabel.qml
qml/TimePickerDialog.qml
qml/TimePickerLabel.qml
qml/TimePicker.qml
qml/TitleText.qml
qml/VerticalTabButton.qml
qml/WhiteBox.qml
qml/WhiteCheckDelegate.qml
qml/WhiteItemDelegate.qml
qml/WhiteSwipeDelegate.qml
qml/WiFiErrorsPage.qml
qml/WiFiPage.qml
qml/WiFiScanPage.qml
RESOURCES
qml/icons/Charger.svg
qml/icons/ChargerV3.svg
qml/icons/ChargerV4.svg
qml/icons/Controller.svg
qml/icons/Alarm.svg
qml/icons/EcoModeFilled.svg
qml/icons/Charts.svg
qml/images/controller.png
qml/images/geminiFlex.png
qml/images/homeFix.png
qml/images/homePlus.png
qml/images/wattpilot.png
qml/images/phoenix.png
qml/images/geminiFix.png
qml/js/qrcode.min.js
qml/material-icons/add.svg
qml/material-icons/grid_guides.svg
qml/material-icons/open_in_new.svg
qml/material-icons/settings.svg
qml/ui-icons/MaterialIcons-Regular.ttf
)
set_source_files_properties(qml/Constants.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
target_link_libraries(evcharger-app PUBLIC
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Quick
Qt6::WebSockets
qmsgpack
QtZeroConf
goecommon
)
install(TARGETS evcharger-app
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
qt_generate_deploy_qml_app_script(
TARGET evcharger-app
OUTPUT_SCRIPT deploy_script
MACOS_BUNDLE_POST_BUILD
NO_UNSUPPORTED_PLATFORM_ERROR
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
)
install(SCRIPT ${deploy_script})
File renamed without changes.
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
../../../3rdparty/QtZeroConf/QZeroConfNsdManager.java
File renamed without changes.
File renamed without changes.
+32
View File
@@ -0,0 +1,32 @@
#include "appsettings.h"
#include <QFile>
#include <QQmlFile>
bool AppSettings::loadSolalawebKey(const QString &url)
{
QFile file{QQmlFile::urlToLocalFileOrQrc(url)};
if (!file.open(QFile::ReadOnly))
{
qWarning() << "Could not open file:" << file.errorString();
return false;
}
setSolalawebKey(file.readAll());
return true;
}
bool AppSettings::loadSolalawebCert(const QString &url)
{
QFile file{QQmlFile::urlToLocalFileOrQrc(url)};
if (!file.open(QFile::ReadOnly))
{
qWarning() << "Could not open file:" << file.errorString();
return false;
}
setSolalawebCert(file.readAll());
return true;
}
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include <QtQml/qqmlregistration.h>
#include "goesettings.h"
class AppSettings : public GoeSettings
{
Q_OBJECT
QML_ELEMENT
public:
Q_INVOKABLE bool loadSolalawebKey(const QString &url);
Q_INVOKABLE bool loadSolalawebCert(const QString &url);
};
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+553 -46
View File
@@ -307,6 +307,91 @@
<translation>IP Adresse:</translation>
</message>
</context>
<context>
<name>ChargerConnection</name>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="79"/>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>Unknown</source>
<translation type="unfinished">Unbekannt</translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="80"/>
<source>Ok</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="81"/>
<source>Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>Idle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<source>Updating</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<source>Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<source>Succeeded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<source>NotReady</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="220"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="233"/>
<source>%0 %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="235"/>
<source>%0 %1/?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="237"/>
<source>%0 ?/%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>Charging</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>WaitCar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargerconnection.cpp" line="311"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChargerTabPage</name>
<message>
@@ -488,6 +573,99 @@
<translation>Daily trip</translation>
</message>
</context>
<context>
<name>ChargersModel</name>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="264"/>
<source>Serial</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="265"/>
<source>WS Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="266"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="267"/>
<source>Variant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="268"/>
<source>IsGo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="269"/>
<source>IsAustralien</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="270"/>
<source>ResetCard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="271"/>
<source>ConnectedWifi</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="272"/>
<source>Project</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="273"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="274"/>
<source>IDF Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="275"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="276"/>
<source>Reboots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="277"/>
<source>Uptime</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="278"/>
<source>Current Partition</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="279"/>
<source>Car state</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="280"/>
<source>Energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/chargersmodel.cpp" line="281"/>
<source>Livedata</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChargingConfigurationPage</name>
<message>
@@ -562,7 +740,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CloudApiQrCodePage.qml" line="36"/>
<location filename="../qml/CloudApiQrCodePage.qml" line="35"/>
<source>Open integrations page</source>
<translation>Integrationsseite öffnen</translation>
</message>
@@ -783,212 +961,212 @@
<context>
<name>DeviceConnection</name>
<message>
<location filename="../src/deviceconnection.cpp" line="68"/>
<location filename="../deviceconnection.cpp" line="68"/>
<source>Connecting to %0</source>
<translation>Verbinde zu %0</translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="115"/>
<location filename="../deviceconnection.cpp" line="115"/>
<source>Received something that is not a json object!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="123"/>
<location filename="../deviceconnection.cpp" line="123"/>
<source>Received something that does not contain a type!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="130"/>
<location filename="../deviceconnection.cpp" line="130"/>
<source>Received something with a non-string type!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="144"/>
<location filename="../deviceconnection.cpp" line="144"/>
<source>Received hello without serial!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="151"/>
<location filename="../deviceconnection.cpp" line="151"/>
<source>Received hello with a non-string serial!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="163"/>
<location filename="../deviceconnection.cpp" line="163"/>
<source>Received hello with a non-bool secured!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="176"/>
<location filename="../deviceconnection.cpp" line="176"/>
<source>Received hello without manufacturer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="183"/>
<location filename="../deviceconnection.cpp" line="183"/>
<source>Received hello with a non-string manufacturer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="212"/>
<location filename="../deviceconnection.cpp" line="212"/>
<source>Received hello without friendly_name!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="219"/>
<location filename="../deviceconnection.cpp" line="219"/>
<source>Received hello with a non-string friendly_name!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="194"/>
<location filename="../deviceconnection.cpp" line="194"/>
<source>Received hello without devicetype!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="78"/>
<location filename="../deviceconnection.cpp" line="78"/>
<source>Could not parse solalaweb certificate!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="89"/>
<location filename="../deviceconnection.cpp" line="89"/>
<source>Could not parse solalaweb key!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="201"/>
<location filename="../deviceconnection.cpp" line="201"/>
<source>Received hello with a non-string devicetype!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="240"/>
<location filename="../deviceconnection.cpp" line="240"/>
<source>Received authRequired without token1!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="247"/>
<location filename="../deviceconnection.cpp" line="247"/>
<source>Received authRequired with a non-string token1!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="258"/>
<location filename="../deviceconnection.cpp" line="258"/>
<source>Received authRequired without token2!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="265"/>
<location filename="../deviceconnection.cpp" line="265"/>
<source>Received authRequired with a non-string token2!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="290"/>
<location filename="../deviceconnection.cpp" line="290"/>
<source>Received fullStatus with a non-bool partial!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="300"/>
<location filename="../deviceconnection.cpp" line="300"/>
<source>Received fullStatus without a status!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="307"/>
<location filename="../deviceconnection.cpp" line="307"/>
<source>Received fullStatus with a non-object status!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="315"/>
<location filename="../deviceconnection.cpp" line="315"/>
<source>Received partial fullStatus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="315"/>
<location filename="../deviceconnection.cpp" line="315"/>
<source>Received last fullStatus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="327"/>
<location filename="../deviceconnection.cpp" line="327"/>
<source>Received deltaStatus without a status!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="334"/>
<location filename="../deviceconnection.cpp" line="334"/>
<source>Received deltaStatus with a non-object status!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="372"/>
<location filename="../deviceconnection.cpp" line="372"/>
<source>Received message type %0 %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="380"/>
<location filename="../deviceconnection.cpp" line="380"/>
<source>Received message with a non-string requestId!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="433"/>
<location filename="../deviceconnection.cpp" line="433"/>
<source>Sending %0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="467"/>
<location filename="../deviceconnection.cpp" line="467"/>
<source>Connected!</source>
<translation>Verbunden!</translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="473"/>
<location filename="../deviceconnection.cpp" line="473"/>
<source>Disconnected!</source>
<translation>Verbindung verloren!</translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="477"/>
<location filename="../deviceconnection.cpp" line="477"/>
<source>Reconnecting to %0</source>
<translation>Verbinde wieder zu %0</translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="486"/>
<location filename="../deviceconnection.cpp" line="486"/>
<source>state changed: %0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="495"/>
<location filename="../deviceconnection.cpp" line="495"/>
<source>could not parse received json: %0 at offset %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="512"/>
<location filename="../deviceconnection.cpp" line="512"/>
<source>unknown binary message type %0 received</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="520"/>
<location filename="../deviceconnection.cpp" line="520"/>
<source>error occured: %0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="526"/>
<location filename="../deviceconnection.cpp" line="526"/>
<source>ssl peer verify error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="532"/>
<location filename="../deviceconnection.cpp" line="532"/>
<source>ssl errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="543"/>
<location filename="../deviceconnection.cpp" line="543"/>
<source>ssl alert sent level=%0 type=%1 description=%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="549"/>
<location filename="../deviceconnection.cpp" line="549"/>
<source>ssl alert received level=%0 type=%1 description=%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="555"/>
<location filename="../deviceconnection.cpp" line="555"/>
<source>ssl handshake interrupted on error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/deviceconnection.cpp" line="602"/>
<location filename="../deviceconnection.cpp" line="602"/>
<source>unknown response type %0</source>
<translation type="unfinished"></translation>
</message>
@@ -1158,8 +1336,8 @@
<context>
<name>DevicesModel</name>
<message>
<location filename="../src/devicesmodel.cpp" line="62"/>
<location filename="../src/devicesmodel.cpp" line="87"/>
<location filename="../devicesmodel.cpp" line="62"/>
<location filename="../devicesmodel.cpp" line="87"/>
<source>Device %0</source>
<translation>Gerät %0</translation>
</message>
@@ -1449,6 +1627,128 @@
<translation>Kanal</translation>
</message>
</context>
<context>
<name>ImportCertificateDialog</name>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="14"/>
<source>Import Certificate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="22"/>
<source>Supports Ssl:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="29"/>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="43"/>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="57"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="36"/>
<source>Ssl Library Version:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="50"/>
<source>Ssl Library Build Version:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="64"/>
<source>Ssl Backend:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="77"/>
<source>Automatic Import:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="87"/>
<source>Load p12 file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="94"/>
<source>Private Key:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="111"/>
<source>Private Cert:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.ui" line="130"/>
<source>Warning: Your private key and cert will be stored on this machine, but can later be erased from the main window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="26"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="26"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="51"/>
<source>Select certificate...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="58"/>
<source>Could not open file!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="63"/>
<source>Please enter password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="63"/>
<source>Certificate password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="77"/>
<source>Failed to load openssl legacy provider!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="82"/>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="88"/>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="94"/>
<source>Failed processing certificate!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="82"/>
<source>Possible reasons: openssl has a problem, the file is corrupt/invalid or the password is incorrect.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="88"/>
<source>The key seems to be invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="94"/>
<source>The cert seems to be invalid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/importcertificatedialog.cpp" line="149"/>
<source>Could not change active backend</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InformationsTabPage</name>
<message>
@@ -1541,6 +1841,104 @@
<translation>Einstellungen</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../flotten-updater/mainwindow.ui" line="14"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.ui" line="23"/>
<source>Connect All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.ui" line="30"/>
<source>Disconnect All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.ui" line="37"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.ui" line="44"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="46"/>
<source>Serial</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="55"/>
<source>Not yet implemented!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="60"/>
<source>%0 selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="82"/>
<source>Set update url...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="83"/>
<source>Start update...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="84"/>
<source>Reboot...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="85"/>
<source>Set chargectrl override...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="86"/>
<source>Set abitrary api key...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="90"/>
<source>Enter update url...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="90"/>
<source>Update url:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="106"/>
<source>Select update release...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="108"/>
<source>Update release</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="125"/>
<source>Are you sure?</source>
<translation type="unfinished">Sind Sie sicher?</translation>
</message>
<message>
<location filename="../../flotten-updater/mainwindow.cpp" line="125"/>
<source>Do you really want to reboot selected devices?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MqttPage</name>
<message>
@@ -1855,6 +2253,52 @@
<translation>Neustart</translation>
</message>
</context>
<context>
<name>RequestDialog</name>
<message>
<location filename="../../flotten-updater/requestdialog.ui" line="14"/>
<source>Pending requests...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RequestModel</name>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="94"/>
<source>Pending</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="95"/>
<source>Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="96"/>
<source>Succeeded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="125"/>
<source>Serial</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="126"/>
<source>RequestId</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="127"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/requestmodel.cpp" line="128"/>
<source>Message</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SavedDevicesModel</name>
<message>
@@ -2055,7 +2499,7 @@
<context>
<name>SendMessageHelper</name>
<message>
<location filename="../src/sendmessagehelper.cpp" line="42"/>
<location filename="../sendmessagehelper.cpp" line="42"/>
<source>No device connection set!</source>
<translation type="unfinished"></translation>
</message>
@@ -2068,6 +2512,54 @@
<translation>Sensorkonfiguration</translation>
</message>
</context>
<context>
<name>SetArbitraryApiKeyDialog</name>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.ui" line="14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.ui" line="22"/>
<source>ApiKey:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.ui" line="32"/>
<source>Value:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.ui" line="48"/>
<source>Sudo:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.ui" line="58"/>
<source>Enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.cpp" line="40"/>
<source>Could not parse JSON</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.cpp" line="46"/>
<source>Unexpected not array!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.cpp" line="54"/>
<source>Unexpected array length!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/setarbitraryapikeydialog.cpp" line="54"/>
<source>Unexpected array length: %0!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetPriceLimitPage</name>
<message>
@@ -2540,4 +3032,19 @@
<translation>BSSID:</translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../../flotten-updater/main.cpp" line="53"/>
<location filename="../../flotten-updater/main.cpp" line="54"/>
<source>Could not parse private key!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../flotten-updater/main.cpp" line="61"/>
<location filename="../../flotten-updater/main.cpp" line="62"/>
<source>Could not parse private cert!</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 197 files, more files were not shown because too many files have changed in this diff. Show more