Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/skykettle-ha.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-07-25 15:00:43 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-07-25 15:00:43 +0300
commit21f1852133af6821e1b99be7e9acb2e1327ef9fe (patch)
tree5b15c60157bb4d82406aa9c1a36bf0c07c16eb73
parent8a07e8e920e359f891661f7342ffbfe254348412 (diff)
config flow unsupported model message, backward compatibility
-rw-r--r--custom_components/skykettle/config_flow.py5
-rw-r--r--custom_components/skykettle/skykettle.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/custom_components/skykettle/config_flow.py b/custom_components/skykettle/config_flow.py
index 4660b97..1d6b660 100644
--- a/custom_components/skykettle/config_flow.py
+++ b/custom_components/skykettle/config_flow.py
@@ -116,6 +116,9 @@ class SkyKettleConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
spl = user_input[CONF_MAC].split(' ', maxsplit=1)
mac = spl[0]
name = spl[1][1:-1] if len(spl) >= 2 else None
+ if not SkyKettle.get_model_code(name):
+ # Model is not supported
+ return self.async_abort(reason='unknown_model')
if not await self.init_mac(mac):
# This kettle already configured
return self.async_abort(reason='already_configured')
@@ -126,7 +129,7 @@ class SkyKettleConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
try:
macs = await ble_scan(self.config.get(CONF_DEVICE, None), scan_time=BLE_SCAN_TIME)
_LOGGER.debug(f"Scan result: {macs}")
- macs_filtered = [mac for mac in macs if SkyKettle.get_model_code(mac.name)]
+ macs_filtered = [mac for mac in macs if mac.name and (mac.name.startswith("RK-") or mac.name.startswith("RFS-"))]
if len(macs_filtered) == 0:
return self.async_abort(reason='kettle_not_found')
mac_list = [f"{r.mac} ({r.name})" for r in macs_filtered]
diff --git a/custom_components/skykettle/skykettle.py b/custom_components/skykettle/skykettle.py
index 27de70a..a24a95e 100644
--- a/custom_components/skykettle/skykettle.py
+++ b/custom_components/skykettle/skykettle.py
@@ -115,14 +115,16 @@ class SkyKettle():
def __init__(self, model):
_LOGGER.info(f"Kettle model: {model}")
self.model = model
- self.model_code = self.get_model_code(model)
+ self.model_code = self.get_model_code(model, backward_compatibility=True)
if not self.model_code:
raise SkyKettleError("Unknown kettle model")
@staticmethod
- def get_model_code(model):
+ def get_model_code(model, backward_compatibility=False):
if model in SkyKettle.MODEL_TYPE:
return SkyKettle.MODEL_TYPE[model]
+ if backward_compatibility and model + 'S' in SkyKettle.MODEL_TYPE:
+ return SkyKettle.MODEL_TYPE[model + 'S']
return None
@abstractmethod