* Add logbook and device trigger platforms to Shelly Add `logbook` platform for describing “shelly.click” event Add `device_trigger` platform for adding automation based on click events: Example of logbook event: Shelly 'single' click event for Test I3 channel 3 was fired. (Test I3 is the name of the device) Example of automation triggers: First button triple clicked First button long clicked and then single clicked First button double clicked First button long clicked First button single clicked and then long clicked First button single clicked Second button triple clicked .. Second button single clicked * Fix codespell * Remove pylint added for debug * Add tests * Rebase * Fix Rebase & Apply PR review suggestions Fix tests after rebasing Use `INPUTS_EVENTS_DICT` for input triggers Apply PR suggestions
72 lines
1.5 KiB
Python
72 lines
1.5 KiB
Python
"""Constants for the Shelly integration."""
|
|
|
|
COAP = "coap"
|
|
DATA_CONFIG_ENTRY = "config_entry"
|
|
DOMAIN = "shelly"
|
|
REST = "rest"
|
|
|
|
# Used to calculate the timeout in "_async_update_data" used for polling data from devices.
|
|
POLLING_TIMEOUT_MULTIPLIER = 1.2
|
|
|
|
# Refresh interval for REST sensors
|
|
REST_SENSORS_UPDATE_INTERVAL = 60
|
|
|
|
# Timeout used for aioshelly calls
|
|
AIOSHELLY_DEVICE_TIMEOUT_SEC = 10
|
|
|
|
# Multiplier used to calculate the "update_interval" for sleeping devices.
|
|
SLEEP_PERIOD_MULTIPLIER = 1.2
|
|
|
|
# Multiplier used to calculate the "update_interval" for non-sleeping devices.
|
|
UPDATE_PERIOD_MULTIPLIER = 2.2
|
|
|
|
# Shelly Air - Maximum work hours before lamp replacement
|
|
SHAIR_MAX_WORK_HOURS = 9000
|
|
|
|
# Map Shelly input events
|
|
INPUTS_EVENTS_DICT = {
|
|
"S": "single",
|
|
"SS": "double",
|
|
"SSS": "triple",
|
|
"L": "long",
|
|
"SL": "single_long",
|
|
"LS": "long_single",
|
|
}
|
|
|
|
# List of battery devices that maintain a permanent WiFi connection
|
|
BATTERY_DEVICES_WITH_PERMANENT_CONNECTION = ["SHMOS-01"]
|
|
|
|
EVENT_SHELLY_CLICK = "shelly.click"
|
|
|
|
ATTR_CLICK_TYPE = "click_type"
|
|
ATTR_CHANNEL = "channel"
|
|
ATTR_DEVICE = "device"
|
|
CONF_SUBTYPE = "subtype"
|
|
|
|
BASIC_INPUTS_EVENTS_TYPES = {
|
|
"single",
|
|
"long",
|
|
}
|
|
|
|
SHBTN_1_INPUTS_EVENTS_TYPES = {
|
|
"single",
|
|
"double",
|
|
"triple",
|
|
"long",
|
|
}
|
|
|
|
SUPPORTED_INPUTS_EVENTS_TYPES = SHIX3_1_INPUTS_EVENTS_TYPES = {
|
|
"single",
|
|
"double",
|
|
"triple",
|
|
"long",
|
|
"single_long",
|
|
"long_single",
|
|
}
|
|
|
|
INPUTS_EVENTS_SUBTYPES = {
|
|
"button": 1,
|
|
"button1": 1,
|
|
"button2": 2,
|
|
"button3": 3,
|
|
}
|