Skip to content
Snippets Groups Projects
Commit 6105aa86 authored by fxk8y's avatar fxk8y :spider:
Browse files

improved error/state handling

parent e853277b
No related branches found
No related tags found
1 merge request!1Feature/mqtt ota
......@@ -18,5 +18,7 @@
#define OTA_FIRMWARE_TOPIC DEVICE_NAMESPACE "ota/$firmware"
#define OTA_PROGRESS_TOPIC DEVICE_NAMESPACE "ota/progress"
#define OTA_STATE_TOPIC DEVICE_NAMESPACE "ota/state"
#define OTA_ERROR_TOPIC DEVICE_NAMESPACE "ota/error"
#endif
\ No newline at end of file
......@@ -2,6 +2,7 @@
#include "mqtt_common.h"
#include "esp_log.h"
#include "esp_err.h"
#include "esp_system.h"
#include "esp_ota_ops.h"
......@@ -91,6 +92,7 @@ void default_ota_event(ota_event_t event) {
switch(event.state) {
case start:
ESP_LOGI(TAG, "OTA Start");
publish_message(OTA_STATE_TOPIC, "start");
last_pct = -1;
break;
case progress: {
......@@ -98,6 +100,11 @@ void default_ota_event(ota_event_t event) {
if (pct > last_pct) {
ESP_LOGI(TAG, "OTA Progress %d%% (%d/%d KiB)", pct, event.bytes_written / 1024, event.bytes_total / 1024);
if (pct == 0) {
publish_message(OTA_STATE_TOPIC, "progress");
}
snprintf(pct_buffer, sizeof(pct_buffer), "%d", pct);
publish_message(OTA_PROGRESS_TOPIC, pct_buffer);
last_pct = pct;
......@@ -106,10 +113,13 @@ void default_ota_event(ota_event_t event) {
}
case success:
ESP_LOGI(TAG, "OTA Successful");
publish_message(OTA_STATE_TOPIC, "success");
publish_message(OTA_FIRMWARE_TOPIC, ""); // clear retained
break;
case error:
ESP_LOGW(TAG, "OTA Error 0x%x", event.error);
ESP_LOGW(TAG, "OTA FAILED: %s", esp_err_to_name(event.error));
publish_message(OTA_STATE_TOPIC, "error");
publish_message(OTA_ERROR_TOPIC, esp_err_to_name(event.error));
break;
}
}
......@@ -120,4 +130,4 @@ void add_ota_callback(ota_callback_t handler) {
old_ota_handler(event);
handler(event);
};
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment