Security systems¶
- class aioafero.v1.controllers.security_system.SecuritySystemController(bridge: AferoBridgeV1)[source]
Bases:
BaseResourcesController[SecuritySystem]Security systems on
bridge.security_systems.- Parameters:
bridge (AferoBridgeV1)
- ITEM_CLS
alias of
SecuritySystem
- async arm_home(device_id: str) None[source]
Arm the system in home mode.
- Parameters:
device_id (str) – Device ID from this controller.
- Return type:
None
- async arm_away(device_id: str) None[source]
Arm the system in away mode.
- Parameters:
device_id (str) – Device ID from this controller.
- Return type:
None
- async alarm_trigger(device_id: str) None[source]
Manually trigger the alarm siren.
- Parameters:
device_id (str) – Device ID from this controller.
- Return type:
None
- async initialize_elem(afero_device: AferoDevice) SecuritySystem[source]
Initialize the element.
- Parameters:
afero_device (AferoDevice) – Afero Device that contains the updated states
- Returns:
Newly initialized resource
- Return type:
- async update_elem(afero_device: AferoDevice) set[source]
Update the Security System with the latest API data.
- Parameters:
afero_device (AferoDevice) – Afero Device that contains the updated states
- Returns:
States that have been modified
- Return type:
- async set_state(device_id: str, disarm_pin: int | None = None, command: int | None = None, numbers: dict[tuple[str, str | None], float] | None = None, selects: dict[tuple[str, str | None], str] | None = None) None[source]
Update security system state in the cloud.
- Parameters:
device_id (str) – Device ID from this controller.
disarm_pin (int | None) – PIN for disarm commands.
command (int | None) – Panel command code (
2away,4home,5alarm trigger).numbers (dict[tuple[str, str | None], float] | None) – Number features keyed by
(functionClass, functionInstance).selects (dict[tuple[str, str | None], str] | None) – Select features keyed by
(functionClass, functionInstance).
- Return type:
None
- async refresh_alarm_state(device_id: str) None[source]
Refresh the alarm state after alarm state change command.
- Parameters:
device_id (str)
- Return type:
None
- async validate_disarm_pin(device_id: str) None[source]
Ensure the system has switched to disarmed.
- Parameters:
device_id (str)
- Return type:
None
- __getitem__(device_id: str) AferoResource
Get item by device_id.
- Parameters:
device_id (str)
- Return type:
AferoResource
- __init__(bridge: AferoBridgeV1) None
Initialize instance.
- Parameters:
bridge (AferoBridgeV1)
- Return type:
None
- async emit_to_subscribers(evt_type: EventType, item_id: str, item: AferoResource)
Emit updates to subscribers.
- generate_update_dev(device_id: str, states: list[AferoState]) AferoDevice
Generate update data for the event controller.
- Parameters:
device_id (str)
states (list[AferoState])
- Return type:
- get_device(device_id: str) AferoResource
Return the current model for a tracked device.
- Parameters:
device_id (str) – Device ID on this controller (split or parent metadevice ID).
- Returns:
Resource model with parsed feature state.
- Raises:
DeviceNotFound – If
device_idis not tracked by this controller.- Return type:
AferoResource
- get_filtered_devices(initial_data: list[dict]) list[AferoDevice]
Determine devices that align to the controller.
- Parameters:
- Return type:
- async initialize() None
Initialize controller the controller.
Initialization process should only occur once. During this process, it will subscribe to all updates for the given resources and register any device split callbacks for the event controller.
- Return type:
None
- async initialize_number(func_def: dict, state: AferoState) tuple[tuple[str, str | None], NumbersFeature] | None
Initialize a number from the provided data.
- Parameters:
func_def (dict)
state (AferoState)
- Return type:
tuple[tuple[str, str | None], NumbersFeature] | None
- async initialize_select(functions: list[dict], state: AferoState) tuple[tuple[str, str | None], SelectFeature] | None
Initialize a select from the provided data.
- Parameters:
state (AferoState)
- Return type:
tuple[tuple[str, str | None], SelectFeature] | None
- async initialize_sensor(state: AferoState, child_id: str) AferoSensor | AferoBinarySensor | None
Initialize the sensor.
- Parameters:
state (AferoState) – State to update
child_id (str) – device_id of the parent device
- Return type:
AferoSensor | AferoBinarySensor | None
- property initialized: bool
Determine if the controller has been initialized.
- property items: list[AferoResource]
Return all items for this resource.
- async split_sensor_data(state: AferoState) tuple[Any, str | None]
Split the sensor value and return a tuple of the sensor value and key.
- Parameters:
state (AferoState)
- Return type:
- subscribe(callback: Callable[[EventType, dict | None], None], id_filter: str | tuple[str] | None = None, event_filter: EventType | tuple[EventType] | None = None) Callable
Subscribe to status changes for this resource type.
- Parameters:
- Returns:
function to unsubscribe.
- Return type:
- property subscribers: dict[str, list[tuple[Callable[[EventType, dict | None], None], tuple[EventType] | None]]]
Get all subscribers aligned to this controller.
- async update(device_id: str, obj_in: AferoResource | None = None, states: list[dict] | None = None, send_duplicate_states: bool = False) ClientResponse | None
Update Afero IoT with the new data.
- async update_afero_api(device_id: str, states: list[dict]) ClientResponse | bool
Update Afero IoT API with the new states.
- async update_number(state: AferoState, cur_item: AferoResource) str | None
Update the number if its tracked and a change has been detected.
- Parameters:
state (AferoState) – State to update
cur_item (AferoResource) – Current item to update
- Returns:
Identifier of the number that was updated or None
- Return type:
str | None
- async update_select(state: AferoState, cur_item: AferoResource) str | None
Update the select if its tracked and a change has been detected.
- Parameters:
state (AferoState) – State to update
cur_item (AferoResource) – Current item to update
- Returns:
Identifier of the select that was updated or None
- Return type:
str | None
- async update_sensor(state: AferoState, cur_item: AferoResource) str | None
Update the sensor if its tracked and a change has been detected.
- Parameters:
state (AferoState) – State to update
cur_item (AferoResource) – Current item to update
- Returns:
Identifier of the sensor that was updated or None
- Return type:
str | None