diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index f7bfd98..0f95291 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -3,9 +3,10 @@ #include "Version.h" #include "hardware/WifiEthServer.h" -WebCfgServer::WebCfgServer(NukiWrapper* nuki, Network* network, EthServer* ethServer, Preferences* preferences, bool allowRestartToPortal) +WebCfgServer::WebCfgServer(NukiWrapper* nuki, NukiOpenerWrapper* nukiOpener, Network* network, EthServer* ethServer, Preferences* preferences, bool allowRestartToPortal) : _server(ethServer), _nuki(nuki), + _nukiOpener(nukiOpener), _network(network), _preferences(preferences), _allowRestartToPortal(allowRestartToPortal) @@ -274,25 +275,29 @@ void WebCfgServer::buildHtml(String& response) response.concat(""); - bool lockEnabled = _preferences->getBool(preference_lock_enabled); - - String lockState = " "; - if(lockEnabled) + printParameter(response, "MQTT Connected", _network->isMqttConnected() ? " Yes" : " No"); + if(_nuki != nullptr) { + String lockState = " "; char lockstateArr[20]; NukiLock::lockstateToString(_nuki->keyTurnerState().lockState, lockstateArr); lockState.concat(lockstateArr); - printParameter(response, "Paired", _nuki->isPaired() ? " Yes" : " No"); + printParameter(response, "NUKI Lock Paired", _nuki->isPaired() ? " Yes" : " No"); + printParameter(response, "NUKI Lock state", lockState.c_str()); } - printParameter(response, "MQTT Connected", _network->isMqttConnected() ? " Yes" : " No"); - if(lockEnabled) + if(_nukiOpener != nullptr) { - printParameter(response, "Lock state", lockState.c_str()); + String lockState = " "; + char lockstateArr[20]; + NukiOpener::lockstateToString(_nukiOpener->keyTurnerState().lockState, lockstateArr); + lockState.concat(lockstateArr); + printParameter(response, "NUKI Lock Paired", _nukiOpener->isPaired() ? " Yes" : " No"); + printParameter(response, "NUKI Lock state", lockState.c_str()); } printParameter(response, "Firmware", version.c_str()); response.concat("


"); - response.concat("

MQTT Configuration

"); + response.concat("

MQTT and Network Configuration

"); response.concat("
"); response.concat(""); response.concat("
"); @@ -311,8 +316,6 @@ void WebCfgServer::buildHtml(String& response) { printInputField(response, "MQTTOPPATH", "MQTT Opener Path", _preferences->getString(preference_mqtt_opener_path).c_str(), 180); } - printInputField(response, "HOSTNAME", "Host name", _preferences->getString(preference_hostname).c_str(), 100); - printInputField(response, "NETTIMEOUT", "Network Timeout until restart (seconds; -1 to disable)", _preferences->getInt(preference_network_timeout), 5); 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); printCheckBox(response, "PUBAUTH", "Publish auth data (May reduce battery life)", _preferences->getBool(preference_publish_authdata)); @@ -380,10 +383,12 @@ void WebCfgServer::buildMqttConfigHtml(String &response) response.concat("
"); response.concat("

MQTT COnfiguration

"); response.concat(""); + printInputField(response, "HOSTNAME", "Host name", _preferences->getString(preference_hostname).c_str(), 100); printInputField(response, "MQTTSERVER", "MQTT Broker", _preferences->getString(preference_mqtt_broker).c_str(), 100); printInputField(response, "MQTTPORT", "MQTT Broker port", _preferences->getInt(preference_mqtt_broker_port), 5); printInputField(response, "MQTTUSER", "MQTT User (# to clear)", _preferences->getString(preference_mqtt_user).c_str(), 30); printInputField(response, "MQTTPASS", "MQTT Password", "*", 30, true); + printInputField(response, "NETTIMEOUT", "Network Timeout until restart (seconds; -1 to disable)", _preferences->getInt(preference_network_timeout), 5); response.concat("
"); response.concat("
"); response.concat("
"); diff --git a/WebCfgServer.h b/WebCfgServer.h index f144e64..9591bbb 100644 --- a/WebCfgServer.h +++ b/WebCfgServer.h @@ -4,6 +4,7 @@ #include #include "NukiWrapper.h" #include "Network.h" +#include "NukiOpenerWrapper.h" enum class TokenType { @@ -20,7 +21,7 @@ enum class TokenType class WebCfgServer { public: - WebCfgServer(NukiWrapper* nuki, Network* network, EthServer* ethServer, Preferences* preferences, bool allowRestartToPortal); + WebCfgServer(NukiWrapper* nuki, NukiOpenerWrapper* nukiOpener, Network* network, EthServer* ethServer, Preferences* preferences, bool allowRestartToPortal); ~WebCfgServer() = default; void initialize(); @@ -48,6 +49,7 @@ private: WebServer _server; NukiWrapper* _nuki; + NukiOpenerWrapper* _nukiOpener; Network* _network; Preferences* _preferences; diff --git a/main.cpp b/main.cpp index 9eb25ad..9c09801 100644 --- a/main.cpp +++ b/main.cpp @@ -178,7 +178,7 @@ void setup() nukiOpener->initialize(); } - webCfgServer = new WebCfgServer(nuki, network, ethServer, preferences, networkDevice == NetworkDeviceType::WiFi); + webCfgServer = new WebCfgServer(nuki, nukiOpener, network, ethServer, preferences, networkDevice == NetworkDeviceType::WiFi); webCfgServer->initialize(); presenceDetection = new PresenceDetection(preferences, bleScanner, network);