   Serial.println();
 
   configTime(9 * 3600, 0, "pool.ntp.org", "time.nist.gov");
+
+  //OTA
+  // Port defaults to 8266
+  ArduinoOTA.setPort(8266);
+  ArduinoOTA.setHostname("esp-slackbot");
+  ArduinoOTA.setPassword(otapassword);
+  ArduinoOTA.onStart([]()
+  {
+    //sendUdpSyslog("ArduinoOTA Start");
+  });
+  ArduinoOTA.onEnd([]()
+  {
+    //sendUdpSyslog("ArduinoOTA End");
+  });
+  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
+  {
+    //syslogPayload = "Progress: ";
+    //syslogPayload += (progress / (total / 100));
+    //sendUdpSyslog(syslogPayload);
+  });
+  ArduinoOTA.onError([](ota_error_t error)
+  {
+    //ESP.restart();
+    if (error == OTA_AUTH_ERROR) abort();
+    else if (error == OTA_BEGIN_ERROR) abort();
+    else if (error == OTA_CONNECT_ERROR) abort();
+    else if (error == OTA_RECEIVE_ERROR) abort();
+    else if (error == OTA_END_ERROR) abort();
+  });
+
+  ArduinoOTA.begin();
 }
 
 unsigned long lastPing = 0;

// slackbot testing using https://github.com/urish/arduino-slack-bot
/**
   Arduino Real-Time Slack Bot

      if (lgWhisen.get_ir_mode() != 0)
      {
        ir_data.ac_mode = 1;
        ir_data.timermode = false;
      }
      else
      {
        ir_data.ac_mode = 0;
        ir_data.timermode = false;
      }
      if (lgWhisen.get_ir_temperature() != 255)
      {
