 void publishTemp(int16_t temp_index) {
   aSerial.l(Level::vvvv).p("publishTemp: ");
 
-  char topic_plus_sensor_name[ strlen(MQTT_TEMP_TOPIC "XX") ] = "";
+  char topic_plus_sensor_name[ strlen(MQTT_TEMP_TOPIC) + TEMP_SENSOR_NAME_LENGTH ] = "";
   char float_to_char_buffer[TEMP_MAX_FLOAT_LENGTH] = ""; // eg 25.9
 
   TempSensor t_sensor = temp_sensors[temp_index];



/* #################  1Wire                                                   */

#define TEMP_PUBLISH_DELAY 20000
uint32_t last_temp_read = 0;

#define TEMPERATURE_PRECISION  9
#define TEMP_MAX_FLOAT_LENGTH  5
#define TEMP_SENSOR_NAME_LENGTH 3

const uint8_t one_wire_pin_1 = 22;

  // 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
