     char s_temp[100];
     char s_average_temp[100];
     char s_outdoor_temp[100];
-    char s_power[50];
-    char s_freemem[110];
+    char s_power_on_temp[100];
+    char s_power_off_temp[100];
+    char s_power[25];
+    char s_freemem[90];
     uint32_t freemem;
 
     freemem = System.freeMemory();

    server << "# TYPE temp_degrees gauge\n";
    snprintf(s_temp, 100,"temp_degrees{location=\"garage\",timespan=\"none\"} %.4f %li000\n", temperature, Time.now());
    snprintf(s_average_temp, 100, "temp_degrees{location=\"garage\",timespan=\"minute\"} %.4f %li000\n", minuteAverage, Time.now());
    snprintf(s_outdoor_temp, 100, "temp_degrees{location=\"outdoors\",timespan=\"none\"} %.4f %li000\n\n", outdoorTemp, Time.now());
    snprintf(s_power, 50, "# TYPE heater gauge\nheater %i %li000\n\n", power, Time.now());
    snprintf(s_freemem, 110, "# Type free_mem_bytes\nfree_mem_bytes %lu %li000\n\n", freemem, Time.now());

    server << s_temp;
    server << s_average_temp;
    server << s_outdoor_temp;
    server << s_power;
    server << s_freemem;
  }
}

    turnOffPower();
  }
  return 1;
}

int setTempOn(String temp) {
  float f_temp = temp.toFloat();
  if(f_temp > 0 && f_temp < tempOffThreshold) {
    tempOnThreshold = f_temp;
    return 1;
  } else {
    return -1;
  }
}

int setTempOff(String temp) {
  float f_temp = temp.toFloat();
  if(f_temp > 0 && f_temp > tempOnThreshold) {
    tempOffThreshold = f_temp;
    return 1;
  } else {
    return -1;
  }
}

void turnOnPower() {
