Coverage for custom_components/autoarm/binary_sensor.py: 100%
21 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-26 20:57 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-26 20:57 +0000
1"""Binary sensor reporting whether AutoArm initialized without errors."""
3from typing import Any
5from homeassistant.components.binary_sensor import BinarySensorEntity, BinarySensorEntityDescription
6from homeassistant.const import EntityCategory, Platform
7from homeassistant.core import HomeAssistant
8from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
10from .autoarming import AlarmArmer, AutoArmConfigEntry
11from .entity import AutoArmEntity
13PARALLEL_UPDATES = 0
15INITIALIZED = BinarySensorEntityDescription(
16 key="initialized",
17 translation_key="initialized",
18 entity_category=EntityCategory.DIAGNOSTIC,
19)
22async def async_setup_entry(
23 hass: HomeAssistant, entry: AutoArmConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback
24) -> None:
25 async_add_entities([AutoArmInitializedSensor(entry.runtime_data, entry)])
28class AutoArmInitializedSensor(AutoArmEntity, BinarySensorEntity):
29 def __init__(self, armer: AlarmArmer, entry: AutoArmConfigEntry) -> None:
30 super().__init__(armer, entry, Platform.BINARY_SENSOR, INITIALIZED)
32 @property
33 def is_on(self) -> bool: # type: ignore
34 tracker = self.armer.app_health_tracker
35 return tracker.initialized and not tracker.initialization_errors
37 @property
38 def extra_state_attributes(self) -> dict[str, Any]: # type: ignore
39 return dict(self.armer.app_health_tracker.initialization_errors)