Use glass break device class in SimpliSafe (#182241)

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Jonas Petersson
2026-09-19 09:48:33 +02:00
committed by GitHub
co-authored by Codex
parent 94594f5990
commit 36cd5c69e7
2 changed files with 39 additions and 3 deletions
@@ -43,7 +43,7 @@ SUPPORTED_BATTERY_SENSOR_TYPES = [
TRIGGERED_SENSOR_TYPES = {
DeviceTypes.CARBON_MONOXIDE: BinarySensorDeviceClass.GAS,
DeviceTypes.ENTRY: BinarySensorDeviceClass.DOOR,
DeviceTypes.GLASS_BREAK: BinarySensorDeviceClass.SAFETY,
DeviceTypes.GLASS_BREAK: BinarySensorDeviceClass.GLASS_BREAK,
DeviceTypes.LEAK: BinarySensorDeviceClass.MOISTURE,
DeviceTypes.MOTION: BinarySensorDeviceClass.MOTION,
DeviceTypes.MOTION_V2: BinarySensorDeviceClass.MOTION,
+38 -2
View File
@@ -1,5 +1,6 @@
"""Define tests for SimpliSafe setup."""
import copy
from unittest.mock import AsyncMock, Mock
from freezegun.api import FrozenDateTimeFactory
@@ -10,14 +11,19 @@ from simplipy.errors import (
RequestError,
SimplipyError,
)
from simplipy.system.v3 import SystemV3
from simplipy.websocket import WebsocketEvent
from homeassistant.components.binary_sensor import (
DOMAIN as BINARY_SENSOR_DOMAIN,
BinarySensorDeviceClass,
)
from homeassistant.components.simplisafe import DOMAIN
from homeassistant.components.simplisafe.coordinator import DEFAULT_SCAN_INTERVAL
from homeassistant.config_entries import SOURCE_REAUTH
from homeassistant.const import STATE_UNAVAILABLE
from homeassistant.const import ATTR_DEVICE_CLASS, STATE_UNAVAILABLE
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.setup import async_setup_component
from tests.common import MockConfigEntry, async_fire_time_changed
@@ -75,6 +81,36 @@ async def test_base_station_model_is_string(
assert isinstance(device.model, str)
async def test_glass_break_device_class(
hass: HomeAssistant,
config_entry: MockConfigEntry,
entity_registry: er.EntityRegistry,
patch_simplisafe_api: None,
system_v3: SystemV3,
) -> None:
"""Test the glass break binary sensor device class."""
system_v3.sensor_data = copy.deepcopy(system_v3.sensor_data)
system_v3.sensor_data["glass"] = {
"serial": "glass",
"type": 6,
"name": "Living Room",
"status": {"triggered": False},
"flags": {"lowBattery": False, "offline": False},
}
system_v3.generate_device_objects()
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
entity_id = entity_registry.async_get_entity_id(
BINARY_SENSOR_DOMAIN, DOMAIN, "glass"
)
assert entity_id
state = hass.states.get(entity_id)
assert state
assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.GLASS_BREAK
async def test_coordinator_update_triggers_reauth_on_invalid_credentials(
hass: HomeAssistant,
config_entry: MockConfigEntry,