1515
1616if TYPE_CHECKING :
1717 from pyomnilogic_local ._base import OmniEquipment
18+ from pyomnilogic_local .bow import Bow
1819 from pyomnilogic_local .chlorinator import Chlorinator
1920 from pyomnilogic_local .chlorinator_equip import ChlorinatorEquipment
2021 from pyomnilogic_local .colorlogiclight import ColorLogicLight
@@ -260,6 +261,12 @@ def all_csads(self) -> EquipmentDict[CSAD]:
260261 csads .extend (bow .csads .values ())
261262 return EquipmentDict (csads )
262263
264+ @property
265+ def all_bows (self ) -> EquipmentDict [Bow ]:
266+ """Returns all Bow instances across all bows in the backyard."""
267+ # Bows are stored directly in backyard as EquipmentDict already
268+ return self .backyard .bow
269+
263270 # Equipment search methods
264271 def get_equipment_by_name (self , name : str ) -> OmniEquipment [Any , Any ] | None :
265272 """Find equipment by name across all equipment types.
@@ -272,6 +279,7 @@ def get_equipment_by_name(self, name: str) -> OmniEquipment[Any, Any] | None:
272279 """
273280 # Search all equipment types
274281 all_equipment : list [OmniEquipment [Any , Any ]] = []
282+ all_equipment .extend ([self .backyard ])
275283 all_equipment .extend (self .all_lights .values ())
276284 all_equipment .extend (self .all_relays .values ())
277285 all_equipment .extend (self .all_pumps .values ())
@@ -283,6 +291,7 @@ def get_equipment_by_name(self, name: str) -> OmniEquipment[Any, Any] | None:
283291 all_equipment .extend (self .all_chlorinator_equipment .values ())
284292 all_equipment .extend (self .all_csads .values ())
285293 all_equipment .extend (self .all_csad_equipment .values ())
294+ all_equipment .extend (self .all_bows .values ())
286295 all_equipment .extend (self .groups .values ())
287296
288297 for equipment in all_equipment :
@@ -302,6 +311,7 @@ def get_equipment_by_id(self, system_id: int) -> OmniEquipment[Any, Any] | None:
302311 """
303312 # Search all equipment types
304313 all_equipment : list [OmniEquipment [Any , Any ]] = []
314+ all_equipment .extend ([self .backyard ])
305315 all_equipment .extend (self .all_lights .values ())
306316 all_equipment .extend (self .all_relays .values ())
307317 all_equipment .extend (self .all_pumps .values ())
@@ -313,6 +323,7 @@ def get_equipment_by_id(self, system_id: int) -> OmniEquipment[Any, Any] | None:
313323 all_equipment .extend (self .all_chlorinator_equipment .values ())
314324 all_equipment .extend (self .all_csads .values ())
315325 all_equipment .extend (self .all_csad_equipment .values ())
326+ all_equipment .extend (self .all_bows .values ())
316327 all_equipment .extend (self .groups .values ())
317328 all_equipment .extend (self .schedules .values ())
318329
0 commit comments