From db0785827f6bab45de7d6f5860aaedeeb64d3b94 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Tue, 1 Nov 2022 16:25:01 +0100 Subject: [PATCH] Revert "Do not write state if payload is `''`" for MQTT sensor (#81347) * Revert "Do not write state if payload is ''" This reverts commit 869c11884e2b06d5f5cb5a8a4f78247a6972149e. * Add test --- homeassistant/components/mqtt/sensor.py | 4 ++-- tests/components/mqtt/test_sensor.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/mqtt/sensor.py b/homeassistant/components/mqtt/sensor.py index d95d669e72f..52ba1a7e3c2 100644 --- a/homeassistant/components/mqtt/sensor.py +++ b/homeassistant/components/mqtt/sensor.py @@ -271,8 +271,8 @@ class MqttSensor(MqttEntity, RestoreSensor): ) elif self.device_class == SensorDeviceClass.DATE: payload = payload.date() - if payload != "": - self._state = payload + + self._state = payload def _update_last_reset(msg): payload = self._last_reset_template(msg.payload) diff --git a/tests/components/mqtt/test_sensor.py b/tests/components/mqtt/test_sensor.py index 6cfaa9678bb..1884d04efc3 100644 --- a/tests/components/mqtt/test_sensor.py +++ b/tests/components/mqtt/test_sensor.py @@ -313,6 +313,12 @@ async def test_setting_sensor_value_via_mqtt_json_message( assert state.state == "100" + # Make sure the state is written when a sensor value is reset to '' + async_fire_mqtt_message(hass, "test-topic", '{ "val": "" }') + state = hass.states.get("sensor.test") + + assert state.state == "" + async def test_setting_sensor_value_via_mqtt_json_message_and_default_current_state( hass, mqtt_mock_entry_with_yaml_config