@@ -604,16 +604,12 @@ def _all_appliances(self) -> None:
604604 for appliance in self ._appliances .findall ("./appliance" ):
605605 appl = Munch ()
606606 appl .pwclass = appliance .find ("type" ).text
607- appl .dev_id = appliance .attrib ["id" ]
608607 # Skip thermostats that have this key, should be an orphaned device (Core #81712)
609608 if (
610609 appl .pwclass in ["heater_central" , "thermostat" ]
611610 and appliance .find ("actuator_functionalities/" ) is None
612611 ):
613612 continue
614- # Skip orphaned heater_central (Core Issue #104433)
615- if appl .pwclass == "heater_central" and appl .dev_id != self ._heater_id :
616- continue
617613
618614 appl .location = None
619615 if (appl_loc := appliance .find ("location" )) is not None :
@@ -625,6 +621,7 @@ def _all_appliances(self) -> None:
625621 ) or appl .pwclass not in THERMOSTAT_CLASSES :
626622 appl .location = self ._home_location
627623
624+ appl .dev_id = appliance .attrib ["id" ]
628625 appl .name = appliance .find ("name" ).text
629626 appl .model = appl .pwclass .replace ("_" , " " ).title ()
630627 appl .firmware = None
@@ -638,6 +635,10 @@ def _all_appliances(self) -> None:
638635 if not (appl := self ._appliance_info_finder (appliance , appl )):
639636 continue
640637
638+ # Skip orphaned heater_central (Core Issue #104433)
639+ if appl .pwclass == "heater_central" and appl .dev_id != self ._heater_id :
640+ continue
641+
641642 # P1: for gateway and smartmeter switch device_id - part 1
642643 # This is done to avoid breakage in HA Core
643644 if appl .pwclass == "gateway" and self .smile_type == "power" :
0 commit comments