@@ -604,17 +604,16 @@ def _all_appliances(self) -> None:
604604 for appliance in self ._appliances .findall ("./appliance" ):
605605 appl = Munch ()
606606 appl .pwclass = appliance .find ("type" ).text
607- # Count amount of heater_central's
608- if appl .pwclass == "heater_central" :
609- hc_count += 1
610- # Mark heater_central and thermostat that don't have actuator_functionalities,
611- # could be an orphaned device (Core #81712, #104433)
612- appl .has_actuators = True
607+ appl .dev_id = appliance .attrib ["id" ]
608+ # Skip thermostats that have this key, should be an orphaned device (Core #81712)
613609 if (
614610 appl .pwclass in ["heater_central" , "thermostat" ]
615611 and appliance .find ("actuator_functionalities/" ) is None
616612 ):
617- appl .has_actuators = False
613+ continue
614+ # Skip orphaned heater_central (Core Issue #104433)
615+ if appl .pwclass == "heater_central" and appl .dev_id != self ._heater_id :
616+ continue
618617
619618 appl .location = None
620619 if (appl_loc := appliance .find ("location" )) is not None :
@@ -626,7 +625,6 @@ def _all_appliances(self) -> None:
626625 ) or appl .pwclass not in THERMOSTAT_CLASSES :
627626 appl .location = self ._home_location
628627
629- appl .dev_id = appliance .attrib ["id" ]
630628 appl .name = appliance .find ("name" ).text
631629 appl .model = appl .pwclass .replace ("_" , " " ).title ()
632630 appl .firmware = None
0 commit comments