   delay(1000);
   lcd.clear();
 
+  // ds18b20
+  sensors.begin();
+  if (!sensors.getAddress(insideThermometer, 0)) {
+    lcd.setCursor(0, 0);
+    lcd.print("ds18b20 : ");
+    lcd.setCursor(0, 1);
+    lcd.print("can't find");
+    delay(1000);
+    lcd.clear();
+  }
+
+  sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
+  sensors.requestTemperatures();
+  tempCinside = sensors.getTempC(insideThermometer);
+  sensors.setWaitForConversion(false);
+
+  if ( tempCinside < -30 ) {
+    lcd.setCursor(0, 0);
+    lcd.print("ds18b20 : ");
+    lcd.setCursor(0, 1);
+    lcd.print("Failed to read");
+    delay(1000);
+    lcd.clear();
+  }
+
+
   if (!SPIFFS.begin())
   {
     lcd.setCursor(0, 0);


          if (
            curr_data.data1 != solar_data.data1 ||
            curr_data.data2 != solar_data.data2 
            )
          {
            displayData();
            curr_data.data1 = solar_data.data1;
            curr_data.data2 = solar_data.data2;            
          }

          if (

}
/* -- */

void sendmqttMsg(char* topictosend, String topicpayload, bool retain = 1)
{
  unsigned int msg_length = topicpayload.length();

  byte* p = (byte*)malloc(msg_length);
  memcpy(p, (char*) topicpayload.c_str(), msg_length);

  if (mqttclient.publish(topictosend, p, msg_length, retain))
  {
    free(p);
  }
