@@ -75,6 +75,7 @@ def __init__(
7575 self ._stretch_v2 = False
7676 self ._target_smile : str = NONE
7777 self .smile : Munch = Munch ()
78+ self .smile .anna_p1 = False
7879 self .smile .hostname = NONE
7980 self .smile .hw_version = None
8081 self .smile .legacy = False
@@ -191,20 +192,20 @@ async def _smile_detect(
191192 if (gateway := result .find ("./gateway" )) is not None :
192193 if (vendor_model := gateway .find ("vendor_model" )) is not None :
193194 model = vendor_model .text
195+ elec_measurement = gateway .find (
196+ "gateway_environment/electricity_consumption_tariff_structure"
197+ )
194198 if (
195- elec_measurement := gateway .find (
196- "gateway_environment/electricity_consumption_tariff_structure"
197- )
198- ) and elec_measurement .text :
199- parts = model .split ("_" )
200- if len (parts ) == 2 : # looking for "smile_thermo"
201- model = parts [0 ] + parts [1 ] + "_power"
199+ elec_measurement is not None
200+ and elec_measurement .text
201+ and model == "smile_thermo"
202+ ):
203+ self .smile .anna_p1 = True
202204
203205 self .smile .version = parse (gateway .find ("firmware_version" ).text )
204206 self .smile .hw_version = gateway .find ("hardware_version" ).text
205207 self .smile .hostname = gateway .find ("hostname" ).text
206208 self .smile .mac_address = gateway .find ("mac_address" ).text
207-
208209 else :
209210 model = await self ._smile_detect_legacy (result , dsmrmain , model )
210211
@@ -243,6 +244,8 @@ async def _smile_detect(
243244 self .smile .model_id = model
244245 self .smile .name = SMILES [self ._target_smile ].smile_name
245246 self .smile .type = SMILES [self ._target_smile ].smile_type
247+ if self .smile .name == "Smile Anna" and self .smile .anna_p1 :
248+ self .smile .name == "Smile Anna P1"
246249
247250 if self .smile .type == "stretch" :
248251 self ._stretch_v2 = int (version_major ) == 2
0 commit comments