Edit esp-reterminal-e1001.yaml

This commit is contained in:
ESPHome Device Builder
2026-07-30 22:24:25 +12:00
parent 57b1203c7b
commit e29b3406c6
+39 -15
View File
@@ -715,38 +715,62 @@ display:
bool inverse = false;
int border = normal_border;
auto ago_text = [&](int64_t seconds) -> std::string {
if (seconds < 60) return "Just now";
if (seconds < 3600) {
int m = seconds / 60;
return std::to_string(m) + (m == 1 ? " min ago" : " mins ago");
}
if (seconds < 86400) {
int h = seconds / 3600;
return std::to_string(h) + (h == 1 ? " hour ago" : " hours ago");
}
int d = seconds / 86400;
return std::to_string(d) + (d == 1 ? " day ago" : " days ago");
};
auto due_in_text = [&](int64_t seconds) -> std::string {
if (seconds < 60) return "due in 1 min";
if (seconds < 3600) {
int m = seconds / 60;
return "due in " + std::to_string(m) + (m == 1 ? " min" : " mins");
}
if (seconds < 86400) {
int h = seconds / 3600;
return "due in " + std::to_string(h) + (h == 1 ? " hour" : " hours");
}
int d = seconds / 86400;
return "due in " + std::to_string(d) + (d == 1 ? " day" : " days");
};
if (state == "Complete") {
if (!elapsed.empty() && elapsed != "unknown" && elapsed != "Never") {
status = "COMPLETED";
status_sub = elapsed;
} else if (!completed_time.empty() && completed_time != "Never" && completed_time != "unknown") {
status = "COMPLETED";
if (!completed_time.empty() && completed_time != "Never" && completed_time != "unknown") {
status_sub = completed_time;
} else {
status = "COMPLETED";
}
} else if (state == "Not Due") {
status = "Not Due";
if (now_ts > 0 && !isnan(due_ts) && due_ts > now_ts) {
const int64_t remaining = static_cast<int64_t>(due_ts) - now_ts;
const int hours = static_cast<int>((remaining + 3599) / 3600);
if (hours <= hour_limit) {
status = "Due: " + std::to_string(hours) + (hours == 1 ? " Hour" : " Hours");
} else {
const int days = static_cast<int>((remaining + 86399) / 86400);
status = "Due: " + std::to_string(days) + (days == 1 ? " Day" : " Days");
}
} else {
status = "Not Due";
status_sub = due_in_text(remaining);
}
} else if (state == "Due") {
status = "DUE NOW";
inverse = true;
if (now_ts > 0 && !isnan(due_ts) && now_ts > due_ts) {
const int64_t since = static_cast<int64_t>(now_ts - due_ts);
status_sub = ago_text(since);
}
} else if (state == "Overdue") {
status = "OVERDUE";
inverse = true;
} else if (state == "Missed") {
status = "MISSED";
inverse = true;
if (now_ts > 0 && !isnan(due_ts) && now_ts > due_ts) {
const int64_t since = static_cast<int64_t>(now_ts - due_ts);
status_sub = ago_text(since);
}
} else if (state == "Skipped") {
status = "SKIPPED";
inverse = true;