diff --git a/bec_lib/bec_lib/devicemanager_client.py b/bec_lib/bec_lib/devicemanager_client.py index 2435cd98..e8065cad 100644 --- a/bec_lib/bec_lib/devicemanager_client.py +++ b/bec_lib/bec_lib/devicemanager_client.py @@ -329,7 +329,8 @@ class OphydInterfaceBase(RPCBase): if filter_to_hints: signals = {key: val for key, val in signals.items() if key in self._hints} if self._signal_info: - return signals.get(self._signal_info.get("obj_name")) + obj_name = self._signal_info.get("obj_name") + return {obj_name: signals.get(obj_name, {})} return {key: val for key, val in signals.items() if key.startswith(self.full_name)} @rpc @@ -365,8 +366,8 @@ class OphydInterfaceBase(RPCBase): ret = self.read() if ret is None: return None - - return ret.get("value") + # return ret + return ret.get(self._signal_info.get("obj_name"), {}).get("value") @rpc def put(self, value: Any): diff --git a/bec_lib/tests/test_device_manager_client.py b/bec_lib/tests/test_device_manager_client.py index 46a2ea96..32a9e807 100644 --- a/bec_lib/tests/test_device_manager_client.py +++ b/bec_lib/tests/test_device_manager_client.py @@ -107,7 +107,7 @@ def test_read_kind_hinted(dev, kind, cached): if cached: mock_get.assert_called_once_with(MessageEndpoints.device_readback("samx")) mock_run.assert_not_called() - assert res == {"value": 0, "timestamp": 1701105880.1711318} + assert res == {"samx": {"value": 0, "timestamp": 1701105880.1711318}} else: mock_run.assert_called_once_with(cached=False, fcn=dev.samx.readback.read) mock_get.assert_not_called()