Files
2024-02-29 11:36:46 +01:00

137 lines
3.0 KiB
Python

""" consts for koolnova BMS """
from datetime import timedelta
from homeassistant.const import Platform
from homeassistant.components.climate.const import (
ClimateEntityFeature,
HVACMode,
FAN_AUTO,
FAN_OFF,
FAN_LOW,
FAN_MEDIUM,
FAN_HIGH,
)
from .koolnova.const import (
GlobalMode,
Efficiency,
FlowEngine,
ZoneClimMode,
ZoneFanMode,
ZoneState,
)
DOMAIN = "koolnova_bms"
PLATFORMS: list[Platform] = [Platform.SENSOR,
Platform.SELECT,
Platform.SWITCH,
Platform.CLIMATE]
CONF_NAME = "koolnova-BMS-Integration"
CONF_DEVICE_ID = "device_id"
DEVICE_MANUFACTURER = "koolnova"
#MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
GLOBAL_MODE_POS_1 = "cold"
GLOBAL_MODE_POS_2 = "heat"
GLOBAL_MODE_POS_3 = "heating floor"
GLOBAL_MODE_POS_4 = "refreshing floor"
GLOBAL_MODE_POS_5 = "heating floor 2"
GLOBAL_MODE_TRANSLATION = {
int(GlobalMode.COLD): GLOBAL_MODE_POS_1,
int(GlobalMode.HEAT): GLOBAL_MODE_POS_2,
int(GlobalMode.HEATING_FLOOR): GLOBAL_MODE_POS_3,
int(GlobalMode.REFRESHING_FLOOR): GLOBAL_MODE_POS_4,
int(GlobalMode.HEATING_FLOOR_2): GLOBAL_MODE_POS_5,
}
GLOBAL_MODES = [
GLOBAL_MODE_POS_1,
GLOBAL_MODE_POS_2,
GLOBAL_MODE_POS_3,
GLOBAL_MODE_POS_4,
GLOBAL_MODE_POS_5,
]
EFF_POS_1 = "lower"
EFF_POS_2 = "low"
EFF_POS_3 = "Medium"
EFF_POS_4 = "High"
EFF_POS_5 = "Higher"
EFF_TRANSLATION = {
int(Efficiency.LOWER_EFF): EFF_POS_1,
int(Efficiency.LOW_EFF): EFF_POS_2,
int(Efficiency.MED_EFF): EFF_POS_3,
int(Efficiency.HIGH_EFF): EFF_POS_4,
int(Efficiency.HIGHER_EFF): EFF_POS_5,
}
EFF_MODES = [
EFF_POS_1,
EFF_POS_2,
EFF_POS_3,
EFF_POS_4,
EFF_POS_5,
]
ENGINE_FLOW_POS_1 = "Manual minimum"
ENGINE_FLOW_POS_2 = "Manual medium"
ENGINE_FLOW_POS_3 = "Manual High"
ENGINE_FLOW_POS_4 = "Auto"
ENGINE_FLOW_TRANSLATION = {
int(FlowEngine.MANUAL_MIN): ENGINE_FLOW_POS_1,
int(FlowEngine.MANUAL_MED): ENGINE_FLOW_POS_2,
int(FlowEngine.MANUAL_HIGH): ENGINE_FLOW_POS_3,
int(FlowEngine.AUTO): ENGINE_FLOW_POS_4,
}
ENGINE_FLOW_MODES = [
ENGINE_FLOW_POS_1,
ENGINE_FLOW_POS_2,
ENGINE_FLOW_POS_3,
ENGINE_FLOW_POS_4,
]
SUPPORT_FLAGS = (
ClimateEntityFeature.TARGET_TEMPERATURE
| ClimateEntityFeature.FAN_MODE
)
SUPPORTED_HVAC_MODES = [
HVACMode.OFF,
HVACMode.COOL,
HVACMode.HEAT,
]
HVAC_TRANSLATION = {
int(ZoneState.STATE_OFF): HVACMode.OFF,
int(ZoneClimMode.COOL): HVACMode.COOL,
int(ZoneClimMode.HEAT): HVACMode.HEAT,
}
#FAN_MODE_1 = "1 Off"
#FAN_MODE_2 = "2 Low"
#FAN_MODE_3 = "3 Medium"
#FAN_MODE_4 = "4 High"
FAN_TRANSLATION = {
int(ZoneFanMode.FAN_AUTO): FAN_AUTO,
int(ZoneFanMode.FAN_OFF): FAN_OFF,
int(ZoneFanMode.FAN_LOW): FAN_LOW,
int(ZoneFanMode.FAN_MEDIUM): FAN_MEDIUM,
int(ZoneFanMode.FAN_HIGH): FAN_HIGH,
}
SUPPORTED_FAN_MODES = [
FAN_AUTO,
FAN_OFF,
FAN_LOW,
FAN_MEDIUM,
FAN_HIGH,
]