diff --git a/homeassistant/components/totalconnect/binary_sensor.py b/homeassistant/components/totalconnect/binary_sensor.py index ef252d54e4e..9caa642b5f4 100644 --- a/homeassistant/components/totalconnect/binary_sensor.py +++ b/homeassistant/components/totalconnect/binary_sensor.py @@ -81,15 +81,9 @@ class TotalConnectZoneSecurityBinarySensor(TotalConnectZoneBinarySensor): return BinarySensorDeviceClass.MOTION if self._zone.is_type_medical(): return BinarySensorDeviceClass.SAFETY - # "security" type is a generic category so test for it last - if self._zone.is_type_security(): - return BinarySensorDeviceClass.DOOR - - _LOGGER.error( - "TotalConnect zone %s reported an unexpected device class", - self._zone.zoneid, - ) - return None + if self._zone.is_type_temperature(): + return BinarySensorDeviceClass.PROBLEM + return BinarySensorDeviceClass.DOOR def update(self): """Return the state of the device.""" diff --git a/tests/components/totalconnect/common.py b/tests/components/totalconnect/common.py index 54f321c6770..ccee4c43781 100644 --- a/tests/components/totalconnect/common.py +++ b/tests/components/totalconnect/common.py @@ -189,14 +189,23 @@ ZONE_5 = { # 99 is an unknown ZoneType ZONE_6 = { "ZoneID": "6", - "ZoneDescription": "Medical", + "ZoneDescription": "Unknown", "ZoneStatus": ZoneStatus.NORMAL, "ZoneTypeId": 99, "PartitionId": "1", "CanBeBypassed": 0, } -ZONE_INFO = [ZONE_NORMAL, ZONE_2, ZONE_3, ZONE_4, ZONE_5, ZONE_6] +ZONE_7 = { + "ZoneID": 7, + "ZoneDescription": "Temperature", + "ZoneStatus": ZoneStatus.NORMAL, + "ZoneTypeId": ZoneType.MONITOR, + "PartitionId": "1", + "CanBeBypassed": 0, +} + +ZONE_INFO = [ZONE_NORMAL, ZONE_2, ZONE_3, ZONE_4, ZONE_5, ZONE_6, ZONE_7] ZONES = {"ZoneInfo": ZONE_INFO} METADATA_DISARMED = { diff --git a/tests/components/totalconnect/test_binary_sensor.py b/tests/components/totalconnect/test_binary_sensor.py index 966daeb5a63..8f9cabe670c 100644 --- a/tests/components/totalconnect/test_binary_sensor.py +++ b/tests/components/totalconnect/test_binary_sensor.py @@ -84,3 +84,21 @@ async def test_state_and_attributes(hass: HomeAssistant) -> None: assert state.state == STATE_OFF state = hass.states.get("binary_sensor.gas_tamper") assert state.state == STATE_ON + + # Zone 6 is unknown type, assume it is a security (door) sensor + state = hass.states.get("binary_sensor.unknown") + assert state.state == STATE_OFF + assert state.attributes.get("device_class") == BinarySensorDeviceClass.DOOR + state = hass.states.get("binary_sensor.unknown_low_battery") + assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.unknown_tamper") + assert state.state == STATE_OFF + + # Zone 7 is temperature + state = hass.states.get("binary_sensor.temperature") + assert state.state == STATE_OFF + assert state.attributes.get("device_class") == BinarySensorDeviceClass.PROBLEM + state = hass.states.get("binary_sensor.temperature_low_battery") + assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.temperature_tamper") + assert state.state == STATE_OFF