   toSend += pageTop2;
   toSend += "<pre>\n";
 
-  Serial.print("monitorCursor="); Serial.println(monitorCursor);
-  Serial.print("monitorSize=");   Serial.println(monitorSize);
-  const int DATA_ENTRIES = 30;
+  Serial.print("monitorCursor="); Serial.print(monitorCursor);
+  Serial.print(" monitorSize=");  Serial.println(monitorSize);
   int mSize = monitorSize;
   for(
-    int i = monitorCursor - 1, j = 0;
-    j <= DATA_ENTRIES && j <= MONITOR_POINTS;
+    int i = monitorCursor - 1, j = 1;
+    j <= DATA_ENTRIES && j <= monitorSize;
     i--, j++
   ) {
     Serial.print("printMonitorEntry(monitorData["); Serial.print(i); 

  ds.select(addr);
  ds.write(0xBE);       // read scratchpad

  Serial.print("  Data = ");
  Serial.print(present, HEX);
  Serial.print(" ");
  for(i = 0; i < 9; i++) { // we need 9 bytes

  Serial.println("getTemperature()...");

  while(!ds.search(addr)) {
    Serial.println("  no more addresses; resetting...");
    ds.reset_search();
    delay(250);
  }

  if(OneWire::crc8(addr, 7) != addr[7]) {
      Serial.println("  CRC is not valid!");
      return;
  }

  // the first ROM byte indicates which chip
  switch(addr[0]) {
    case 0x10:
      Serial.print("  chip=DS18S20");  // or old DS1820
      type_s = 1;
      break;
    case 0x28:
      Serial.println("  chip=DS18B20");
      type_s = 0;
      break;
    case 0x22:
      Serial.println("  chip=DS1822");
      type_s = 0;
      break;
    default:
      Serial.println("  device is not a DS18x20 family device :-(");
      return;
  }

