66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
"""Constants for the Bluetooth integration."""
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
from typing import Final
|
|
|
|
DOMAIN = "bluetooth"
|
|
|
|
CONF_ADAPTER = "adapter"
|
|
CONF_DETAILS = "details"
|
|
CONF_PASSIVE = "passive"
|
|
|
|
|
|
SOURCE_LOCAL: Final = "local"
|
|
|
|
DATA_MANAGER: Final = "bluetooth_manager"
|
|
|
|
UNAVAILABLE_TRACK_SECONDS: Final = 60 * 5
|
|
|
|
START_TIMEOUT = 15
|
|
|
|
# The maximum time between advertisements for a device to be considered
|
|
# stale when the advertisement tracker cannot determine the interval.
|
|
#
|
|
# We have to set this quite high as we don't know
|
|
# when devices fall out of the ESPHome device (and other non-local scanners)'s
|
|
# stack like we do with BlueZ so its safer to assume its available
|
|
# since if it does go out of range and it is in range
|
|
# of another device the timeout is much shorter and it will
|
|
# switch over to using that adapter anyways.
|
|
#
|
|
FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS: Final = 60 * 15
|
|
|
|
# The maximum time between advertisements for a device to be considered
|
|
# stale when the advertisement tracker can determine the interval for
|
|
# connectable devices.
|
|
#
|
|
# BlueZ uses 180 seconds by default but we give it a bit more time
|
|
# to account for the esp32's bluetooth stack being a bit slower
|
|
# than BlueZ's.
|
|
CONNECTABLE_FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS: Final = 195
|
|
|
|
|
|
# We must recover before we hit the 180s mark
|
|
# where the device is removed from the stack
|
|
# or the devices will go unavailable. Since
|
|
# we only check every 30s, we need this number
|
|
# to be
|
|
# 180s Time when device is removed from stack
|
|
# - 30s check interval
|
|
# - 30s scanner restart time * 2
|
|
#
|
|
SCANNER_WATCHDOG_TIMEOUT: Final = 90
|
|
# How often to check if the scanner has reached
|
|
# the SCANNER_WATCHDOG_TIMEOUT without seeing anything
|
|
SCANNER_WATCHDOG_INTERVAL: Final = timedelta(seconds=30)
|
|
|
|
|
|
# When the linux kernel is configured with
|
|
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK it
|
|
# can take up to 120s before the USB device
|
|
# is available if the firmware files
|
|
# are not present
|
|
LINUX_FIRMWARE_LOAD_FALLBACK_SECONDS = 120
|
|
BLUETOOTH_DISCOVERY_COOLDOWN_SECONDS = 5
|