2020-08-24 10:43:31 +00:00
|
|
|
"""Constants for the Shelly integration."""
|
2021-07-21 17:11:44 +00:00
|
|
|
from __future__ import annotations
|
2020-08-24 10:43:31 +00:00
|
|
|
|
2021-08-09 17:55:14 +00:00
|
|
|
import re
|
2021-07-21 17:11:44 +00:00
|
|
|
from typing import Final
|
2020-11-08 20:49:41 +00:00
|
|
|
|
2021-09-13 06:31:35 +00:00
|
|
|
BLOCK: Final = "block"
|
2021-07-21 17:11:44 +00:00
|
|
|
DATA_CONFIG_ENTRY: Final = "config_entry"
|
|
|
|
DEVICE: Final = "device"
|
|
|
|
DOMAIN: Final = "shelly"
|
|
|
|
REST: Final = "rest"
|
2021-09-13 06:31:35 +00:00
|
|
|
RPC: Final = "rpc"
|
2022-01-17 09:58:54 +00:00
|
|
|
RPC_POLL: Final = "rpc_poll"
|
2021-07-21 17:11:44 +00:00
|
|
|
|
|
|
|
CONF_COAP_PORT: Final = "coap_port"
|
|
|
|
DEFAULT_COAP_PORT: Final = 5683
|
2021-08-09 17:55:14 +00:00
|
|
|
FIRMWARE_PATTERN: Final = re.compile(r"^(\d{8})")
|
|
|
|
|
|
|
|
# Firmware 1.11.0 release date, this firmware supports light transition
|
|
|
|
LIGHT_TRANSITION_MIN_FIRMWARE_DATE: Final = 20210226
|
|
|
|
|
|
|
|
# max light transition time in milliseconds
|
|
|
|
MAX_TRANSITION_TIME: Final = 5000
|
|
|
|
|
2021-10-08 23:22:14 +00:00
|
|
|
RGBW_MODELS: Final = (
|
|
|
|
"SHBLB-1",
|
|
|
|
"SHRGBW2",
|
|
|
|
)
|
|
|
|
|
2021-08-09 17:55:14 +00:00
|
|
|
MODELS_SUPPORTING_LIGHT_TRANSITION: Final = (
|
|
|
|
"SHBDUO-1",
|
|
|
|
"SHCB-1",
|
|
|
|
"SHDM-1",
|
|
|
|
"SHDM-2",
|
|
|
|
"SHRGBW2",
|
|
|
|
"SHVIN-1",
|
|
|
|
)
|
2021-05-07 20:23:29 +00:00
|
|
|
|
2021-11-08 19:46:23 +00:00
|
|
|
MODELS_SUPPORTING_LIGHT_EFFECTS: Final = (
|
|
|
|
"SHBLB-1",
|
|
|
|
"SHCB-1",
|
|
|
|
"SHRGBW2",
|
|
|
|
)
|
|
|
|
|
2021-10-09 16:10:43 +00:00
|
|
|
# Bulbs that support white & color modes
|
|
|
|
DUAL_MODE_LIGHT_MODELS: Final = (
|
|
|
|
"SHBLB-1",
|
|
|
|
"SHCB-1",
|
|
|
|
)
|
|
|
|
|
2021-02-03 16:03:22 +00:00
|
|
|
# Used in "_async_update_data" as timeout for polling data from devices.
|
2021-07-21 17:11:44 +00:00
|
|
|
POLLING_TIMEOUT_SEC: Final = 18
|
2020-11-08 20:49:41 +00:00
|
|
|
|
2020-11-11 19:13:14 +00:00
|
|
|
# Refresh interval for REST sensors
|
2021-07-21 17:11:44 +00:00
|
|
|
REST_SENSORS_UPDATE_INTERVAL: Final = 60
|
2020-11-11 19:13:14 +00:00
|
|
|
|
2022-01-17 09:58:54 +00:00
|
|
|
# Refresh interval for RPC polling sensors
|
|
|
|
RPC_SENSORS_POLLING_INTERVAL: Final = 60
|
|
|
|
|
2021-01-04 13:04:40 +00:00
|
|
|
# Timeout used for aioshelly calls
|
2021-07-21 17:11:44 +00:00
|
|
|
AIOSHELLY_DEVICE_TIMEOUT_SEC: Final = 10
|
2020-11-08 20:49:41 +00:00
|
|
|
|
|
|
|
# Multiplier used to calculate the "update_interval" for sleeping devices.
|
2021-07-21 17:11:44 +00:00
|
|
|
SLEEP_PERIOD_MULTIPLIER: Final = 1.2
|
2021-11-06 15:32:58 +00:00
|
|
|
CONF_SLEEP_PERIOD: Final = "sleep_period"
|
2020-11-08 20:49:41 +00:00
|
|
|
|
|
|
|
# Multiplier used to calculate the "update_interval" for non-sleeping devices.
|
2021-07-21 17:11:44 +00:00
|
|
|
UPDATE_PERIOD_MULTIPLIER: Final = 2.2
|
2020-11-12 09:38:53 +00:00
|
|
|
|
2021-09-13 06:31:35 +00:00
|
|
|
# Reconnect interval for GEN2 devices
|
|
|
|
RPC_RECONNECT_INTERVAL = 60
|
|
|
|
|
2020-11-12 09:38:53 +00:00
|
|
|
# Shelly Air - Maximum work hours before lamp replacement
|
2021-07-21 17:11:44 +00:00
|
|
|
SHAIR_MAX_WORK_HOURS: Final = 9000
|
2020-11-25 14:29:01 +00:00
|
|
|
|
|
|
|
# Map Shelly input events
|
2021-07-21 17:11:44 +00:00
|
|
|
INPUTS_EVENTS_DICT: Final = {
|
2020-11-25 14:29:01 +00:00
|
|
|
"S": "single",
|
|
|
|
"SS": "double",
|
|
|
|
"SSS": "triple",
|
|
|
|
"L": "long",
|
|
|
|
"SL": "single_long",
|
|
|
|
"LS": "long_single",
|
|
|
|
}
|
2021-01-04 12:14:07 +00:00
|
|
|
|
|
|
|
# List of battery devices that maintain a permanent WiFi connection
|
2021-07-21 17:11:44 +00:00
|
|
|
BATTERY_DEVICES_WITH_PERMANENT_CONNECTION: Final = ["SHMOS-01"]
|
2021-01-04 22:10:42 +00:00
|
|
|
|
2021-09-20 21:09:44 +00:00
|
|
|
# Button/Click events for Block & RPC devices
|
2021-07-21 17:11:44 +00:00
|
|
|
EVENT_SHELLY_CLICK: Final = "shelly.click"
|
2021-01-04 22:10:42 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
ATTR_CLICK_TYPE: Final = "click_type"
|
|
|
|
ATTR_CHANNEL: Final = "channel"
|
|
|
|
ATTR_DEVICE: Final = "device"
|
2021-09-20 21:09:44 +00:00
|
|
|
ATTR_GENERATION: Final = "generation"
|
2021-07-21 17:11:44 +00:00
|
|
|
CONF_SUBTYPE: Final = "subtype"
|
2021-11-26 13:19:39 +00:00
|
|
|
ATTR_BETA: Final = "beta"
|
|
|
|
CONF_OTA_BETA_CHANNEL: Final = "ota_beta_channel"
|
2021-01-04 22:10:42 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
BASIC_INPUTS_EVENTS_TYPES: Final = {"single", "long"}
|
2021-01-04 22:10:42 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
SHBTN_INPUTS_EVENTS_TYPES: Final = {"single", "double", "triple", "long"}
|
2021-01-04 22:10:42 +00:00
|
|
|
|
2021-09-20 21:09:44 +00:00
|
|
|
RPC_INPUTS_EVENTS_TYPES: Final = {
|
|
|
|
"btn_down",
|
|
|
|
"btn_up",
|
|
|
|
"single_push",
|
|
|
|
"double_push",
|
|
|
|
"long_push",
|
|
|
|
}
|
|
|
|
|
|
|
|
BLOCK_INPUTS_EVENTS_TYPES: Final = {
|
2021-01-04 22:10:42 +00:00
|
|
|
"single",
|
|
|
|
"double",
|
|
|
|
"triple",
|
|
|
|
"long",
|
|
|
|
"single_long",
|
|
|
|
"long_single",
|
|
|
|
}
|
|
|
|
|
2021-09-20 21:09:44 +00:00
|
|
|
SHIX3_1_INPUTS_EVENTS_TYPES = BLOCK_INPUTS_EVENTS_TYPES
|
2021-07-21 17:11:44 +00:00
|
|
|
|
2021-09-20 21:09:44 +00:00
|
|
|
INPUTS_EVENTS_SUBTYPES: Final = {
|
|
|
|
"button": 1,
|
|
|
|
"button1": 1,
|
|
|
|
"button2": 2,
|
|
|
|
"button3": 3,
|
|
|
|
"button4": 4,
|
|
|
|
}
|
2021-01-11 15:47:49 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
SHBTN_MODELS: Final = ["SHBTN-1", "SHBTN-2"]
|
2021-04-25 04:47:18 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
STANDARD_RGB_EFFECTS: Final = {
|
2021-05-15 19:43:06 +00:00
|
|
|
0: "Off",
|
|
|
|
1: "Meteor Shower",
|
|
|
|
2: "Gradual Change",
|
|
|
|
3: "Flash",
|
|
|
|
}
|
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
SHBLB_1_RGB_EFFECTS: Final = {
|
2021-05-15 19:43:06 +00:00
|
|
|
0: "Off",
|
|
|
|
1: "Meteor Shower",
|
|
|
|
2: "Gradual Change",
|
|
|
|
3: "Flash",
|
|
|
|
4: "Breath",
|
|
|
|
5: "On/Off Gradual",
|
|
|
|
6: "Red/Green Change",
|
|
|
|
}
|
|
|
|
|
2021-11-21 22:34:00 +00:00
|
|
|
SHTRV_01_TEMPERATURE_SETTINGS: Final = {
|
|
|
|
"min": 4,
|
|
|
|
"max": 31,
|
|
|
|
"step": 1,
|
|
|
|
}
|
|
|
|
|
2021-01-11 15:47:49 +00:00
|
|
|
# Kelvin value for colorTemp
|
2021-07-21 17:11:44 +00:00
|
|
|
KELVIN_MAX_VALUE: Final = 6500
|
|
|
|
KELVIN_MIN_VALUE_WHITE: Final = 2700
|
|
|
|
KELVIN_MIN_VALUE_COLOR: Final = 3000
|
2021-05-09 17:46:53 +00:00
|
|
|
|
2021-07-21 17:11:44 +00:00
|
|
|
UPTIME_DEVIATION: Final = 5
|
2021-09-17 12:53:39 +00:00
|
|
|
|
|
|
|
# Max RPC switch/input key instances
|
|
|
|
MAX_RPC_KEY_INSTANCES = 4
|
2021-10-09 16:10:43 +00:00
|
|
|
|
|
|
|
# Time to wait before reloading entry upon device config change
|
|
|
|
ENTRY_RELOAD_COOLDOWN = 60
|
2022-01-01 19:42:17 +00:00
|
|
|
|
|
|
|
SHELLY_GAS_MODELS = ["SHGS-1"]
|