mirror of
https://github.com/home-assistant/core.git
synced 2025-04-28 11:17:53 +00:00
Fix Totalconnect BinarySensorDeviceClass logic (#94772)
* handle temperature * test for temperature * test for unknown
This commit is contained in:
parent
6183a36fce
commit
252c0e8ad9
@ -81,15 +81,9 @@ class TotalConnectZoneSecurityBinarySensor(TotalConnectZoneBinarySensor):
|
|||||||
return BinarySensorDeviceClass.MOTION
|
return BinarySensorDeviceClass.MOTION
|
||||||
if self._zone.is_type_medical():
|
if self._zone.is_type_medical():
|
||||||
return BinarySensorDeviceClass.SAFETY
|
return BinarySensorDeviceClass.SAFETY
|
||||||
# "security" type is a generic category so test for it last
|
if self._zone.is_type_temperature():
|
||||||
if self._zone.is_type_security():
|
return BinarySensorDeviceClass.PROBLEM
|
||||||
return BinarySensorDeviceClass.DOOR
|
return BinarySensorDeviceClass.DOOR
|
||||||
|
|
||||||
_LOGGER.error(
|
|
||||||
"TotalConnect zone %s reported an unexpected device class",
|
|
||||||
self._zone.zoneid,
|
|
||||||
)
|
|
||||||
return None
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Return the state of the device."""
|
"""Return the state of the device."""
|
||||||
|
@ -189,14 +189,23 @@ ZONE_5 = {
|
|||||||
# 99 is an unknown ZoneType
|
# 99 is an unknown ZoneType
|
||||||
ZONE_6 = {
|
ZONE_6 = {
|
||||||
"ZoneID": "6",
|
"ZoneID": "6",
|
||||||
"ZoneDescription": "Medical",
|
"ZoneDescription": "Unknown",
|
||||||
"ZoneStatus": ZoneStatus.NORMAL,
|
"ZoneStatus": ZoneStatus.NORMAL,
|
||||||
"ZoneTypeId": 99,
|
"ZoneTypeId": 99,
|
||||||
"PartitionId": "1",
|
"PartitionId": "1",
|
||||||
"CanBeBypassed": 0,
|
"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}
|
ZONES = {"ZoneInfo": ZONE_INFO}
|
||||||
|
|
||||||
METADATA_DISARMED = {
|
METADATA_DISARMED = {
|
||||||
|
@ -84,3 +84,21 @@ async def test_state_and_attributes(hass: HomeAssistant) -> None:
|
|||||||
assert state.state == STATE_OFF
|
assert state.state == STATE_OFF
|
||||||
state = hass.states.get("binary_sensor.gas_tamper")
|
state = hass.states.get("binary_sensor.gas_tamper")
|
||||||
assert state.state == STATE_ON
|
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user