"""Const for YoLink Client.""" from typing import Final MANUFACTURER = "YoLink" CLASS_AD_KEEPALIVE_TIME = 9 * 60 * 60 # 9 hours in seconds CLASS_C_KEEPALIVE_TIME = 70 * 60 # 70 minutes in seconds HUB_KEEPALIVE_TIME = 10 * 60 # 10 minutes in seconds ATTR_FIELD_LORA = "loraInfo" ATTR_FIELD_STATE = "state" OAUTH2_AUTHORIZE = "https://api.yosmart.com/oauth/v2/authorization.htm" OAUTH2_TOKEN = "https://api.yosmart.com/open/yolink/token" ATTR_DEVICE_ID = "deviceId" ATTR_DEVICE_NAME = "name" ATTR_DEVICE_TYPE = "type" ATTR_DEVICE_TOKEN = "token" ATTR_DEVICE_MODEL_NAME = "modelName" ATTR_DEVICE_PARENT_ID = "parentDeviceId" ATTR_DEVICE_SERVICE_ZONE = "serviceZone" ATTR_DEVICE_APP_EUI = "appEui" ATTR_DEVICE_MODEL_A = "A" ATTR_DEVICE_MODEL_C = "C" ATTR_DEVICE_MODEL_D = "D" ATTR_DEVICE_MODEL_HUB = "Hub" ATTR_DEVICE_DOOR_SENSOR = "DoorSensor" ATTR_DEVICE_TH_SENSOR = "THSensor" ATTR_DEVICE_MOTION_SENSOR = "MotionSensor" ATTR_DEVICE_MULTI_OUTLET = "MultiOutlet" ATTR_DEVICE_LEAK_SENSOR = "LeakSensor" ATTR_DEVICE_MULTI_CAPS_LEAK_SENSOR = "MultiCapsLeakSensor" ATTR_DEVICE_VIBRATION_SENSOR = "VibrationSensor" ATTR_DEVICE_OUTLET = "Outlet" ATTR_DEVICE_SIREN = "Siren" ATTR_DEVICE_LOCK = "Lock" ATTR_DEVICE_MANIPULATOR = "Manipulator" ATTR_DEVICE_CO_SMOKE_SENSOR = "COSmokeSensor" ATTR_DEVICE_SWITCH = "Switch" ATTR_DEVICE_THERMOSTAT = "Thermostat" ATTR_DEVICE_DIMMER = "Dimmer" ATTR_GARAGE_DOOR_CONTROLLER = "GarageDoor" ATTR_DEVICE_SMART_REMOTER = "SmartRemoter" ATTR_DEVICE_POWER_FAILURE_ALARM = "PowerFailureAlarm" ATTR_DEVICE_HUB = "Hub" ATTR_DEVICE_SPEAKER_HUB = "SpeakerHub" ATTR_DEVICE_FINGER = "Finger" ATTR_DEVICE_WATER_DEPTH_SENSOR = "WaterDepthSensor" ATTR_DEVICE_WATER_METER_CONTROLLER = "WaterMeterController" ATTR_DEVICE_MULTI_WATER_METER_CONTROLLER = "WaterMeterMultiController" ATTR_DEVICE_LOCK_V2 = "LockV2" ATTR_DEVICE_SOIL_TH_SENSOR = "SoilThcSensor" ATTR_DEVICE_SPRINKLER = "Sprinkler" ATTR_DEVICE_SPRINKLER_V2 = "SprinklerV2" ATTR_DEVICE_SMOKE_ALARM = "SmokeAlarm" ATTR_DEVICE_MULTI_FUNCTIONAL_SENSOR = "MultifunctionalSensor" # device models ATTR_DEVICE_MODEL_MULTIOUTLET_YS6801 = "YS6801" # water meter controller ATTR_DEVICE_MODEL_WATER_METER_YS5018 = "YS5018" UNIT_NOT_RECOGNIZED_TEMPLATE: Final = "{} is not a recognized {} unit." DEVICE_LEAK_STOP_MODELS = ["YS5009-UC", "YS5009-EC", "YS5029-UC", "YS5029-EC"] DEVICE_MODELS_SUPPORT_MODE_SWITCHING = DEVICE_LEAK_STOP_MODELS