findmy.scanner ============== .. py:module:: findmy.scanner .. autoapi-nested-parse:: Utilities related to physically discoverable FindMy-devices. Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/findmy/scanner/scanner/index Classes ------- .. autoapisummary:: findmy.scanner.NearbyOfflineFindingDevice findmy.scanner.OfflineFindingScanner findmy.scanner.SeparatedOfflineFindingDevice Package Contents ---------------- .. py:class:: NearbyOfflineFindingDevice(mac_bytes: bytes, status_byte: int, first_adv_key_bytes: bytes, detected_at: datetime.datetime, additional_data: dict[Any, Any] | None = None) Bases: :py:obj:`OfflineFindingDevice` Offline-Finding device in nearby state. .. py:property:: payload_len :type: int :classmethod: Length of OfflineFinding data payload in bytes. .. py:method:: is_from(other_device: findmy.keys.HasPublicKey | findmy.accessory.RollingKeyPairSource) -> bool Check whether the OF device's identity originates from a specific key source. .. py:method:: from_payload(mac_address: str, payload: bytes, detected_at: datetime.datetime, additional_data: dict[Any, Any] | None = None) -> NearbyOfflineFindingDevice | None :classmethod: Get a NearbyOfflineFindingDevice object from an OF message payload. .. py:class:: OfflineFindingScanner(loop: asyncio.AbstractEventLoop) BLE scanner that searches for `OfflineFindingDevice`s. .. py:attribute:: BLE_COMPANY_APPLE :value: 76 .. py:method:: create() -> OfflineFindingScanner :classmethod: :async: Create an instance of the scanner. .. py:method:: scan_for(timeout: float = 10, *, extend_timeout: bool = False) -> AsyncGenerator[OfflineFindingDevice, None] :async: Scan for `OfflineFindingDevice`s for up to `timeout` seconds. If `extend_timeout` is set, the timer will be extended by `timeout` seconds every time a new device is discovered. .. py:class:: SeparatedOfflineFindingDevice(mac_bytes: bytes, status: int, public_key: bytes, hint: int, detected_at: datetime.datetime, additional_data: dict[Any, Any] | None = None) Bases: :py:obj:`OfflineFindingDevice`, :py:obj:`findmy.keys.HasPublicKey` Offline-Finding device in separated state. .. py:property:: payload_len :type: int :classmethod: Length of OfflineFinding data in bytes. .. py:property:: hint :type: int Hint value as reported by the device. .. py:property:: adv_key_bytes :type: bytes See `HasPublicKey.adv_key_bytes`. .. py:method:: is_from(other_device: findmy.keys.HasPublicKey | findmy.accessory.RollingKeyPairSource) -> bool Check whether the OF device's identity originates from a specific key source. .. py:method:: from_payload(mac_address: str, payload: bytes, detected_at: datetime.datetime, additional_data: dict[Any, Any] | None = None) -> SeparatedOfflineFindingDevice | None :classmethod: Get a SeparatedOfflineFindingDevice object from an OF message payload. .. py:method:: __repr__() -> str Human-readable string representation of an OfflineFindingDevice.