   return bus.getTempC(deviceAddress);
 }
 
-// // function to print a device's resolution
-// void printResolution(DeviceAddress deviceAddress)
-// {
-//   Serial.print("Resolution: ");
-//   Serial.print(sensors.getResolution(deviceAddress));
-//   Serial.println();    
-// }
-
-// // main function to print information about a device
-// void printData(DeviceAddress deviceAddress)
-// {
-//   Serial.print("Device Address: ");
-//   printAddress(deviceAddress);
-//   Serial.print(" ");
-//   printTemperature(deviceAddress);
-//   Serial.println();
-// }
+void tempSensorsLoop() {
+  if(millis() - last_temp_read > TEMP_PUBLISH_DELAY) {
+    room_temp.requestTemperatures();
+    outside_temp.requestTemperatures();
+
+    publishTempSensors();
+
+    last_temp_read = millis();
+  }
+}
 
 
 /* #################  Ethernet                                                */

void publishTemp(int16_t temp_index) {
  aSerial.l(Level::vvvv).p("publishTemp: ");

  char topic_plus_sensor_name[ strlen(MQTT_TEMP_TOPIC "XX") ] = "";
  char float_to_char_buffer[TEMP_MAX_FLOAT_LENGTH] = ""; // eg 25.9

  TempSensor t_sensor = temp_sensors[temp_index];

  // if (!room_temp.getAddress(room_high, 1)) aSerial.l(Level::v).println("Unable to find address for Device 1"); 
  // printAddress(room_high);

  // if (!outside_temp.getAddress(out1, 0)) aSerial.l(Level::v).println("Unable to find address for Device 0");
  // printAddress(out1);

  // if (!outside_temp.getAddress(out2, 1)) aSerial.l(Level::v).println("Unable to find address for Device 1"); 
  // printAddress(out2);

  // if (!outside_temp.getAddress(out3, 2)) aSerial.l(Level::v).println("Unable to find address for Device 2"); 
  // printAddress(out3);
  
  for (int i=0; i<SIZE(temp_sensors); i++) {
    temp_sensors[i].bus.setResolution( temp_sensors[i].address,  TEMPERATURE_PRECISION);
  }

}

// function to print a device address
