diff --git a/homeassistant/components/nx584/binary_sensor.py b/homeassistant/components/nx584/binary_sensor.py index cbd1796b768..6fdea44f836 100644 --- a/homeassistant/components/nx584/binary_sensor.py +++ b/homeassistant/components/nx584/binary_sensor.py @@ -116,7 +116,10 @@ class NX584ZoneSensor(BinarySensorEntity): @property def extra_state_attributes(self): """Return the state attributes.""" - return {"zone_number": self._zone["number"]} + return { + "zone_number": self._zone["number"], + "bypassed": self._zone.get("bypassed", False), + } class NX584Watcher(threading.Thread): diff --git a/tests/components/nx584/test_binary_sensor.py b/tests/components/nx584/test_binary_sensor.py index 83f8a49c091..290567345ca 100644 --- a/tests/components/nx584/test_binary_sensor.py +++ b/tests/components/nx584/test_binary_sensor.py @@ -153,11 +153,28 @@ def test_nx584_zone_sensor_normal(): assert not sensor.should_poll assert sensor.is_on assert sensor.extra_state_attributes["zone_number"] == 1 + assert not sensor.extra_state_attributes["bypassed"] zone["state"] = False assert not sensor.is_on +def test_nx584_zone_sensor_bypassed(): + """Test for the NX584 zone sensor.""" + zone = {"number": 1, "name": "foo", "state": True, "bypassed": True} + sensor = nx584.NX584ZoneSensor(zone, "motion") + assert sensor.name == "foo" + assert not sensor.should_poll + assert sensor.is_on + assert sensor.extra_state_attributes["zone_number"] == 1 + assert sensor.extra_state_attributes["bypassed"] + + zone["state"] = False + zone["bypassed"] = False + assert not sensor.is_on + assert not sensor.extra_state_attributes["bypassed"] + + @mock.patch.object(nx584.NX584ZoneSensor, "schedule_update_ha_state") def test_nx584_watcher_process_zone_event(mock_update): """Test the processing of zone events."""