685 lines
22 KiB
Python
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,
|
|
)
|