1 """Support for Blink Alarm Control Panel."""
3 from __future__
import annotations
7 from blinkpy.blinkpy
import Blink, BlinkSyncModule
10 AlarmControlPanelEntity,
11 AlarmControlPanelEntityFeature,
12 AlarmControlPanelState,
21 from .const
import DEFAULT_ATTRIBUTION, DEFAULT_BRAND, DOMAIN
22 from .coordinator
import BlinkConfigEntry, BlinkUpdateCoordinator
24 _LOGGER = logging.getLogger(__name__)
29 config_entry: BlinkConfigEntry,
30 async_add_entities: AddEntitiesCallback,
32 """Set up the Blink Alarm Control Panels."""
33 coordinator = config_entry.runtime_data
36 for sync_name, sync_module
in coordinator.api.sync.items():
42 CoordinatorEntity[BlinkUpdateCoordinator], AlarmControlPanelEntity
44 """Representation of a Blink Alarm Control Panel."""
46 _attr_supported_features = AlarmControlPanelEntityFeature.ARM_AWAY
47 _attr_code_arm_required =
False
48 _attr_has_entity_name =
True
52 self, coordinator: BlinkUpdateCoordinator, name: str, sync: BlinkSyncModule
54 """Initialize the alarm control panel."""
56 self.
apiapi: Blink = coordinator.api
58 self._attr_unique_id: str = sync.serial
60 identifiers={(DOMAIN, sync.serial)},
61 name=f
"{DOMAIN} {name}",
62 manufacturer=DEFAULT_BRAND,
63 serial_number=sync.serial,
64 sw_version=sync.version,
70 """Handle coordinator update."""
76 """Update attributes for alarm control panel."""
77 self.
syncsync.attributes[
"network_info"] = self.
apiapi.networks
78 self.
syncsync.attributes[
"associated_cameras"] =
list(self.
syncsync.cameras)
79 self.
syncsync.attributes[ATTR_ATTRIBUTION] = DEFAULT_ATTRIBUTION
82 AlarmControlPanelState.ARMED_AWAY
84 else AlarmControlPanelState.DISARMED
88 """Send disarm command."""
90 await self.
syncsync.async_arm(
False)
92 except TimeoutError
as er:
98 """Send arm command."""
100 await self.
syncsync.async_arm(
True)
102 except TimeoutError
as er:
None async_alarm_arm_away(self, str|None code=None)
None _handle_coordinator_update(self)
_attr_extra_state_attributes
None async_alarm_disarm(self, str|None code=None)
None __init__(self, BlinkUpdateCoordinator coordinator, str name, BlinkSyncModule sync)
None async_setup_entry(HomeAssistant hass, BlinkConfigEntry config_entry, AddEntitiesCallback async_add_entities)