mirror of
https://github.com/esphome/esphome.git
synced 2024-11-22 15:08:10 +01:00
Improve OTA error messages adding return codes (#3698)
This commit is contained in:
parent
1a524a5a50
commit
df6830110d
4 changed files with 16 additions and 3 deletions
|
@ -49,7 +49,7 @@ OTAResponseTypes IDFOTABackend::end() {
|
||||||
this->md5_.calculate();
|
this->md5_.calculate();
|
||||||
if (!this->md5_.equals_hex(this->expected_bin_md5_)) {
|
if (!this->md5_.equals_hex(this->expected_bin_md5_)) {
|
||||||
this->abort();
|
this->abort();
|
||||||
return OTA_RESPONSE_ERROR_UPDATE_END;
|
return OTA_RESPONSE_ERROR_MD5_MISMATCH;
|
||||||
}
|
}
|
||||||
esp_err_t err = esp_ota_end(this->update_handle_);
|
esp_err_t err = esp_ota_end(this->update_handle_);
|
||||||
this->update_handle_ = 0;
|
this->update_handle_ = 0;
|
||||||
|
|
|
@ -296,7 +296,7 @@ void OTAComponent::handle_() {
|
||||||
|
|
||||||
error_code = backend->write(buf, read);
|
error_code = backend->write(buf, read);
|
||||||
if (error_code != OTA_RESPONSE_OK) {
|
if (error_code != OTA_RESPONSE_OK) {
|
||||||
ESP_LOGW(TAG, "Error writing binary data to flash!");
|
ESP_LOGW(TAG, "Error writing binary data to flash!, error_code: %d", error_code);
|
||||||
goto error; // NOLINT(cppcoreguidelines-avoid-goto)
|
goto error; // NOLINT(cppcoreguidelines-avoid-goto)
|
||||||
}
|
}
|
||||||
total += read;
|
total += read;
|
||||||
|
@ -321,7 +321,7 @@ void OTAComponent::handle_() {
|
||||||
|
|
||||||
error_code = backend->end();
|
error_code = backend->end();
|
||||||
if (error_code != OTA_RESPONSE_OK) {
|
if (error_code != OTA_RESPONSE_OK) {
|
||||||
ESP_LOGW(TAG, "Error ending OTA!");
|
ESP_LOGW(TAG, "Error ending OTA!, error_code: %d", error_code);
|
||||||
goto error; // NOLINT(cppcoreguidelines-avoid-goto)
|
goto error; // NOLINT(cppcoreguidelines-avoid-goto)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ enum OTAResponseTypes {
|
||||||
OTA_RESPONSE_ERROR_ESP8266_NOT_ENOUGH_SPACE = 136,
|
OTA_RESPONSE_ERROR_ESP8266_NOT_ENOUGH_SPACE = 136,
|
||||||
OTA_RESPONSE_ERROR_ESP32_NOT_ENOUGH_SPACE = 137,
|
OTA_RESPONSE_ERROR_ESP32_NOT_ENOUGH_SPACE = 137,
|
||||||
OTA_RESPONSE_ERROR_NO_UPDATE_PARTITION = 138,
|
OTA_RESPONSE_ERROR_NO_UPDATE_PARTITION = 138,
|
||||||
|
OTA_RESPONSE_ERROR_MD5_MISMATCH = 139,
|
||||||
OTA_RESPONSE_ERROR_UNKNOWN = 255,
|
OTA_RESPONSE_ERROR_UNKNOWN = 255,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@ RESPONSE_ERROR_WRONG_CURRENT_FLASH_CONFIG = 134
|
||||||
RESPONSE_ERROR_WRONG_NEW_FLASH_CONFIG = 135
|
RESPONSE_ERROR_WRONG_NEW_FLASH_CONFIG = 135
|
||||||
RESPONSE_ERROR_ESP8266_NOT_ENOUGH_SPACE = 136
|
RESPONSE_ERROR_ESP8266_NOT_ENOUGH_SPACE = 136
|
||||||
RESPONSE_ERROR_ESP32_NOT_ENOUGH_SPACE = 137
|
RESPONSE_ERROR_ESP32_NOT_ENOUGH_SPACE = 137
|
||||||
|
RESPONSE_ERROR_NO_UPDATE_PARTITION = 138
|
||||||
|
RESPONSE_ERROR_MD5_MISMATCH = 139
|
||||||
RESPONSE_ERROR_UNKNOWN = 255
|
RESPONSE_ERROR_UNKNOWN = 255
|
||||||
|
|
||||||
OTA_VERSION_1_0 = 1
|
OTA_VERSION_1_0 = 1
|
||||||
|
@ -150,6 +152,16 @@ def check_error(data, expect):
|
||||||
"Error: The OTA partition on the ESP is too small. ESPHome needs to resize "
|
"Error: The OTA partition on the ESP is too small. ESPHome needs to resize "
|
||||||
"this partition, please flash over USB."
|
"this partition, please flash over USB."
|
||||||
)
|
)
|
||||||
|
if dat == RESPONSE_ERROR_NO_UPDATE_PARTITION:
|
||||||
|
raise OTAError(
|
||||||
|
"Error: The OTA partition on the ESP couldn't be found. ESPHome needs to create "
|
||||||
|
"this partition, please flash over USB."
|
||||||
|
)
|
||||||
|
if dat == RESPONSE_ERROR_MD5_MISMATCH:
|
||||||
|
raise OTAError(
|
||||||
|
"Error: Application MD5 code mismatch. Please try again "
|
||||||
|
"or flash over USB with a good quality cable."
|
||||||
|
)
|
||||||
if dat == RESPONSE_ERROR_UNKNOWN:
|
if dat == RESPONSE_ERROR_UNKNOWN:
|
||||||
raise OTAError("Unknown error from ESP")
|
raise OTAError("Unknown error from ESP")
|
||||||
if not isinstance(expect, (list, tuple)):
|
if not isinstance(expect, (list, tuple)):
|
||||||
|
|
Loading…
Reference in a new issue