core/homeassistant/components/mysensors/const.py

127 lines
3.4 KiB
Python
Raw Normal View History

"""MySensors constants."""
from collections import defaultdict
ATTR_DEVICES = 'devices'
CONF_BAUD_RATE = 'baud_rate'
CONF_DEVICE = 'device'
CONF_GATEWAYS = 'gateways'
CONF_NODES = 'nodes'
CONF_PERSISTENCE = 'persistence'
CONF_PERSISTENCE_FILE = 'persistence_file'
CONF_RETAIN = 'retain'
CONF_TCP_PORT = 'tcp_port'
CONF_TOPIC_IN_PREFIX = 'topic_in_prefix'
CONF_TOPIC_OUT_PREFIX = 'topic_out_prefix'
CONF_VERSION = 'version'
DOMAIN = 'mysensors'
MYSENSORS_GATEWAY_READY = 'mysensors_gateway_ready_{}'
MYSENSORS_GATEWAYS = 'mysensors_gateways'
PLATFORM = 'platform'
SCHEMA = 'schema'
CHILD_CALLBACK = 'mysensors_child_callback_{}_{}_{}_{}'
NODE_CALLBACK = 'mysensors_node_callback_{}_{}'
TYPE = 'type'
UPDATE_DELAY = 0.1
BINARY_SENSOR_TYPES = {
'S_DOOR': 'V_TRIPPED',
'S_MOTION': 'V_TRIPPED',
'S_SMOKE': 'V_TRIPPED',
'S_SPRINKLER': 'V_TRIPPED',
'S_WATER_LEAK': 'V_TRIPPED',
'S_SOUND': 'V_TRIPPED',
'S_VIBRATION': 'V_TRIPPED',
'S_MOISTURE': 'V_TRIPPED',
}
CLIMATE_TYPES = {
'S_HVAC': 'V_HVAC_FLOW_STATE',
}
COVER_TYPES = {
'S_COVER': ['V_DIMMER', 'V_PERCENTAGE', 'V_LIGHT', 'V_STATUS'],
}
DEVICE_TRACKER_TYPES = {
'S_GPS': 'V_POSITION',
}
LIGHT_TYPES = {
'S_DIMMER': ['V_DIMMER', 'V_PERCENTAGE'],
'S_RGB_LIGHT': 'V_RGB',
'S_RGBW_LIGHT': 'V_RGBW',
}
NOTIFY_TYPES = {
'S_INFO': 'V_TEXT',
}
SENSOR_TYPES = {
'S_SOUND': 'V_LEVEL',
'S_VIBRATION': 'V_LEVEL',
'S_MOISTURE': 'V_LEVEL',
'S_INFO': 'V_TEXT',
'S_GPS': 'V_POSITION',
'S_TEMP': 'V_TEMP',
'S_HUM': 'V_HUM',
'S_BARO': ['V_PRESSURE', 'V_FORECAST'],
'S_WIND': ['V_WIND', 'V_GUST', 'V_DIRECTION'],
'S_RAIN': ['V_RAIN', 'V_RAINRATE'],
'S_UV': 'V_UV',
'S_WEIGHT': ['V_WEIGHT', 'V_IMPEDANCE'],
'S_POWER': ['V_WATT', 'V_KWH', 'V_VAR', 'V_VA', 'V_POWER_FACTOR'],
'S_DISTANCE': 'V_DISTANCE',
'S_LIGHT_LEVEL': ['V_LIGHT_LEVEL', 'V_LEVEL'],
'S_IR': 'V_IR_RECEIVE',
'S_WATER': ['V_FLOW', 'V_VOLUME'],
'S_CUSTOM': ['V_VAR1', 'V_VAR2', 'V_VAR3', 'V_VAR4', 'V_VAR5', 'V_CUSTOM'],
'S_SCENE_CONTROLLER': ['V_SCENE_ON', 'V_SCENE_OFF'],
'S_COLOR_SENSOR': 'V_RGB',
'S_MULTIMETER': ['V_VOLTAGE', 'V_CURRENT', 'V_IMPEDANCE'],
'S_GAS': ['V_FLOW', 'V_VOLUME'],
'S_WATER_QUALITY': ['V_TEMP', 'V_PH', 'V_ORP', 'V_EC'],
'S_AIR_QUALITY': ['V_DUST_LEVEL', 'V_LEVEL'],
'S_DUST': ['V_DUST_LEVEL', 'V_LEVEL'],
}
SWITCH_TYPES = {
'S_LIGHT': 'V_LIGHT',
'S_BINARY': 'V_STATUS',
'S_DOOR': 'V_ARMED',
'S_MOTION': 'V_ARMED',
'S_SMOKE': 'V_ARMED',
'S_SPRINKLER': 'V_STATUS',
'S_WATER_LEAK': 'V_ARMED',
'S_SOUND': 'V_ARMED',
'S_VIBRATION': 'V_ARMED',
'S_MOISTURE': 'V_ARMED',
'S_IR': 'V_IR_SEND',
'S_LOCK': 'V_LOCK_STATUS',
'S_WATER_QUALITY': 'V_STATUS',
}
PLATFORM_TYPES = {
'binary_sensor': BINARY_SENSOR_TYPES,
'climate': CLIMATE_TYPES,
'cover': COVER_TYPES,
'device_tracker': DEVICE_TRACKER_TYPES,
'light': LIGHT_TYPES,
'notify': NOTIFY_TYPES,
'sensor': SENSOR_TYPES,
'switch': SWITCH_TYPES,
}
FLAT_PLATFORM_TYPES = {
(platform, s_type_name): v_type_name
for platform, platform_types in PLATFORM_TYPES.items()
for s_type_name, v_type_name in platform_types.items()
}
TYPE_TO_PLATFORMS = defaultdict(list)
for platform, platform_types in PLATFORM_TYPES.items():
for s_type_name in platform_types:
TYPE_TO_PLATFORMS[s_type_name].append(platform)