|
26 | 26 | RelayState, |
27 | 27 | ) |
28 | 28 | from ..connection import StickController |
29 | | -from ..constants import SUPPRESS_INITIALIZATION_WARNINGS, UTF8 |
| 29 | +from ..constants import SUPPRESS_INITIALIZATION_WARNINGS, TYPE_MODEL, UTF8 |
30 | 30 | from ..exceptions import FeatureError, NodeError |
31 | 31 | from ..helpers.util import version_to_model |
32 | 32 | from ..messages.requests import NodeInfoRequest, NodePingRequest |
|
38 | 38 |
|
39 | 39 | _LOGGER = logging.getLogger(__name__) |
40 | 40 |
|
41 | | - |
42 | 41 | NODE_FEATURES = ( |
43 | 42 | NodeFeature.AVAILABLE, |
44 | 43 | NodeFeature.INFO, |
45 | 44 | NodeFeature.PING, |
46 | 45 | ) |
47 | 46 |
|
48 | | - |
49 | 47 | CACHE_FIRMWARE = "firmware" |
50 | 48 | CACHE_NODE_TYPE = "node_type" |
51 | 49 | CACHE_HARDWARE = "hardware" |
52 | 50 | CACHE_NODE_INFO_TIMESTAMP = "node_info_timestamp" |
53 | 51 |
|
54 | | - |
55 | 52 | class PlugwiseBaseNode(FeaturePublisher, ABC): |
56 | 53 | """Abstract Base Class for a Plugwise node.""" |
57 | 54 |
|
@@ -512,15 +509,12 @@ async def update_node_details( |
512 | 509 | self._node_info.model = model_info[0] |
513 | 510 | # Correct model when node_type doesn't match |
514 | 511 | # Switch reports hardware version of paired Circle (pw_usb_beta #245) |
515 | | - if ( |
516 | | - self._node_info.node_type is not None |
517 | | - and ( |
518 | | - correct_model := self._node_info.node_type.name.lower().split("_")[0] |
519 | | - ) not in self._node_info.model.lower() |
520 | | - ): |
521 | | - self._node_info.model = correct_model.capitalize() |
522 | | - # Replace model_info list |
523 | | - model_info = [self._node_info.model] |
| 512 | + if self._node_info.node_type is not None: |
| 513 | + allowed_models = TYPE_MODEL.get(self._node_info.node_type.value) |
| 514 | + if allowed_models and model_info[0] not in allowed_models: |
| 515 | + # Replace model_info list |
| 516 | + model_info = [allowed_models[0]] # Not correct for 1 but should not be a problem |
| 517 | + self._node_info.model = model_info[0] |
524 | 518 |
|
525 | 519 | # Handle + devices |
526 | 520 | if len(model_info) > 1 and "+" in model_info[1]: |
|
0 commit comments