diff -r d08c7466bb40 -r e33f2d325d15 main/co2meter.c --- a/main/co2meter.c Sat Oct 12 21:05:09 2019 +0200 +++ b/main/co2meter.c Sun Oct 13 12:24:14 2019 +0200 @@ -38,6 +38,7 @@ extern SemaphoreHandle_t xSemaphoreDS18B20; ///< DS18B20 lock semaphore extern ADC_State *adc_state; ///< ADC state extern SemaphoreHandle_t xSemaphoreADC; ///< ADC lock semaphore +extern int count_pub; void app_main() @@ -328,16 +329,17 @@ publishNode(); publishUnits(); publishLogs(); - -Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT; + Main_Loop1 = MAIN_LOOP1_WAITACK; break; case MAIN_LOOP1_WAITACK: + if (count_pub == 0) // Wait until all published messages are sent. + Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT; break; case MAIN_LOOP1_MQTT_DISCONNECT: ESP_LOGI(TAG, "Loop timer: Disconnect MQTT"); - connect_mqtt(false); + connect_mqtt(false); // Doesn't really disconnect. Main_Loop1 = MAIN_LOOP1_DISCONNECT; break;