diff --git a/firmware/esp32-s3-dashboard/dashboard_config.h b/firmware/esp32-s3-dashboard/dashboard_config.h index defb646..e86184a 100644 --- a/firmware/esp32-s3-dashboard/dashboard_config.h +++ b/firmware/esp32-s3-dashboard/dashboard_config.h @@ -1,6 +1,6 @@ #pragma once -static const char *DASHBOARD_VERSION = "0.1.117-temp-alert-contract-logic"; +static const char *DASHBOARD_VERSION = "0.1.116-temp-alert-field-parsing"; // Update these if your Cargo ESP AP credentials are different. //static const char *CARGO_WIFI_SSID = "OverlandController"; diff --git a/firmware/esp32-s3-dashboard/esp32-s3-dashboard.ino b/firmware/esp32-s3-dashboard/esp32-s3-dashboard.ino index ce71b45..bd04219 100644 --- a/firmware/esp32-s3-dashboard/esp32-s3-dashboard.ino +++ b/firmware/esp32-s3-dashboard/esp32-s3-dashboard.ino @@ -1464,13 +1464,21 @@ static void parse_status_json(const String &body) } float temp_f = (float)(temp["temperature_f"] | 0.0); + bool high_alert = (temp["high_alert"] | false) || - ( - (temp["high_alert_enabled"] | false) && - !temp["high_alert_f"].isNull() && - temp_f > (float)(temp["high_alert_f"] | 9999.0) - ); + (temp["alert"] | false) || + (temp["alarm"] | false) || + (temp["high_alarm"] | false) || + (temp["temp_high"] | false); + + if (!temp["high_threshold_f"].isNull()) { + high_alert = high_alert || temp_f >= (float)(temp["high_threshold_f"] | 9999.0); + } + + if (!temp["alarm_threshold_f"].isNull()) { + high_alert = high_alert || temp_f >= (float)(temp["alarm_threshold_f"] | 9999.0); + } if (weather) { outside_status = "OUT ";