From db0785827f6bab45de7d6f5860aaedeeb64d3b94 Mon Sep 17 00:00:00 2001
From: Jan Bouwhuis <jbouwh@users.noreply.github.com>
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
-- 
GitLab