mirror of https://github.com/home-assistant/core
89 lines
2.3 KiB
Python
89 lines
2.3 KiB
Python
"""Constants for the Fitbit platform."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from enum import StrEnum
|
|
from typing import Final
|
|
|
|
from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET
|
|
|
|
DOMAIN: Final = "fitbit"
|
|
|
|
ATTR_ACCESS_TOKEN: Final = "access_token"
|
|
ATTR_REFRESH_TOKEN: Final = "refresh_token"
|
|
ATTR_LAST_SAVED_AT: Final = "last_saved_at"
|
|
|
|
ATTR_DURATION: Final = "duration"
|
|
ATTR_DISTANCE: Final = "distance"
|
|
ATTR_ELEVATION: Final = "elevation"
|
|
ATTR_HEIGHT: Final = "height"
|
|
ATTR_WEIGHT: Final = "weight"
|
|
ATTR_BODY: Final = "body"
|
|
ATTR_LIQUIDS: Final = "liquids"
|
|
ATTR_BLOOD_GLUCOSE: Final = "blood glucose"
|
|
ATTR_BATTERY: Final = "battery"
|
|
|
|
CONF_MONITORED_RESOURCES: Final = "monitored_resources"
|
|
CONF_CLOCK_FORMAT: Final = "clock_format"
|
|
ATTRIBUTION: Final = "Data provided by Fitbit.com"
|
|
|
|
FITBIT_AUTH_CALLBACK_PATH: Final = "/api/fitbit/callback"
|
|
FITBIT_AUTH_START: Final = "/api/fitbit"
|
|
FITBIT_CONFIG_FILE: Final = "fitbit.conf"
|
|
FITBIT_DEFAULT_RESOURCES: Final[list[str]] = ["activities/steps"]
|
|
|
|
DEFAULT_CONFIG: Final[dict[str, str]] = {
|
|
CONF_CLIENT_ID: "CLIENT_ID_HERE",
|
|
CONF_CLIENT_SECRET: "CLIENT_SECRET_HERE",
|
|
}
|
|
DEFAULT_CLOCK_FORMAT: Final = "24H"
|
|
|
|
BATTERY_LEVELS: Final[dict[str, int]] = {
|
|
"High": 100,
|
|
"Medium": 50,
|
|
"Low": 20,
|
|
"Empty": 0,
|
|
}
|
|
|
|
|
|
class FitbitUnitSystem(StrEnum):
|
|
"""Fitbit unit system set when sending requests to the Fitbit API.
|
|
|
|
This is used as a header to tell the Fitbit API which type of units to return.
|
|
https://dev.fitbit.com/build/reference/web-api/developer-guide/application-design/#Units
|
|
|
|
Prefer to leave unset for newer configurations to use the Home Assistant default units.
|
|
"""
|
|
|
|
LEGACY_DEFAULT = "default"
|
|
"""When set, will use an appropriate default using a legacy algorithm."""
|
|
|
|
METRIC = "metric"
|
|
"""Use metric units."""
|
|
|
|
EN_US = "en_US"
|
|
"""Use United States units."""
|
|
|
|
EN_GB = "en_GB"
|
|
"""Use United Kingdom units."""
|
|
|
|
|
|
CONF_SCOPE: Final = "scope"
|
|
|
|
|
|
class FitbitScope(StrEnum):
|
|
"""OAuth scopes for fitbit."""
|
|
|
|
ACTIVITY = "activity"
|
|
HEART_RATE = "heartrate"
|
|
NUTRITION = "nutrition"
|
|
PROFILE = "profile"
|
|
DEVICE = "settings"
|
|
SLEEP = "sleep"
|
|
WEIGHT = "weight"
|
|
|
|
|
|
OAUTH2_AUTHORIZE = "https://www.fitbit.com/oauth2/authorize"
|
|
OAUTH2_TOKEN = "https://api.fitbit.com/oauth2/token"
|
|
OAUTH_SCOPES = [scope.value for scope in FitbitScope]
|