Files
2024-01-11 15:10:51 +03:00

685 lines
22 KiB
Python

"""Constants for Yandex Smart Home."""
from homeassistant.components import (
air_quality,
automation,
binary_sensor,
button,
camera,
climate,
cover,
fan,
group,
humidifier,
input_boolean,
input_button,
input_text,
light,
lock,
media_player,
scene,
script,
sensor,
switch,
vacuum,
water_heater,
)
DOMAIN = 'yandex_smart_home'
CONFIG = 'config'
YAML_CONFIG = 'yaml_config'
YAML_CONFIG_HASH = 'yaml_config_hash'
CONFIG_ENTRY_TITLE = 'Yandex Smart Home'
NOTIFIERS = 'notifiers'
CLOUD_MANAGER = 'cloud_manager'
CLOUD_STREAMS = 'cloud_streams'
CONF_SETTINGS = 'settings'
CONF_PRESSURE_UNIT = 'pressure_unit'
CONF_BETA = 'beta'
CONF_CLOUD_STREAM = 'cloud_stream'
CONF_NOTIFIER = 'notifier'
CONF_NOTIFIER_OAUTH_TOKEN = 'oauth_token'
CONF_NOTIFIER_SKILL_ID = 'skill_id'
CONF_NOTIFIER_USER_ID = 'user_id'
CONF_CONNECTION_TYPE = 'connection_type'
CONF_CLOUD_INSTANCE = 'cloud_instance'
CONF_CLOUD_INSTANCE_ID = 'id'
CONF_CLOUD_INSTANCE_PASSWORD = 'password'
CONF_CLOUD_INSTANCE_CONNECTION_TOKEN = 'token'
CONF_USER_ID = 'user_id'
CONF_DEVICES_DISCOVERED = 'devices_discovered'
CONF_COLOR_PROFILE = 'color_profile'
CONF_ENTITY_CONFIG = 'entity_config'
CONF_FILTER = 'filter'
CONF_NAME = 'name'
CONF_ROOM = 'room'
CONF_TYPE = 'type'
CONF_TURN_ON = 'turn_on'
CONF_TURN_OFF = 'turn_off'
CONF_DEVICE_CLASS = 'device_class'
CONF_FEATURES = 'features'
CONF_SUPPORT_SET_CHANNEL = 'support_set_channel'
CONF_STATE_UNKNOWN = 'state_unknown'
CONF_ENTITY_PROPERTY_ENTITY = 'entity'
CONF_ENTITY_PROPERTY_TYPE = 'type'
CONF_ENTITY_PROPERTY_ATTRIBUTE = 'attribute'
CONF_ENTITY_PROPERTY_UNIT_OF_MEASUREMENT = 'unit_of_measurement'
CONF_ENTITY_PROPERTIES = 'properties'
CONF_ENTITY_RANGE = 'range'
CONF_ENTITY_RANGE_MIN = 'min'
CONF_ENTITY_RANGE_MAX = 'max'
CONF_ENTITY_RANGE_PRECISION = 'precision'
CONF_ENTITY_MODE_MAP = 'modes'
CONF_ENTITY_CUSTOM_CAPABILITY_STATE_ENTITY_ID = 'state_entity_id'
CONF_ENTITY_CUSTOM_CAPABILITY_STATE_ATTRIBUTE = 'state_attribute'
CONF_ENTITY_CUSTOM_MODES = 'custom_modes'
CONF_ENTITY_CUSTOM_MODE_SET_MODE = 'set_mode'
CONF_ENTITY_CUSTOM_TOGGLES = 'custom_toggles'
CONF_ENTITY_CUSTOM_TOGGLE_TURN_ON = 'turn_on'
CONF_ENTITY_CUSTOM_TOGGLE_TURN_OFF = 'turn_off'
CONF_ENTITY_CUSTOM_RANGES = 'custom_ranges'
CONF_ENTITY_CUSTOM_RANGE_SET_VALUE = 'set_value'
CONF_ENTITY_CUSTOM_RANGE_INCREASE_VALUE = 'increase_value'
CONF_ENTITY_CUSTOM_RANGE_DECREASE_VALUE = 'decrease_value'
STORE_CACHE_ATTRS = 'attrs'
CONNECTION_TYPE_DIRECT = 'direct'
CONNECTION_TYPE_CLOUD = 'cloud'
CLOUD_BASE_URL = 'https://yaha-cloud.ru'
CLOUD_STREAM_BASE_URL = 'https://stream.yaha-cloud.ru'
EVENT_DEVICE_DISCOVERY = 'yandex_smart_home_device_discovery'
EVENT_CONFIG_CHANGED = 'yandex_smart_home_config_changed'
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/device-types.html
PREFIX_TYPES = 'devices.types.'
TYPE_LIGHT = PREFIX_TYPES + 'light'
TYPE_SOCKET = PREFIX_TYPES + 'socket'
TYPE_SWITCH = PREFIX_TYPES + 'switch'
TYPE_THERMOSTAT = PREFIX_TYPES + 'thermostat'
TYPE_THERMOSTAT_AC = PREFIX_TYPES + 'thermostat.ac'
TYPE_MEDIA_DEVICE = PREFIX_TYPES + 'media_device'
TYPE_MEDIA_DEVICE_TV = PREFIX_TYPES + 'media_device.tv'
TYPE_MEDIA_DEVICE_TV_BOX = PREFIX_TYPES + 'media_device.tv_box'
TYPE_MEDIA_DEVICE_RECIEVER = PREFIX_TYPES + 'media_device.receiver'
TYPE_CAMERA = PREFIX_TYPES + 'camera'
TYPE_COOKING = PREFIX_TYPES + 'cooking'
TYPE_COFFEE_MAKER = PREFIX_TYPES + 'cooking.coffee_maker'
TYPE_KETTLE = PREFIX_TYPES + 'cooking.kettle'
TYPE_MULTICOOKER = PREFIX_TYPES + 'cooking.multicooker'
TYPE_OPENABLE = PREFIX_TYPES + 'openable'
TYPE_OPENABLE_CURTAIN = PREFIX_TYPES + 'openable.curtain'
TYPE_HUMIDIFIER = PREFIX_TYPES + 'humidifier'
TYPE_FAN = PREFIX_TYPES + 'fan'
TYPE_PURIFIER = PREFIX_TYPES + 'purifier'
TYPE_VACUUM_CLEANER = PREFIX_TYPES + 'vacuum_cleaner'
TYPE_WASHING_MACHINE = PREFIX_TYPES + 'washing_machine'
TYPE_DISHWASHER = PREFIX_TYPES + 'dishwasher'
TYPE_IRON = PREFIX_TYPES + 'iron'
TYPE_SENSOR = PREFIX_TYPES + 'sensor'
TYPE_OTHER = PREFIX_TYPES + 'other'
TYPES = (
TYPE_LIGHT,
TYPE_SOCKET,
TYPE_SWITCH,
TYPE_THERMOSTAT,
TYPE_THERMOSTAT_AC,
TYPE_MEDIA_DEVICE,
TYPE_MEDIA_DEVICE_TV,
TYPE_MEDIA_DEVICE_TV_BOX,
TYPE_MEDIA_DEVICE_RECIEVER,
TYPE_CAMERA,
TYPE_COOKING,
TYPE_COFFEE_MAKER,
TYPE_KETTLE,
TYPE_MULTICOOKER,
TYPE_OPENABLE,
TYPE_OPENABLE_CURTAIN,
TYPE_HUMIDIFIER,
TYPE_FAN,
TYPE_PURIFIER,
TYPE_VACUUM_CLEANER,
TYPE_WASHING_MACHINE,
TYPE_DISHWASHER,
TYPE_IRON,
TYPE_SENSOR,
TYPE_OTHER,
)
DOMAIN_TO_YANDEX_TYPES = {
air_quality.DOMAIN: TYPE_SENSOR,
automation.DOMAIN: TYPE_OTHER,
binary_sensor.DOMAIN: TYPE_SENSOR,
button.DOMAIN: TYPE_OTHER,
camera.DOMAIN: TYPE_CAMERA,
climate.DOMAIN: TYPE_THERMOSTAT,
cover.DOMAIN: TYPE_OPENABLE_CURTAIN,
fan.DOMAIN: TYPE_FAN,
group.DOMAIN: TYPE_SWITCH,
humidifier.DOMAIN: TYPE_HUMIDIFIER,
input_boolean.DOMAIN: TYPE_SWITCH,
input_button.DOMAIN: TYPE_OTHER,
input_text.DOMAIN: TYPE_SENSOR,
light.DOMAIN: TYPE_LIGHT,
lock.DOMAIN: TYPE_OPENABLE,
media_player.DOMAIN: TYPE_MEDIA_DEVICE,
scene.DOMAIN: TYPE_OTHER,
script.DOMAIN: TYPE_OTHER,
sensor.DOMAIN: TYPE_SENSOR,
switch.DOMAIN: TYPE_SWITCH,
vacuum.DOMAIN: TYPE_VACUUM_CLEANER,
water_heater.DOMAIN: TYPE_KETTLE,
}
DEVICE_CLASS_TO_YANDEX_TYPES = {
(media_player.DOMAIN, media_player.DEVICE_CLASS_TV): TYPE_MEDIA_DEVICE_TV,
(media_player.DOMAIN, media_player.DEVICE_CLASS_RECEIVER): TYPE_MEDIA_DEVICE_RECIEVER,
(switch.DOMAIN, switch.DEVICE_CLASS_OUTLET): TYPE_SOCKET,
}
ON_OFF_INSTANCE_ON = 'on'
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/toggle-instance.html
TOGGLE_INSTANCE_BACKLIGHT = 'backlight'
TOGGLE_INSTANCE_CONTROLS_LOCKED = 'controls_locked'
TOGGLE_INSTANCE_IONIZATION = 'ionization'
TOGGLE_INSTANCE_KEEP_WARM = 'keep_warm'
TOGGLE_INSTANCE_MUTE = 'mute'
TOGGLE_INSTANCE_OSCILLATION = 'oscillation'
TOGGLE_INSTANCE_PAUSE = 'pause'
TOGGLE_INSTANCES = (
TOGGLE_INSTANCE_BACKLIGHT,
TOGGLE_INSTANCE_CONTROLS_LOCKED,
TOGGLE_INSTANCE_IONIZATION,
TOGGLE_INSTANCE_KEEP_WARM,
TOGGLE_INSTANCE_MUTE,
TOGGLE_INSTANCE_OSCILLATION,
TOGGLE_INSTANCE_PAUSE,
)
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/range-instance.html
RANGE_INSTANCE_BRIGHTNESS = 'brightness'
RANGE_INSTANCE_CHANNEL = 'channel'
RANGE_INSTANCE_HUMIDITY = 'humidity'
RANGE_INSTANCE_OPEN = 'open'
RANGE_INSTANCE_TEMPERATURE = 'temperature'
RANGE_INSTANCE_VOLUME = 'volume'
RANGE_INSTANCES = (
RANGE_INSTANCE_BRIGHTNESS,
RANGE_INSTANCE_CHANNEL,
RANGE_INSTANCE_HUMIDITY,
RANGE_INSTANCE_OPEN,
RANGE_INSTANCE_TEMPERATURE,
RANGE_INSTANCE_VOLUME,
)
RANGE_INSTANCE_TO_UNITS = {
RANGE_INSTANCE_BRIGHTNESS: 'unit.percent',
RANGE_INSTANCE_HUMIDITY: 'unit.percent',
RANGE_INSTANCE_OPEN: 'unit.percent',
RANGE_INSTANCE_TEMPERATURE: 'unit.temperature.celsius'
}
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/mode-instance.html
MODE_INSTANCE_CLEANUP_MODE = 'cleanup_mode'
MODE_INSTANCE_COFFEE_MODE = 'coffee_mode'
MODE_INSTANCE_DISHWASHING = 'dishwashing'
MODE_INSTANCE_FAN_SPEED = 'fan_speed'
MODE_INSTANCE_HEAT = 'heat'
MODE_INSTANCE_INPUT_SOURCE = 'input_source'
MODE_INSTANCE_PROGRAM = 'program'
MODE_INSTANCE_SWING = 'swing'
MODE_INSTANCE_TEA_MODE = 'tea_mode'
MODE_INSTANCE_THERMOSTAT = 'thermostat'
MODE_INSTANCE_WORK_SPEED = 'work_speed'
MODE_INSTANCES = (
MODE_INSTANCE_CLEANUP_MODE,
MODE_INSTANCE_COFFEE_MODE,
MODE_INSTANCE_DISHWASHING,
MODE_INSTANCE_FAN_SPEED,
MODE_INSTANCE_HEAT,
MODE_INSTANCE_INPUT_SOURCE,
MODE_INSTANCE_PROGRAM,
MODE_INSTANCE_SWING,
MODE_INSTANCE_TEA_MODE,
MODE_INSTANCE_THERMOSTAT,
MODE_INSTANCE_WORK_SPEED,
)
VIDEO_STREAM_INSTANCE_GET_STREAM = 'get_stream'
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/color_setting.html#discovery__discovery-parameters-color-setting-table__entry__75
COLOR_SETTING_RGB = 'rgb'
COLOR_SETTING_TEMPERATURE_K = 'temperature_k'
COLOR_SETTING_SCENE = 'scene'
COLOR_SCENE_ALARM = 'alarm'
COLOR_SCENE_ALICE = 'alice'
COLOR_SCENE_CANDLE = 'candle'
COLOR_SCENE_DINNER = 'dinner'
COLOR_SCENE_FANTASY = 'fantasy'
COLOR_SCENE_GARLAND = 'garland'
COLOR_SCENE_JUNGLE = 'jungle'
COLOR_SCENE_MOVIE = 'movie'
COLOR_SCENE_NEON = 'neon'
COLOR_SCENE_NIGHT = 'night'
COLOR_SCENE_OCEAN = 'ocean'
COLOR_SCENE_PARTY = 'party'
COLOR_SCENE_READING = 'reading'
COLOR_SCENE_REST = 'rest'
COLOR_SCENE_ROMANCE = 'romance'
COLOR_SCENE_SIREN = 'siren'
COLOR_SCENE_SUNRISE = 'sunrise'
COLOR_SCENE_SUNSET = 'sunset'
COLOR_SCENES = (
COLOR_SCENE_ALARM,
COLOR_SCENE_ALICE,
COLOR_SCENE_CANDLE,
COLOR_SCENE_DINNER,
COLOR_SCENE_FANTASY,
COLOR_SCENE_GARLAND,
COLOR_SCENE_JUNGLE,
COLOR_SCENE_MOVIE,
COLOR_SCENE_NEON,
COLOR_SCENE_NIGHT,
COLOR_SCENE_OCEAN,
COLOR_SCENE_PARTY,
COLOR_SCENE_READING,
COLOR_SCENE_REST,
COLOR_SCENE_ROMANCE,
COLOR_SCENE_SIREN,
COLOR_SCENE_SUNRISE,
COLOR_SCENE_SUNSET,
)
COLOR_NAME_RED = 'red'
COLOR_NAME_CORAL = 'coral'
COLOR_NAME_ORANGE = 'orange'
COLOR_NAME_YELLOW = 'yellow'
COLOR_NAME_LIME = 'lime'
COLOR_NAME_GREEN = 'green'
COLOR_NAME_EMERALD = 'emerald'
COLOR_NAME_TURQUOISE = 'turquoise'
COLOR_NAME_CYAN = 'cyan'
COLOR_NAME_BLUE = 'blue'
COLOR_NAME_MOONLIGHT = 'moonlight'
COLOR_NAME_LAVENDER = 'lavender'
COLOR_NAME_VIOLET = 'violet'
COLOR_NAME_PURPLE = 'purple'
COLOR_NAME_ORCHID = 'orchid'
COLOR_NAME_MAUVE = 'mauve'
COLOR_NAME_RASPBERRY = 'raspberry'
COLOR_TEMPERATURE_NAME_FIERY_WHITE = 'fiery_white'
COLOR_TEMPERATURE_NAME_SOFT_WHITE = 'soft_white'
COLOR_TEMPERATURE_NAME_WARM_WHITE = 'warm_white'
COLOR_TEMPERATURE_NAME_WHITE = 'white'
COLOR_TEMPERATURE_NAME_DAYLIGHT = 'daylight'
COLOR_TEMPERATURE_NAME_COLD_WHITE = 'cold_white'
COLOR_TEMPERATURE_NAME_MISTY_WHITE = 'misty_white'
COLOR_TEMPERATURE_NAME_HEAVENLY_WHITE = 'heavenly_white'
COLOR_NAMES = (
COLOR_NAME_RED,
COLOR_NAME_CORAL,
COLOR_NAME_ORANGE,
COLOR_NAME_YELLOW,
COLOR_NAME_LIME,
COLOR_NAME_GREEN,
COLOR_NAME_EMERALD,
COLOR_NAME_TURQUOISE,
COLOR_NAME_CYAN,
COLOR_NAME_BLUE,
COLOR_NAME_MOONLIGHT,
COLOR_NAME_LAVENDER,
COLOR_NAME_VIOLET,
COLOR_NAME_PURPLE,
COLOR_NAME_ORCHID,
COLOR_NAME_MAUVE,
COLOR_NAME_RASPBERRY,
COLOR_TEMPERATURE_NAME_FIERY_WHITE,
COLOR_TEMPERATURE_NAME_SOFT_WHITE,
COLOR_TEMPERATURE_NAME_WARM_WHITE,
COLOR_TEMPERATURE_NAME_WHITE,
COLOR_TEMPERATURE_NAME_DAYLIGHT,
COLOR_TEMPERATURE_NAME_COLD_WHITE,
COLOR_TEMPERATURE_NAME_MISTY_WHITE,
COLOR_TEMPERATURE_NAME_HEAVENLY_WHITE
)
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/mode-instance-modes.html
MODE_INSTANCE_MODE_AUTO = 'auto'
MODE_INSTANCE_MODE_ECO = 'eco'
MODE_INSTANCE_MODE_TURBO = 'turbo'
MODE_INSTANCE_MODE_COOL = 'cool'
MODE_INSTANCE_MODE_DRY = 'dry'
MODE_INSTANCE_MODE_FAN_ONLY = 'fan_only'
MODE_INSTANCE_MODE_HEAT = 'heat'
MODE_INSTANCE_MODE_PREHEAT = 'preheat'
MODE_INSTANCE_MODE_HIGH = 'high'
MODE_INSTANCE_MODE_LOW = 'low'
MODE_INSTANCE_MODE_MEDIUM = 'medium'
MODE_INSTANCE_MODE_MAX = 'max'
MODE_INSTANCE_MODE_MIN = 'min'
MODE_INSTANCE_MODE_FAST = 'fast'
MODE_INSTANCE_MODE_SLOW = 'slow'
MODE_INSTANCE_MODE_EXPRESS = 'express'
MODE_INSTANCE_MODE_NORMAL = 'normal'
MODE_INSTANCE_MODE_QUIET = 'quiet'
MODE_INSTANCE_MODE_HORIZONTAL = 'horizontal'
MODE_INSTANCE_MODE_STATIONARY = 'stationary'
MODE_INSTANCE_MODE_VERTICAL = 'vertical'
MODE_INSTANCE_MODE_ONE = 'one'
MODE_INSTANCE_MODE_TWO = 'two'
MODE_INSTANCE_MODE_THREE = 'three'
MODE_INSTANCE_MODE_FOUR = 'four'
MODE_INSTANCE_MODE_FIVE = 'five'
MODE_INSTANCE_MODE_SIX = 'six'
MODE_INSTANCE_MODE_SEVEN = 'seven'
MODE_INSTANCE_MODE_EIGHT = 'eight'
MODE_INSTANCE_MODE_NINE = 'nine'
MODE_INSTANCE_MODE_TEN = 'ten'
MODE_INSTANCE_MODE_AMERICANO = 'americano'
MODE_INSTANCE_MODE_CAPPUCCINO = 'cappuccino'
MODE_INSTANCE_MODE_DOUBLE = 'double'
MODE_INSTANCE_MODE_ESPRESSO = 'espresso'
MODE_INSTANCE_MODE_DOUBLE_ESPRESSO = 'double_espresso'
MODE_INSTANCE_MODE_LATTE = 'latte'
MODE_INSTANCE_MODE_BLACK_TEA = 'black_tea'
MODE_INSTANCE_MODE_FLOWER_TEA = 'flower_tea'
MODE_INSTANCE_MODE_GREEN_TEA = 'green_tea'
MODE_INSTANCE_MODE_HERBAL_TEA = 'herbal_tea'
MODE_INSTANCE_MODE_OOLONG_TEA = 'oolong_tea'
MODE_INSTANCE_MODE_PUERH_TEA = 'puerh_tea'
MODE_INSTANCE_MODE_RED_TEA = 'red_tea'
MODE_INSTANCE_MODE_WHITE_TEA = 'white_tea'
MODE_INSTANCE_MODE_GLASS = 'glass'
MODE_INSTANCE_MODE_INTENSIVE = 'intensive'
MODE_INSTANCE_MODE_PRE_RINSE = 'pre_rinse'
MODE_INSTANCE_MODE_ASPIC = 'aspic'
MODE_INSTANCE_MODE_BABY_FOOD = 'baby_food'
MODE_INSTANCE_MODE_BAKING = 'baking'
MODE_INSTANCE_MODE_BREAD = 'bread'
MODE_INSTANCE_MODE_BOILING = 'boiling'
MODE_INSTANCE_MODE_CEREALS = 'cereals'
MODE_INSTANCE_MODE_CHEESECAKE = 'cheesecake'
MODE_INSTANCE_MODE_DEEP_FRYER = 'deep_fryer'
MODE_INSTANCE_MODE_DESSERT = 'dessert'
MODE_INSTANCE_MODE_FOWL = 'fowl'
MODE_INSTANCE_MODE_FRYING = 'frying'
MODE_INSTANCE_MODE_MACARONI = 'macaroni'
MODE_INSTANCE_MODE_MILK_PORRIDGE = 'milk_porridge'
MODE_INSTANCE_MODE_MULTICOOKER = 'multicooker'
MODE_INSTANCE_MODE_PASTA = 'pasta'
MODE_INSTANCE_MODE_PILAF = 'pilaf'
MODE_INSTANCE_MODE_PIZZA = 'pizza'
MODE_INSTANCE_MODE_SAUCE = 'sauce'
MODE_INSTANCE_MODE_SLOW_COOK = 'slow_cook'
MODE_INSTANCE_MODE_SOUP = 'soup'
MODE_INSTANCE_MODE_STEAM = 'steam'
MODE_INSTANCE_MODE_STEWING = 'stewing'
MODE_INSTANCE_MODE_VACUUM = 'vacuum'
MODE_INSTANCE_MODE_YOGURT = 'yogurt'
MODE_INSTANCE_MODES = (
MODE_INSTANCE_MODE_AUTO,
MODE_INSTANCE_MODE_ECO,
MODE_INSTANCE_MODE_TURBO,
MODE_INSTANCE_MODE_COOL,
MODE_INSTANCE_MODE_DRY,
MODE_INSTANCE_MODE_FAN_ONLY,
MODE_INSTANCE_MODE_HEAT,
MODE_INSTANCE_MODE_PREHEAT,
MODE_INSTANCE_MODE_HIGH,
MODE_INSTANCE_MODE_LOW,
MODE_INSTANCE_MODE_MEDIUM,
MODE_INSTANCE_MODE_MAX,
MODE_INSTANCE_MODE_MIN,
MODE_INSTANCE_MODE_FAST,
MODE_INSTANCE_MODE_SLOW,
MODE_INSTANCE_MODE_EXPRESS,
MODE_INSTANCE_MODE_NORMAL,
MODE_INSTANCE_MODE_QUIET,
MODE_INSTANCE_MODE_HORIZONTAL,
MODE_INSTANCE_MODE_STATIONARY,
MODE_INSTANCE_MODE_VERTICAL,
MODE_INSTANCE_MODE_ONE,
MODE_INSTANCE_MODE_TWO,
MODE_INSTANCE_MODE_THREE,
MODE_INSTANCE_MODE_FOUR,
MODE_INSTANCE_MODE_FIVE,
MODE_INSTANCE_MODE_SIX,
MODE_INSTANCE_MODE_SEVEN,
MODE_INSTANCE_MODE_EIGHT,
MODE_INSTANCE_MODE_NINE,
MODE_INSTANCE_MODE_TEN,
MODE_INSTANCE_MODE_AMERICANO,
MODE_INSTANCE_MODE_CAPPUCCINO,
MODE_INSTANCE_MODE_DOUBLE,
MODE_INSTANCE_MODE_ESPRESSO,
MODE_INSTANCE_MODE_DOUBLE_ESPRESSO,
MODE_INSTANCE_MODE_LATTE,
MODE_INSTANCE_MODE_BLACK_TEA,
MODE_INSTANCE_MODE_FLOWER_TEA,
MODE_INSTANCE_MODE_GREEN_TEA,
MODE_INSTANCE_MODE_HERBAL_TEA,
MODE_INSTANCE_MODE_OOLONG_TEA,
MODE_INSTANCE_MODE_PUERH_TEA,
MODE_INSTANCE_MODE_RED_TEA,
MODE_INSTANCE_MODE_WHITE_TEA,
MODE_INSTANCE_MODE_GLASS,
MODE_INSTANCE_MODE_INTENSIVE,
MODE_INSTANCE_MODE_PRE_RINSE,
MODE_INSTANCE_MODE_ASPIC,
MODE_INSTANCE_MODE_BABY_FOOD,
MODE_INSTANCE_MODE_BAKING,
MODE_INSTANCE_MODE_BREAD,
MODE_INSTANCE_MODE_BOILING,
MODE_INSTANCE_MODE_CEREALS,
MODE_INSTANCE_MODE_CHEESECAKE,
MODE_INSTANCE_MODE_DEEP_FRYER,
MODE_INSTANCE_MODE_DESSERT,
MODE_INSTANCE_MODE_FOWL,
MODE_INSTANCE_MODE_FRYING,
MODE_INSTANCE_MODE_MACARONI,
MODE_INSTANCE_MODE_MILK_PORRIDGE,
MODE_INSTANCE_MODE_MULTICOOKER,
MODE_INSTANCE_MODE_PASTA,
MODE_INSTANCE_MODE_PILAF,
MODE_INSTANCE_MODE_PIZZA,
MODE_INSTANCE_MODE_SAUCE,
MODE_INSTANCE_MODE_SLOW_COOK,
MODE_INSTANCE_MODE_SOUP,
MODE_INSTANCE_MODE_STEAM,
MODE_INSTANCE_MODE_STEWING,
MODE_INSTANCE_MODE_VACUUM,
MODE_INSTANCE_MODE_YOGURT,
)
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/float-instance.html
FLOAT_INSTANCE_AMPERAGE = 'amperage'
FLOAT_INSTANCE_BATTERY_LEVEL = 'battery_level'
FLOAT_INSTANCE_CO2_LEVEL = 'co2_level'
FLOAT_INSTANCE_HUMIDITY = 'humidity'
FLOAT_INSTANCE_ILLUMINATION = 'illumination'
FLOAT_INSTANCE_PM10_DENSITY = 'pm10_density'
FLOAT_INSTANCE_PM1_DENSITY = 'pm1_density'
FLOAT_INSTANCE_PM2_5_DENSITY = 'pm2.5_density'
FLOAT_INSTANCE_POWER = 'power'
FLOAT_INSTANCE_PRESSURE = 'pressure'
FLOAT_INSTANCE_TEMPERATURE = 'temperature'
FLOAT_INSTANCE_TVOC = 'tvoc'
FLOAT_INSTANCE_VOLTAGE = 'voltage'
FLOAT_INSTANCE_WATER_LEVEL = 'water_level'
FLOAT_INSTANCES = (
FLOAT_INSTANCE_AMPERAGE,
FLOAT_INSTANCE_BATTERY_LEVEL,
FLOAT_INSTANCE_CO2_LEVEL,
FLOAT_INSTANCE_HUMIDITY,
FLOAT_INSTANCE_ILLUMINATION,
FLOAT_INSTANCE_PM10_DENSITY,
FLOAT_INSTANCE_PM1_DENSITY,
FLOAT_INSTANCE_PM2_5_DENSITY,
FLOAT_INSTANCE_POWER,
FLOAT_INSTANCE_PRESSURE,
FLOAT_INSTANCE_TEMPERATURE,
FLOAT_INSTANCE_TVOC,
FLOAT_INSTANCE_VOLTAGE,
FLOAT_INSTANCE_WATER_LEVEL,
)
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/event-instance.html
EVENT_INSTANCE_VIBRATION = 'vibration'
EVENT_INSTANCE_OPEN = 'open'
EVENT_INSTANCE_BUTTON = 'button'
EVENT_INSTANCE_MOTION = 'motion'
EVENT_INSTANCE_SMOKE = 'smoke'
EVENT_INSTANCE_GAS = 'gas'
EVENT_INSTANCE_BATTERY_LEVEL = 'battery_level'
EVENT_INSTANCE_WATER_LEVEL = 'water_level'
EVENT_INSTANCE_WATER_LEAK = 'water_leak'
EVENT_INSTANCES = (
EVENT_INSTANCE_VIBRATION,
EVENT_INSTANCE_OPEN,
EVENT_INSTANCE_BUTTON,
EVENT_INSTANCE_MOTION,
EVENT_INSTANCE_SMOKE,
EVENT_INSTANCE_GAS,
EVENT_INSTANCE_BATTERY_LEVEL,
EVENT_INSTANCE_WATER_LEVEL,
EVENT_INSTANCE_WATER_LEAK,
)
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/event-instance.html#event-instance__vibration
EVENT_VIBRATION_TILT = 'tilt'
EVENT_VIBRATION_FALL = 'fall'
EVENT_VIBRATION_VIBRATION = 'vibration'
EVENT_OPEN_OPENED = 'opened'
EVENT_OPEN_CLOSED = 'closed'
EVENT_BUTTON_CLICK = 'click'
EVENT_BUTTON_DOUBLE_CLICK = 'double_click'
EVENT_BUTTON_LONG_PRESS = 'long_press'
EVENT_MOTION_DETECTED = 'detected'
EVENT_MOTION_NOT_DETECTED = 'not_detected'
EVENT_SMOKE_DETECTED = 'detected'
EVENT_SMOKE_NOT_DETECTED = 'not_detected'
EVENT_SMOKE_HIGH = 'high'
EVENT_GAS_DETECTED = 'detected'
EVENT_GAS_NOT_DETECTED = 'not_detected'
EVENT_GAS_HIGH = 'high'
EVENT_BATTERY_LEVEL_LOW = 'low'
EVENT_BATTERY_LEVEL_NORMAL = 'normal'
EVENT_WATER_LEVEL_LOW = 'low'
EVENT_WATER_LEVEL_NORMAL = 'normal'
EVENT_WATER_LEAK_DRY = 'dry'
EVENT_WATER_LEAK_LEAK = 'leak'
# https://yandex.ru/dev/dialogs/smart-home/doc/concepts/response-codes.html
ERR_DEVICE_UNREACHABLE = 'DEVICE_UNREACHABLE'
ERR_INTERNAL_ERROR = 'INTERNAL_ERROR'
ERR_INVALID_ACTION = 'INVALID_ACTION'
ERR_DEVICE_OFF = 'INVALID_ACTION'
ERR_INVALID_VALUE = 'INVALID_VALUE'
ERR_NOT_SUPPORTED_IN_CURRENT_MODE = 'NOT_SUPPORTED_IN_CURRENT_MODE'
PRESSURE_UNIT_PASCAL = 'pa'
PRESSURE_UNIT_HECTOPASCAL = 'hPa'
PRESSURE_UNIT_KILOPASCAL = 'kPa'
PRESSURE_UNIT_MEGAPASCAL = 'MPa'
PRESSURE_UNIT_MMHG = 'mmHg'
PRESSURE_UNIT_ATM = 'atm'
PRESSURE_UNIT_BAR = 'bar'
PRESSURE_UNIT_MBAR = 'mbar'
# Additional states
STATE_NONE = 'none'
STATE_NONE_UI = '-'
STATE_EMPTY = ''
STATE_CHARGING = 'charging'
STATE_LOW = 'low'
# Additional attributes
ATTR_CURRENT = 'current'
ATTR_ILLUMINANCE = 'illuminance'
ATTR_LOAD_POWER = 'load_power'
ATTR_CURRENT_CONSUMPTION = 'current_consumption'
ATTR_POWER = 'power'
ATTR_TVOC = 'total_volatile_organic_compounds'
ATTR_WATER_LEVEL = 'water_level'
# Integration xiaomi_airpurifier
ATTR_TARGET_HUMIDITY = 'target_humidity'
DOMAIN_XIAOMI_AIRPURIFIER = 'xiaomi_miio_airpurifier'
MODEL_PREFIX_XIAOMI_AIRPURIFIER = 'zhimi.'
SERVICE_FAN_SET_TARGET_HUMIDITY = 'fan_set_target_humidity'
# https://github.com/syssi/xiaomi_airpurifier#service-fanset_preset_mode
XIAOMI_FAN_PRESET_LEVEL_1 = 'Level 1'
XIAOMI_FAN_PRESET_LEVEL_2 = 'Level 2'
XIAOMI_FAN_PRESET_LEVEL_3 = 'Level 3'
XIAOMI_FAN_PRESET_LEVEL_4 = 'Level 4'
XIAOMI_FAN_PRESET_LEVEL_5 = 'Level 5'
# https://github.com/home-assistant/core/blob/d5a8f1af1d2dc74a12fb6870a4f1cb5318f88bf9/homeassistant/components/xiaomi_miio/fan.py#L744
XIAOMI_FAN_PRESET_NATURE = 'Nature'
XIAOMI_FAN_PRESET_NORMAL = 'Normal'
# https://github.com/ollo69/ha-smartthinq-sensors/blob/2d6212c9e060dc1d4947e1fed195af154442b941/custom_components/smartthinq_sensors/wideq/ac.py#L141
SMARTTHINQ_FAN_PRESET_NATURE = 'NATURE'
# https://github.com/home-assistant/core/blob/6830eec549c372946b19035000c10afecd2f2da3/homeassistant/components/xiaomi_miio/fan.py#L275
XIAOMI_AIRPURIFIER_PRESET_AUTO = 'Auto'
XIAOMI_AIRPURIFIER_PRESET_SILENT = 'Silent'
XIAOMI_AIRPURIFIER_PRESET_LOW = 'Low'
XIAOMI_AIRPURIFIER_PRESET_FAVORITE = 'Favorite'
XIAOMI_AIRPURIFIER_PRESET_IDLE = 'Idle'
XIAOMI_AIRPURIFIER_PRESET_MEDIUM = 'Medium'
XIAOMI_AIRPURIFIER_PRESET_HIGH = 'High'
XIAOMI_AIRPURIFIER_PRESET_STRONG = 'Strong'
XIAOMI_AIRPURIFIER_PRESET_FAN = 'Fan'
XIAOMI_AIRPURIFIER_PRESET_MIDDLE = 'Middle'
# https://github.com/home-assistant/core/blob/d5a8f1af1d2dc74a12fb6870a4f1cb5318f88bf9/homeassistant/components/xiaomi_miio/humidifier.py#L316
XIAOMI_HUMIDIFIER_PRESET_MID = 'Mid'
# https://github.com/airens/tion_home_assistant#climateset_fan_mode
TION_FAN_SPEED_1 = '1'
TION_FAN_SPEED_2 = '2'
TION_FAN_SPEED_3 = '3'
TION_FAN_SPEED_4 = '4'
TION_FAN_SPEED_5 = '5'
TION_FAN_SPEED_6 = '6'
# https://github.com/home-assistant/core/pull/67743
FAN_SPEED_OFF = 'off'
FAN_SPEED_LOW = 'low'
FAN_SPEED_MEDIUM = 'medium'
FAN_SPEED_HIGH = 'high'
# https://github.com/dmitry-k/yandex_smart_home/issues/173
FAN_SPEED_MIN = 'min'
FAN_SPEED_MAX = 'max'
# https://github.com/dmitry-k/yandex_smart_home/issues/347
FAN_SPEED_MID = 'mid'
# SmartIR
FAN_SPEED_HIGHEST = 'highest'
# Fake device class
DEVICE_CLASS_BUTTON = 'button'
MEDIA_PLAYER_FEATURE_VOLUME_MUTE = 'volume_mute'
MEDIA_PLAYER_FEATURE_VOLUME_SET = 'volume_set'
MEDIA_PLAYER_FEATURE_NEXT_PREVIOUS_TRACK = 'next_previous_track'
MEDIA_PLAYER_FEATURE_SELECT_SOURCE = 'select_source'
MEDIA_PLAYER_FEATURE_TURN_ON_OFF = 'turn_on_off'
MEDIA_PLAYER_FEATURE_PLAY_PAUSE = 'play_pause'
MEDIA_PLAYER_FEATURE_PLAY_MEDIA = 'play_media'
MEDIA_PLAYER_FEATURES = (
MEDIA_PLAYER_FEATURE_VOLUME_MUTE,
MEDIA_PLAYER_FEATURE_VOLUME_SET,
MEDIA_PLAYER_FEATURE_NEXT_PREVIOUS_TRACK,
MEDIA_PLAYER_FEATURE_SELECT_SOURCE,
MEDIA_PLAYER_FEATURE_PLAY_PAUSE,
MEDIA_PLAYER_FEATURE_PLAY_MEDIA,
)