MCP9809 Temp sensor sketch uploaded to show how it works with Home Assistant

/*
   WiFi temperature sensor
   Reports current Temp via Mosquitto MQTT, WiFi, Home Assistant on Raspberry Pi3(b)
*/

//#include <EEPROM.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>
#include "Adafruit_MCP9808.h"

// Create the MCP9808 temperature sensor object
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();

// Connect to the WiFi
const char* ssid = "YOURSSIDHERE";
const char* password = "PASSWORDHERE";
const char* mqtt_server = "IPADDRESSHERE";

WiFiClient espClient;
PubSubClient client(espClient);



boolean reconnect() {  // **********************************************************
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print (F("Contacting MQTT server..."));
    // Attempt to connect
    if (client.connect("MBRTemp")) {     //assign a "client name".  Each wemos must have a unique name
      Serial.println (F("connected"));

      // ... SUBSCRIBE TO TOPICS
      client.subscribe("Upstairs/Mbr/Temp");
      //      client.subscribe("Upstairs/Mbr/BME280/TempC");
      //      client.subscribe("Upstairs/Mbr/BME280/Humidity");
      //      client.subscribe("Upstairs/Mbr/BME280/Pressure");

      return client.connected();

      Serial.print (F("Failed to connect. "));
      Serial.println (F(" Attempting connection again in 3 seconds"));
      // Wait 3 seconds before retrying
      //      delay(3000);
      return 0;
    }
  }
}

void setup()
{
  {
    Serial.begin(9600);
    client.setServer(mqtt_server, 1883);
  }
  // Connect to WiFinetwork
  Serial.println();
  Serial.println();
  Serial.print (F("Connecting to "));
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  WiFi.mode(WIFI_STA);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    //Serial.begin(9600);
    Serial.print (F("."));
  }
  Serial.println (F(""));
  Serial.println (F("WiFi connected"));
  // Print the IP address
  Serial.print (F("Local IP: "));
  Serial.println(WiFi.localIP());


  //  *********************************************************************************
  {
    Serial.begin(9600);
    Serial.println(F("MCP9808 located in Master Bedroom"));

    if (!tempsensor.begin()) {
      Serial.println("Could not find MCP9808 sensor!");
      while (1);
    }
  }
}


void loop() 
{
  if (!client.connected()) {
    reconnect();
  }

  //  ****************  CREATE BUFFER TO STORE BINARY DATA ************************
#define INT_STR_SIZE 16
  char buffer[INT_STR_SIZE];

  //  ****************  TEMPERATURE (F) ************************

  dtostrf(tempsensor.readTempC()* 9.0 / 5.0 + 32, 3, 0, buffer);
  Serial.print("Temperature = ");
  Serial.print(buffer);
  Serial.println(" *F");
  client.publish("Upstairs/Mbr/Temp", buffer);
  delay(3000);


  client.loop();
}