add UPTIME for HA UOM - #3146

This commit is contained in:
proddy
2026-07-16 21:20:13 +02:00
parent 3ee5b1ea1d
commit c760218024
2 changed files with 7 additions and 2 deletions

View File

@@ -81,6 +81,7 @@ class DeviceValue {
HERTZ, // 27 - Hz - frequency HERTZ, // 27 - Hz - frequency
CONNECTIVITY, // 28 - used in HA - connectivity CONNECTIVITY, // 28 - used in HA - connectivity
TIMESTAMP, // 29 - used in HA - timestamp TIMESTAMP, // 29 - used in HA - timestamp
UPTIME, // 30 - used in HA - uptime for boot time
}; };
// TAG mapping - maps to DeviceValueTAG_s in emsdevicevalue.cpp // TAG mapping - maps to DeviceValueTAG_s in emsdevicevalue.cpp

View File

@@ -587,7 +587,7 @@ void Mqtt::ha_status() {
// These come from the info MQTT topic - and handled in the publish_ha_sensor_config function // These come from the info MQTT topic - and handled in the publish_ha_sensor_config function
publish_system_ha_sensor_config(DeviceValueType::STRING, "Version", "version", DeviceValueUOM::NONE); publish_system_ha_sensor_config(DeviceValueType::STRING, "Version", "version", DeviceValueUOM::NONE);
publish_system_ha_sensor_config(DeviceValueType::STRING, "Boot time", "bootTime", DeviceValueUOM::TIMESTAMP); publish_system_ha_sensor_config(DeviceValueType::STRING, "Boot time", "bootTime", DeviceValueUOM::UPTIME);
} }
// add sub or pub task to the queue. // add sub or pub task to the queue.
@@ -1178,7 +1178,7 @@ void Mqtt::add_ha_classes(JsonObject doc, const uint8_t device_type, const uint8
doc[uom_ha] = "L/h"; doc[uom_ha] = "L/h";
} else if (uom == DeviceValueUOM::L) { } else if (uom == DeviceValueUOM::L) {
doc[uom_ha] = "L"; doc[uom_ha] = "L";
} else if (uom == DeviceValueUOM::TIMESTAMP) { } else if (uom == DeviceValueUOM::TIMESTAMP || uom == DeviceValueUOM::UPTIME) {
// do nothing // do nothing
} else if (uom != DeviceValueUOM::NONE) { } else if (uom != DeviceValueUOM::NONE) {
auto uom_str = EMSdevice::uom_to_string(uom); auto uom_str = EMSdevice::uom_to_string(uom);
@@ -1280,6 +1280,10 @@ void Mqtt::add_ha_classes(JsonObject doc, const uint8_t device_type, const uint8
doc[sc_ha] = sc_ha_measurement; doc[sc_ha] = sc_ha_measurement;
doc[dc_ha] = "timestamp"; doc[dc_ha] = "timestamp";
break; break;
case DeviceValueUOM::UPTIME:
doc[sc_ha] = sc_ha_measurement;
doc[dc_ha] = "uptime";
break;
case DeviceValueUOM::MV: case DeviceValueUOM::MV:
case DeviceValueUOM::VOLTS: case DeviceValueUOM::VOLTS:
doc[sc_ha] = sc_ha_measurement; doc[sc_ha] = sc_ha_measurement;