   httpMessage += String(F("<br/><b>Sketch Size: </b>")) + String(ESP.getSketchSize()) + String(F(" bytes"));
   httpMessage += String(F("<br/><b>Free Sketch Space: </b>")) + String(ESP.getFreeSketchSpace()) + String(F(" bytes"));
   httpMessage += String(F("<br/><b>Heap Free: </b>")) + String(ESP.getFreeHeap());
+  httpMessage += String(F("<br/><b>Heap Fragmentation: </b>")) + String(ESP.getHeapFragmentation());
+  httpMessage += String(F("<br/><b>ESP core version: </b>")) + String(ESP.getCoreVersion());
   httpMessage += String(F("<br/><b>IP Address: </b>")) + String(WiFi.localIP().toString());
   httpMessage += String(F("<br/><b>Signal Strength: </b>")) + String(WiFi.RSSI());
   httpMessage += String(F("<br/><b>Uptime: </b>")) + String(long(millis() / 1000));

  nextionSetAttr("p[0].b[1].txt", "\"HTTP update\\rstarting...\"");
  WiFiUDP::stopAll(); // Keep mDNS responder from breaking things

  t_httpUpdate_return returnCode = ESPhttpUpdate.update(espOtaUrl);
  switch (returnCode)
  {
  case HTTP_UPDATE_FAILED:

  mqttStatusPayload += String(F("\"signalStrength\":")) + String(WiFi.RSSI()) + String(F(","));
  mqttStatusPayload += String(F("\"haspIP\":\"")) + WiFi.localIP().toString() + String(F("\","));
  mqttStatusPayload += String(F("\"heapFree\":")) + String(ESP.getFreeHeap());
  mqttStatusPayload += String(F("\"heapFragmentation\":")) + String(ESP.getHeapFragmentation());
  mqttStatusPayload += String(F("\"espCore\":")) + String(ESP.getCoreVersion());
  mqttStatusPayload += "}";

  mqttClient.publish(mqttSensorTopic, mqttStatusPayload);
