diff --git a/homeassistant/components/libre_hardware_monitor/manifest.json b/homeassistant/components/libre_hardware_monitor/manifest.json index 322f3f2934f..183c72cb4cd 100644 --- a/homeassistant/components/libre_hardware_monitor/manifest.json +++ b/homeassistant/components/libre_hardware_monitor/manifest.json @@ -6,5 +6,5 @@ "documentation": "https://www.home-assistant.io/integrations/libre_hardware_monitor", "iot_class": "local_polling", "quality_scale": "silver", - "requirements": ["librehardwaremonitor-api==1.4.0"] + "requirements": ["librehardwaremonitor-api==1.5.0"] } diff --git a/homeassistant/components/libre_hardware_monitor/sensor.py b/homeassistant/components/libre_hardware_monitor/sensor.py index 489c66e1b2a..bfebce1f6c3 100644 --- a/homeassistant/components/libre_hardware_monitor/sensor.py +++ b/homeassistant/components/libre_hardware_monitor/sensor.py @@ -2,6 +2,8 @@ from __future__ import annotations +from typing import Any + from librehardwaremonitor_api.model import LibreHardwareMonitorSensorData from homeassistant.components.sensor import SensorEntity, SensorStateClass @@ -51,10 +53,10 @@ class LibreHardwareMonitorSensor( super().__init__(coordinator) self._attr_name: str = sensor_data.name - self.value: str | None = sensor_data.value - self._attr_extra_state_attributes: dict[str, str] = { - STATE_MIN_VALUE: self._format_number_value(sensor_data.min), - STATE_MAX_VALUE: self._format_number_value(sensor_data.max), + self._attr_native_value: str | None = sensor_data.value + self._attr_extra_state_attributes: dict[str, Any] = { + STATE_MIN_VALUE: sensor_data.min, + STATE_MAX_VALUE: sensor_data.max, } self._attr_native_unit_of_measurement = sensor_data.unit self._attr_unique_id: str = f"{entry_id}_{sensor_data.sensor_id}" @@ -72,23 +74,12 @@ class LibreHardwareMonitorSensor( def _handle_coordinator_update(self) -> None: """Handle updated data from the coordinator.""" if sensor_data := self.coordinator.data.sensor_data.get(self._sensor_id): - self.value = sensor_data.value + self._attr_native_value = sensor_data.value self._attr_extra_state_attributes = { - STATE_MIN_VALUE: self._format_number_value(sensor_data.min), - STATE_MAX_VALUE: self._format_number_value(sensor_data.max), + STATE_MIN_VALUE: sensor_data.min, + STATE_MAX_VALUE: sensor_data.max, } else: - self.value = None + self._attr_native_value = None super()._handle_coordinator_update() - - @property - def native_value(self) -> str | None: - """Return the formatted sensor value or None if no value is available.""" - if self.value is not None and self.value != "-": - return self._format_number_value(self.value) - return None - - @staticmethod - def _format_number_value(number_str: str) -> str: - return number_str.replace(",", ".") diff --git a/requirements_all.txt b/requirements_all.txt index 5d37615f4ad..75111e4c83b 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1359,7 +1359,7 @@ libpyfoscamcgi==0.0.8 libpyvivotek==0.6.1 # homeassistant.components.libre_hardware_monitor -librehardwaremonitor-api==1.4.0 +librehardwaremonitor-api==1.5.0 # homeassistant.components.mikrotik librouteros==3.2.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 609c987706f..df1e2496a49 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1178,7 +1178,7 @@ letpot==0.6.3 libpyfoscamcgi==0.0.8 # homeassistant.components.libre_hardware_monitor -librehardwaremonitor-api==1.4.0 +librehardwaremonitor-api==1.5.0 # homeassistant.components.mikrotik librouteros==3.2.0 diff --git a/tests/components/libre_hardware_monitor/snapshots/test_sensor.ambr b/tests/components/libre_hardware_monitor/snapshots/test_sensor.ambr index e2dc96e2757..705d4f4d887 100644 --- a/tests/components/libre_hardware_monitor/snapshots/test_sensor.ambr +++ b/tests/components/libre_hardware_monitor/snapshots/test_sensor.ambr @@ -634,8 +634,8 @@ StateSnapshot({ 'attributes': ReadOnlyDict({ 'friendly_name': 'MSI MAG B650M MORTAR WIFI (MS-7D76) System Fan #1 Fan', - 'max_value': '-', - 'min_value': '-', + 'max_value': None, + 'min_value': None, 'state_class': , }), 'context': , @@ -1458,8 +1458,8 @@ StateSnapshot({ 'attributes': ReadOnlyDict({ 'friendly_name': 'MSI MAG B650M MORTAR WIFI (MS-7D76) System Fan #1 Fan', - 'max_value': '-', - 'min_value': '-', + 'max_value': None, + 'min_value': None, 'state_class': , }), 'context': , @@ -1836,8 +1836,8 @@ StateSnapshot({ 'attributes': ReadOnlyDict({ 'friendly_name': 'MSI MAG B650M MORTAR WIFI (MS-7D76) System Fan #1 Fan', - 'max_value': '-', - 'min_value': '-', + 'max_value': None, + 'min_value': None, 'state_class': , }), 'context': , diff --git a/tests/components/libre_hardware_monitor/test_sensor.py b/tests/components/libre_hardware_monitor/test_sensor.py index dc1a5917991..dbb8b7b7599 100644 --- a/tests/components/libre_hardware_monitor/test_sensor.py +++ b/tests/components/libre_hardware_monitor/test_sensor.py @@ -100,7 +100,7 @@ async def test_sensors_are_updated( updated_data = dict(mock_lhm_client.get_data.return_value.sensor_data) updated_data["amdcpu-0-temperature-3"] = replace( - updated_data["amdcpu-0-temperature-3"], value="42,1" + updated_data["amdcpu-0-temperature-3"], value="42.1" ) mock_lhm_client.get_data.return_value = replace( mock_lhm_client.get_data.return_value,