allow to configure hostname

This commit is contained in:
technyon
2022-04-10 21:26:01 +02:00
parent 6d5121d125
commit 22f9c5643d
3 changed files with 21 additions and 2 deletions

View File

@@ -23,6 +23,13 @@ Network::Network(Preferences* preferences)
void Network::initialize()
{
String hostname = _preferences->getString(preference_hostname);
if(hostname == "")
{
hostname = "nukihub";
_preferences->putString(preference_hostname, hostname);
}
WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
// it is a good practice to make sure your code sets wifi mode how you want it.
@@ -34,6 +41,7 @@ void Network::initialize()
wm_menu.push_back("exit");
wm.setShowInfoUpdate(false);
wm.setMenu(wm_menu);
wm.setHostname(hostname);
bool res = false;
@@ -58,6 +66,9 @@ void Network::initialize()
Serial.println(WiFi.localIP().toString());
}
Serial.print(F("Host name: "));
Serial.println(hostname);
const char* brokerAddr = _preferences->getString(preference_mqtt_broker).c_str();
strcpy(_mqttBrokerAddr, brokerAddr);
@@ -107,6 +118,7 @@ void Network::initialize()
Serial.print(_mqttBrokerAddr);
Serial.print(F(":"));
Serial.println(port);
_mqttClient.setServer(_mqttBrokerAddr, port);
_mqttClient.setCallback(Network::onMqttDataReceivedCallback);
}
@@ -122,12 +134,12 @@ bool Network::reconnect()
if(strlen(_mqttUser) == 0)
{
Serial.println(F("MQTT: Connecting without credentials"));
success = _mqttClient.connect("nukiHub");
success = _mqttClient.connect(_preferences->getString(preference_hostname).c_str());
}
else
{
Serial.print(F("MQTT: Connecting with user: ")); Serial.println(_mqttUser);
success = _mqttClient.connect("nukiHub", _mqttUser, _mqttPass);
success = _mqttClient.connect(_preferences->getString(preference_hostname).c_str(), _mqttUser, _mqttPass);
}

View File

@@ -6,6 +6,7 @@
#define preference_mqtt_user "mqttuser"
#define preference_mqtt_password "mqttpass"
#define preference_mqtt_path "mqttpath"
#define preference_hostname "hostname"
#define preference_query_interval_lockstate "lockStInterval"
#define preference_query_interval_battery "batInterval"
#define preference_cred_user "crdusr"

View File

@@ -135,6 +135,11 @@ bool WebCfgServer::processArgs(String& message)
_preferences->putString(preference_mqtt_path, value);
configChanged = true;
}
else if(key == "HOSTNAME")
{
_preferences->putString(preference_hostname, value);
configChanged = true;
}
else if(key == "LSTINT")
{
_preferences->putInt(preference_query_interval_lockstate, value.toInt());
@@ -243,6 +248,7 @@ void WebCfgServer::buildHtml(String& response)
printInputField(response, "MQTTUSER", "MQTT User (# to clear)", _preferences->getString(preference_mqtt_user).c_str(), 30);
printInputField(response, "MQTTPASS", "MQTT Password", "*", 30, true);
printInputField(response, "MQTTPATH", "MQTT Path", _preferences->getString(preference_mqtt_path).c_str(), 180);
printInputField(response, "HOSTNAME", "Host name", _preferences->getString(preference_hostname).c_str(), 100);
printInputField(response, "LSTINT", "Query interval lock state (seconds)", _preferences->getInt(preference_query_interval_lockstate), 10);
printInputField(response, "BATINT", "Query interval battery (seconds)", _preferences->getInt(preference_query_interval_battery), 10);
printInputField(response, "PRDTMO", "Presence detection timeout (seconds, -1 to disable)", _preferences->getInt(preference_presence_detection_timeout), 10);