3131import aiohttp
3232from defusedxml import ElementTree as etree
3333
34- # Dict as class
35- # Version detection
36- import semver
37-
3834
3935class Smile (SmileComm ):
4036 """The Plugwise SmileConnect class."""
@@ -80,15 +76,15 @@ def __init__(
8076 self ._target_smile : str = NONE
8177 self .gateway_id : str = NONE
8278 self .loc_data : dict [str , ThermoLoc ] = {}
83- self .smile_fw_version : str | None
84- self .smile_hostname : str
79+ self .smile_fw_version : str | None = None
80+ self .smile_hostname : str = NONE
8581 self .smile_hw_version : str | None = None
8682 self .smile_legacy = False
87- self .smile_mac_address : str | None
88- self .smile_model : str
89- self .smile_name : str
90- self .smile_type : str
91- self .smile_version : tuple [ str , semver . version . Version ]
83+ self .smile_mac_address : str | None = None
84+ self .smile_model : str = NONE
85+ self .smile_name : str = NONE
86+ self .smile_type : str = NONE
87+ self .smile_version : str = NONE
9288 self .smile_zigbee_mac_address : str | None = None
9389
9490 async def connect (self ) -> bool :
@@ -143,12 +139,10 @@ async def connect(self) -> bool:
143139 self .smile_fw_version ,
144140 self .smile_hostname ,
145141 self .smile_hw_version ,
146- self .smile_legacy ,
147142 self .smile_mac_address ,
148143 self .smile_model ,
149144 self .smile_name ,
150145 self .smile_type ,
151- self .smile_version ,
152146 self ._user ,
153147 self ._port ,
154148 self ._timeout ,
@@ -171,7 +165,6 @@ async def connect(self) -> bool:
171165 self .smile_model ,
172166 self .smile_name ,
173167 self .smile_type ,
174- self .smile_version ,
175168 self .smile_zigbee_mac_address ,
176169 self ._user ,
177170 self ._port ,
@@ -207,8 +200,8 @@ async def _smile_detect(self, result: etree, dsmrmain: etree) -> None:
207200 )
208201 raise UnsupportedDeviceError
209202
210- ver = semver . version . Version . parse ( self . smile_fw_version )
211- self ._target_smile = f"{ model } _v{ ver . major } "
203+ version_major : str = self . smile_fw_version . split ( "." , 1 )[ 0 ]
204+ self ._target_smile = f"{ model } _v{ version_major } "
212205 LOGGER .debug ("Plugwise identified as %s" , self ._target_smile )
213206 if self ._target_smile not in SMILES :
214207 LOGGER .error (
@@ -228,10 +221,10 @@ async def _smile_detect(self, result: etree, dsmrmain: etree) -> None:
228221 self .smile_model = "Gateway"
229222 self .smile_name = SMILES [self ._target_smile ].smile_name
230223 self .smile_type = SMILES [self ._target_smile ].smile_type
231- self .smile_version = ( self .smile_fw_version , ver )
224+ self .smile_version = self .smile_fw_version
232225
233226 if self .smile_type == "stretch" :
234- self ._stretch_v2 = self . smile_version [ 1 ]. major == 2
227+ self ._stretch_v2 = int ( version_major ) == 2
235228
236229 if self .smile_type == "thermostat" :
237230 self ._is_thermostat = True
0 commit comments