Skip to content

Commit ca20011

Browse files
committed
Attempt to improve duration formatting
1 parent f65cd43 commit ca20011

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

custom_components/victron_mqtt/common.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from typing import Any
33
from homeassistant.helpers.device_registry import DeviceInfo
44
from homeassistant.helpers.entity import Entity
5-
from homeassistant.components.sensor.const import SensorDeviceClass, SensorStateClass
5+
from homeassistant.components.sensor.const import SensorDeviceClass, SensorStateClass, UnitOfTime
66

77
from victron_mqtt import (
88
Device as VictronVenusDevice,
@@ -29,7 +29,7 @@ def __init__(
2929
self._device_info = device_info
3030
self._attr_unique_id = f"{type}.victron_mqtt_{metric.unique_id}"
3131
self.entity_id = self._attr_unique_id
32-
self._attr_native_unit_of_measurement = metric.unit_of_measurement
32+
self._attr_native_unit_of_measurement = self._map_metric_to_unit_of_measurement(metric)
3333
self._attr_device_class = self._map_metric_to_device_class(metric)
3434
self._attr_state_class = self._map_metric_to_stateclass(metric)
3535
self._attr_native_value = metric.value
@@ -110,6 +110,17 @@ def _map_metric_to_stateclass(
110110

111111
return None
112112

113+
def _map_metric_to_unit_of_measurement(
114+
self, metric: VictronVenusMetric
115+
) -> str | None:
116+
if metric.unit_of_measurement == 's':
117+
return UnitOfTime.SECONDS
118+
if metric.unit_of_measurement == 'm':
119+
return UnitOfTime.MINUTES
120+
if metric.unit_of_measurement == 'h':
121+
return UnitOfTime.HOURS
122+
return metric.unit_of_measurement
123+
113124
@property
114125
def device_info(self) -> DeviceInfo:
115126
"""Return device information about the sensor."""

0 commit comments

Comments
 (0)