56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
from importlib import import_module
|
|
import logging
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def load_model_quirks(self, model, entity_id):
|
|
"""Load model."""
|
|
|
|
# remove / from model
|
|
model = model.replace("/", "_")
|
|
|
|
try:
|
|
self.model_quirks = import_module(
|
|
"custom_components.better_thermostat.model_fixes." + model,
|
|
package="better_thermostat",
|
|
)
|
|
_LOGGER.debug(
|
|
"better_thermostat %s: uses quirks fixes for model %s for trv %s",
|
|
self.name,
|
|
model,
|
|
entity_id,
|
|
)
|
|
except Exception:
|
|
self.model_quirks = import_module(
|
|
"custom_components.better_thermostat.model_fixes.default",
|
|
package="better_thermostat",
|
|
)
|
|
pass
|
|
|
|
return self.model_quirks
|
|
|
|
|
|
def fix_local_calibration(self, entity_id, offset):
|
|
return self.real_trvs[entity_id]["model_quirks"].fix_local_calibration(
|
|
self, entity_id, offset
|
|
)
|
|
|
|
|
|
def fix_target_temperature_calibration(self, entity_id, temperature):
|
|
return self.real_trvs[entity_id]["model_quirks"].fix_target_temperature_calibration(
|
|
self, entity_id, temperature
|
|
)
|
|
|
|
|
|
async def override_set_hvac_mode(self, entity_id, hvac_mode):
|
|
return await self.real_trvs[entity_id]["model_quirks"].override_set_hvac_mode(
|
|
self, entity_id, hvac_mode
|
|
)
|
|
|
|
|
|
async def override_set_temperature(self, entity_id, temperature):
|
|
return await self.real_trvs[entity_id]["model_quirks"].override_set_temperature(
|
|
self, entity_id, temperature
|
|
)
|