   readSavedConfig(); // Check filesystem for a saved config.json
   setupWifi();       // Start up networking
 
-  if (otaPassword[0])
-  { // Start up OTA
-    setupOTA();
-  }
+  webServer.on("/", webHandleRoot);
+  webServer.on("/saveConfig", webHandleSaveConfig);
+  webServer.on("/resetConfig", webHandleResetConfig);
+  webServer.onNotFound(webHandleNotFound);
+  webServer.begin();
+  debugPrintln(String(F("HTTP: Server started @ http://")) + String(WiFi.localIP()));
+
+  setupOTA();
 
   // Create server and assign callbacks for MQTT
-  //mqttClient.begin(mqttServer, mqttPort, wifiClient);
   mqttClient.begin(mqttServer, atoi(mqttPort), wifiClient);
   mqttClient.onMessage(mqtt_callback);
   mqttConnect();

// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
////////////////////////////////////////////////////////////////////////////////////////////////////

// Optional: Assign default values here.  These may be overwritten by saved values from config.json
char mqttServer[40] = "";
char mqttPort[6] = "1883";
char mqttUser[32] = "";
char mqttPassword[32] = "";
char haspNode[16] = "plate01";
char otaPassword[32] = "OTA_Update_Password";
////////////////////////////////////////////////////////////////////////////////////////////////////

// Serial debug output control, comment out to disable
#define DEBUGSERIAL
// Open a super-insecure (but read-only) telnet debug port
#define DEBUGTELNET

#include <FS.h>
#include <ESP8266WiFi.h>

  while (!mqttClient.connected())
  {
    // Generate an MQTT client ID as haspNode + our MAC address
    mqttClientId = String(haspNode) + "-" + String(espMac[0], HEX) + String(espMac[1], HEX) + String(espMac[2], HEX) + String(espMac[3], HEX) + String(espMac[4], HEX) + String(espMac[5], HEX);
    sendNextionCmd("page 0");
    setNextionAttr("p[0].b[1].txt", "\"WiFi connected\\r" + WiFi.localIP().toString() + "\\rMQTT Connecting\"");
    debugPrintln(String(F("MQTT: Attempting connection to broker ")) + String(mqttServer) + " as clientID " + mqttClientId);

    // Set keepAlive, cleanSession, timeout
    mqttClient.setOptions(5, true, 5000);
