Consequently ignore empty MQTT state payloads and set state to unknown
on "None" payload (#117813)
* Consequently ignore empty MQTT state payloads and set state to `unknown` on "None" payload * Do not change preset mode behavior * Add device tracker ignoring empty state * Ignore empty state for lock * Resolve merge errors
This commit is contained in:
parent
c616fc036e
commit
01f3a5a97c
16 changed files with 183 additions and 26 deletions
|
@ -25,7 +25,12 @@ from homeassistant.components.water_heater import (
|
|||
STATE_PERFORMANCE,
|
||||
WaterHeaterEntityFeature,
|
||||
)
|
||||
from homeassistant.const import ATTR_TEMPERATURE, STATE_OFF, UnitOfTemperature
|
||||
from homeassistant.const import (
|
||||
ATTR_TEMPERATURE,
|
||||
STATE_OFF,
|
||||
STATE_UNKNOWN,
|
||||
UnitOfTemperature,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.util.unit_conversion import TemperatureConverter
|
||||
|
||||
|
@ -200,7 +205,7 @@ async def test_set_operation_pessimistic(
|
|||
await mqtt_mock_entry()
|
||||
|
||||
state = hass.states.get(ENTITY_WATER_HEATER)
|
||||
assert state.state == "unknown"
|
||||
assert state.state == STATE_UNKNOWN
|
||||
|
||||
await common.async_set_operation_mode(hass, "eco", ENTITY_WATER_HEATER)
|
||||
state = hass.states.get(ENTITY_WATER_HEATER)
|
||||
|
@ -214,6 +219,16 @@ async def test_set_operation_pessimistic(
|
|||
state = hass.states.get(ENTITY_WATER_HEATER)
|
||||
assert state.state == "eco"
|
||||
|
||||
# Empty state ignored
|
||||
async_fire_mqtt_message(hass, "mode-state", "")
|
||||
state = hass.states.get(ENTITY_WATER_HEATER)
|
||||
assert state.state == "eco"
|
||||
|
||||
# Test None payload
|
||||
async_fire_mqtt_message(hass, "mode-state", "None")
|
||||
state = hass.states.get(ENTITY_WATER_HEATER)
|
||||
assert state.state == STATE_UNKNOWN
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"hass_config",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue