 
 void sendSelfTestResponse()
 {
-   sprintf(buf, PSTR("timeSince=%lu&"), (now() - selftest.lastTestTime));
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_timeSince_lu))), (now() - selftest.lastTestTime));
    net.responseSendPart(buf);
-   sprintf(buf, PSTR("cyclesSince=%d&"), acpump.onCycles-selftest.acCycles);
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_cyclesSince_d))), acpump.onCycles-selftest.acCycles);
    net.responseSendPart(buf);
-   sprintf(buf, PSTR("voltage=%d&"), selftest.batteryVoltageMv);
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_voltage_d))), selftest.batteryVoltageMv);
    net.responseSendPart(buf);
-   sprintf(buf, PSTR("length=%d&"), (int)selftest.testLength);
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_length_d))), (int)selftest.testLength);
    net.responseSendPart(buf);
-   sprintf(buf, PSTR("pumpedHeight=%d&"), selftest.startingHeight - selftest.endingHeight);
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_pumpedHeight_d))), selftest.startingHeight - selftest.endingHeight);
    net.responseSendPart(buf);
-   sprintf(buf, PSTR("result=%d"), selftest.passed);
+   sprintf(buf, PSTR((char*)pgm_read_word(&(str_result_d))), selftest.passed);
    net.responseSendPart(buf);
    net.responseEnd();
 }

  // If voltage is more than 0, then pump is on, and we need to sound an alert
  // Need to make sure to wait a few seconds after self test to see if DC pump is ON
  if (mv > 9000 && (now() - selftest.lastTestTime) > (conf.selfTestTimeLimit + 6)) {
    raiseAlert(DcPumpActivated, PSTR("DC Pump ON"));
    // Record that the pump is on, or process alert, if it was already on.
    if (!dcpump.currentlyOn) {
      dcpump.currentlyOn = true;
      dcpump.switchOnTime = now();
    } else if ((now() - dcpump.switchOnTime) > conf.dcPumpOnTimeWarning) {
      raiseAlert(DcPumpOverload, PSTR("DC pump ON too long"));
    }
  } else {
    dcpump.currentlyOn = false;

    // Battery voltage should not drop too much
    if (selftest.batteryVoltageMv < conf.alertBatteryVoltage) {
      selftest.passed = false;
      sprintf(buf, PSTR((char*)pgm_read_word(&(str_Weak_battery_dmV))), selftest.batteryVoltageMv);
      raiseAlert(DcPumpMalfunction, buf);
      return;
    }
    // Determine if water level was reduced enough
    if (selftest.startingHeight - selftest.endingHeight < 5) {
      selftest.passed = false;
      sprintf(buf, PSTR((char*)pgm_read_word(&(str_DC_Pump_failure_dCM_pumped_in_d_sec))), (selftest.startingHeight - selftest.endingHeight), (int)selftest.testLength);
      raiseAlert(DcPumpMalfunction, buf);
      return;
    }
