diff --git a/Network.cpp b/Network.cpp index 023c0b2..bf7a2a2 100644 --- a/Network.cpp +++ b/Network.cpp @@ -44,9 +44,18 @@ void Network::initialize() const char* brokerAddr = _preferences->getString(preference_mqtt_broker).c_str(); strcpy(_mqttBrokerAddr, brokerAddr); + int port = _preferences->getInt(preference_mqtt_broker_port); + if(port == 0) + { + port = 1883; + _preferences->putInt(preference_mqtt_broker_port, port); + } + Serial.print(F("MQTT Broker: ")); - Serial.println(_mqttBrokerAddr); - _mqttClient.setServer(_mqttBrokerAddr, 1883); + Serial.print(_mqttBrokerAddr); + Serial.print(F(":")); + Serial.println(port); + _mqttClient.setServer(_mqttBrokerAddr, port); _mqttClient.setCallback(Network::onMqttDataReceivedCallback); } @@ -58,14 +67,14 @@ bool Network::reconnect() Serial.println("Attempting MQTT connection"); // Attempt to connect if (_mqttClient.connect("nukiHub")) { - Serial.println("MQTT connected"); + Serial.println(F("MQTT connected")); // ... and resubscribe _mqttClient.subscribe(mqtt_topc_lockstate_action); } else { - Serial.print("MQTT connect failed, rc="); + Serial.print(F("MQTT connect failed, rc=")); Serial.println(_mqttClient.state()); _nextReconnect = millis() + 5000; } diff --git a/PreferencesKeys.h b/PreferencesKeys.h index 59290ec..84e7fac 100644 --- a/PreferencesKeys.h +++ b/PreferencesKeys.h @@ -1,6 +1,7 @@ #pragma once #define preference_mqtt_broker "mqttbroker" +#define preference_mqtt_broker_port "mqttport" #define preference_query_interval_lockstate "lockStInterval" #define preference_query_interval_battery "batInterval" diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index e2823c5..9cbafb7 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -66,6 +66,11 @@ void WebCfgServer::update() _preferences->putString(preference_mqtt_broker, token); configChanged = true; } + else if(lastTokenType == TokenType::MqttPort && tokenType == TokenType::None) + { + _preferences->putInt(preference_mqtt_broker_port, String(token).toInt()); + configChanged = true; + } else if(lastTokenType == TokenType::QueryIntervalLockstate && tokenType == TokenType::None) { _preferences->putInt(preference_query_interval_lockstate, String(token).toInt()); @@ -109,10 +114,14 @@ void WebCfgServer::serveHtml(WiFiClient &client) client.println("