diff --git a/homeassistant/components/home_connect/icons.json b/homeassistant/components/home_connect/icons.json index 92ed72c142f..166b2fe2c34 100644 --- a/homeassistant/components/home_connect/icons.json +++ b/homeassistant/components/home_connect/icons.json @@ -61,6 +61,14 @@ "aborting": "mdi:close-circle" } }, + "door": { + "default": "mdi:door", + "state": { + "closed": "mdi:door-closed", + "locked": "mdi:door-closed-lock", + "open": "mdi:door-open" + } + }, "program_progress": { "default": "mdi:progress-clock" }, diff --git a/homeassistant/components/home_connect/sensor.py b/homeassistant/components/home_connect/sensor.py index f241ec0f265..32896379772 100644 --- a/homeassistant/components/home_connect/sensor.py +++ b/homeassistant/components/home_connect/sensor.py @@ -24,6 +24,7 @@ import homeassistant.util.dt as dt_util from .api import ConfigEntryAuth from .const import ( ATTR_VALUE, + BSH_DOOR_STATE, BSH_OPERATION_STATE, BSH_OPERATION_STATE_FINISHED, BSH_OPERATION_STATE_PAUSE, @@ -91,6 +92,16 @@ SENSORS = ( ], translation_key="operation_state", ), + HomeConnectSensorEntityDescription( + key=BSH_DOOR_STATE, + device_class=SensorDeviceClass.ENUM, + options=[ + "closed", + "locked", + "open", + ], + translation_key="door", + ), HomeConnectSensorEntityDescription( key="ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffee", state_class=SensorStateClass.TOTAL_INCREASING, diff --git a/homeassistant/components/home_connect/strings.json b/homeassistant/components/home_connect/strings.json index 9fe967fb5d1..8d6d136d578 100644 --- a/homeassistant/components/home_connect/strings.json +++ b/homeassistant/components/home_connect/strings.json @@ -209,6 +209,14 @@ "aborting": "Aborting" } }, + "door": { + "name": "Door", + "state": { + "closed": "[%key:common::state::closed%]", + "locked": "[%key:common::state::locked%]", + "open": "[%key:common::state::open%]" + } + }, "coffee_counter": { "name": "Coffees" }, diff --git a/tests/components/home_connect/test_sensor.py b/tests/components/home_connect/test_sensor.py index d98311ac5e5..f2ee3b13922 100644 --- a/tests/components/home_connect/test_sensor.py +++ b/tests/components/home_connect/test_sensor.py @@ -8,6 +8,10 @@ from homeconnect.api import HomeConnectAPI import pytest from homeassistant.components.home_connect.const import ( + BSH_DOOR_STATE, + BSH_DOOR_STATE_CLOSED, + BSH_DOOR_STATE_LOCKED, + BSH_DOOR_STATE_OPEN, BSH_EVENT_PRESENT_STATE_CONFIRMED, BSH_EVENT_PRESENT_STATE_OFF, BSH_EVENT_PRESENT_STATE_PRESENT, @@ -224,6 +228,27 @@ async def test_remaining_prog_time_edge_cases( @pytest.mark.parametrize( ("entity_id", "status_key", "event_value_update", "expected", "appliance"), [ + ( + "sensor.dishwasher_door", + BSH_DOOR_STATE, + BSH_DOOR_STATE_LOCKED, + "locked", + "Dishwasher", + ), + ( + "sensor.dishwasher_door", + BSH_DOOR_STATE, + BSH_DOOR_STATE_CLOSED, + "closed", + "Dishwasher", + ), + ( + "sensor.dishwasher_door", + BSH_DOOR_STATE, + BSH_DOOR_STATE_OPEN, + "open", + "Dishwasher", + ), ( "sensor.fridgefreezer_freezer_door_alarm", "EVENT_NOT_IN_STATUS_YET_SO_SET_TO_OFF",