From d2e11d6a9732da974a55b4de94ab33b34b9054e7 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 18 Mar 2022 18:01:27 +0100 Subject: [PATCH] Fix syncing of remote connection settings directly on activation --- .../configuration/nymeaconfiguration.cpp | 262 ++++++++++-------- .../configuration/serverconfigurations.cpp | 10 + .../configuration/serverconfigurations.h | 3 +- libnymea-app/system/systemcontroller.cpp | 19 +- nymea-app/translations/nymea-app-de.ts | 4 +- nymea-app/ui/RootItem.qml | 3 + .../AdvancedConnectionInterfacesPage.qml | 2 +- .../ui/system/ConnectionInterfacesPage.qml | 2 +- 8 files changed, 183 insertions(+), 122 deletions(-) diff --git a/libnymea-app/configuration/nymeaconfiguration.cpp b/libnymea-app/configuration/nymeaconfiguration.cpp index 52932091..42f33e2c 100644 --- a/libnymea-app/configuration/nymeaconfiguration.cpp +++ b/libnymea-app/configuration/nymeaconfiguration.cpp @@ -295,7 +295,7 @@ void NymeaConfiguration::deleteMqttPolicy(const QString &clientId) void NymeaConfiguration::getConfigurationsResponse(int commandId, const QVariantMap ¶ms) { Q_UNUSED(commandId) -// qDebug() << "have config reply" << params; + qCDebug(dcNymeaConfiguration) << "GetConfigurations response" << qUtf8Printable(QJsonDocument::fromVariant(params).toJson()); QVariantMap basicConfig = params.value("basicConfiguration").toMap(); m_debugServerEnabled = basicConfig.value("debugServerEnabled").toBool(); emit debugServerEnabledChanged(); @@ -307,15 +307,16 @@ void NymeaConfiguration::getConfigurationsResponse(int commandId, const QVariant tcpServerConfigurations()->clear(); foreach (const QVariant &tcpServerVariant, params.value("tcpServerConfigurations").toList()) { -// qDebug() << "tcp server config:" << tcpServerVariant; QVariantMap tcpConfigMap = tcpServerVariant.toMap(); ServerConfiguration *config = new ServerConfiguration(tcpConfigMap.value("id").toString(), tcpConfigMap.value("address").toString(), tcpConfigMap.value("port").toInt(), tcpConfigMap.value("authenticationEnabled").toBool(), tcpConfigMap.value("sslEnabled").toBool()); + qCInfo(dcNymeaConfiguration) << "TCP server config:" << config->id() << config->address() << config->port() << config->authenticationEnabled() << config->sslEnabled(); m_tcpServerConfigurations->addConfiguration(config); } webSocketServerConfigurations()->clear(); foreach (const QVariant &websocketServerVariant, params.value("webSocketServerConfigurations").toList()) { QVariantMap websocketConfigMap = websocketServerVariant.toMap(); ServerConfiguration *config = new ServerConfiguration(websocketConfigMap.value("id").toString(), websocketConfigMap.value("address").toString(), websocketConfigMap.value("port").toInt(), websocketConfigMap.value("authenticationEnabled").toBool(), websocketConfigMap.value("sslEnabled").toBool()); + qCInfo(dcNymeaConfiguration) << "WebSocket server config:" << config->id() << config->address() << config->port() << config->authenticationEnabled() << config->sslEnabled(); m_webSocketServerConfigurations->addConfiguration(config); } @@ -324,12 +325,14 @@ void NymeaConfiguration::getConfigurationsResponse(int commandId, const QVariant QVariantMap webServerConfigMap = webServerVariant.toMap(); WebServerConfiguration* config = new WebServerConfiguration(webServerConfigMap.value("id").toString(), webServerConfigMap.value("address").toString(), webServerConfigMap.value("port").toInt(), webServerConfigMap.value("authenticationEnabled").toBool(), webServerConfigMap.value("sslEnabled").toBool()); config->setPublicFolder(webServerConfigMap.value("publicFolder").toString()); + qCInfo(dcNymeaConfiguration) << "WebServer server config:" << config->id() << config->address() << config->port() << config->authenticationEnabled() << config->sslEnabled() << config->publicFolder(); m_webServerConfigurations->addConfiguration(config); } foreach (const QVariant &tunnelProxyServerVariant, params.value("tunnelProxyServerConfigurations").toList()) { QVariantMap tunnelProxyServerConfigMap = tunnelProxyServerVariant.toMap(); TunnelProxyServerConfiguration *config = new TunnelProxyServerConfiguration(tunnelProxyServerConfigMap.value("id").toString(), tunnelProxyServerConfigMap.value("address").toString(), tunnelProxyServerConfigMap.value("port").toInt(), tunnelProxyServerConfigMap.value("authenticationEnabled").toBool(), tunnelProxyServerConfigMap.value("sslEnabled").toBool(), tunnelProxyServerConfigMap.value("ignoreSslErrors").toBool()); + qCInfo(dcNymeaConfiguration) << "Tunnel server config:" << config->id() << config->address() << config->port() << config->authenticationEnabled() << config->sslEnabled() << config->ignoreSslErrors(); m_tunnelProxyServerConfigurations->addConfiguration(config); } @@ -339,67 +342,67 @@ void NymeaConfiguration::getConfigurationsResponse(int commandId, const QVariant void NymeaConfiguration::setServerNameResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Server name set:" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Server name set:" << commandId << params; } void NymeaConfiguration::setTimezoneResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set timezone response" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set timezone response" << commandId << params; } void NymeaConfiguration::getCloudConfigurationResponse(const QVariantMap ¶ms) { - qDebug() << "Cloud config reply" << params; + qCDebug(dcNymeaConfiguration) << "Cloud config reply" << params; } void NymeaConfiguration::setCloudEnabledResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set cloud enabled:" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set cloud enabled:" << commandId << params; } void NymeaConfiguration::setDebugServerEnabledResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Debug server set:" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Debug server set:" << commandId << params; } void NymeaConfiguration::setTcpConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set TCP server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set TCP server config reply" << commandId << params; } void NymeaConfiguration::deleteTcpConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Deöete TCP server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Deöete TCP server config reply" << commandId << params; } void NymeaConfiguration::setWebSocketConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "set websocket config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "set websocket config reply" << commandId << params; } void NymeaConfiguration::setWebConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "set web server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "set web server config reply" << commandId << params; } void NymeaConfiguration::deleteWebConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Delete web server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Delete web server config reply" << commandId << params; } void NymeaConfiguration::deleteWebSocketConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Delete web socket server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Delete web socket server config reply" << commandId << params; } void NymeaConfiguration::setTunnelProxyServerConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set tunnel proxy server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set tunnel proxy server config reply" << commandId << params; } void NymeaConfiguration::deleteTunnelProxyServerConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Delete tunnel proxy server config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Delete tunnel proxy server config reply" << commandId << params; } void NymeaConfiguration::getMqttServerConfigsReply(int commandId, const QVariantMap ¶ms) @@ -415,18 +418,18 @@ void NymeaConfiguration::getMqttServerConfigsReply(int commandId, const QVariant void NymeaConfiguration::setMqttConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set mqtt config reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set mqtt config reply" << commandId << params; } void NymeaConfiguration::deleteMqttConfigReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Delete Mqtt Broker config reply:" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Delete Mqtt Broker config reply:" << commandId << params; } void NymeaConfiguration::getMqttPoliciesReply(int commandId, const QVariantMap ¶ms) { Q_UNUSED(commandId) -// qDebug() << "Mqtt polices:" << params; +// qCDebug(dcNymeaConfiguration) << "Mqtt polices:" << params; m_mqttPolicies->clear(); foreach (const QVariant &policyVariant, params.value("mqttPolicies").toList()) { QVariantMap policyMap = policyVariant.toMap(); @@ -442,113 +445,155 @@ void NymeaConfiguration::getMqttPoliciesReply(int commandId, const QVariantMap & void NymeaConfiguration::setMqttPolicyReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Set MQTT policy reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Set MQTT policy reply" << commandId << params; } void NymeaConfiguration::deleteMqttPolicyReply(int commandId, const QVariantMap ¶ms) { - qDebug() << "Delete MQTT policy reply" << commandId << params; + qCDebug(dcNymeaConfiguration) << "Delete MQTT policy reply" << commandId << params; } void NymeaConfiguration::notificationReceived(const QVariantMap ¬ification) { + qCDebug(dcNymeaConfiguration()) << "Config notification received" << qUtf8Printable(QJsonDocument::fromVariant(notification).toJson()); QString notif = notification.value("notification").toString(); - qWarning() << "Config notification received" << notif; + QVariantMap params = notification.value("params").toMap(); + if (notif == "Configuration.BasicConfigurationChanged") { - QVariantMap params = notification.value("params").toMap().value("basicConfiguration").toMap(); - m_debugServerEnabled = params.value("debugServerEnabled").toBool(); + QVariantMap configMap = params.value("basicConfiguration").toMap(); + m_debugServerEnabled = configMap.value("debugServerEnabled").toBool(); emit debugServerEnabledChanged(); - m_serverName = params.value("serverName").toString(); + m_serverName = configMap.value("serverName").toString(); emit serverNameChanged(); qCDebug(dcNymeaConfiguration()) << "Basic configuration changed. Server name:" << m_serverName << "Debug server enabled:" << m_debugServerEnabled; - return; - } - if (notif == "Configuration.CloudConfigurationChanged") { - QVariantMap params = notification.value("params").toMap().value("cloudConfiguration").toMap(); - qCDebug(dcNymeaConfiguration()) << "Cloud coniguration changed" << params; - m_cloudEnabled = params.value("enabled").toBool(); + } else if (notif == "Configuration.CloudConfigurationChanged") { + QVariantMap configMap = params.value("cloudConfiguration").toMap(); + qCDebug(dcNymeaConfiguration()) << "Cloud coniguration changed" << configMap; + m_cloudEnabled = configMap.value("enabled").toBool(); emit cloudEnabledChanged(); - return; - } - if (notif.endsWith("ServerConfigurationChanged")) { - ServerConfigurations *configModel = nullptr; - ServerConfiguration *serverConfig = nullptr; + } else if (notif == "Configuration.TcpServerConfigurationChanged") { + QVariantMap configMap = params.value("tcpServerConfiguration").toMap(); + QString id = configMap.value("id").toString(); + QString address = configMap.value("address").toString(); + int port = configMap.value("port").toInt(); + bool authEnabled = configMap.value("authenticationEnabled").toBool(); + bool sslEnabled = configMap.value("sslEnabled").toBool(); - QVariantMap params; - if (notif == "Configuration.TcpServerConfigurationChanged") { - configModel = m_tcpServerConfigurations; - params = notification.value("params").toMap().value("tcpServerConfiguration").toMap(); + ServerConfiguration *config = m_tcpServerConfigurations->getConfiguration(id); + bool existing = true; + if (!config) { + existing = false; + config = new ServerConfiguration(id); } - if (notif == "Configuration.WebSocketServerConfigurationChanged") { - configModel = m_webSocketServerConfigurations; - params = notification.value("params").toMap().value("webSocketServerConfiguration").toMap(); - } - if (notif == "Configuration.TunnelProxyServerConfigurationChanged") { - configModel = m_tunnelProxyServerConfigurations; - params = notification.value("params").toMap().value("tunnelProxyServerConfiguration").toMap(); - } - if (notif == "Configuration.WebServerConfigurationChanged") { - configModel = m_webServerConfigurations; - params = notification.value("params").toMap().value("webServerConfiguration").toMap(); - } - if (notif == "Configuration.MqttServerConfigurationChanged") { - configModel = m_mqttServerConfigurations; - params = notification.value("params").toMap().value("mqttServerConfiguration").toMap(); - } - if (!configModel) { - return; + config->setAddress(address); + config->setPort(port); + config->setAuthenticationEnabled(authEnabled); + config->setSslEnabled(sslEnabled); + if (!existing) { + m_tcpServerConfigurations->addConfiguration(config); } + } else if (notif == "Configuration.WebSocketServerConfigurationChanged") { + QVariantMap configMap = params.value("webSocketServerConfiguration").toMap(); + QString id = configMap.value("id").toString(); + QString address = configMap.value("address").toString(); + int port = configMap.value("port").toInt(); + bool authEnabled = configMap.value("authenticationEnabled").toBool(); + bool sslEnabled = configMap.value("sslEnabled").toBool(); - for (int i = 0; i < configModel->rowCount(); i++) { - ServerConfiguration* config = configModel->get(i); - if (config->id() == params.value("id").toString()) { - serverConfig = config; - } + ServerConfiguration *config = m_webSocketServerConfigurations->getConfiguration(id); + bool existing = true; + if (!config) { + existing = false; + config = new ServerConfiguration(id); } + config->setAddress(address); + config->setPort(port); + config->setAuthenticationEnabled(authEnabled); + config->setSslEnabled(sslEnabled); + if (!existing) { + m_webSocketServerConfigurations->addConfiguration(config); + } + } else if (notif == "Configuration.TunnelProxyServerConfigurationChanged") { + QVariantMap configMap = params.value("tunnelProxyServerConfiguration").toMap(); + QString id = configMap.value("id").toString(); + QString address = configMap.value("address").toString(); + int port = configMap.value("port").toInt(); + bool authEnabled = configMap.value("authenticationEnabled").toBool(); + bool sslEnabled = configMap.value("sslEnabled").toBool(); + bool ignoreSslErrors = configMap.value("ignoreSslErrors").toBool(); - if (!serverConfig) { - if (notif == "Configuration.WebServerConfigurationChanged") { - serverConfig = new WebServerConfiguration(params.value("id").toString()); - } else if (notif == "Configuration.TunnelProxyServerConfigurationChanged") { - serverConfig = new TunnelProxyServerConfiguration(params.value("id").toString()); - } else { - serverConfig = new ServerConfiguration(params.value("id").toString()); - } - configModel->addConfiguration(serverConfig); + TunnelProxyServerConfiguration *config = qobject_cast(m_tunnelProxyServerConfigurations->getConfiguration(id)); + bool existing = true; + if (!config) { + existing = false; + config = new TunnelProxyServerConfiguration(id); } - serverConfig->setAddress(params.value("address").toString()); - serverConfig->setPort(params.value("port").toInt()); - serverConfig->setAuthenticationEnabled(params.value("authenticationEnabled").toBool()); - serverConfig->setSslEnabled(params.value("sslEnabled").toBool()); - if (notif == "Configuration.WebServerConfigurationChanged") { - qobject_cast(serverConfig)->setPublicFolder(params.value("publicFolder").toString()); + config->setAddress(address); + config->setPort(port); + config->setAuthenticationEnabled(authEnabled); + config->setSslEnabled(sslEnabled); + config->setIgnoreSslErrors(ignoreSslErrors); + if (!existing) { + qCInfo(dcNymeaConfiguration()) << "Adding tunnel proxy connection:" << config->id() << config->address() << config->port() << config->sslEnabled() << config->authenticationEnabled() << config->ignoreSslErrors(); + m_tunnelProxyServerConfigurations->addConfiguration(config); } + } else if (notif == "Configuration.WebServerConfigurationChanged") { + QVariantMap configMap = params.value("webServerConfiguration").toMap(); + QString id = configMap.value("id").toString(); + QString address = configMap.value("address").toString(); + int port = configMap.value("port").toInt(); + bool authEnabled = configMap.value("authenticationEnabled").toBool(); + bool sslEnabled = configMap.value("sslEnabled").toBool(); + QString publicFolder = configMap.value("publicFolder").toString(); - return; - } - if (notif == "Configuration.TcpServerConfigurationRemoved") { - m_tcpServerConfigurations->removeConfiguration(notification.value("params").toMap().value("id").toString()); - return; - } - if (notif == "Configuration.WebSocketServerConfigurationRemoved") { - m_webSocketServerConfigurations->removeConfiguration(notification.value("params").toMap().value("id").toString()); - return; - } - if (notif == "Configuration.TunnelProxyServerConfigurationRemoved") { - m_tunnelProxyServerConfigurations->removeConfiguration(notification.value("params").toMap().value("id").toString()); - return; - } - if (notif == "Configuration.WebServerConfigurationRemoved") { - m_webServerConfigurations->removeConfiguration(notification.value("params").toMap().value("id").toString()); - return; - } - if (notif == "Configuration.MqttServerConfigurationRemoved") { - m_mqttServerConfigurations->removeConfiguration(notification.value("params").toMap().value("id").toString()); - return; - } - if (notif == "Configuration.MqttPolicyChanged") { + WebServerConfiguration *config = qobject_cast(m_webServerConfigurations->getConfiguration(id)); + bool existing = true; + if (!config) { + existing = false; + config = new WebServerConfiguration(id); + } + config->setAddress(address); + config->setPort(port); + config->setAuthenticationEnabled(authEnabled); + config->setSslEnabled(sslEnabled); + config->setPublicFolder(publicFolder); + if (!existing) { + m_webServerConfigurations->addConfiguration(config); + } + } else if (notif == "Configuration.MqttServerConfigurationChanged") { + QVariantMap configMap = params.value("mqttServerConfiguration").toMap(); + QString id = configMap.value("id").toString(); + QString address = configMap.value("address").toString(); + int port = configMap.value("port").toInt(); + bool authEnabled = configMap.value("authenticationEnabled").toBool(); + bool sslEnabled = configMap.value("sslEnabled").toBool(); + + ServerConfiguration *config = m_mqttServerConfigurations->getConfiguration(id); + bool existing = true; + if (!config) { + existing = false; + config = new WebServerConfiguration(id); + } + config->setAddress(address); + config->setPort(port); + config->setAuthenticationEnabled(authEnabled); + config->setSslEnabled(sslEnabled); + if (!existing) { + m_mqttServerConfigurations->addConfiguration(config); + } + } else if (notif == "Configuration.TcpServerConfigurationRemoved") { + m_tcpServerConfigurations->removeConfiguration(params.value("id").toString()); + } else if (notif == "Configuration.WebSocketServerConfigurationRemoved") { + m_webSocketServerConfigurations->removeConfiguration(params.value("id").toString()); + } else if (notif == "Configuration.TunnelProxyServerConfigurationRemoved") { + m_tunnelProxyServerConfigurations->removeConfiguration(params.value("id").toString()); + } else if (notif == "Configuration.WebServerConfigurationRemoved") { + m_webServerConfigurations->removeConfiguration(params.value("id").toString()); + } else if (notif == "Configuration.MqttServerConfigurationRemoved") { + m_mqttServerConfigurations->removeConfiguration(params.value("id").toString()); + } else if (notif == "Configuration.MqttPolicyChanged") { MqttPolicy *policy = nullptr; - QVariantMap policyMap = notification.value("params").toMap().value("policy").toMap(); + QVariantMap policyMap = params.value("policy").toMap(); for (int i = 0; i < m_mqttPolicies->rowCount(); i++) { if (m_mqttPolicies->get(i)->clientId() == policyMap.value("clientId").toString()) { policy = m_mqttPolicies->get(i); @@ -563,19 +608,16 @@ void NymeaConfiguration::notificationReceived(const QVariantMap ¬ification) policy->setPassword(policyMap.value("password").toString()); policy->setAllowedPublishTopicFilters(policyMap.value("allowedPublishTopicFilters").toStringList()); policy->setAllowedSubscribeTopicFilters(policyMap.value("allowedSubscribeTopicFilters").toStringList()); - qCDebug(dcNymeaConfiguration()) << "MQTT policy changed" << policy->clientId() << policy->username() << policy->password(); - return; - } - if (notif == "Configuration.MqttPolicyRemoved") { - MqttPolicy* policy = m_mqttPolicies->getPolicy(notification.value("params").toMap().value("clientId").toString()); + qCInfo(dcNymeaConfiguration()) << "MQTT policy changed" << policy->clientId() << policy->username() << policy->password(); + } else if (notif == "Configuration.MqttPolicyRemoved") { + MqttPolicy* policy = m_mqttPolicies->getPolicy(params.value("clientId").toString()); if (!policy) { qCWarning(dcNymeaConfiguration()) << "Reveived a policy removed notification for apolicy we don't know"; return; } - qCDebug(dcNymeaConfiguration()) << "MQTT policy removed" << policy->clientId() << policy->username() << policy->password(); + qCInfo(dcNymeaConfiguration()) << "MQTT policy removed" << policy->clientId() << policy->username() << policy->password(); m_mqttPolicies->removePolicy(policy); - return; + } else { + qCWarning(dcNymeaConfiguration) << "Unhandled Configuration notification" << qUtf8Printable(QJsonDocument::fromVariant(notification).toJson()); } - - qCWarning(dcNymeaConfiguration) << "Unhandled Configuration notification" << qUtf8Printable(QJsonDocument::fromVariant(notification).toJson()); } diff --git a/libnymea-app/configuration/serverconfigurations.cpp b/libnymea-app/configuration/serverconfigurations.cpp index 37ea112d..94a282f8 100644 --- a/libnymea-app/configuration/serverconfigurations.cpp +++ b/libnymea-app/configuration/serverconfigurations.cpp @@ -126,3 +126,13 @@ ServerConfiguration *ServerConfigurations::get(int index) const } return m_list.at(index); } + +ServerConfiguration *ServerConfigurations::getConfiguration(const QString &id) const +{ + for (int i = 0; i < m_list.count(); i++) { + if (m_list.at(i)->id() == id) { + return m_list.at(i); + } + } + return nullptr; +} diff --git a/libnymea-app/configuration/serverconfigurations.h b/libnymea-app/configuration/serverconfigurations.h index 90b3931e..a6ab0696 100644 --- a/libnymea-app/configuration/serverconfigurations.h +++ b/libnymea-app/configuration/serverconfigurations.h @@ -63,7 +63,8 @@ public: void clear(); - Q_INVOKABLE virtual ServerConfiguration* get(int index) const; + Q_INVOKABLE ServerConfiguration* get(int index) const; + Q_INVOKABLE ServerConfiguration* getConfiguration(const QString &id) const; signals: void countChanged(); diff --git a/libnymea-app/system/systemcontroller.cpp b/libnymea-app/system/systemcontroller.cpp index 2fd97bcb..174e51ff 100644 --- a/libnymea-app/system/systemcontroller.cpp +++ b/libnymea-app/system/systemcontroller.cpp @@ -36,6 +36,9 @@ #include "types/repositories.h" #include +#include +#include "logging.h" +NYMEA_LOGGING_CATEGORY(dcSystemController, "SystemController") SystemController::SystemController(JsonRpcClient *jsonRpcClient, QObject *parent): QObject(parent), @@ -229,11 +232,12 @@ void SystemController::getCapabilitiesResponse(int /*commandId*/, const QVariant m_jsonRpcClient->sendCommand("System.GetTime", this, "getServerTimeResponse"); } - qDebug() << "nymea:core capabilities: Power management:" << m_powerManagementAvailable << "Update management:" << m_updateManagementAvailable << "Time management:" << m_timeManagementAvailable; + qCDebug(dcSystemController) << "nymea:core capabilities: Power management:" << m_powerManagementAvailable << "Update management:" << m_updateManagementAvailable << "Time management:" << m_timeManagementAvailable; } void SystemController::getUpdateStatusResponse(int /*commandId*/, const QVariantMap &data) { + qCDebug(dcSystemController()) << "Update status:" << qUtf8Printable(QJsonDocument::fromVariant(data).toJson(QJsonDocument::Indented)); m_updateManagementBusy = data.value("busy").toBool(); m_updateRunning = data.value("updateRunning").toBool(); emit updateRunningChanged(); @@ -242,6 +246,7 @@ void SystemController::getUpdateStatusResponse(int /*commandId*/, const QVariant void SystemController::getPackagesResponse(int commandId, const QVariantMap &data) { Q_UNUSED(commandId) + qCDebug(dcSystemController) << "Packages:" << qUtf8Printable(QJsonDocument::fromVariant(data).toJson(QJsonDocument::Indented)); foreach (const QVariant &packageVariant, data.value("packages").toList()) { QString id = packageVariant.toMap().value("id").toString(); QString displayName = packageVariant.toMap().value("displayName").toString(); @@ -270,12 +275,12 @@ void SystemController::getRepositoriesResponse(int /*commandId*/, const QVariant void SystemController::removePackageResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Remove result" << commandId << params; + qCDebug(dcSystemController) << "Remove result" << commandId << params; } void SystemController::enableRepositoryResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "Enable repo response" << params; + qCDebug(dcSystemController) << "Enable repo response" << params; emit enableRepositoryFinished(commandId, params.value("success").toBool()); } @@ -297,12 +302,12 @@ void SystemController::getServerTimeResponse(int commandId, const QVariantMap &p emit automaticTimeAvailableChanged(); m_automaticTime = params.value("automaticTime").toBool(); emit automaticTimeChanged(); - qDebug() << "Server time:" << m_serverTime << "Automatic Time available:" << m_automaticTimeAvailable << "Automatic time:" << m_automaticTime; + qCDebug(dcSystemController) << "Server time:" << m_serverTime << "Automatic Time available:" << m_automaticTimeAvailable << "Automatic time:" << m_automaticTime; } void SystemController::setTimeResponse(int commandId, const QVariantMap ¶ms) { - qDebug() << "set time response" << commandId << params; + qCDebug(dcSystemController) << "set time response" << commandId << params; } void SystemController::restartResponse(int commandId, const QVariantMap ¶ms) @@ -334,7 +339,7 @@ void SystemController::notificationReceived(const QVariantMap &data) { QString notification = data.value("notification").toString(); if (notification == "System.UpdateStatusChanged") { - qDebug() << "System.UpdateStatusChanged:" << data.value("params").toMap(); + qCDebug(dcSystemController) << "System.UpdateStatusChanged:" << data.value("params").toMap(); if (m_updateManagementBusy != data.value("params").toMap().value("busy").toBool()) { m_updateManagementBusy = data.value("params").toMap().value("busy").toBool(); emit updateManagementBusyChanged(); @@ -400,7 +405,7 @@ void SystemController::notificationReceived(const QVariantMap &data) emit powerManagementAvailableChanged(); emit updateManagementAvailableChanged(); } else if (notification == "System.TimeConfigurationChanged") { - qDebug() << "System time configuration changed" << data.value("params").toMap().value("timeZone").toByteArray(); + qCDebug(dcSystemController) << "System time configuration changed" << data.value("params").toMap().value("timeZone").toByteArray(); m_serverTime = QDateTime::fromSecsSinceEpoch(data.value("params").toMap().value("time").toUInt()); // NOTE: Ideally we'd just set the TimeZone of our serverTime prooperly, however, there's a bug on Android diff --git a/nymea-app/translations/nymea-app-de.ts b/nymea-app/translations/nymea-app-de.ts index c5f4406d..c8925396 100644 --- a/nymea-app/translations/nymea-app-de.ts +++ b/nymea-app/translations/nymea-app-de.ts @@ -1004,7 +1004,7 @@ ConnectionInterfacesPage Connection interfaces - Verbindungs-Schnittstellen + Verbindungsschnittstellen TCP server interfaces @@ -1040,7 +1040,7 @@ Enabled - Aktivier + Aktiviert Disabled diff --git a/nymea-app/ui/RootItem.qml b/nymea-app/ui/RootItem.qml index 67e82ba5..13ec193a 100644 --- a/nymea-app/ui/RootItem.qml +++ b/nymea-app/ui/RootItem.qml @@ -362,16 +362,19 @@ Item { for (var i = 0; i < engine.jsonRpcClient.currentHost.connections.count; i++) { var connection = engine.jsonRpcClient.currentHost.connections.get(i) if (connection.url.toString().startsWith("tunnel")) { + console.log("Removing tunnel proxy connection:", connection.url) engine.jsonRpcClient.currentHost.connections.removeConnection(i--); } } for (var i = 0; i < engine.nymeaConfiguration.tunnelProxyServerConfigurations.count; i++) { var tunnelProxyConfig = engine.nymeaConfiguration.tunnelProxyServerConfigurations.get(i); + console.debug("tunnelProxyConfig:", JSON.stringify(tunnelProxyConfig)) var url = tunnelProxyConfig.sslEnabled ? "tunnels://" : "tunnel://"; url += tunnelProxyConfig.address url += ":" + tunnelProxyConfig.port url += "?uuid=" + engine.jsonRpcClient.currentHost.uuid + console.info("Adding tunnel proxy connection:", url) engine.jsonRpcClient.currentHost.connections.addConnection(url, Connection.BearerTypeCloud, tunnelProxyConfig.sslEnabled, "Remote proxy connection"); } nymeaDiscovery.cacheHost(engine.jsonRpcClient.currentHost) diff --git a/nymea-app/ui/system/AdvancedConnectionInterfacesPage.qml b/nymea-app/ui/system/AdvancedConnectionInterfacesPage.qml index 00fdbac2..cd80653d 100644 --- a/nymea-app/ui/system/AdvancedConnectionInterfacesPage.qml +++ b/nymea-app/ui/system/AdvancedConnectionInterfacesPage.qml @@ -173,7 +173,7 @@ SettingsPageBase { text: qsTr("Add") visible: engine.jsonRpcClient.ensureServerVersion("6.0") onClicked: { - var config = engine.nymeaConfiguration.createTunnelProxyServerConfiguration("remoteproxy.nymea.io", 2213, true, true, false); + var config = engine.nymeaConfiguration.createTunnelProxyServerConfiguration("tunnelproxy.nymea.io", 2213, true, true, false); var component = Qt.createComponent(Qt.resolvedUrl("TunnelProxyServerConfigurationDialog.qml")); var popup = component.createObject(root, { serverConfiguration: config }); popup.accepted.connect(function() { diff --git a/nymea-app/ui/system/ConnectionInterfacesPage.qml b/nymea-app/ui/system/ConnectionInterfacesPage.qml index 163580a8..70e4e6e2 100644 --- a/nymea-app/ui/system/ConnectionInterfacesPage.qml +++ b/nymea-app/ui/system/ConnectionInterfacesPage.qml @@ -60,7 +60,7 @@ SettingsPageBase { engine.nymeaConfiguration.deleteTunnelProxyServerConfiguration(config.id) } } else { - var config = engine.nymeaConfiguration.createTunnelProxyServerConfiguration("remoteproxy.nymea.io", 2213, true, true, false); + var config = engine.nymeaConfiguration.createTunnelProxyServerConfiguration("tunnelproxy.nymea.io", 2213, true, true, false); engine.nymeaConfiguration.setTunnelProxyServerConfiguration(config) } }