core/homeassistant/components/overkiz/const.py

59 lines
1.7 KiB
Python
Raw Normal View History

"""Constants for the Overkiz (by Somfy) integration."""
from __future__ import annotations
from datetime import timedelta
from typing import Final
from pyoverkiz.enums import UIClass
from pyoverkiz.enums.ui import UIWidget
from homeassistant.const import Platform
DOMAIN: Final = "overkiz"
CONF_HUB: Final = "hub"
DEFAULT_HUB: Final = "somfy_europe"
UPDATE_INTERVAL: Final = timedelta(seconds=30)
UPDATE_INTERVAL_ALL_ASSUMED_STATE: Final = timedelta(minutes=60)
PLATFORMS: list[Platform] = [
Platform.BINARY_SENSOR,
Platform.BUTTON,
Platform.LIGHT,
Platform.LOCK,
Platform.NUMBER,
Platform.SCENE,
Platform.SENSOR,
Platform.SWITCH,
]
IGNORED_OVERKIZ_DEVICES: list[UIClass | UIWidget] = [
UIClass.PROTOCOL_GATEWAY,
UIClass.POD,
]
# Used to map the Somfy widget and ui_class to the Home Assistant platform
OVERKIZ_DEVICE_TO_PLATFORM: dict[UIClass | UIWidget, Platform] = {
UIClass.DOOR_LOCK: Platform.LOCK,
UIWidget.DOMESTIC_HOT_WATER_TANK: Platform.SWITCH, # widgetName, uiClass is WaterHeatingSystem (not supported)
UIClass.LIGHT: Platform.LIGHT,
UIClass.ON_OFF: Platform.SWITCH,
UIWidget.RTD_INDOOR_SIREN: Platform.SWITCH, # widgetName, uiClass is Siren (not supported)
UIWidget.RTD_OUTDOOR_SIREN: Platform.SWITCH, # widgetName, uiClass is Siren (not supported)
UIClass.SWIMMING_POOL: Platform.SWITCH,
}
# Map Overkiz camelCase to Home Assistant snake_case for translation
OVERKIZ_STATE_TO_TRANSLATION: dict[str, str] = {
"externalGateway": "external_gateway",
"localUser": "local_user",
"lowBattery": "low_battery",
"LSC": "lsc",
"maintenanceRequired": "maintenance_required",
"noDefect": "no_defect",
"SAAC": "saac",
"SFC": "sfc",
"UPS": "ups",
}