first commit
This commit is contained in:
@@ -0,0 +1,684 @@
|
||||
"""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,
|
||||
)
|
||||
Reference in New Issue
Block a user