From 366baef7f629d4216b02ba9d34b51692d3967c9b Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Wed, 8 Mar 2023 22:35:06 +0100 Subject: [PATCH] Allow enum as MQTT sensor device_class (#89391) --- homeassistant/components/mqtt/sensor.py | 2 +- tests/components/mqtt/test_sensor.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/mqtt/sensor.py b/homeassistant/components/mqtt/sensor.py index 934f7369580..aea357bea62 100644 --- a/homeassistant/components/mqtt/sensor.py +++ b/homeassistant/components/mqtt/sensor.py @@ -281,7 +281,7 @@ class MqttSensor(MqttEntity, RestoreSensor): else: self._attr_native_value = new_value return - if self.device_class is None: + if self.device_class in {None, SensorDeviceClass.ENUM}: self._attr_native_value = new_value return try: diff --git a/tests/components/mqtt/test_sensor.py b/tests/components/mqtt/test_sensor.py index 66836a16ee1..3112564cb8a 100644 --- a/tests/components/mqtt/test_sensor.py +++ b/tests/components/mqtt/test_sensor.py @@ -141,6 +141,8 @@ async def test_setting_sensor_value_via_mqtt_message( True, ), (sensor.SensorDeviceClass.TIMESTAMP, "invalid", STATE_UNKNOWN, True), + (sensor.SensorDeviceClass.ENUM, "some_value", "some_value", False), + (None, "some_value", "some_value", False), ], ) async def test_setting_sensor_native_value_handling_via_mqtt_message(