1 """Support for bypassing Risco alarm zones."""
3 from __future__
import annotations
7 from pyrisco.common
import Zone
15 from .
import LocalData, is_local
16 from .const
import DATA_COORDINATOR, DOMAIN
17 from .coordinator
import RiscoDataUpdateCoordinator
18 from .entity
import RiscoCloudZoneEntity, RiscoLocalZoneEntity
23 config_entry: ConfigEntry,
24 async_add_entities: AddEntitiesCallback,
26 """Set up the Risco switch."""
28 local_data: LocalData = hass.data[DOMAIN][config_entry.entry_id]
31 for zone_id, zone
in local_data.system.zones.items()
34 coordinator: RiscoDataUpdateCoordinator = hass.data[DOMAIN][
39 for zone_id, zone
in coordinator.data.zones.items()
44 """Representation of a bypass switch for a Risco cloud zone."""
46 _attr_entity_category = EntityCategory.CONFIG
47 _attr_translation_key =
"bypassed"
50 self, coordinator: RiscoDataUpdateCoordinator, zone_id: int, zone: Zone
54 coordinator=coordinator,
62 """Return true if the zone is bypassed."""
66 """Turn the entity on."""
70 """Turn the entity off."""
71 await self.
_bypass_bypass(
False)
73 async
def _bypass(self, bypass: bool) ->
None:
74 alarm = await self.
_risco_risco.bypass_zone(self.
_zone_id_zone_id, bypass)
80 """Representation of a bypass switch for a Risco local zone."""
82 _attr_entity_category = EntityCategory.CONFIG
83 _attr_translation_key =
"bypassed"
85 def __init__(self, system_id: str, zone_id: int, zone: Zone) ->
None:
96 """Return true if the zone is bypassed."""
97 return self.
_zone_zone.bypassed
100 """Turn the entity on."""
101 await self.
_bypass_bypass(
True)
104 """Turn the entity off."""
105 await self.
_bypass_bypass(
False)
107 async
def _bypass(self, bypass: bool) ->
None:
108 await self.
_zone_zone.bypass(bypass)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None _bypass(self, bool bypass)
None __init__(self, RiscoDataUpdateCoordinator coordinator, int zone_id, Zone zone)
None _bypass(self, bool bypass)
None async_turn_on(self, **Any kwargs)
None async_turn_off(self, **Any kwargs)
None __init__(self, str system_id, int zone_id, Zone zone)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
bool is_local(ConfigEntry entry)