void pushToInfluxDB(String device, float sensorValues[]) { uint8_t tries = 0; boolean addComma = false; String msg = "weather,device=" + device + " "; if (!(isnan(sensorValues[SENSOR_TEMPERATURE]))) { msg += "temperature=" + String(sensorValues[SENSOR_TEMPERATURE]); addComma = true; } if (!(isnan(sensorValues[SENSOR_HUMIDITY]))) { if (true == addComma) msg += ","; msg += "humidity=" + String(sensorValues[SENSOR_HUMIDITY]); addComma = true; } if (!(isnan(sensorValues[SENSOR_LIGHT]))) { if (true == addComma) msg += ","; msg += "light=" + String(sensorValues[SENSOR_LIGHT]); addComma = true; } if (!(isnan(sensorValues[SENSOR_WINDSPEED]))) { if (true == addComma) msg += ","; msg += "windspeed=" + String(sensorValues[SENSOR_WINDSPEED]); addComma = true; } if (!(isnan(sensorValues[SENSOR_PRESSURE]))) { if (true == addComma) msg += ","; msg += "pressure=" + String(sensorValues[SENSOR_PRESSURE]); addComma = true; } if (!(isnan(sensorValues[SENSOR_BAT_VOLTAGE]))) { if (true == addComma) msg += ","; msg += "batvoltage=" + String(sensorValues[SENSOR_BAT_VOLTAGE]); addComma = true; } if (!(isnan(sensorValues[SENSOR_ESAVEMODE]))) { if (true == addComma) msg += ","; msg += "esavemode=" + String(sensorValues[SENSOR_ESAVEMODE]); addComma = true; } if (!(isnan(sensorValues[SENSOR_BATCHARGESTATE]))) { if (true == addComma) msg += ","; msg += "batchargestate=" + String(sensorValues[SENSOR_BATCHARGESTATE]); addComma = true; } #ifdef DEBUG Serial.println(msg); #endif do { tries++; influxdb.write(msg); } while (influxdb.response() != DB_SUCCESS and tries < 5); }