187 lines
4.8 KiB
Python
187 lines
4.8 KiB
Python
"""All constants related to the ZHA component."""
|
|
import enum
|
|
import logging
|
|
|
|
from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR
|
|
from homeassistant.components.device_tracker import DOMAIN as DEVICE_TRACKER
|
|
from homeassistant.components.fan import DOMAIN as FAN
|
|
from homeassistant.components.light import DOMAIN as LIGHT
|
|
from homeassistant.components.lock import DOMAIN as LOCK
|
|
from homeassistant.components.sensor import DOMAIN as SENSOR
|
|
from homeassistant.components.switch import DOMAIN as SWITCH
|
|
|
|
DOMAIN = "zha"
|
|
|
|
BAUD_RATES = [2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000, 256000]
|
|
|
|
DATA_ZHA = "zha"
|
|
DATA_ZHA_CONFIG = "config"
|
|
DATA_ZHA_BRIDGE_ID = "zha_bridge_id"
|
|
DATA_ZHA_DISPATCHERS = "zha_dispatchers"
|
|
DATA_ZHA_CORE_EVENTS = "zha_core_events"
|
|
DATA_ZHA_GATEWAY = "zha_gateway"
|
|
ZHA_DISCOVERY_NEW = "zha_discovery_new_{}"
|
|
|
|
COMPONENTS = (BINARY_SENSOR, DEVICE_TRACKER, FAN, LIGHT, LOCK, SENSOR, SWITCH)
|
|
|
|
CONF_BAUDRATE = "baudrate"
|
|
CONF_DATABASE = "database_path"
|
|
CONF_DEVICE_CONFIG = "device_config"
|
|
CONF_RADIO_TYPE = "radio_type"
|
|
CONF_USB_PATH = "usb_path"
|
|
DATA_DEVICE_CONFIG = "zha_device_config"
|
|
ENABLE_QUIRKS = "enable_quirks"
|
|
|
|
RADIO = "radio"
|
|
RADIO_DESCRIPTION = "radio_description"
|
|
CONTROLLER = "controller"
|
|
|
|
DEFAULT_RADIO_TYPE = "ezsp"
|
|
DEFAULT_BAUDRATE = 57600
|
|
DEFAULT_DATABASE_NAME = "zigbee.db"
|
|
|
|
ATTR_CLUSTER_ID = "cluster_id"
|
|
ATTR_CLUSTER_TYPE = "cluster_type"
|
|
ATTR_ATTRIBUTE = "attribute"
|
|
ATTR_VALUE = "value"
|
|
ATTR_MANUFACTURER = "manufacturer"
|
|
ATTR_COMMAND = "command"
|
|
ATTR_COMMAND_TYPE = "command_type"
|
|
ATTR_ARGS = "args"
|
|
ATTR_ENDPOINT_ID = "endpoint_id"
|
|
ATTR_AVAILABLE = "available"
|
|
|
|
IN = "in"
|
|
OUT = "out"
|
|
CLIENT_COMMANDS = "client_commands"
|
|
SERVER_COMMANDS = "server_commands"
|
|
SERVER = "server"
|
|
IEEE = "ieee"
|
|
MODEL = "model"
|
|
NAME = "name"
|
|
LQI = "lqi"
|
|
RSSI = "rssi"
|
|
LAST_SEEN = "last_seen"
|
|
|
|
SENSOR_TYPE = "sensor_type"
|
|
HUMIDITY = "humidity"
|
|
TEMPERATURE = "temperature"
|
|
ILLUMINANCE = "illuminance"
|
|
PRESSURE = "pressure"
|
|
METERING = "metering"
|
|
ELECTRICAL_MEASUREMENT = "electrical_measurement"
|
|
GENERIC = "generic"
|
|
BATTERY = "battery"
|
|
UNKNOWN = "unknown"
|
|
UNKNOWN_MANUFACTURER = "unk_manufacturer"
|
|
UNKNOWN_MODEL = "unk_model"
|
|
OPENING = "opening"
|
|
OCCUPANCY = "occupancy"
|
|
ACCELERATION = "acceleration"
|
|
|
|
ATTR_LEVEL = "level"
|
|
|
|
ZDO_CHANNEL = "zdo"
|
|
ON_OFF_CHANNEL = "on_off"
|
|
ATTRIBUTE_CHANNEL = "attribute"
|
|
BASIC_CHANNEL = "basic"
|
|
COLOR_CHANNEL = "light_color"
|
|
FAN_CHANNEL = "fan"
|
|
LEVEL_CHANNEL = ATTR_LEVEL
|
|
ZONE_CHANNEL = ZONE = "ias_zone"
|
|
ELECTRICAL_MEASUREMENT_CHANNEL = "electrical_measurement"
|
|
POWER_CONFIGURATION_CHANNEL = "power"
|
|
EVENT_RELAY_CHANNEL = "event_relay"
|
|
DOORLOCK_CHANNEL = "door_lock"
|
|
|
|
SIGNAL_ATTR_UPDATED = "attribute_updated"
|
|
SIGNAL_MOVE_LEVEL = "move_level"
|
|
SIGNAL_SET_LEVEL = "set_level"
|
|
SIGNAL_STATE_ATTR = "update_state_attribute"
|
|
SIGNAL_AVAILABLE = "available"
|
|
SIGNAL_REMOVE = "remove"
|
|
|
|
QUIRK_APPLIED = "quirk_applied"
|
|
QUIRK_CLASS = "quirk_class"
|
|
MANUFACTURER_CODE = "manufacturer_code"
|
|
POWER_SOURCE = "power_source"
|
|
MAINS_POWERED = "Mains"
|
|
BATTERY_OR_UNKNOWN = "Battery or Unknown"
|
|
|
|
BELLOWS = "bellows"
|
|
ZHA = "homeassistant.components.zha"
|
|
ZIGPY = "zigpy"
|
|
ZIGPY_XBEE = "zigpy_xbee"
|
|
ZIGPY_DECONZ = "zigpy_deconz"
|
|
ORIGINAL = "original"
|
|
CURRENT = "current"
|
|
DEBUG_LEVELS = {
|
|
BELLOWS: logging.DEBUG,
|
|
ZHA: logging.DEBUG,
|
|
ZIGPY: logging.DEBUG,
|
|
ZIGPY_XBEE: logging.DEBUG,
|
|
ZIGPY_DECONZ: logging.DEBUG,
|
|
}
|
|
ADD_DEVICE_RELAY_LOGGERS = [ZHA, ZIGPY]
|
|
TYPE = "type"
|
|
NWK = "nwk"
|
|
SIGNATURE = "signature"
|
|
RAW_INIT = "raw_device_initialized"
|
|
ZHA_GW_MSG = "zha_gateway_message"
|
|
DEVICE_REMOVED = "device_removed"
|
|
DEVICE_INFO = "device_info"
|
|
DEVICE_FULL_INIT = "device_fully_initialized"
|
|
DEVICE_JOINED = "device_joined"
|
|
LOG_OUTPUT = "log_output"
|
|
LOG_ENTRY = "log_entry"
|
|
MFG_CLUSTER_ID_START = 0xFC00
|
|
|
|
|
|
class RadioType(enum.Enum):
|
|
"""Possible options for radio type."""
|
|
|
|
ezsp = "ezsp"
|
|
xbee = "xbee"
|
|
deconz = "deconz"
|
|
|
|
@classmethod
|
|
def list(cls):
|
|
"""Return list of enum's values."""
|
|
return [e.value for e in RadioType]
|
|
|
|
|
|
DISCOVERY_KEY = "zha_discovery_info"
|
|
|
|
REPORT_CONFIG_MAX_INT = 900
|
|
REPORT_CONFIG_MAX_INT_BATTERY_SAVE = 10800
|
|
REPORT_CONFIG_MIN_INT = 30
|
|
REPORT_CONFIG_MIN_INT_ASAP = 1
|
|
REPORT_CONFIG_MIN_INT_IMMEDIATE = 0
|
|
REPORT_CONFIG_MIN_INT_OP = 5
|
|
REPORT_CONFIG_MIN_INT_BATTERY_SAVE = 3600
|
|
REPORT_CONFIG_RPT_CHANGE = 1
|
|
REPORT_CONFIG_DEFAULT = (
|
|
REPORT_CONFIG_MIN_INT,
|
|
REPORT_CONFIG_MAX_INT,
|
|
REPORT_CONFIG_RPT_CHANGE,
|
|
)
|
|
REPORT_CONFIG_ASAP = (
|
|
REPORT_CONFIG_MIN_INT_ASAP,
|
|
REPORT_CONFIG_MAX_INT,
|
|
REPORT_CONFIG_RPT_CHANGE,
|
|
)
|
|
REPORT_CONFIG_BATTERY_SAVE = (
|
|
REPORT_CONFIG_MIN_INT_BATTERY_SAVE,
|
|
REPORT_CONFIG_MAX_INT_BATTERY_SAVE,
|
|
REPORT_CONFIG_RPT_CHANGE,
|
|
)
|
|
REPORT_CONFIG_IMMEDIATE = (
|
|
REPORT_CONFIG_MIN_INT_IMMEDIATE,
|
|
REPORT_CONFIG_MAX_INT,
|
|
REPORT_CONFIG_RPT_CHANGE,
|
|
)
|
|
REPORT_CONFIG_OP = (
|
|
REPORT_CONFIG_MIN_INT_OP,
|
|
REPORT_CONFIG_MAX_INT,
|
|
REPORT_CONFIG_RPT_CHANGE,
|
|
)
|