Refactoring led handler, webserver and mqtt to all use a common BE status enum rather than relying on duplicatitng logic or using led color

This commit is contained in:
Matt Holmes 2025-08-21 17:33:15 +01:00
parent 980d914ffd
commit d4f0e188fe
5 changed files with 55 additions and 44 deletions

View file

@ -143,7 +143,7 @@ SensorConfig batterySensorConfigTemplate[] = {
SensorConfig globalSensorConfigTemplate[] = {{"bms_status", "BMS Status", "", "", "", always},
{"pause_status", "Pause Status", "", "", "", always},
{"event_level", "Event Level", "", "", "", always},
{"event_level_color", "Event Level Color", "", "", "", always}};
{"emulator_status", "Emulator Status", "", "", "", always}};
static std::list<SensorConfig> sensorConfigs;
@ -314,30 +314,8 @@ static bool publish_common_info(void) {
}
}
EVENTS_LEVEL_TYPE event_level = get_event_level();
doc["event_level"] = String(event_level);
// Use Home Assistant Colors https://github.com/home-assistant/core/blob/e2fdc6a98bdd22187688e70701fc3617423a714b/homeassistant/util/color.py#L19
String event_level_color = "";
switch (event_level)
{
case EVENT_LEVEL_INFO:
event_level_color = "green";
break;
case EVENT_LEVEL_WARNING:
event_level_color = "yellow";
break;
case EVENT_LEVEL_DEBUG:
case EVENT_LEVEL_UPDATE:
event_level_color = "blue";
break;
case EVENT_LEVEL_ERROR:
event_level_color = "red";
default:
event_level_color = "green";
break;
}
doc["event_level_color"] = event_level_color;
doc["event_level"] = get_event_level_string(get_event_level());
doc["emulator_status"] = get_emulator_staus_string(get_emulator_status());
serializeJson(doc, mqtt_msg);
if (mqtt_publish(state_topic.c_str(), mqtt_msg, false) == false) {