async def new(cls, application, ieee, nwk, version: int, device_path: str): """Create or replace zigpy device.""" dev = cls(version, device_path, application, ieee, nwk) if ieee in application.devices: from_dev = application.get_device(ieee=ieee) dev.status = from_dev.status dev.node_desc = from_dev.node_desc dev.neighbors = zigpy.neighbor.Neighbors(dev) for nei in from_dev.neighbors.neighbors: dev.neighbors.add_neighbor(nei.neighbor) for ep_id, from_ep in from_dev.endpoints.items(): if not ep_id: continue # Skip ZDO ep = dev.add_endpoint(ep_id) ep.profile_id = from_ep.profile_id ep.device_type = from_ep.device_type ep.status = from_ep.status ep.in_clusters = from_ep.in_clusters ep.out_clusters = from_ep.out_clusters else: application.devices[ieee] = dev await dev.initialize() return dev
async def new(cls, application, ieee, nwk): """Create or replace zigpy device.""" dev = cls(application, ieee, nwk) if ieee in application.devices: from_dev = application.get_device(ieee=ieee) dev.status = from_dev.status dev.node_desc = from_dev.node_desc for ep_id, from_ep in from_dev.endpoints.items(): if not ep_id: continue # Skip ZDO ep = dev.add_endpoint(ep_id) ep.profile_id = from_ep.profile_id ep.device_type = from_ep.device_type ep.status = from_ep.status ep.in_clusters = from_ep.in_clusters ep.out_clusters = from_ep.out_clusters else: application.devices[ieee] = dev await dev._initialize() return dev