2019-05-15 21:43:45 +00:00
|
|
|
"""Device tracker constants."""
|
2024-03-08 13:15:26 +00:00
|
|
|
|
2022-07-29 11:09:03 +00:00
|
|
|
from __future__ import annotations
|
|
|
|
|
2019-05-15 21:43:45 +00:00
|
|
|
from datetime import timedelta
|
2023-07-23 21:19:24 +00:00
|
|
|
from enum import StrEnum
|
2023-12-20 17:06:38 +00:00
|
|
|
from functools import partial
|
2019-05-15 21:43:45 +00:00
|
|
|
import logging
|
2021-05-22 08:15:15 +00:00
|
|
|
from typing import Final
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2023-12-20 17:06:38 +00:00
|
|
|
from homeassistant.helpers.deprecation import (
|
|
|
|
DeprecatedConstantEnum,
|
2024-01-05 10:46:45 +00:00
|
|
|
all_with_deprecated_constants,
|
2023-12-20 17:06:38 +00:00
|
|
|
check_if_deprecated_constant,
|
|
|
|
dir_with_deprecated_constants,
|
|
|
|
)
|
2024-03-27 13:25:02 +00:00
|
|
|
from homeassistant.util.signal_type import SignalType
|
2023-12-20 17:06:38 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
LOGGER: Final = logging.getLogger(__package__)
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
DOMAIN: Final = "device_tracker"
|
2021-11-08 13:02:18 +00:00
|
|
|
ENTITY_ID_FORMAT: Final = DOMAIN + ".{}"
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
PLATFORM_TYPE_LEGACY: Final = "legacy"
|
|
|
|
PLATFORM_TYPE_ENTITY: Final = "entity_platform"
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2022-07-29 11:09:03 +00:00
|
|
|
|
|
|
|
class SourceType(StrEnum):
|
|
|
|
"""Source type for device trackers."""
|
|
|
|
|
|
|
|
GPS = "gps"
|
|
|
|
ROUTER = "router"
|
|
|
|
BLUETOOTH = "bluetooth"
|
|
|
|
BLUETOOTH_LE = "bluetooth_le"
|
|
|
|
|
|
|
|
|
2023-12-20 17:06:38 +00:00
|
|
|
# SOURCE_TYPE_* below are deprecated as of 2022.9
|
|
|
|
# use the SourceType enum instead.
|
|
|
|
_DEPRECATED_SOURCE_TYPE_GPS: Final = DeprecatedConstantEnum(SourceType.GPS, "2025.1")
|
|
|
|
_DEPRECATED_SOURCE_TYPE_ROUTER: Final = DeprecatedConstantEnum(
|
|
|
|
SourceType.ROUTER, "2025.1"
|
|
|
|
)
|
|
|
|
_DEPRECATED_SOURCE_TYPE_BLUETOOTH: Final = DeprecatedConstantEnum(
|
|
|
|
SourceType.BLUETOOTH, "2025.1"
|
|
|
|
)
|
|
|
|
_DEPRECATED_SOURCE_TYPE_BLUETOOTH_LE: Final = DeprecatedConstantEnum(
|
|
|
|
SourceType.BLUETOOTH_LE, "2025.1"
|
|
|
|
)
|
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
CONF_SCAN_INTERVAL: Final = "interval_seconds"
|
|
|
|
SCAN_INTERVAL: Final = timedelta(seconds=12)
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
CONF_TRACK_NEW: Final = "track_new_devices"
|
|
|
|
DEFAULT_TRACK_NEW: Final = True
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
CONF_CONSIDER_HOME: Final = "consider_home"
|
|
|
|
DEFAULT_CONSIDER_HOME: Final = timedelta(seconds=180)
|
2019-05-15 21:43:45 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
CONF_NEW_DEVICE_DEFAULTS: Final = "new_device_defaults"
|
2019-07-31 19:25:30 +00:00
|
|
|
|
2021-05-22 08:15:15 +00:00
|
|
|
ATTR_ATTRIBUTES: Final = "attributes"
|
|
|
|
ATTR_BATTERY: Final = "battery"
|
|
|
|
ATTR_DEV_ID: Final = "dev_id"
|
|
|
|
ATTR_GPS: Final = "gps"
|
|
|
|
ATTR_HOST_NAME: Final = "host_name"
|
|
|
|
ATTR_LOCATION_NAME: Final = "location_name"
|
|
|
|
ATTR_MAC: Final = "mac"
|
|
|
|
ATTR_SOURCE_TYPE: Final = "source_type"
|
|
|
|
ATTR_CONSIDER_HOME: Final = "consider_home"
|
|
|
|
ATTR_IP: Final = "ip"
|
2022-02-19 15:01:34 +00:00
|
|
|
|
2024-03-27 13:25:02 +00:00
|
|
|
CONNECTED_DEVICE_REGISTERED = SignalType[dict[str, str | None]](
|
|
|
|
"device_tracker_connected_device_registered"
|
|
|
|
)
|
2024-01-05 10:46:45 +00:00
|
|
|
|
|
|
|
# These can be removed if no deprecated constant are in this module anymore
|
|
|
|
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
|
|
|
|
__dir__ = partial(
|
|
|
|
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
|
|
|
|
)
|
|
|
|
__all__ = all_with_deprecated_constants(globals())
|