From 2abd3844cfcad9ec7979aab0ee6dafb88e99f090 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 9 Jun 2020 20:06:52 +0200 Subject: [PATCH] Fix mobile_app missing state in sensor registration (#36604) --- .../components/mobile_app/webhook.py | 4 ++- tests/components/mobile_app/test_entity.py | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/mobile_app/webhook.py b/homeassistant/components/mobile_app/webhook.py index d0ab79ab7e2..c71f3699019 100644 --- a/homeassistant/components/mobile_app/webhook.py +++ b/homeassistant/components/mobile_app/webhook.py @@ -356,7 +356,9 @@ async def webhook_enable_encryption(hass, config_entry, data): vol.Required(ATTR_SENSOR_TYPE): vol.In(SENSOR_TYPES), vol.Required(ATTR_SENSOR_UNIQUE_ID): cv.string, vol.Optional(ATTR_SENSOR_UOM): cv.string, - vol.Required(ATTR_SENSOR_STATE): vol.Any(None, bool, str, int, float), + vol.Optional(ATTR_SENSOR_STATE, default=None): vol.Any( + None, bool, str, int, float + ), vol.Optional(ATTR_SENSOR_ICON, default="mdi:cellphone"): cv.icon, } ) diff --git a/tests/components/mobile_app/test_entity.py b/tests/components/mobile_app/test_entity.py index d0d2a4f841a..fd5baf50beb 100644 --- a/tests/components/mobile_app/test_entity.py +++ b/tests/components/mobile_app/test_entity.py @@ -188,6 +188,31 @@ async def test_register_sensor_no_state(hass, create_registrations, webhook_clie assert entity.name == "Test 1 Battery State" assert entity.state == STATE_UNKNOWN + reg_resp = await webhook_client.post( + webhook_url, + json={ + "type": "register_sensor", + "data": { + "name": "Backup Battery State", + "type": "sensor", + "unique_id": "backup_battery_state", + }, + }, + ) + + assert reg_resp.status == 201 + + json = await reg_resp.json() + assert json == {"success": True} + await hass.async_block_till_done() + + entity = hass.states.get("sensor.test_1_backup_battery_state") + assert entity + + assert entity.domain == "sensor" + assert entity.name == "Test 1 Backup Battery State" + assert entity.state == STATE_UNKNOWN + async def test_update_sensor_no_state(hass, create_registrations, webhook_client): """Test that sensors can be updated, when there is no (unknown) state."""